/*
Theme Name: Svenn
Theme URI: https://wearesvenn.it
Description: Custom theme for Svenn
Author: Hassel
Author URI: https://hassel.it
Template: the-reporter
Version: 1.0.0
Text Domain: svenn
*/

/* ==========================================
   1. Design Tokens
========================================== */

:root {
  /* Fonts */
  --font-heading: "Instrument Serif", serif;
  --font-body: "Urbanist", sans-serif;

  /* Neutral */
  --color-neutral-0: #ffffff;
  --color-neutral-10: #fafafa;
  --color-neutral-20: #f6f6f6;
  --color-neutral-30: #ededed;
  --color-neutral-40: #e1e1e1;
  --color-neutral-50: #c6c6c6;
  --color-neutral-60: #b8b8b8;
  --color-neutral-70: #adadad;
  --color-neutral-80: #9f9f9f;
  --color-neutral-90: #919191;
  --color-neutral-100: #838383;
  --color-neutral-200: #767676;
  --color-neutral-300: #686868;
  --color-neutral-400: #5c5c5c;
  --color-neutral-500: #4f4f4f;
  --color-neutral-600: #434343;
  --color-neutral-700: #333333;
  --color-neutral-800: #252525;
  --color-neutral-900: #1a1a1a;

  /* Brand 01 (Teal) */
  --color-brand-01-50: #e7f9f8;
  --color-brand-01-100: #b5edeb;
  --color-brand-01-200: #91e4e1;
  --color-brand-01-300: #5fd7d3;
  --color-brand-01-400: #40d0ca;
  --color-brand-01-500: #10c4bd;
  --color-brand-01-600: #0fb2ac;
  --color-brand-01-700: #0b8b86;
  --color-brand-01-800: #096c68;
  --color-brand-01-900: #07524f;

  /* Brand 02 (Purple) */
  --color-brand-02-50: #f0edff;
  --color-brand-02-100: #d1c8ff;
  --color-brand-02-200: #bbaeff;
  --color-brand-02-300: #9c89fe;
  --color-brand-02-400: #8972fe;
  --color-brand-02-500: #6b4ffe;
  --color-brand-02-600: #6148e7;
  --color-brand-02-700: #4c38b4;
  --color-brand-02-800: #3b2b8c;
  --color-brand-02-900: #2d216b;

  /* Brand 03 (Warm Gray) */
  --color-brand-03-50: #fdfdfc;
  --color-brand-03-100: #f9f8f4;
  --color-brand-03-200: #f6f4ef;
  --color-brand-03-300: #f2f0e8;
  --color-brand-03-400: #f0ede4;
  --color-brand-03-500: #ece8dd;
  --color-brand-03-600: #d7d3c9;
  --color-brand-03-700: #a8a59d;
  --color-brand-03-800: #82807a;
  --color-brand-03-900: #63615d;

  /* Red */
  --color-red-50: #fee6e6;
  --color-red-100: #fab0b0;
  --color-red-200: #f88a8a;
  --color-red-300: #f55454;
  --color-red-400: #f33333;
  --color-red-500: #f00000;
  --color-red-600: #da0000;
  --color-red-700: #aa0000;
  --color-red-800: #840000;
  --color-red-900: #650000;

  /* Orange */
  --color-orange-50: #fef6ea;
  --color-orange-100: #fbe3be;
  --color-orange-200: #f9d69f;
  --color-orange-300: #f6c373;
  --color-orange-400: #f5b858;
  --color-orange-500: #f2a62e;
  --color-orange-600: #dc972a;
  --color-orange-700: #ac7621;
  --color-orange-800: #855b19;
  --color-orange-900: #664613;

  /* Yellow */
  --color-yellow-50: #ebf516;
  --color-yellow-100: #ebf516;
  --color-yellow-200: #f6fa94;
  --color-yellow-300: #f2f863;
  --color-yellow-400: #eff745;
  --color-yellow-500: #ebf516;
  --color-yellow-600: #d6df14;
  --color-yellow-700: #a7ae10;
  --color-yellow-800: #81870c;
  --color-yellow-900: #636709;

  /* Green */
  --color-green-50: #e6feed;
  --color-green-100: #b0fac6;
  --color-green-200: #8af8ab;
  --color-green-300: #54f584;
  --color-green-400: #33f36d;
  --color-green-500: #00f048;
  --color-green-600: #00da42;
  --color-green-700: #00aa33;
  --color-green-800: #008428;
  --color-green-900: #00651e;

  /* Blue */
  --color-blue-50: #e6edfe;
  --color-blue-100: #b0c6fa;
  --color-blue-200: #8aabf8;
  --color-blue-300: #5484f5;
  --color-blue-400: #336df3;
  --color-blue-500: #0048f0;
  --color-blue-600: #0042da;
  --color-blue-700: #0033aa;
  --color-blue-800: #002884;
  --color-blue-900: #001e65;

  /* Turquoise */
  --color-turquoise-50: #e6fefb;
  --color-turquoise-100: #b0faf2;
  --color-turquoise-200: #8af8eb;
  --color-turquoise-300: #54f5e2;
  --color-turquoise-400: #33f3dd;
  --color-turquoise-500: #00f0d4;
  --color-turquoise-600: #00dac1;
  --color-turquoise-700: #00aa97;
  --color-turquoise-800: #008475;
  --color-turquoise-900: #006559;

  /* Violet */
  --color-violet-50: #fee6fd;
  --color-violet-100: #fab0f8;
  --color-violet-200: #f88af4;
  --color-violet-300: #f554f0;
  --color-violet-400: #f333ed;
  --color-violet-500: #f000e8;
  --color-violet-600: #da00d3;
  --color-violet-700: #aa00a5;
  --color-violet-800: #840080;
  --color-violet-900: #650061;

  /* Purple */
  --color-purple-50: #efe6fd;
  --color-purple-100: #ceb0fa;
  --color-purple-200: #b78af7;
  --color-purple-300: #9654f4;
  --color-purple-400: #8133f1;
  --color-purple-500: #6200ee;
  --color-purple-600: #5900d9;
  --color-purple-700: #4600a9;
  --color-purple-800: #360083;
  --color-purple-900: #290064;

  /* Shades */
  --shade-transparent: #ffffff00;
  --shade-dark-20: #1c1c1c33;
  --shade-dark-50: #1c1c1c7f;
  --shade-dark-80: #1c1c1ccc;

  --shade-light-20: #fafafa33;
  --shade-light-50: #fafafa7f;
  --shade-light-80: #fafafacc;

  --shade-brand-03-20: #ece8dd33;
  --shade-brand-03-50: #ece8dd7f;
  --shade-brand-03-80: #ece8ddcc;

  /* Status */
  --color-status-pink: #ec4899;
  --color-status-gray: #9ca3af;
  --color-status-brown: #92400e;
  --color-status-light: #f3f4f6;
  --color-status-green: #22c55e;
  --color-status-orange: #f97316;
  --color-status-blue: #3b82f6;
  --color-status-purple: #8b5cf6;
  --color-status-red: #ef4444;
  --color-status-yellow: #eab308;
  --color-status-dark: #1f2937;
  --color-status-light-dark: #6b7280;

  --color-status-brand-primary: #2563eb;
  --color-status-brand-secondary: #64748b;

  /* Global */
  --page-top-gap: var(--cmsmasters-main-content-padding-top);
  --divider-color: var(--color-brand-03-500) !important;
}

/* ==========================================
   2. Base
========================================== */

/* Base Typography */

body {
  font-family: var(--font-body) !important;
  color: var(--color-neutral-600) !important;
  font-weight: 400 !important;
}

p,
li,
label,
input,
textarea,
select,
button,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  font-family: var(--font-body) !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading) !important;
  color: var(--color-neutral-800) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.15;
}

/* Heading 1 */

h1 {
  font-size: clamp(2.7625rem, 4.25vw, 3.825rem) !important;
}

/* Heading 2 */

h2 {
  font-size: clamp(2.25rem, 3.15vw, 2.925rem) !important;
}

/* Heading 3 */

h3 {
  font-size: clamp(1.9rem, 2.6125vw, 2.6125rem) !important;
}

/* Heading 4 */

h4 {
  font-size: clamp(1.625rem, 2.25vw, 2rem) !important;
}

/* Heading 5 */

h5 {
  font-size: clamp(1.375rem, 1.75vw, 1.625rem) !important;
}

/* Heading 6 */

h6 {
  font-size: clamp(1.125rem, 1.5vw, 1.375rem) !important;
}

/* Heading Links */

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
}

/* ==========================================
   3. Utilities
========================================== */

/* Text */

.text-heading {
  font-family: var(--font-heading) !important;
  color: var(--color-neutral-800) !important;
  font-weight: 400 !important;
}

.text-body {
  font-family: var(--font-body) !important;
  color: var(--color-neutral-600) !important;
  font-weight: 400 !important;
}

.text-caption {
  font-family: var(--font-body) !important;
  color: var(--color-neutral-600) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

/* Full Width */

.full-width {
  width: 100vw;
  max-width: 100vw;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  position: relative;
  left: 50%;
  right: 50%;
}

/* No Top Gap */

.no-top-gap {
  margin-top: calc(-1.1 * var(--page-top-gap)) !important;
  padding-top: 0 !important;
}

/* ==========================================
   4. Layouts
========================================== */

/* --------------- START -- Stack --------------- */

.stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* --------------- END -- Stack --------------- */

/* --------------- START -- Inline Cards --------------- */

.inline-cards {
  --layout-gap: 2rem;

  display: flex !important;
  gap: var(--layout-gap) !important;
  overflow-x: auto !important;
  flex-wrap: nowrap !important;
  scroll-snap-type: x mandatory;
}

.inline-cards.column-dividers {
  gap: 0 !important;
}

.inline-cards > * {
  flex: 1 0 0 !important;
  scroll-snap-align: start !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* --------------- END -- Inline Cards --------------- */

/* --------------- START -- Inline Carousel --------------- */

.inline-carousel {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;

  overflow-x: auto;
  overflow-y: hidden;

  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}

.inline-carousel::-webkit-scrollbar {
  display: none !important;
}

.inline-carousel > * {
  min-width: 0 !important;
  box-sizing: border-box !important;
  scroll-snap-align: start !important;
  margin: 0 !important;
}

/* --------------- END -- Inline Carousel --------------- */

/* --------------- START -- Carousel Controls --------------- */

.carousel-controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.carousel-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 3rem !important;
  height: 3rem !important;
  padding: 0;

  background: var(--color-neutral-0) !important;
  color: var(--color-neutral-800) !important;

  border: 2px solid var(--color-neutral-30);
  border-radius: 0 !important;

  cursor: pointer !important;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.carousel-arrow::before {
  background: var(--color-neutral-0) !important;
  color: var(--color-neutral-800) !important;
}

.carousel-arrow:hover {
  background: var(--color-neutral-20) !important;
  color: var(--color-neutral-800) !important;
  border-color: var(--color-neutral-20) !important;
}

.carousel-arrow i {
  font-size: 1rem;
  line-height: 1;
}

.carousel-arrow:hover i {
  color: var(--color-neutral-800) !important;
}

/* --------------- END -- Carousel Controls --------------- */

/* --------------- START -- Services Carousel Layout --------------- */

.services-carousel-wrapper {
  position: relative;
  width: 100%;
}

.services-carousel {
  --visible-cards: 4.15;
  --card-padding: 1rem;

  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
}

.services-carousel.inline-carousel.column-dividers {
  margin-left: calc(var(--card-padding) * -1) !important;
}

.services-carousel.column-dividers > .card-carousel__item {
  flex: 0 0 calc(100% / var(--visible-cards)) !important;
  width: auto !important;
  min-width: 0 !important;

  padding-left: var(--card-padding) !important;
  padding-right: var(--card-padding) !important;

  box-sizing: border-box !important;
}

/* Tablet: 3 cards */
@media (min-width: 769px) and (max-width: 1024px) {
  .services-carousel {
    --visible-cards: 3;
    --card-padding: 0.75rem;
  }
}

/* Phone: 2 cards */
@media (max-width: 768px) {
  .services-carousel {
    --visible-cards: 2;
    --card-padding: 0.5rem;
  }
}

/* --------------- END -- Services Carousel Layout --------------- */

/* --------------- START -- Layout 40 / 30 / 30 --------------- */

.layout-40-30-30 {
  --layout-gap: 2rem;

  display: grid !important;
  grid-template-columns: 5.5fr 2.5fr 2fr !important;
  gap: var(--layout-gap) !important;
  align-items: start !important;
}

.layout-40-30-30.column-dividers {
  gap: 0 !important;
}

.layout-40-30-30 > * {
  margin: 0 !important;
  padding: 0 !important;
}

/* Tablet: 1 full-width + 2 columns */
@media (min-width: 769px) and (max-width: 1024px) {

  .layout-40-30-30 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: 2rem !important;
  }

  .layout-40-30-30 > :first-child {
    grid-column: 1 / -1 !important;
  }

  .layout-40-30-30 > * {
    min-width: 0 !important;
    width: 100% !important;
    flex-basis: auto !important;
  }
}

/* Phone: stacked columns */
@media (max-width: 768px) {

  .layout-40-30-30 {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 2rem !important;
  }

  .layout-40-30-30 > * {
    grid-column: auto !important;
    min-width: 0 !important;
    width: 100% !important;
    flex-basis: auto !important;
  }
}

/* --------------- END -- Layout 40 / 30 / 30 --------------- */

/* --------------- START -- Text Columns --------------- */

.text-columns-2 > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: start !important;
}

.text-columns-2 > .wp-block-group__inner-container > .wp-block-group {
  min-width: 0 !important;
  align-self: start !important;
  justify-content: flex-start !important;
  margin: 0 !important;
}

.text-columns-2
  > .wp-block-group__inner-container
  > .wp-block-group
  > .wp-block-group__inner-container
  > *:first-child {
  margin-top: 0;
}

.text-columns-2
  > .wp-block-group__inner-container
  > .wp-block-group
  > .wp-block-group__inner-container
  > *:last-child {
  margin-bottom: 0;
}

/* --------------- END -- Text Columns --------------- */

/* --------------- START -- Gutenberg Separator Reset --------------- */

.wp-block-separator {
  width: 100%;
  max-width: 100%;
  height: 0 !important;

  margin: 3rem 0 !important;

  border: 0 !important;
  background: transparent !important;
  background-image: none !important;

  box-shadow: none !important;
  outline: 0 !important;
  filter: none !important;

  color: inherit !important;
  overflow: visible !important;
}

/* --------------- END -- Gutenberg Separator Reset --------------- */

/* --------------- START -- Images --------------- */

.image-feature {
  margin: 0;
}

.image-inline {
  width: 50%;
  margin: 0 auto;
}

.image-placeholder {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  aspect-ratio: 16 / 9;

  border: 2px solid var(--color-neutral-200);
  background-color: var(--color-neutral-50);

  overflow: hidden;
}

.image-placeholder::before,
.image-placeholder::after {
  content: "";

  position: absolute;
  inset: 0;

  background: linear-gradient(
    to bottom right,
    transparent calc(50% - 1px),
    var(--color-neutral-300) calc(50% - 1px),
    var(--color-neutral-300) calc(50% + 1px),
    transparent calc(50% + 1px)
  );

  pointer-events: none;
}

.image-placeholder::after {
  transform: scaleX(-1);
}

.image-placeholder span {
  position: relative;
  z-index: 1;

  padding: 0.5rem 0.75rem;

  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  color: var(--color-neutral-500);
  background: rgba(255, 255, 255, 0.8);

  border-radius: 0.25rem;
}

/* --------------- END -- Images --------------- */

/* --------------- START -- Homepage Hero --------------- */

/* Full viewport width and 70% viewport height */
.hero-home.wp-block-cover {
    position: relative !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;

    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;

    height: 70vh !important;
    height: 70dvh !important;
    min-height: 0 !important;

    margin: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    padding: 0 !important;

    overflow: hidden;
    box-sizing: border-box;
    background-color: var(--color-brand-03-100);
}

/* Background image */
.hero-home.wp-block-cover > .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: contain !important;
    object-position: center !important;
}

/* Hide default Gutenberg overlay */
.hero-home.wp-block-cover > .wp-block-cover__background {
    display: none !important;
}

/* Original Elementor gradient */
.hero-home.wp-block-cover::after {
    content: "" !important;
    display: block !important;

    position: absolute;
    inset: 0;
    z-index: 1;

    background: linear-gradient(
        180deg,
        rgba(25, 26, 30, 0.0) 0%,
        rgba(25, 26, 30, 0.25) 65%,
        rgba(25, 26, 30, 0.95) 100%
    ) !important;

    pointer-events: none;
}

/* Centered content */
.hero-home.wp-block-cover > .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;

    width: 100% !important;
    max-width: 1320px !important;

    margin: 0 auto !important;
    padding: 0 24px 2% !important;

    box-sizing: border-box;
    text-align: center !important;
}

/* Heading */
.hero-home h1 {
    margin: 0 !important;

    font-family: var(--font-heading, "Instrument Serif", serif) !important;
    font-size: clamp(2.7625rem, 4.25vw, 3.825rem) !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
    letter-spacing: 0.01em !important;

    color: #fff !important;
    text-align: center !important;
}

/* Heading link */
.hero-home h1 a {
    color: var(--color-neutral-0) !important;
    font: inherit !important;
    text-decoration: none !important;

    background-image: linear-gradient(#fff, #fff);
    background-repeat: no-repeat;
    background-size: 0 2px;
    background-position: 0 calc(100% - 2px);

    transition: background-size 0.3s ease-in-out !important;
}

/* Underline hover */
.hero-home h1 a:hover,
.hero-home h1 a:focus-visible {
    color: #fff !important;
    background-size: 100% 2px;
}

/* Tablet */
@media (max-width: 1024px) {
    .hero-home.wp-block-cover {
        height: 60vh !important;
        height: 60dvh !important;
    }

    .hero-home.wp-block-cover > .wp-block-cover__inner-container {
        padding: 0 32px 7% !important;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .hero-home.wp-block-cover {
        height: 50vh !important;
        height: 50dvh !important;
    }

    .hero-home.wp-block-cover > .wp-block-cover__inner-container {
        padding: 0 20px 6% !important;
    }

    .hero-home h1 {
        font-size: clamp(1.7rem, 5.1vw, 2.55rem) !important;
    }
}

/* Small mobile */
@media (max-width: 480px) {
    .hero-home.wp-block-cover > .wp-block-cover__inner-container {
        padding: 0 16px 6% !important;
    }

    .hero-home h1 {
        font-size: clamp(1.4875rem, 5.1vw, 1.9125rem) !important;
    }
}

/* --------------- END -- Homepage Hero --------------- */

/* --------------- START -- Homepage Hero Image Animation --------------- */

.hero-home.wp-block-cover > .wp-block-cover__image-background {
  animation: hero-image-reveal 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
  transform-origin: center center;
}

@keyframes hero-image-reveal {
  from { transform: scale(1.04); }
  to { transform: scale(1); }
}

@media (max-width: 768px), (prefers-reduced-motion: reduce) {
  .hero-home.wp-block-cover > .wp-block-cover__image-background {
    animation: none !important;
    transform: none !important;
  }
}

/* --------------- END -- Homepage Hero Image Animation --------------- */

/* ==========================================
   5. Components
========================================== */

/* --------------- START -- Paragraph Divider --------------- */

.wp-block-separator.paragraph-divider {
  width: 100% !important;
  max-width: 100% !important;

  height: 2px !important;
  margin: 3rem 0 !important;

  border: 0 !important;
  background: repeating-linear-gradient(
    to right,
    var(--divider-color) 0 2px,
    transparent 2px 10px
  ) !important;

  box-shadow: none !important;
}

/* --------------- END -- Paragraph Divider --------------- */

/* --------------- START -- Section Title Row --------------- */

.section-title-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 1.5rem;
}

.section-title-row .wp-block-columns,
.section-title-row .wp-block-column {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
}

.section-title-row .wp-block-heading {
  margin: 0 !important;
  white-space: nowrap;
}

.section-title-row > .wp-block-separator {
  flex: 1 1 auto;
  width: auto !important;
  max-width: none !important;
  min-width: 2rem;

  height: 2px !important;
  margin: 0 !important;

  border: 0 !important;
  background: repeating-linear-gradient(
    to right,
    var(--divider-color) 0 2px,
    transparent 2px 10px
  ) !important;

  box-shadow: none !important;
}

/* --------------- END -- Section Title Row --------------- */

/* --------------- START -- Stack Divider --------------- */

.stack-divider {
  --divider-gap: 2rem;

  display: flex;
  flex-direction: column;
  gap: var(--divider-gap);
}

.stack-divider > * {
  position: relative;
}

.stack-divider > *:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 2;

  left: 0;
  right: 0;
  bottom: calc(var(--divider-gap) / -2);

  height: 1px;
  background-color: var(--divider-color);

  pointer-events: none;
}

/* --------------- END -- Stack Divider --------------- */

/* --------------- START -- Column Dividers --------------- */

.column-dividers {
  --layout-gap: 0;
  --column-padding: 1rem;
}

.column-dividers > * {
  box-sizing: border-box;
  padding: 0 var(--column-padding) !important;
}

.column-dividers > *:not(:first-child) {
  border-left: 1px solid var(--divider-color);
}

/* Tablet: remove left border from 2nd column */
@media (min-width: 769px) and (max-width: 1024px) {
  .layout-40-30-30.column-dividers > :nth-child(2) {
    border-left: none !important;
  }
}

/* Mobile: remove left borders from 2nd and 3rd columns */
@media (max-width: 768px) {
  .layout-40-30-30.column-dividers > :nth-child(2),
  .layout-40-30-30.column-dividers > :nth-child(3) {
    border-left: none !important;
  }
}

/* --------------- END -- Column Dividers --------------- */

/* --------------- START -- Horizontal Rule --------------- */

hr {
  border: 0 !important;
  border-top: 1px solid var(--divider-color) !important;
  margin: 2rem 0 !important;
  box-shadow: none !important;
}

.elementor-divider {
  --divider-border-color: var(--divider-color) !important;
}

.elementor-divider-separator {
  border-color: var(--divider-color) !important;
}

/* --------------- END -- Horizontal Rule --------------- */

/* --------------- START -- Navigation Menu --------------- */

.nav-menu .elementor-widget-cmsmasters-nav-menu__item-link-top {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;

  color: var(--color-neutral-600) !important;

  text-decoration: none;
  transition: color 0.2s ease;
}

.nav-menu .elementor-widget-cmsmasters-nav-menu__item-link-top:hover,
.nav-menu .elementor-widget-cmsmasters-nav-menu__item-link-top:focus,
.nav-menu .elementor-widget-cmsmasters-nav-menu__item-active,
.nav-menu
  .current-menu-item
  > .elementor-widget-cmsmasters-nav-menu__item-link-top,
.nav-menu
  .current-menu-ancestor
  > .elementor-widget-cmsmasters-nav-menu__item-link-top {
  color: var(--color-brand-01-500) !important;
}

/* --------------- END -- Navigation Menu --------------- */

/* --------------- START -- Offcanvas Parent Menu Link --------------- */

.elementor-widget-cmsmasters-offcanvas
.menu-item-has-children > a {
  display: flex;
  align-items: center;
  width: 100%;
  cursor: pointer;
}

.elementor-widget-cmsmasters-offcanvas
.menu-item-has-children > a .elementor-widget-cmsmasters-offcanvas__item-text {
  flex: 1;
  cursor: pointer;
}

.elementor-widget-cmsmasters-offcanvas .sub-menu a.elementor-widget-cmsmasters-offcanvas__submenu-item,
.elementor-widget-cmsmasters-offcanvas .sub-menu .elementor-widget-cmsmasters-offcanvas__item-text {
  font-family: "Urbanist", sans-serif !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
}

/* Default chevron */
.elementor-widget-cmsmasters-offcanvas
.menu-item-has-children > a
.elementor-widget-cmsmasters-offcanvas__arrow svg {
  transition: transform 0.3s ease;
  transform: rotate(0deg);
}

/* Expanded submenu */
.elementor-widget-cmsmasters-offcanvas
.menu-item-has-children:has(> .sub-menu[style*="display: block"]) > a
.elementor-widget-cmsmasters-offcanvas__arrow svg {
  transform: rotate(180deg);
}

/* Hover */
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner li > a:hover,
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner li > a:hover .elementor-widget-cmsmasters-offcanvas__item-text {
  color: var(--color-brand-01-500) !important;
}

/* Active / Current page */
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner li.current-menu-item > a,
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner li.current-menu-item > a .elementor-widget-cmsmasters-offcanvas__item-text,
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner a.elementor-widget-cmsmasters-offcanvas__item-active {
  color: var(--color-brand-01-500) !important;
}

/* Keyboard focus */
.elementor-widget-cmsmasters-offcanvas
.elementor-widget-cmsmasters-offcanvas__menu-inner li > a:focus-visible {
  color: var(--color-brand-01-500) !important;
}

/* --------------- END -- Offcanvas Parent Menu Link --------------- */

/* --------------- START -- Button Primary --------------- */

a.button-primary,
button.button-primary,
.button-primary .cmsmasters-button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0.875rem 1.5rem !important;

  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;

  color: var(--color-neutral-900) !important;
  background: var(--color-neutral-0) !important;

  border: 2px solid var(--color-neutral-900) !important;
  border-radius: 999px;

  text-decoration: none !important;

  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease !important;
}

a.button-primary:hover,
a.button-primary:focus,
button.button-primary:hover,
button.button-primary:focus,
.button-primary .cmsmasters-button-link:hover,
.button-primary .cmsmasters-button-link:focus {
  color: var(--color-neutral-0) !important;
  background: var(--color-brand-01-500) !important;
  border-color: var(--color-brand-01-500) !important;

  transform: translateY(-1px) !important;
}

a.button-primary:active,
button.button-primary:active,
.button-primary .cmsmasters-button-link:active {
  transform: translateY(0) !important;
}

.button-primary .elementor-widget-cmsmasters-button__text {
  font: inherit;
  color: inherit;
  text-transform: inherit;
}

/* --------------- END -- Button Primary --------------- */

/* --------------- START -- Quote --------------- */

.quote {
  margin: 0 !important;
  padding: 1.5rem 2rem !important;

  background: var(--color-brand-03-100) !important;

  border: none !important;
  border-left: 2px solid var(--color-brand-02-500) !important;
}

.quote p {
  margin: 0 !important;

  font-size: 1.8rem !important;
  font-style: italic !important;
  line-height: 1.7 !important;

  color: var(--color-neutral-800) !important;
}

/* --------------- END -- Quote --------------- */

/* --------------- START -- Carousel Card --------------- */

.card-carousel__item {
  display: flex;
  flex-direction: column;
}

.card-carousel__link {
  display: flex;
  flex-direction: column;

  height: 100%;

  color: inherit;
  text-decoration: none;
}

.card-carousel__image {
  width: 100%;
  aspect-ratio: 4 / 3;

  overflow: hidden;
  border-radius: 0;
}

.card-carousel__image img {
  display: block;

  width: 100% !important;
  height: 100% !important;

  object-fit: cover;

  transition: transform 0.3s ease;
}

.card-carousel__content {
  display: block;
  padding-top: 1.5rem;
}

.card-carousel__title {
  display: inline;
  margin: 0;

  text-decoration: none;
  font-size: clamp(1.375rem, 1.75vw, 1.625rem) !important;
  line-height: 1.15;

  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;

  transition: background-size 0.3s ease-in-out;
}

.card-carousel__excerpt {
  margin-top: 0.75rem;
  line-height: 1.6;
}

.card-carousel__excerpt p {
  margin: 0;
}

/* Hover anywhere on the card */

.card-carousel__link:hover .card-carousel__image img {
  transform: scale(1.03);
}

.card-carousel__link:hover .card-carousel__title,
.card-carousel__link:focus-visible .card-carousel__title {
  background-size: 100% 2px;
}

/* Reduced motion */

@media (prefers-reduced-motion: reduce) {
  .card-carousel__image img,
  .card-carousel__title {
    transition: none;
  }

  .card-carousel__link:hover .card-carousel__image img {
    transform: none;
  }
}

/* --------------- END -- Carousel Card --------------- */

/* --------------- START -- Meeting CTA --------------- */

.meeting-cta {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 32rem;
  padding: 5rem 2rem;

  background-image: none;
  background-color: #121212;

  overflow: hidden;
  isolation: isolate;
}

.meeting-cta::before {
  content: "";

  position: absolute;
  inset: 0;

  background-image: url("/wp-content/uploads/2026/10/bg-banner-cta-01-scaled.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: auto 100%;

  transform: scale(1);
  transition: transform 0.8s ease;

  z-index: -2;
  pointer-events: none;
}

.meeting-cta:hover::before {
  transform: scale(1.04);
}

.meeting-cta__overlay {
  position: absolute;
  inset: 0;

  z-index: -1;
  pointer-events: none;

  background: linear-gradient(
    180deg,
    rgba(18, 18, 18, 0.72) 0%,
    rgba(18, 18, 18, 0.88) 100%
  );
}

.meeting-cta__content {
  width: min(100%, 70rem);
  margin-inline: auto;

  text-align: center;
}

.meeting-cta__title {
  max-width: 58rem;
  margin: 0 auto 2rem;

  font-family: var(--font-heading) !important;
  font-size: clamp(3rem, 4vw, 4.5rem);
  font-weight: 400 !important;
  line-height: 1.1;

  color: var(--color-neutral-0) !important;
}

.meeting-cta__subtitle {
  max-width: 58rem;
  margin: 0 auto 2rem;

  font-family: var(--font-heading) !important;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400 !important;
  line-height: 1.1;

  color: var(--color-neutral-20) !important;
}

.meeting-cta__button {
  display: inline-flex;
}

.meeting-cta__button:active {
  transform: translateY(0);
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 768px) {
  .meeting-cta {
    min-height: 26rem;
    padding: 4rem 1.5rem;
  }

  .meeting-cta__overlay {
    background: linear-gradient(
      180deg,
      rgba(18, 18, 18, 0.78) 0%,
      rgba(18, 18, 18, 0.92) 100%
    );
  }

  .meeting-cta__title {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .meeting-cta__subtitle {
    font-size: clamp(1rem, 4vw, 1.5rem);
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Meeting CTA --------------- */

/* --------------- START -- Client Logos --------------- */

.client-logos-wrapper {
  position: relative;
  width: 100%;

  padding: 3rem 1rem;
  background: var(--color-brand-03-100);
  border-left: 2px solid var(--color-brand-02-500) !important;

  box-sizing: border-box;
}

.client-logos {
  --visible-cards: 5;
  --logo-padding: 2rem;
  --logo-gap: 1rem;

  width: 100%;
}

/* Static Layout */

.client-logos:not(.inline-carousel) {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--logo-gap);
}

/* Logo Item */

.client-logos__item {
  display: flex;
  align-items: center;
  justify-content: center;

  min-width: 0;
  min-height: 8rem;
  padding: var(--logo-padding) !important;

  background: transparent;
}

/* Logo Image */

.client-logos__image {
  display: block;

  width: auto;
  max-width: 100%;
  height: 7rem;

  object-fit: contain;
}

/* Carousel Layout */

.client-logos.inline-carousel {
  gap: var(--logo-gap) !important;
}

.client-logos.inline-carousel > .client-logos__item {
  flex: 0 0 calc(
    (100% - ((var(--visible-cards) - 1) * var(--logo-gap))) /
    var(--visible-cards)
  ) !important;

  width: auto !important;
  box-sizing: border-box !important;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 1024px) {
  .client-logos {
    --visible-cards: 3;
  }

  .client-logos:not(.inline-carousel) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .client-logos {
    --visible-cards: 2;
    --logo-padding: 1.5rem;
  }

  .client-logos:not(.inline-carousel) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-logos__item {
    min-height: 6rem;
  }

  .client-logos__image {
    height: 6rem;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Client Logos --------------- */

/* --------------- START -- Bent Corner --------------- */

.bent-corner {
  --corner-size: 2rem;
  --corner-background: var(--color-neutral-0);
  --corner-fold: rgba(0, 0, 0, 0.9);

  position: relative !important;
}

/* Top half – website background */
.bent-corner::before {
  content: "";

  position: absolute;
  top: 0;
  right: 0;

  width: var(--corner-size);
  height: var(--corner-size);

  background: var(--corner-background);

  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%
  );

  pointer-events: none;
}

/* Bottom half – folded corner */
.bent-corner::after {
  content: "";

  position: absolute;
  top: 0;
  right: 0;

  width: var(--corner-size);
  height: var(--corner-size);

  background: var(--corner-fold);

  clip-path: polygon(
    0 0,
    100% 100%,
    0 100%
  );

  pointer-events: none;
}

/* --------------- END -- Bent Corner --------------- */

/* --------------- START -- Bent Corner Blockquote --------------- */

blockquote.quote.bent-corner {
  --corner-size: 2rem;
  --corner-fold: rgba(0, 0, 0, 0.9);
  --corner-background: var(--color-neutral-0);

  position: relative !important;
  overflow: hidden;
}

blockquote.quote.bent-corner::after {
  content: "" !important;

  position: absolute !important;
  top: 0 !important;
  right: 0 !important;

  width: var(--corner-size);
  height: var(--corner-size);

  background: linear-gradient(
    45deg,
    var(--corner-fold) 0%,
    var(--corner-fold) 50%,
    var(--corner-background) 50%,
    var(--corner-background) 100%
  ) !important;

  z-index: 10;
  pointer-events: none;
}

/* --------------- END -- Bent Corner Blockquote --------------- */

/* --------------- START -- Narrow Content --------------- */

.narrow-content {
  width: 70%;
  margin-left: auto;
  margin-right: auto;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 1024px) {
  .narrow-content {
    width: 80%;
  }
}

@media (max-width: 768px) {
  .narrow-content {
    width: 100%;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Narrow Content --------------- */

/* --------------- START -- Text Sign --------------- */

.text-sign {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

.text-sign::after {
  content: "";
  position: absolute;
  background-image: var(--text-sign-image, none);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  pointer-events: none;
}

/* Lines and dots */

.text-sign--underline::after,
.text-sign--line-green::after,
.text-sign--line-black::after,
.text-sign--line-shake-green::after,
.text-sign--line-shake-black::after,
.text-sign--dots-green::after,
.text-sign--dots-black::after {
  left: -0.1em;
  bottom: -0.25em;
  width: 2em;
  height: 0.45em;
  background-size: 140% auto;
}

/* Oval around the highlighted text */

.text-sign--oval::after,
.text-sign--circle-green::after,
.text-sign--circle-black::after {
  left: 50%;
  top: 50%;
  width: calc(100% + 0.6em);
  height: 1.25em;
  transform: translate(-50%, -50%) rotate(-4deg);
  background-size: 140% 280%;
}

/* Decorative signs */

.text-sign--star-green::after,
.text-sign--star-black::after,
.text-sign--big-star-green::after,
.text-sign--big-star-black::after,
.text-sign--arrow-green::after,
.text-sign--arrow-black::after,
.text-sign--circles-green::after,
.text-sign--circles-black::after,
.text-sign--glasses-green::after,
.text-sign--glasses-black::after {
  left: calc(0% + 0.15em);
  top: 100%;
  right: auto;
  bottom: auto;

  width: 1.1em;
  height: 1.1em;

  transform: translateY(-50%);
  background-size: contain;
}

/* Arrows: height follows width using the square SVG canvas */

.text-sign--arrow-green::after,
.text-sign--arrow-black::after {
  width: 2.6em;
  height: auto;
  aspect-ratio: 1;
  background-size: 100% auto;
}

/* Green assets */

.text-sign--underline,
.text-sign--line-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/line-green.svg");
}

.text-sign--line-shake-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/line-shake-green.svg");
}

.text-sign--dots-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/dots-green.svg");
}

.text-sign--oval,
.text-sign--circle-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/circle-green.svg");
}

.text-sign--circles-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/circles-green.svg");
}

.text-sign--star-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/star-green.svg");
}

.text-sign--big-star-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/big-star-green.svg");
}

.text-sign--arrow-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/arrow-green.svg");
}

.text-sign--glasses-green {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/glasses-green.svg");
}

/* Black assets */

.text-sign--line-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/line-black.svg");
}

.text-sign--line-shake-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/line-shake-black.svg");
}

.text-sign--dots-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/dots-black.svg");
}

.text-sign--circle-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/circle-black.svg");
}

.text-sign--circles-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/circles-black.svg");
}

.text-sign--star-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/star-black.svg");
}

.text-sign--big-star-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/big-star-black.svg");
}

.text-sign--arrow-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/arrow-black.svg");
}

.text-sign--glasses-black {
  --text-sign-image: url("/wp-content/themes/svenn-child/assets/images/signs/glasses-black.svg");
}

/* --------------- END -- Text Sign --------------- */

/* --------------- START -- Author Box --------------- */

/* Hide Website */
.elementor-widget-cmsmasters-author-box__icon-item#elementor-widget-cmsmasters-author-box__icon-item-website {
  display: none !important;
}

/* Avatar */
.elementor-widget-cmsmasters-author-box__avatar {
  width: 11.25rem !important;
  height: 11.25rem !important;
  flex: 0 0 11.25rem !important;
}

.elementor-widget-cmsmasters-author-box__avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Content layout */
.elementor-widget-cmsmasters-author-box .cmsmasters-title-inline-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100%;
}

/* Author name */
.elementor-widget-cmsmasters-author-box__name {
  width: 100%;
  margin: 0 0 1rem !important;
}

/* Author description */
.elementor-widget-cmsmasters-author-box__bio {
  width: 100% !important;
  margin: 0 0 1.5rem !important;
  font-family: var(--font-body) !important;
}

/* Social icons */
.elementor-widget-cmsmasters-author-box__social-list {
  width: 100%;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
}

/* All Posts */
.elementor-widget-cmsmasters-author-box__button-wrap {
  width: 100%;
}

/* --------------- END -- Author Box --------------- */

/* --------------- START -- Inline Author --------------- */

.author-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.author-inline__avatar {
  display: block;
  flex: 0 0 auto;

  width: 2.75rem;
  height: 2.75rem;

  border-radius: 50%;
  overflow: hidden;
}

.author-inline__avatar img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.author-inline__name {
  font-family: var(--font-body) !important;
  font-size: 0.875rem;
  font-weight: 600;

  color: var(--color-neutral-0) !important;
  text-decoration: none !important;
}

.author-inline__name:hover {
  color: var(--color-brand-01-500) !important;
}

/* --------------- END -- Inline Author --------------- */

/* --------------- START -- Article Table of Contents --------------- */

.takeaways--toc {
  width: 100%;
  padding: 2rem;
  margin-bottom: 60px;

  background: var(--color-neutral-0);
  border: 1px solid var(--color-brand-03-500);
  box-sizing: border-box;
}

/* Label */

.takeaways__eyebrow {
  margin: 0 0 2rem;

  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;

  color: var(--color-neutral-600);
}

/* List */

.takeaways__list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Item */

.takeaways__item {
  display: grid;
  grid-template-columns: 3rem 1fr;
  align-items: center;
  gap: .5rem;

  margin: 0 !important;
  padding: .5rem 0;

  border-bottom: 1px solid var(--color-brand-03-500);
}

.takeaways__item:first-child {
  padding-top: 0;
}

.takeaways__item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

/* Number */

.takeaways__num {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;

  color: #10c4bd;
}

/* Text */

.takeaways__text {
  margin: 0 !important;
}

/* Link */

.takeaways__link {
  display: inline-block;

  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;

  color: var(--color-neutral-800) !important;
  text-decoration: none !important;

  transition: color 0.2s ease;
}

.takeaways__link:hover {
  color: #10c4bd !important;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 768px) {

  .takeaways--toc {
    padding: 2rem 1.5rem;
  }

  .takeaways__eyebrow {
    margin-bottom: 1.5rem;
  }

  .takeaways__item {
    grid-template-columns: 2.25rem 1fr;
    gap: 1rem;
    padding: 1.25rem 0;
  }

  .takeaways__link {
    font-size: 1.25rem;
  }

}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Article Table of Contents --------------- */

/* --------------- START -- Header --------------- */

.header-menu-gap {
  margin-left: 1rem !important;
}

.header-logo {
  width: 100%;
  max-width: 220px;
}

.header-logo .elementor-widget-cmsmasters-site-logo__img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 1024px) {
  .header-logo {
    max-width: 180px;
  }
}

@media (max-width: 767px) {
  .header-logo {
    max-width: 140px;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Header --------------- */

/* --------------- START -- Footer Titles --------------- */

.footer-title .elementor-heading-title {
  color: var(--color-neutral-0) !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: clamp(16px, 1.5vw, 20px) !important;
  line-height: 1.3;
}

/* --------------- END -- Footer Titles --------------- */

/* --------------- START -- News CTA --------------- */

.news-cta {
  position: relative;

  display: flex;
  align-items: center;

  padding: 3rem;
  margin-bottom: 60px;

  background-color: #252525;
  background-image: url("/wp-content/uploads/2026/09/svenn-bg-cta-banner.png");
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: auto 100%;

  overflow: hidden;
}

/* Content */

.news-cta__content {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  width: 50%;
  max-width: 38rem;
}

/* Title */

.news-cta__title {
  margin: 0 0 1.5rem;

  color: var(--color-neutral-0) !important;
}

/* Text */

.news-cta__text {
  max-width: 32rem;
  margin: 0 0 2rem;

  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.6;

  color: var(--color-neutral-0);
}

/* Button */

.news-cta__button {
  display: inline-flex;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 1024px) {

  .news-cta {
    min-height: 25rem;
    padding: 3rem;

    background-size: auto 75%;
  }

  .news-cta__content {
    width: 55%;
  }

}

@media (max-width: 768px) {

  .news-cta {
    align-items: flex-start;

    min-height: 38rem;
    padding: 2.5rem 1.5rem;

    background-size: auto 45%;
    background-position: center bottom;
  }

  .news-cta__content {
    width: 100%;
    max-width: none;
  }

  .news-cta__text {
    font-size: 1rem;
  }

}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- News CTA --------------- */

/* --------------- START -- Comparison Infographic --------------- */

.comparison-infographic {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 60px;

  width: 100%;
}

/* Row */

.comparison-infographic__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0;
}

/* Boxes */

.comparison-infographic__item {
  position: relative;

  display: flex;
  align-items: center;

  min-height: 6rem;
  padding: 1rem;

  background: transparent;

  border: 1px solid var(--color-neutral-800);
}

/* Slightly irregular / editorial feel */

.comparison-infographic__item::before {
  content: "";

  position: absolute;
  inset: 0.35rem -0.35rem -0.35rem 0.35rem;

  border: 1px solid var(--color-brand-01-500);

  pointer-events: none;
  z-index: -1;
}

/* From */

.comparison-infographic__item--from {
  justify-content: flex-start;
}

/* To */

.comparison-infographic__item--to {
  justify-content: flex-end;
  text-align: right;
}

/* Text */

.comparison-infographic__label {
  font-family: var(--font-heading);
  font-size: clamp(1.125rem, 1.5vw, 1.375rem) !important;
  font-weight: 400;
  line-height: 1.2;

  color: var(--color-neutral-800);
}

/* Connector */

.comparison-infographic__connector {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 0.5rem;
}

/* Hand-drawn line */

.comparison-infographic__line {
  position: relative;

  width: 2.5rem;
  height: 0.4rem;
}

.comparison-infographic__line::before {
  content: "";

  position: absolute;
  left: 0;
  right: 0;
  top: 50%;

  height: 2px;

  background: repeating-linear-gradient(
    to right,
    var(--color-brand-01-500) 0 5px,
    transparent 5px 9px
  );

  transform: translateY(-50%) rotate(-1deg);
}

/* Arrow */

.comparison-infographic__arrow {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 3rem;
  height: 3rem;

  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;

  color: var(--color-brand-01-500);
}

/* Hand-drawn oval around arrow */

.comparison-infographic__arrow::before {
  content: "";

  position: absolute;
  inset: 0;

  border: 2px solid var(--color-brand-01-500);
  border-radius: 48% 52% 46% 54% / 52% 44% 56% 48%;

  transform: rotate(-5deg);

  pointer-events: none;
}

/* Slight second stroke */

.comparison-infographic__arrow::after {
  content: "";

  position: absolute;
  inset: 0.15rem -0.1rem -0.1rem 0.1rem;

  border: 1px solid var(--color-brand-01-500);
  border-radius: 53% 47% 51% 49% / 46% 54% 48% 52%;

  opacity: 0.5;

  transform: rotate(4deg);

  pointer-events: none;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 768px) {

  .comparison-infographic__row {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .comparison-infographic__item--from,
  .comparison-infographic__item--to {
    justify-content: center;
    text-align: center;
  }

  .comparison-infographic__connector {
    flex-direction: column;
  }

  .comparison-infographic__line {
    width: 0.4rem;
    height: 1.5rem;
  }

  .comparison-infographic__line::before {
    left: 50%;
    right: auto;
    top: 0;

    width: 2px;
    height: 100%;

    background: repeating-linear-gradient(
      to bottom,
      var(--color-brand-01-500) 0 5px,
      transparent 5px 9px
    );

    transform: translateX(-50%) rotate(-1deg);
  }

  .comparison-infographic__arrow {
    transform: rotate(90deg);
  }

}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Comparison Infographic --------------- */

/* --------------- START -- Breadcrumbs --------------- */

.cmsmasters-breadcrumbs-type-yoast .cmsmasters-widget-breadcrumbs__content,
.cmsmasters-breadcrumbs-type-yoast .cmsmasters-widget-breadcrumbs__content a {
  font-family: "Urbanist", sans-serif !important;
}

.cmsmasters-breadcrumbs-type-yoast .cmsmasters-widget-breadcrumbs__content > span {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  margin-left: 0;
  gap: .5rem;
}

.cmsmasters-breadcrumbs-type-yoast .cmsmasters-widget-breadcrumbs__content > span > span {
  display: inline-flex !important;
  align-items: center;
}

.cmsmasters-breadcrumbs-type-yoast .cmsmasters-widget-breadcrumbs__content a {
  display: inline-flex !important;
}

/* --------------- END -- Breadcrumbs --------------- */

/* --------------- START -- CTA Call Banner --------------- */

.cta-call-banner {
    position: relative;

    display: flex;
    align-items: flex-end;

    width: 100%;
    min-height: 500px;
    padding: 2rem;

    background-color: #f6f6f6;
    background-image: url("/wp-content/uploads/2026/09/svenn-bg-cta-banner-2.png");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 85% auto;

    overflow: hidden;
}

.cta-call-banner__content {
    position: relative;
    z-index: 2;

    width: 100%;
    padding: 0;
}

.cta-call-banner__title {
    margin: 0 0 2rem;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 767px) {

    .cta-call-banner {
        min-height: 540px;
        padding: 1rem;

        background-size: 100% auto;
    }

    .cta-call-banner__content {
        padding: 1.5rem;
    }

}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- CTA Call Banner --------------- */

/* --------------- START -- Single Service Page --------------- */

/* General spacing */
body.single-service .cmsmasters-main__outer {
  padding-top: 2rem !important;
  margin-top: 0 !important;
}

body.single-service .cmsmasters-single-post-title,
body.single-service .cmsmasters-single-post-media,
body.single-service .cmsmasters-single-nav,
body.single-service .cmsmasters-single-slider {
  margin-top: 0 !important;
}

/* Page title */
body.single-service .cmsmasters-single-post-title {
  padding-bottom: 0.5rem !important;
  border-bottom: none !important;
}

body.single-service .cmsmasters-single-post-title__tag {
  font-family: var(--font-heading) !important;
  font-size: clamp(2.5rem, 3.5vw, 3.25rem) !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  color: var(--color-neutral-800) !important;
  margin: 0 !important;
}

/* Hide post date */
body.single-service .cmsmasters-single-post-meta_second {
  display: none !important;
}

/* Featured image */
body.single-service .cmsmasters-single-post-media {
  --corner-size: 2rem;
  --corner-fold: var(--color-neutral-800);
  --corner-background: #ffffff;

  width: 100%;
  max-width: 1280px;
  margin: 0 auto 3rem !important;
  padding: 0 !important;
}

body.single-service .cmsmasters-single-post-media__inner,
body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap,
body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap a {
  display: block;
  width: 100%;
}

/* Bent corner effect */
body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap {
  position: relative;
  margin: 0;
  box-sizing: border-box;

  clip-path: polygon(
    0 0,
    calc(100% - var(--corner-size)) 0,
    100% var(--corner-size),
    100% 100%,
    0 100%
  );
}

body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: var(--corner-size);
  height: var(--corner-size);
  background: var(--corner-fold);
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  pointer-events: none;
}

/* Disable featured image link */
body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap a {
  pointer-events: none !important;
  cursor: default !important;
}

/* Featured image dimensions */
body.single-service .cmsmasters-single-post-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 1;
  object-fit: cover;
}

/* Previous / Next navigation */
body.single-service .cmsmasters-single-nav {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* Related services slider */
body.single-service .cmsmasters-single-slider {
  padding-top: 2rem !important;
  margin-bottom: var(--svenn-page-end-gap) !important;
}

/* Gap between slider cards */
body.single-service .cmsmasters-single-slider .cmsmasters-swiper__wrapper {
  gap: 0;
}

body.single-service .cmsmasters-single-slider .swiper-slide {
  box-sizing: border-box;
  padding-right: 1.5rem;
}

/* Slider card images */
body.single-service .cmsmasters-single-slider .cmsmasters-image-wrap img {
  display: block;
  width: 100%;
  height: auto;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 1024px) {
  body.single-service .cmsmasters-single-post-media {
    margin-bottom: 2rem !important;
  }
}

@media (max-width: 767px) {
  body.single-service .cmsmasters-main__outer {
    padding-top: 1rem !important;
  }

  body.single-service .cmsmasters-single-post-media {
    margin-bottom: 2rem !important;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Single Service Page --------------- */

/* --------------- START -- Featured Images Inset Border --------------- */

.image-feature.bent-corner,
body.single-service .cmsmasters-single-post-media .cmsmasters-image-wrap {
  --image-border-width: 2px;

  border: none !important;
  box-shadow: none !important;

  outline: var(--image-border-width) solid var(--color-neutral-800);
  outline-offset: calc(-1 * var(--image-border-width));
}

/* --------------- END -- Featured Images Inset Border --------------- */

/* --------------- START -- Page Featured Image --------------- */

.svenn-page-featured-image {
  width: 100%;
  max-width: 896px;
  margin: 3rem auto 5rem;
  box-sizing: border-box;
}

.svenn-page-featured-image .image-feature.bent-corner {
  width: 100%;
  margin: 0;
}

.svenn-page-featured-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* --------------- END -- Page Featured Image --------------- */

/* --------------- START -- Feature Image --------------- */

.image-feature.bent-corner {
  --corner-size: 2rem;
  --corner-fold: var(--color-neutral-800);
  --corner-background: #ffffff;

  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  clip-path: polygon(
    0 0,
    calc(100% - var(--corner-size)) 0,
    100% var(--corner-size),
    100% 100%,
    0 100%
  );
}

.image-feature.bent-corner img {
  display: block;
  width: 100%;
  height: auto;
}

/* Bent corner */
.image-feature.bent-corner::after {
  content: "" !important;
  position: absolute !important;
  top: -1px !important;
  right: -1px !important;
  width: var(--corner-size);
  height: var(--corner-size);
  background: linear-gradient(
    45deg,
    var(--corner-fold) 0%,
    var(--corner-fold) 50%,
    var(--corner-background) 50%,
    var(--corner-background) 100%
  ) !important;
  z-index: 10;
  pointer-events: none;
}

/* --------------- END -- Feature Image --------------- */

/* --------------- START -- Text Caption Spacing --------------- */

h6.wp-block-heading.text-caption {
  margin-top: 0.1rem !important;
  padding-top: 0 !important;
}

/* --------------- END -- Text Caption Spacing --------------- */

/* --------------- START -- Responsive Media Spacing --------------- */

@media (min-width: 768px) and (max-width: 1024px) {
  .cmsmasters-single-post-media__inner {
    margin-bottom: 60px !important;
  }
}

@media (max-width: 767px) {
  .cmsmasters-single-post-media__inner {
    margin-bottom: 40px !important;
  }
}

/* --------------- END -- Responsive Media Spacing --------------- */

/* --------------- START -- Mobile Footer Columns --------------- */

@media (max-width: 767px) {
  .elementor-element-21a38d8e > .elementor-container >
  :is(
    .elementor-element-10dfd861,
    .elementor-element-69ecabc8,
    .elementor-element-69651b6d
  ) {
    width: 100% !important;
    max-width: 100%;
    flex: 0 0 100%;
  }

  /* Order: Sitemap, Servizi, Autori */
  .elementor-element-21a38d8e .elementor-element-10dfd861 {
    order: 8;
  }

  .elementor-element-21a38d8e .elementor-element-69ecabc8 {
    order: 9;
  }

  .elementor-element-21a38d8e .elementor-element-69651b6d {
    order: 10;
  }

  .elementor-element-21a38d8e > .elementor-container >
  :is(
    .elementor-element-10dfd861,
    .elementor-element-69ecabc8,
    .elementor-element-69651b6d
  ) > .elementor-widget-wrap {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }

  .elementor-element-21a38d8e
  .cmsmasters-widget-icon-list-item-text a {
    display: inline-block;
    font-size: 16px !important;
    line-height: 1.5;
    padding-top: 4px;
    padding-bottom: 4px;
  }
}

/* --------------- END -- Mobile Footer Columns --------------- */

/* --------------- START -- Footer Contact Address --------------- */

footer .contact-address {
  color: #FFFFFF !important;
  text-align: left !important;
  margin-bottom: 2rem !important;
}

footer .contact-address p,
footer .contact-address a {
  color: #FFFFFF !important;
  text-align: left !important;
}

footer .contact-address-location {
  margin-bottom: 1rem !important;
}

footer .contact-address-links {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

footer .contact-address-links a {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 0.5rem;
  color: #FFFFFF !important;
  width: fit-content;
}

footer .contact-address-vat {
  margin: 0 !important;
}

/* --------------- END -- Footer Contact Address --------------- */

/* --------------- START -- Contact Details --------------- */

.svenn-contact-details {
  width: 100%;
  text-align: center !important;
  color: var(--color-neutral-800) !important;
}

.svenn-contact-details-location {
  margin-bottom: 0 !important;
}

.svenn-contact-details-links {
  display: flex;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 1.5rem;
  width: 100%;
}

.svenn-contact-details-links a,
.svenn-contact-details-links a:visited {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-neutral-800) !important;
  text-decoration: none !important;
}

.svenn-contact-details-links a:hover,
.svenn-contact-details-links a:focus-visible {
  color: var(--color-brand-01-500) !important;
}

.svenn-contact-details-links i {
  color: var(--color-brand-01-500) !important;
}

/* --------------- END -- Contact Details --------------- */

/* --------------- START -- Footer Copyright --------------- */

.footer-copyright {
  --copyright-font-size: 11px;
  --copyright-line-height: 1.6;

  text-align: left !important;
}

/* Typography */
.footer-copyright .cmsmasters-widget-title__heading,
.footer-copyright .elementor-heading-title,
.footer-copyright .e-paragraph-base,
.footer-copyright a {
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: var(--copyright-font-size) !important;
  font-weight: 500 !important;
  line-height: var(--copyright-line-height) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
}

/* Remove default spacing */
.footer-copyright .elementor-heading-title,
.footer-copyright .e-paragraph-base {
  margin: 0 !important;
  padding: 0 !important;
}

/* Links */
.footer-copyright a,
.footer-copyright a:visited {
  color: var(--color-neutral-0) !important;
  transition: opacity 0.3s ease;
}

.footer-copyright a:hover,
.footer-copyright a:focus-visible {
  color: var(--color-brand-01-500) !important;
  opacity: 0.7;
}

/* --------------- END -- Footer Copyright --------------- */

/* --------------- START -- Service Flow Arrow --------------- */

.service-flow-arrow img {
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .service-flow-arrow img {
    transform: rotate(90deg);
    transform-origin: center;
    width: 100px;
  }
}

/* --------------- END -- Service Flow Arrow --------------- */

/* --------------- START -- Service Slider Arrows --------------- */

body.single-service .service-slider-controls {
  position: static;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}

/* --------------- END -- Service Slider Arrows --------------- */

/* --------------- START -- Dark Mode --------------- */

html.cmsmasters-mode-switcher-active {
  --svenn-dark-heading: #f6f6f6;
  --svenn-dark-text: #d3d6d4;
  --svenn-dark-surface: #191A1E;
  --svenn-dark-border: #454a50;
  --svenn-dark-accent: #5fd7d3;
}

/* General typography */

html.cmsmasters-mode-switcher-active body,
html.cmsmasters-mode-switcher-active .text-body,
html.cmsmasters-mode-switcher-active .text-caption,
html.cmsmasters-mode-switcher-active .wp-block-paragraph,
html.cmsmasters-mode-switcher-active .wp-block-list {
  color: var(--svenn-dark-text) !important;
}

html.cmsmasters-mode-switcher-active :is(h1, h2, h3, h4, h5, h6),
html.cmsmasters-mode-switcher-active .text-heading,
html.cmsmasters-mode-switcher-active body.single-service
  .cmsmasters-single-post-title__tag {
  color: var(--svenn-dark-heading) !important;
}

/* Gutenberg blocks with pale backgrounds */

html.cmsmasters-mode-switcher-active
  .wp-block-group.has-background:is(
    [style*="background-color:#edf2ee"],
    [style*="background-color: #edf2ee"],
    [style*="background-color:#ffffff"],
    [style*="background-color: #ffffff"]
  ) {
  background-color: var(--svenn-dark-surface) !important;
}

/* Editorial quotations */

html.cmsmasters-mode-switcher-active .quote {
  background-color: var(--svenn-dark-surface) !important;
  border-color: var(--svenn-dark-border) !important;
  --corner-background: var(--svenn-dark-surface);
}

html.cmsmasters-mode-switcher-active .quote p {
  color: var(--svenn-dark-heading) !important;
}

/* Green numbers and labels */

html.cmsmasters-mode-switcher-active
  .wp-block-paragraph:is(
    [style*="color:#007b77"],
    [style*="color: #007b77"],
    [style*="color:#00bbb4"],
    [style*="color: #00bbb4"]
  ) {
  color: var(--svenn-dark-accent) !important;
}

/* Header and offcanvas navigation */

html.cmsmasters-mode-switcher-active
  .nav-menu .elementor-widget-cmsmasters-nav-menu__item-link-top,
html.cmsmasters-mode-switcher-active
  .elementor-widget-cmsmasters-offcanvas__main-item {
  color: var(--svenn-dark-heading) !important;
}

html.cmsmasters-mode-switcher-active
  .nav-menu .elementor-widget-cmsmasters-nav-menu__item-link-top:hover,
html.cmsmasters-mode-switcher-active
  .elementor-widget-cmsmasters-offcanvas__main-item:hover {
  color: var(--svenn-dark-accent) !important;
}

/* Homepage and Servizi slider cards */

html.cmsmasters-mode-switcher-active .card-carousel__title,
html.cmsmasters-mode-switcher-active .card-carousel__title a,
html.cmsmasters-mode-switcher-active .cmsmasters-single-slider__item-title,
html.cmsmasters-mode-switcher-active .cmsmasters-single-slider__item-title a {
  color: var(--svenn-dark-heading) !important;
}

html.cmsmasters-mode-switcher-active .card-carousel__excerpt {
  color: var(--svenn-dark-text) !important;
}

/* Slider arrow buttons */

html.cmsmasters-mode-switcher-active .carousel-arrow,
html.cmsmasters-mode-switcher-active .carousel-arrow::before {
  background: var(--svenn-dark-surface) !important;
  color: var(--svenn-dark-heading) !important;
  border-color: var(--svenn-dark-border) !important;
}

html.cmsmasters-mode-switcher-active .carousel-arrow:hover,
html.cmsmasters-mode-switcher-active .carousel-arrow:focus-visible {
  background: var(--svenn-dark-accent) !important;
  color: #191a1e !important;
  border-color: var(--svenn-dark-accent) !important;
}

html.cmsmasters-mode-switcher-active .carousel-arrow:hover i,
html.cmsmasters-mode-switcher-active .carousel-arrow:focus-visible i {
  color: #191a1e !important;
}

/* CTA banner */

html.cmsmasters-mode-switcher-active .meeting-cta__title {
  color: #ffffff !important;
}

html.cmsmasters-mode-switcher-active .meeting-cta__subtitle {
  color: #eeeeee !important;
}

/* Black SVG signs become white */

html.cmsmasters-mode-switcher-active
  .text-sign[class*="-black"]::after {
  filter: invert(1);
}

/* --------------- END -- Dark Mode --------------- */

/* --------------- START -- Svenn Google Map --------------- */

.svenn-google-map {
  width: 100%;
  height: clamp(320px, 45vw, 550px);
}

/* Map / Satellite buttons */
.svenn-google-map .gm-style-mtc button {
  background: #FEFDFB !important;
  color: #1D1D1B !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
}

/* All Google Maps control buttons */
.svenn-google-map .gm-control-active,
.svenn-google-map .gm-fullscreen-control,
.svenn-google-map .gm-svpc,
.svenn-google-map .gm-bundled-control button {
  background-color: #FEFDFB !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Remove rounded corners from control containers */
.svenn-google-map .gm-style-mtc,
.svenn-google-map .gm-style-mtc > div,
.svenn-google-map .gm-bundled-control > div {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Hover */
.svenn-google-map .gm-style-mtc button:hover,
.svenn-google-map .gm-control-active:hover {
  background-color: #ECE8DD !important;
}

.svenn-google-map button::before,
.svenn-google-map button::after {
  content: none !important;
  display: none !important;
}

/* --------------- END -- Svenn Google Map --------------- */


/* --------------- START -- Form Column Layout --------------- */

/* Main Gutenberg form wrapper */
.svenn-form {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Gutenberg containers */
.svenn-form > .wp-block-group__inner-container,
.svenn-form .wp-block-group.is-layout-flex,
.svenn-form .wp-block-columns {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.svenn-form .wp-block-group.is-layout-flex,
.svenn-form .wp-block-columns {
  flex: 1 1 100%;
}

/* Gutenberg form column */
.svenn-form .wp-block-column.form-column {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin-left: 0 !important;
}

/* Contact page: 75% desktop, centered */
.svenn-form .form-column .wpcf7 {
  width: 75% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Tablet and mobile */
@media (max-width: 1024px) {
  .svenn-form .form-column .wpcf7 {
    width: 100% !important;
  }
}

/* --------------- END -- Form Column Layout --------------- */


/* --------------- START -- Svenn Contact Forms --------------- */

/*
 * Supports:
 * 1. Gutenberg forms inside .svenn-form
 * 2. CF7 forms containing .svenn-form-fields
 * 3. Modal forms inside .svenn-modal
 */

/* Form container */
.svenn-form .wpcf7,
.wpcf7:has(.svenn-form-fields) {
  max-width: 100%;
  font-family: var(--font-body, "Urbanist", sans-serif);
}

/* Reset form margins */
.svenn-form .wpcf7 form,
.wpcf7 form:has(.svenn-form-fields) {
  margin: 0 !important;
}

/* Inner application form wrapper */
.wpcf7 .svenn-form-fields {
  display: flow-root;
  width: 100%;
  max-width: 100%;
}

/* Compact paragraph spacing */
.svenn-form .wpcf7 form p,
.wpcf7 .svenn-form-fields > p {
  margin: 0 0 12px !important;
  padding: 0 !important;
}

/* Last paragraph */
.svenn-form .wpcf7 form p:last-child,
.wpcf7 .svenn-form-fields > p:last-child {
  margin-bottom: 0 !important;
}

/* Labels */
.svenn-form .wpcf7 label,
.wpcf7 .svenn-form-fields label {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
}

/* Input wrappers */
.svenn-form .wpcf7-form-control-wrap,
.wpcf7 .svenn-form-fields .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  margin: 6px 0 0 !important;
  padding: 0 !important;
}

/* Inputs, selects and textareas */
.svenn-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.svenn-form .wpcf7 select,
.svenn-form .wpcf7 textarea,
.wpcf7 .svenn-form-fields input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.wpcf7 .svenn-form-fields select,
.wpcf7 .svenn-form-fields textarea {
  box-sizing: border-box;
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  background: var(--color-neutral-0, #FFFFFF) !important;
  border: 1px solid #D6D6D2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  transition: border-color .2s ease, background-color .2s ease;
}

/* Placeholder */
.svenn-form .wpcf7 input::placeholder,
.svenn-form .wpcf7 textarea::placeholder,
.wpcf7 .svenn-form-fields input::placeholder,
.wpcf7 .svenn-form-fields textarea::placeholder {
  color: #858580 !important;
  opacity: 1;
}

/* Hover */
.svenn-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
.svenn-form .wpcf7 select:hover,
.svenn-form .wpcf7 textarea:hover,
.wpcf7 .svenn-form-fields input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
.wpcf7 .svenn-form-fields select:hover,
.wpcf7 .svenn-form-fields textarea:hover {
  border-color: var(--color-neutral-800, #1D1D1B) !important;
}

/* Focus */
.svenn-form .wpcf7 input:focus-visible,
.svenn-form .wpcf7 select:focus-visible,
.svenn-form .wpcf7 textarea:focus-visible,
.wpcf7 .svenn-form-fields input:focus-visible,
.wpcf7 .svenn-form-fields select:focus-visible,
.wpcf7 .svenn-form-fields textarea:focus-visible {
  outline: 2px solid var(--color-brand-01-500, #10C4BD) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Textarea */
.svenn-form .wpcf7 textarea,
.wpcf7 .svenn-form-fields textarea {
  height: 110px !important;
  min-height: 110px !important;
  resize: vertical;
}

/* Required indicator */
.svenn-form .wpcf7 .required,
.wpcf7 .svenn-form-fields .required {
  color: var(--color-neutral-800, #1D1D1B) !important;
}


/* --------------- START -- Two Column Form Row --------------- */

.svenn-form .wpcf7 .svenn-form-row,
.wpcf7 .svenn-form-fields .svenn-form-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px !important;
  width: 100%;
  margin: 0 0 12px !important;
  padding: 0 !important;
}

.svenn-form .wpcf7 .svenn-form-col,
.wpcf7 .svenn-form-fields .svenn-form-col {
  min-width: 0;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

/* --------------- END -- Two Column Form Row --------------- */


/* --------------- START -- File Upload --------------- */

.svenn-form .wpcf7 input[type="file"],
.wpcf7 .svenn-form-fields input[type="file"] {
  box-sizing: border-box;
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 44px;
  margin: 0 !important;
  padding: 8px 10px !important;
  background: var(--color-neutral-0, #FFFFFF) !important;
  border: 1px solid #D6D6D2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 14px !important;
  line-height: 1.5;
  cursor: pointer;
}

/* File selection button */
.svenn-form .wpcf7 input[type="file"]::file-selector-button,
.wpcf7 .svenn-form-fields input[type="file"]::file-selector-button {
  margin-right: 12px;
  padding: 6px 12px;
  background: #EEEEEE;
  color: var(--color-neutral-800, #1D1D1B);
  border: 0;
  border-radius: 0;
  font-family: var(--font-body, "Urbanist", sans-serif);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.svenn-form .wpcf7 input[type="file"]::file-selector-button:hover,
.wpcf7 .svenn-form-fields input[type="file"]::file-selector-button:hover {
  background: #D6D6D2;
}

/* --------------- END -- File Upload --------------- */


/* --------------- START -- Checkbox and Radio --------------- */

/* Choice group title */
.svenn-form .wpcf7 .svenn-form-choice-title,
.wpcf7 .svenn-form-fields .svenn-form-choice-title {
  display: block;
  margin: 0 0 6px !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
}

/* Checkbox and radio group layout */
.svenn-form .wpcf7 .wpcf7-checkbox,
.svenn-form .wpcf7 .wpcf7-radio,
.wpcf7 .svenn-form-fields .wpcf7-checkbox,
.wpcf7 .svenn-form-fields .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
}

/* Individual choices */
.svenn-form .wpcf7 .wpcf7-list-item,
.wpcf7 .svenn-form-fields .wpcf7-list-item {
  margin: 0 !important;
  padding: 0 !important;
}

/* Choice labels */
.svenn-form .wpcf7 .wpcf7-list-item label,
.wpcf7 .svenn-form-fields .wpcf7-list-item label {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
  cursor: pointer;
}

/* Checkbox and radio inputs */
.svenn-form .wpcf7 input[type="checkbox"],
.svenn-form .wpcf7 input[type="radio"],
.wpcf7 .svenn-form-fields input[type="checkbox"],
.wpcf7 .svenn-form-fields input[type="radio"] {
  flex: 0 0 auto;
  width: 16px !important;
  height: 16px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--color-brand-01-500, #10C4BD);
  cursor: pointer;
}

/* Choice text */
.svenn-form .wpcf7 .wpcf7-list-item-label,
.wpcf7 .svenn-form-fields .wpcf7-list-item-label {
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
}

/* --------------- END -- Checkbox and Radio --------------- */

/* --------------- START -- Cloudflare Turnstile --------------- */

.svenn-form .wpcf7 .svenn-form-turnstile,
.wpcf7 .svenn-form-fields .svenn-form-turnstile {
  width: 100%;
  max-width: 100%;
  margin: 8px 0 16px !important;
  padding: 0 !important;
}

/* Prevent captcha overflow on mobile */
.svenn-form .wpcf7 .cf-turnstile,
.wpcf7 .svenn-form-fields .cf-turnstile {
  max-width: 100%;
}

/* --------------- END -- Cloudflare Turnstile --------------- */

/* --------------- START -- Submit Button --------------- */

.svenn-form .wpcf7 input[type="submit"],
.wpcf7 .svenn-form-fields input[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 12px 26px !important;
  background: var(--color-neutral-800, #1D1D1B) !important;
  color: var(--color-neutral-0, #FFFFFF) !important;
  border: 1px solid var(--color-neutral-800, #1D1D1B) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}

/* Remove theme button overlays */
.svenn-form .wpcf7 input[type="submit"]::before,
.svenn-form .wpcf7 input[type="submit"]::after,
.wpcf7 .svenn-form-fields input[type="submit"]::before,
.wpcf7 .svenn-form-fields input[type="submit"]::after {
  content: none !important;
  display: none !important;
}

/* Submit hover */
.svenn-form .wpcf7 input[type="submit"]:hover,
.wpcf7 .svenn-form-fields input[type="submit"]:hover {
  background: var(--color-brand-01-500, #10C4BD) !important;
  border-color: var(--color-brand-01-500, #10C4BD) !important;
  color: var(--color-neutral-800, #1D1D1B) !important;
}

/* --------------- END -- Submit Button --------------- */


/* --------------- START -- Validation and Messages --------------- */

.svenn-form .wpcf7 .wpcf7-not-valid-tip,
.wpcf7 .svenn-form-fields .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  font-family: var(--font-body, "Urbanist", sans-serif);
  font-size: 12px !important;
  color: #B42318 !important;
}

/* Invalid field */
.svenn-form .wpcf7 .wpcf7-not-valid,
.wpcf7 .svenn-form-fields .wpcf7-not-valid {
  border-color: #B42318 !important;
}

/* Form response */
.svenn-form .wpcf7 .wpcf7-response-output,
.wpcf7:has(.svenn-form-fields) .wpcf7-response-output {
  margin: 12px 0 0 !important;
  padding: 12px 16px !important;
  font-family: var(--font-body, "Urbanist", sans-serif);
  font-size: 14px;
  line-height: 1.5;
}

/* --------------- END -- Validation and Messages --------------- */


/* --------------- START -- Responsive Contact Forms --------------- */

@media (max-width: 767px) {

  .svenn-form .wpcf7 .svenn-form-row,
  .wpcf7 .svenn-form-fields .svenn-form-row {
    grid-template-columns: 1fr;
    gap: 12px !important;
  }

  .svenn-form .wpcf7 textarea,
  .wpcf7 .svenn-form-fields textarea {
    height: 100px !important;
    min-height: 100px !important;
  }

}

/* --------------- END -- Responsive Contact Forms --------------- */

/* --------------- END -- Svenn Contact Forms --------------- */


/* --------------- START -- Contact Cards --------------- */

.contact-cards,
.contact-cards > .wp-block-group__inner-container {
  width: 100%;
}

.contact-cards .wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 1.5rem !important;
  width: 100%;
  margin: 0 !important;
}

.contact-cards .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
  margin: 0 !important;
}

.contact-cards .contact-card {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0 !important;
  min-width: 0;
  padding: clamp(1.5rem, 5vw, 3.5rem);
  background-color: #121212 !important;
  border: none;
  border-radius: 0;
}

.contact-cards .wp-block-column.contact-card {
  justify-content: flex-start !important;
  align-self: stretch !important;
  height: auto;
}

.contact-cards .contact-card > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem !important;
}

.contact-cards .contact-card > * {
  margin-block-start: 0 !important;
}

.contact-cards .contact-card h3 {
  margin: 0 0 0.5rem !important;
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
  font-size: clamp(1.6625rem, 2.375vw, 2.375rem) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: 0;
  color: #00BBB4 !important;
}

.contact-cards .contact-card p {
  margin: 0 0 1rem !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  font-weight: 400;
  color: #EEEEEE !important;
}

.contact-cards .contact-card .wp-block-buttons {
  margin: 0 !important;
  padding: 0 !important;
}

.contact-cards .contact-card .wp-block-button__link {
  background: transparent !important;
  color: #FFFFFF !important;
  border: 2px solid #FFFFFF !important;
  border-radius: 999px !important;
  padding: 14px 24px !important;
  box-shadow: none !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-transform: uppercase;
  transition: background-color .2s ease, color .2s ease;
}

.contact-cards .contact-card .wp-block-button__link:hover {
  background: #FFFFFF !important;
  border-color: #FFFFFF !important;
  color: #121212 !important;
}

.contact-cards .contact-card .wp-block-button__link::before,
.contact-cards .contact-card .wp-block-button__link::after {
  content: none !important;
  display: none !important;
}

.contact-cards .contact-card ul,
.contact-cards .contact-card ol {
  margin: 0 !important;
  padding: 0 0 0 1.25rem !important;
  list-style-position: outside;
  color: #EEEEEE !important;
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  font-size: 16px !important;
  font-weight: 400;
  line-height: 1.6 !important;
}

.contact-cards .contact-card li {
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  color: #EEEEEE !important;
}

.contact-cards .contact-card li:last-child {
  margin-bottom: 0 !important;
}

.contact-cards .contact-card li::marker {
  color: #00BBB4;
}

.contact-cards .contact-card h3 + ul,
.contact-cards .contact-card h3 + ol {
  margin-top: 0.5rem !important;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 767px) {
  .contact-cards .wp-block-columns {
    grid-template-columns: 1fr;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Contact Cards --------------- */

/* --------------- START -- Contact Address --------------- */

.contact-address {
  width: 100%;
  text-align: center;
  font-family: var(--font-body, "Urbanist", sans-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--color-neutral-800, #1D1D1B);
}

.contact-address-location {
  margin: 0 0 0.5rem !important;
}

.contact-address-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}

.contact-address-links a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: inherit !important;
  text-decoration: none !important;
  font-weight: 500;
}

.contact-address-links a:hover {
  color: #00BBB4 !important;
}

.contact-address-links i[class^="eicon-"] {
  font-family: "eicons" !important;
  font-size: 18px;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  color: #00BBB4;
}

/* Mobile */
@media (max-width: 767px) {
  .contact-address-links {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* --------------- END -- Contact Address --------------- */

/* --------------- START -- Service Cards Grid --------------- */

.svenn-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.svenn-service-card {
  display: block;
  min-width: 0;
  color: var(--color-neutral-800, #121212) !important;
  text-decoration: none !important;
}

.svenn-service-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 330 / 180;
  overflow: hidden;
  margin: 0 0 16px !important;
}

.svenn-service-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.svenn-service-card h3 {
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
  font-size: clamp(1.425rem, 1.9vw, 1.9rem) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: inherit !important;
  margin: 0 !important;
}

a.svenn-service-card:hover .svenn-service-card__image img {
  transform: scale(1.05);
}

a.svenn-service-card:hover h3 {
  color: var(--color-brand-01-500, #00BBB4) !important;
}

/* Tablet */
@media (max-width: 1024px) {
  .svenn-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 767px) {
  .svenn-service-grid {
    grid-template-columns: 1fr;
  }
}

/* --------------- END -- Service Cards Grid --------------- */

/* --------------- START -- Offcanvas Navigation Typography --------------- */

/* Parent menu links - Instrument Serif */
.elementor-widget-cmsmasters-offcanvas__menu-container
.elementor-widget-cmsmasters-offcanvas__main-item,
.elementor-widget-cmsmasters-offcanvas__menu-container
.elementor-widget-cmsmasters-offcanvas__main-item .elementor-widget-cmsmasters-offcanvas__item-text {
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
  font-style: normal;
  text-transform: none;
}

/* Submenu links - Urbanist */
.elementor-widget-cmsmasters-offcanvas__menu-container
.sub-menu .elementor-widget-cmsmasters-offcanvas__submenu-item,
.elementor-widget-cmsmasters-offcanvas__menu-container
.sub-menu .elementor-widget-cmsmasters-offcanvas__item-text {
  font-family: var(--font-body) !important;
  font-style: normal;
  text-transform: none;
}

.elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  text-transform: none;
}

.elementor-element-7ac5de56 h3.elementor-heading-title {
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
}

/* --------------- END -- Offcanvas Navigation Typography --------------- */

/* --------------- START -- Single Post Customizations --------------- */

/* 1. Hide audio player */
body.single-post .elementor-widget-cmsmasters-audio {
  display: none !important;
}

/* 2. Hide podcast heading and divider */
body.single-post .post-podcast-heading {
  display: none !important;
}

/* 3. Instrument Serif for post headings */
body.single-post .elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
}

/* 4. Highlighted introduction */
body.single-post .post-intro p {
  font-family: var(--font-heading, "Instrument Serif", serif) !important;
  font-size: clamp(24px, 2.5vw, 36px) !important;
  line-height: 1.25;
}

/* 5. Hide newsletter banner */
body.single-post .post-newsletter-banner {
  display: none !important;
}

/* 6. Hide previous/next navigation */
body.single-post .elementor-widget-cmsmasters-post-navigation {
  display: none !important;
}

/* 7. Hide Play Episode button */
body.single-post .post-podcast-play {
  display: none !important;
}

/* 8. Hide podcast platform buttons */
body.single-post .post-podcast-platforms {
  display: none !important;
}

/* 9. Hide comments section */
body.single-post .post-comments-section {
  visibility: hidden !important;
}

/* --------------- END -- Single Post Customizations --------------- */

/* --------------- START -- Post Metadata Typography --------------- */

/* Apply typography only to metadata text */
.cmsmasters-meta-data .cmsmasters-postmeta__content,
.cmsmasters-meta-data .cmsmasters-postmeta__content span,
.cmsmasters-meta-data .content-side {
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  text-transform: uppercase !important;
  font-style: normal !important;
}

.cmsmasters-widget-breadcrumbs__container {
  font-family: var(--font-body, "Urbanist", sans-serif) !important;
  text-transform: uppercase !important;
  font-style: normal;
}

.cmsmasters-widget-breadcrumbs__content,
.cmsmasters-widget-breadcrumbs__content a,
.cmsmasters-widget-breadcrumbs__content .breadcrumb_last {
  font-family: inherit !important;
  text-transform: inherit !important;
  font-style: inherit;
}

/* --------------- END -- Post Metadata Typography --------------- */

/* --------------- START -- Post Excerpt Spacing --------------- */

.elementor-widget-cmsmasters-post-excerpt {
  margin-bottom: 20px !important;
}

/* --------------- END -- Post Excerpt Spacing --------------- */

/* --------------- START -- Services Navigation --------------- */

body.single-service .cmsmasters-single-nav {
  display: none !important;
}

/* --------------- END -- Services Navigation --------------- */

/* --------------- START -- Google Preferred Source --------------- */

.svenn-google-preferred {
  width: 100%;
  margin-bottom: 2rem;
}

.svenn-google-preferred .svenn-google-preferred__button {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;

  box-sizing: border-box;
  width: 100%;
  padding: 0.875rem 1rem !important;

  border-radius: 999px !important;

  font-family: inherit;
  font-size: 15px !important;
  font-weight: 500;
  line-height: 1.4 !important;
  text-align: left;
  text-transform: none !important;
  white-space: normal;
}

.svenn-google-preferred.button-primary .svenn-google-preferred__button:is(
  :hover,
  :focus,
  :active
) {
  border-radius: 999px !important;
  background: var(--color-neutral-900) !important;
  border-color: var(--color-neutral-900) !important;
  color: var(--color-neutral-0) !important;
  transform: translateY(-1px) !important;
}

.svenn-google-preferred__icon {
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
}

.svenn-google-preferred__label {
  display: block;
  min-width: 0;
  color: inherit !important;
}

.svenn-google-preferred .svenn-google-preferred__button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* --------------- END -- Google Preferred Source --------------- */

/* --------------- START -- Hide Elements --------------- */

.hide {
  display: none !important;
}

/* --------------- END -- Hide Elements --------------- */

/* --------------- START -- Page End Spacing --------------- */

body:is(.page, .single-service, .blog) {
  --svenn-page-end-gap: 80px;
}

/* Content-to-CTA spacing; do not add padding inside the CTA itself. */
body:is(.page, .single-service) main :has(+ .meeting-cta.full-width) {
  margin-bottom: var(--svenn-page-end-gap) !important;
}

body:is(.page, .single-service) main .meeting-cta.full-width {
  margin-top: 0 !important;
}

/* These process rows already have 24px of internal bottom padding. */
body:is(.postid-27546, .postid-27547, .postid-27959)
  .cmsmasters-single-post-content > :has(+ .meeting-cta.full-width) {
  margin-bottom: calc(var(--svenn-page-end-gap) - 24px) !important;
}

/* Preserve Storytelling's coloured block and its responsive padding. */
body.postid-27958
  .cmsmasters-single-post-content > :has(+ .meeting-cta.full-width) {
  margin-bottom: calc(var(--svenn-page-end-gap) - clamp(1.5rem, 5vw, 3.5rem)) !important;
}

body:is(.page, .single-service):has(main .meeting-cta.full-width)
  .cmsmasters-main__outer {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Without a CTA, the main wrapper supplies the complete footer gap. */
body.page:not(:has(main .meeting-cta.full-width)) .cmsmasters-main__outer {
  margin-bottom: 0 !important;
  padding-bottom: var(--svenn-page-end-gap) !important;
}

body.page:not(:has(main .meeting-cta.full-width))
  main .cmsmasters-content > :last-child {
  margin-bottom: 0 !important;
}

/* Homepage: measure from the complete logo block, preserving its inner padding. */
/* Storie dalla redazione: target only the archive, not individual articles. */
body.blog .elementor-129 .elementor-element-2d769e7e {
  margin-bottom: var(--svenn-page-end-gap) !important;
}

/* --------------- START -- Responsive --------------- */

@media (max-width: 768px) {
  body:is(.page, .single-service, .blog) {
    --svenn-page-end-gap: 60px;
  }
}

/* Match the archive banner's existing mobile breakpoint and internal padding. */
@media (max-width: 767px) {
  body.blog .elementor-129 .elementor-element-75c2c37f {
    margin-bottom: 0 !important;
  }

  body.blog .elementor-129 .elementor-element-2d769e7e {
    margin-bottom: calc(var(--svenn-page-end-gap) - 2.5rem) !important;
  }
}

/* --------------- END -- Responsive --------------- */

/* --------------- END -- Page End Spacing --------------- */

/* --------------- START -- Editorial Statement --------------- */

.svenn-editorial-statement {
  margin: 0 0 0.75rem !important;
  font-family: var(--font-heading) !important;
  font-size: clamp(2.5rem, 3.5vw, 3.25rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.2em;
}

.svenn-editorial-statement:last-child {
  margin-bottom: 0 !important;
}

.svenn-editorial-statement__display {
  color: var(--color-neutral-0);
  font-size: clamp(2.125rem, 5.1vw, 3.825rem) !important;
}

.svenn-editorial-statement__accent {
  color: #00bbb4;
  font-style: italic;
}

.svenn-editorial-statement__text {
  margin: 0;
  color: #eeeeee;
  font-family: var(--font-body) !important;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

.svenn-editorial-statement__strong {
  font-weight: 700;
}

/* --------------- END -- Editorial Statement --------------- */

/* --------------- START -- Thank You Page Title --------------- */

.page-id-28355 .svenn-page-header {
    margin-bottom: 32px;
}

.page-id-28355 .svenn-page-title {
    font-family: var(--font-heading);
    font-weight: 400;
    line-height: 1.1;
    margin: 0;
}

/* --------------- END -- Thank You Page Title --------------- */


/* --------------- START -- Svenn 404 Page --------------- */

.svenn-404 {
    width: 100%;
    padding: 4rem 24px 7rem;
}

.svenn-404__container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

/* Editorial header */

.svenn-404__header {
    padding: clamp(2rem, 5vw, 4rem);
    background: var(--color-neutral-900);
}

.svenn-404__eyebrow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1.5rem;
    margin-bottom: 3rem;
    border-bottom: 1px solid var(--color-neutral-500);

    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--color-brand-01-500);
}

.svenn-404__eyebrow span:last-child {
    color: var(--color-neutral-60);
}

.svenn-404__kicker {
    margin: 0 0 1rem;
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    color: var(--color-neutral-0);
}

.svenn-404__title {
    max-width: 900px;
    margin: 0;

    font-family: var(--font-heading) !important;
    font-size: clamp(2.7625rem, 4.25vw, 3.825rem) !important;
    font-weight: 400 !important;
    line-height: 1.1;
    color: var(--color-neutral-0) !important;
}

/* Article */

.svenn-404__article {
    max-width: 850px;
    margin: 0 auto;
    padding: 4rem 0 0;
}

.svenn-404__article p {
    margin: 0 0 1.75rem;
    font-family: var(--font-body);
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--color-neutral-700);
}

.svenn-404__article strong {
    font-weight: 700;
}

/* CTA */

.svenn-404__actions {
    margin-top: 3rem;
}

.svenn-404__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.875rem 1.5rem;

    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none !important;

    color: var(--color-neutral-0) !important;
    background: var(--color-neutral-900);
    border: 2px solid var(--color-neutral-900);
    border-radius: 999px;

    transition: background-color 0.2s ease,
                border-color 0.2s ease,
                color 0.2s ease;
}

.svenn-404__button:hover,
.svenn-404__button:focus-visible {
    color: var(--color-neutral-900) !important;
    background: var(--color-brand-01-500);
    border-color: var(--color-brand-01-500);
}

/* Responsive */

@media (max-width: 768px) {
    .svenn-404 {
        padding: 2rem 20px 4rem;
    }

    .svenn-404__header {
        padding: 2rem 1.5rem;
    }

    .svenn-404__eyebrow {
        margin-bottom: 2rem;
    }

    .svenn-404__article {
        padding-top: 2.5rem;
    }

    .svenn-404__article p {
        font-size: 1rem;
        line-height: 1.7;
    }
}

/* --------------- END -- Svenn 404 Page --------------- */

/* --------------- START -- Dark Mode Fixes --------------- */

/* 1. Bent corners */

html.cmsmasters-mode-switcher-active .bent-corner {
  --corner-background: var(--svenn-dark-surface);
}

html.cmsmasters-mode-switcher-active .bent-corner::before {
  background: var(--corner-background);
}


/* 2. Contact Form 7 labels */

html.cmsmasters-mode-switcher-active
  :is(
    .svenn-form .wpcf7,
    .wpcf7 .svenn-form-fields
  ) label,
html.cmsmasters-mode-switcher-active
  :is(
    .svenn-form .wpcf7,
    .wpcf7 .svenn-form-fields
  ) .wpcf7-list-item-label,
html.cmsmasters-mode-switcher-active
  :is(
    .svenn-form .wpcf7,
    .wpcf7 .svenn-form-fields
  ) .required {
  color: var(--svenn-dark-heading) !important;
}


/* 4. 404 page */

html.cmsmasters-mode-switcher-active .svenn-404__header {
  background-color: var(--color-neutral-900);
}

html.cmsmasters-mode-switcher-active .svenn-404__title,
html.cmsmasters-mode-switcher-active .svenn-404__kicker {
  color: #ffffff !important;
}

html.cmsmasters-mode-switcher-active .svenn-404__article,
html.cmsmasters-mode-switcher-active .svenn-404__article p,
html.cmsmasters-mode-switcher-active .svenn-404__article strong {
  color: var(--svenn-dark-text) !important;
}

html.cmsmasters-mode-switcher-active .svenn-404__button {
  color: #ffffff !important;
  background-color: var(--color-neutral-900);
}

html.cmsmasters-mode-switcher-active
  .svenn-404__button:is(:hover, :focus-visible) {
  color: var(--color-neutral-900) !important;
  background-color: var(--color-brand-01-500);
}

/* Address */
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-location {
  color: #ffffff !important;
}

/* Phone and email links */
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a,
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a span,
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a i {
  color: #ffffff !important;
}

/* Link hover */
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a:hover,
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a:hover span,
html.cmsmasters-mode-switcher-active
  .svenn-contact-details .svenn-contact-details-links a:hover i {
  color: var(--color-brand-01-500, #10C4BD) !important;
}

/* --------------- END -- Dark Mode Fixes --------------- */

/* --------------- START -- Dark Mode CF7 Input Fields --------------- */

/* Override original CF7 input styles */
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 select,
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 textarea,
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields select,
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields textarea {
  background: #303030 !important;
  border-color: #555555 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  color-scheme: dark;
}

/* Placeholder text */
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 input::placeholder,
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 textarea::placeholder,
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields input::placeholder,
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields textarea::placeholder {
  color: #bcbcbc !important;
  opacity: 1;
}

/* Browser autofill */
html.cmsmasters-mode-switcher-active
  .svenn-form .wpcf7 input:-webkit-autofill,
html.cmsmasters-mode-switcher-active
  .wpcf7 .svenn-form-fields input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #303030 inset !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* --------------- END -- Dark Mode CF7 Input Fields --------------- */

/* --------------- START -- Dark Mode Contact Modals --------------- */

/* Modal panel */
html.cmsmasters-mode-switcher-active .svenn-modal__panel {
  background-color: var(--svenn-dark-surface) !important;
  color: var(--svenn-dark-text) !important;
}

/* Modal title */
html.cmsmasters-mode-switcher-active .svenn-modal__title {
  color: var(--svenn-dark-heading) !important;
}

/* Modal content and text */
html.cmsmasters-mode-switcher-active .svenn-modal__content,
html.cmsmasters-mode-switcher-active .svenn-modal__content p {
  color: var(--svenn-dark-text) !important;
}

/* Close button: override fixed dark color */
html.cmsmasters-mode-switcher-active
  .svenn-modal .svenn-modal__close {
  color: var(--svenn-dark-heading) !important;
}

/* Close button hover */
html.cmsmasters-mode-switcher-active
  .svenn-modal .svenn-modal__close:hover {
  color: var(--svenn-dark-accent) !important;
}

/* --------------- END -- Dark Mode Contact Modals --------------- */

/* --------------- START -- Dark Mode Modal Forms --------------- */

/* Form labels and checkbox text */
html.cmsmasters-mode-switcher-active
  .svenn-modal .wpcf7 label,
html.cmsmasters-mode-switcher-active
  .svenn-modal .wpcf7 .wpcf7-list-item-label,
html.cmsmasters-mode-switcher-active
  .svenn-modal .wpcf7 .required {
  color: var(--svenn-dark-heading) !important;
}

/* Input fields */
html.cmsmasters-mode-switcher-active
  .svenn-modal .wpcf7
  :is(input, select, textarea):not(
    [type="submit"],
    [type="checkbox"],
    [type="radio"],
    [type="hidden"]
  ) {
  background-color: var(--svenn-dark-surface) !important;
  color: var(--svenn-dark-heading) !important;
  border-color: var(--svenn-dark-border) !important;
}

/* Placeholder text */
html.cmsmasters-mode-switcher-active
  .svenn-modal .wpcf7
  :is(input, textarea)::placeholder {
  color: var(--svenn-dark-text) !important;
  opacity: 0.75;
}

/* --------------- END -- Dark Mode Modal Forms --------------- */

#iubenda-cs-banner .iubenda-cs-content {
    background: #000 !important;
}

#iubenda-cs-banner #iubenda-cs-paragraph,
#iubenda-cs-banner #iubenda-cs-paragraph p {
    color: #fff !important;
}
