/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.107.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.15_webpack@5.107.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/.pnpm/sass-loader@16.0.8_sass@1.100.0_webpack@5.107.1/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./wp-content/themes/triniti/src/css/theme.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/*
 * Triniti theme — front-end styles that cannot live in theme.json.
 *
 * This file is the SCSS entry point. All styles live in partials under
 * template-part/; per-block styles live in each block's style.scss;
 * per-theme design tokens live in theme.json.
 */
/* Components */
/* ─── Button hover animation ─────────────────────────────────────────── */
/* Old-site style: stroke → filled on hover (country accent color) */
.wp-block-button__link {
  transition: color 0.4s ease, background-color 0.4s ease, border-color 0.4s ease;
}
/* Beat .has-country-accent-color's !important by matching its class */
.wp-block-button__link.has-country-accent-color:hover {
  background-color: var(--wp--preset--color--country-accent, #e0c084) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--country-accent, #e0c084) !important;
}
/* Separator — override the default 2px border to 1px */
hr.wp-block-separator.is-style-wide {
  border-bottom-width: 1px;
}
.back-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--wp--preset--color--country-accent);
  text-decoration: none;
  position: relative;
}
.back-link a::before {
  content: "";
  display: inline-block;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background-color: var(--wp--preset--color--country-accent-opacity);
  flex-shrink: 0;
  transition: transform 0.4s;
}
.back-link a::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 2.75rem;
  height: 2.75rem;
  transform: translateY(-50%) rotate(180deg);
  background-color: var(--wp--preset--color--country-accent);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 10%27%3E%3Cpath d=%27M0 5h16%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271%27/%3E%3Cpath d=%27M12 0.5l5 4.5-5 4.5%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271%27/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 1.4rem auto;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 10%27%3E%3Cpath d=%27M0 5h16%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271%27/%3E%3Cpath d=%27M12 0.5l5 4.5-5 4.5%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271%27/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 1.4rem auto;
  pointer-events: none;
  transition: transform 0.4s;
}
.back-link a:hover::before {
  transform: scale(1.2);
}
.back-link a:hover::after {
  transform: translateY(-50%) rotate(180deg) scale(1.5);
}
/* Template parts*/
/* ─── Hero patterns (hero-image, hero-video) ─────────────────────────── */
.hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--wp--preset--color--white);
}
/* Glass overlay: dark gradient so hero text stays legible on any image. */
.hero__glass {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(17, 25, 24, 0.1) 0%, rgba(17, 25, 24, 0.45) 60%, rgba(17, 25, 24, 0.65) 100%);
  backdrop-filter: saturate(1.1);
  z-index: 1;
  pointer-events: none;
}
.hero__content {
  position: relative;
  z-index: 2;
  padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
  width: 100%;
  text-align: center;
}
.hero__content .wp-block-post-title {
  color: var(--wp--preset--color--white);
  margin: 0;
}
/* Optional video-trigger button — styled to sit on top of the hero. */
.hero__video-trigger .wp-block-button__link {
  background: transparent;
  border: 1px solid var(--wp--preset--color--white);
  color: var(--wp--preset--color--white);
  transition: background-color 0.2s, color 0.2s;
}
.hero__video-trigger .wp-block-button__link:hover,
.hero__video-trigger .wp-block-button__link:focus {
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--dark);
}
/* Simple hero variant — core/cover-based, no country media. */
.hero--simple .wp-block-cover__inner-container {
  text-align: center;
}
.hero-columns {
  align-items: stretch;
}
.hero-columns .text-column {
  padding-left: 10vw;
  flex-grow: 1;
}
.hero-columns .image-column div, .hero-columns .image-column figure, .hero-columns .image-column img {
  height: 100%;
}
.hero-columns .image-column img {
  -o-object-fit: cover;
     object-fit: cover;
}
/* ─── Country block render ─────────────────────────────────────────────── */
body.country-all .country-block:not(.country-all) {
  display: none !important;
}
body.country-estonia .country-block:not(.country-estonia) {
  display: none !important;
}
body.country-latvia .country-block:not(.country-latvia) {
  display: none !important;
}
body.country-lithuania .country-block:not(.country-lithuania) {
  display: none !important;
}
/* Country blocks render as a group of adjacent siblings, all but one hidden
   with display:none. Hidden siblings still count for :first-child, so the
   theme.json blockGap rule (:where(.is-layout-flow) > *) skips its
   first-child exemption for the visible block and adds an unwanted top
   margin (e.g. above a hero) on every country except the first in source
   order. Zero the inter-block gap between consecutive country blocks. */
/* stylelint-disable-next-line no-descending-specificity */
.country-block + .country-block {
  margin-block-start: 0;
}
/* ─── Sticky header (appears on scroll) ──────────────────────────────── */
.site-header-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: 53px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--wp--preset--color--country-accent, #e0c084);
  transform: translateY(-100%);
  transition: transform 0.3s ease;
  opacity: 0;
  pointer-events: none;
}
.site-header-sticky.is-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
/* Main header (top of page) — same glass treatment as the old site. The white
   background was removed from the block markup so the blur shows through page
   content scrolling underneath.
   The glass is scoped to .site-header (the logo/nav row) so it stops above the
   country-switcher — like the old site, the switcher sits on the page, not the
   blur. backdrop-filter lives on a ::before pseudo so it never becomes a
   containing block for the fixed sticky header (a sibling, not a descendant);
   position:relative on .site-header anchors the pseudo without trapping it. */
header {
  background: none;
}
.site-header {
  position: relative;
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  pointer-events: none;
  z-index: -1;
}
/* Separator above the country-switcher row (old-site layout): a full-width rule
   between the header and the switcher that the active/hover bar rides on. */
.site-header__country-switcher {
  border-top: 1px solid rgba(17, 25, 24, 0.12);
}
/* Header floats over the page so hero images/sections show through behind the
   glass (like the old site). The header template-part is taken out of flow so
   the page content starts at the very top of the viewport. */
header.wp-block-template-part:has(.site-header) {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}
body.admin-bar header.wp-block-template-part:has(.site-header) {
  top: var(--wp-admin--admin-bar--height, 32px);
}
/* Reserve the scrollbar gutter so locking body scroll (the open menu sets
   overflow:hidden) doesn't widen the viewport and shift the page. */
html {
  scrollbar-gutter: stable;
}
/* Header height (logo bar 94px + country-switcher bar 38px).
   --color-logo defaults the trefoil icon to dark brand black for "All"/no
   country; per-country body classes override it above. */
body {
  --site-header-height: 140px;
  --color-logo: #111918;
}
/* Hero pages start with a full-bleed (.alignfull) section that is meant to sit
   behind the overlaid header. Pages that DON'T (e.g. Privacy Policy, General
   Terms, Info Hub) would otherwise have their first content hidden behind the
   header, so reserve the header's height at the top of the content.

   Scoped to the page-style layout where post-content is the first child of
   <main> (page.html / foreign-desk-page.html). CPT single templates place
   content directly in <main> and nest post-content deeper — without this scope
   the rule would leak a spurious header-height gap into that nested content. */
main > .wp-block-post-content:first-child:has(> :first-child:not(.alignfull)) {
  padding-top: var(--site-header-height);
}
/* Column-based hero (heading + image side by side): the image column should
   bleed behind the header, but a tall heading column would otherwise be clipped
   by it. Pad only the text column(s) — those without an image — so the heading
   always clears the header while the image still bleeds. */
main > .wp-block-post-content:first-child > .wp-block-columns.alignfull:first-child > .wp-block-column:not(:has(img)) {
  padding-top: var(--site-header-height);
}
/* CPT single templates (people, expertise) place hero columns directly in
   <main> without a post-content wrapper, so the rule above doesn't reach
   them. Match the same pattern at the direct-child level. */
/* stylelint-disable-next-line no-descending-specificity */
main:not(.has-header-offset) > .wp-block-columns.alignfull:first-child > .wp-block-column:not(:has(img)) {
  padding-top: var(--site-header-height);
}
/* CPT single templates (single, careers, experience, insights, expertise-child)
   render their first content row directly in <main> rather than inside
   post-content, so the post-content rules above don't reach it and the row
   would sit behind the overlaid header. These templates carry
   .has-header-offset on <main> to reserve the header's height. Hero singles
   (expertise, people) omit the class because their first row is a full-bleed
   image meant to bleed behind the header. */
main.has-header-offset {
  padding-top: var(--site-header-height);
}
.site-header-sticky__left,
.site-header-sticky__right {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--50);
}
.site-header-sticky__logo-link {
  display: flex;
  align-items: center;
}
.site-header-sticky__logo-link svg {
  height: 37px;
  width: auto;
}
/* Header logos — force an identical rendered height for every country logo
   (site-logo for All/EE/LV, wp:image for LT) so switching country never
   changes the header height. display:block kills the inline baseline gap and
   the figure margins are zeroed so the box is exactly the image height. */
.site-header__logo img,
.site-header__logo svg {
  display: block;
  height: 46px;
  width: auto;
}
.site-header__logo .wp-block-image,
.site-header__logo figure {
  margin: 0;
  line-height: 0;
}
/* Both country logos are flow siblings, so the second one (the LT image)
   inherits a block-gap margin-top even while the first is display:none —
   which made the header 16px taller for Lithuania. Zero it so every country
   logo sits in an identically sized box. */
/* stylelint-disable-next-line no-descending-specificity */
.site-header__logo .country-block {
  margin-block: 0;
}
.site-header__logo-link {
  display: flex;
  align-items: center;
}
/* Sticky header logo height alignment */
.site-header-sticky__logo img,
.site-header-sticky__logo svg {
  display: block;
  height: 37px;
  width: auto;
}
.site-header-sticky__logo .wp-block-image,
.site-header-sticky__logo figure {
  margin: 0;
  line-height: 0;
}
/* Hide sticky header on landing pages */
.site-header--landing ~ .site-header-sticky {
  display: none;
}
/* Offset for WP admin bar */
body.admin-bar .site-header-sticky {
  top: var(--wp-admin--admin-bar--height, 0);
}
/* Nav link underline animation — expands from 0 to 100% on hover (old-site style) */
.site-header__nav .wp-block-navigation-items > .wp-block-navigation-item > .wp-block-navigation-item__content,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
  position: relative;
}
.site-header__nav .wp-block-navigation-items > .wp-block-navigation-item > .wp-block-navigation-item__content::before,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: var(--wp--preset--color--country-accent, #e0c084);
  transition: width 0.4s ease;
}
.site-header__nav .wp-block-navigation-items > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::before,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::before,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::before {
  width: 100%;
}
/* Hide desktop header navigation below 1024px — hamburger menu takes over */
@media (max-width: 1023px) {
  .site-header__nav > .wp-block-navigation {
    display: none;
  }
}
/* ─── Country-based accent color switching ─────────────────────────────── */
/* Elements that should change color by country get class="country-color" in
   the block editor.  The color is set here per body.country-* class. */
.country-color {
  color: var(--wp--preset--color--country-accent, #e0c084) !important;
}
.country-color.has-background {
  background-color: var(--wp--preset--color--country-accent, #e0c084) !important;
}
.wp-block-button .country-color {
  border-color: var(--wp--preset--color--country-accent, #e0c084) !important;
}
/* WP sets --wp--preset--color--country-accent on .wp-block-button__link,
   overriding the body-level variable. Re-set it here so .country-color's var()
   resolves to the per-country accent. */
/* stylelint-disable no-descending-specificity */
body.country-estonia .wp-block-button__link {
  --wp--preset--color--country-accent: #96b6db !important;
}
body.country-latvia .wp-block-button__link {
  --wp--preset--color--country-accent: #c16d7a !important;
}
body.country-lithuania .wp-block-button__link {
  --wp--preset--color--country-accent: #55b299 !important;
}
/* stylelint-enable no-descending-specificity */
body.country-estonia {
  --wp--preset--color--country-accent: #96b6db;
  --wp--preset--color--country-accent-light: #b0c8e3;
  --wp--preset--color--country-accent-opacity: rgba(150, 182, 219, 0.2);
  --wp--preset--color--bg-dark: #171e26;
  --color-logo: #6484aa;
}
body.country-latvia {
  --wp--preset--color--country-accent: #c16d7a;
  --wp--preset--color--country-accent-light: #e6b7bf;
  --wp--preset--color--country-accent-opacity: rgba(193, 109, 122, 0.2);
  --wp--preset--color--bg-dark: #450f18;
  --color-logo: #9d2235;
}
body.country-lithuania {
  --wp--preset--color--country-accent: #55b299;
  --wp--preset--color--country-accent-light: #aae0d3;
  --wp--preset--color--country-accent-opacity: rgba(85, 178, 153, 0.2);
  --wp--preset--color--bg-dark: #061c16;
  --color-logo: #1b6a55;
}
/* Recolour only the trefoil icon (#logo path) per country, keeping the wordmark
   dark. The sticky header SVG is icon-only, so it recolours fully. */
.site-header__logo svg #logo,
.site-header-sticky__logo svg #logo {
  fill: var(--color-logo, #111918);
  transition: fill 0.4s ease;
}
/* ─── Info hub general ─────────────────────────────────────────────────── */
.wpcf7-response-output {
  position: fixed;
  z-index: 100;
  background: #fff;
  top: 100px;
  left: 0;
  right: 0;
  margin: 0 auto !important;
  width: 300px;
}
.popup-close {
  position: absolute;
  top: 5px;
  right: 10px;
  font-size: 20px;
  cursor: pointer;
  z-index: 999;
}
.info-hub.hide {
  display: none;
}
/* ─── People listing card ──────────────────────────────────────────────── */
.triniti-people-card {
  position: relative;
  /* Clip the photo's blur bleed and the frosted panel as it slides up. */
  overflow: hidden;
}
/* Overlay person-linkedin over the featured image */
.triniti-people-card__media {
  display: grid;
}
.triniti-people-card__media > * {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
}
.triniti-people-card__linkedin {
  justify-self: end;
  align-self: start;
  margin-top: clamp(0.75rem, 1.25vw, 24px);
  margin-right: clamp(0.75rem, 1.55vw, 30px);
  z-index: 2;
}
/* ─── Hover reveal (ported from the old site's .person-hv) ─────────────────
   Desktop pointers only: the photo blurs and the name/positions panel slides
   up over it behind a frosted-glass backdrop. */
.triniti-people-card__media img {
  transition: filter 0.45s ease;
}
.triniti-people-card__body {
  position: relative;
  width: 100%;
  transition: transform 0.45s ease;
}
/* Frosted backdrop, faded out until hover. Extends above the body so it veils
   the lower part of the photo once the panel slides up. Sits at z-index:-1 so
   the title + pills stay readable above it without needing their own z-index
   (which would otherwise trap the whole-card link overlay below). */
.triniti-people-card__body::before {
  content: "";
  position: absolute;
  inset: calc(-1 * var(--wp--preset--spacing--30)) 0 0;
  background-color: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: 0;
  transition: opacity 0.45s ease;
  pointer-events: none;
  z-index: -1;
}
/* ─── Whole-card link ──────────────────────────────────────────────────────
   Stretch the post-title anchor over the whole card (like .triniti-card-link).
   The photo keeps its own link; this covers the body + padding. Anchored to
   __body and bleeding into the flex gaps. The LinkedIn badge sits in __media
   (z-index:2), never overlapped, so it stays clickable. */
.triniti-people-card .wp-block-post-title a {
  position: static;
}
.triniti-people-card .wp-block-post-title a::after {
  content: "";
  position: absolute;
  inset: calc(-1 * var(--wp--preset--spacing--20)) 0;
  z-index: 1;
}
/* "Learn more" stays collapsed and invisible until the card is hovered. */
.people-card-read-more {
  display: block;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.45s ease, margin-top 0.45s ease, opacity 0.45s ease;
}
@media (hover: hover) and (min-width: 782px) {
  .triniti-people-card:hover .triniti-people-card__media img,
  .triniti-people-card:focus-within .triniti-people-card__media img {
    filter: blur(5px);
  }
  .triniti-people-card:hover .triniti-people-card__body,
  .triniti-people-card:focus-within .triniti-people-card__body {
    transform: translateY(-7rem);
  }
  .triniti-people-card:hover .triniti-people-card__body::before,
  .triniti-people-card:focus-within .triniti-people-card__body::before {
    opacity: 1;
  }
  .triniti-people-card:hover .people-card-read-more,
  .triniti-people-card:focus-within .people-card-read-more {
    max-height: var(--wp--preset--spacing--50);
    margin-top: var(--wp--preset--spacing--20);
    opacity: 1;
  }
}
/* ─── Insight category: hide country labels for landing categories ─── */
.insight-category-corporate-law .taxonomy-person_countries,
.insight-category-intellectual-property-law .taxonomy-person_countries {
  display: none;
}
/* ─── Insights single: related-people headings by category ──── */
.insights-related-people-events {
  display: none;
}
.insight-category-events .insights-related-people-news {
  display: none;
}
.insight-category-events .insights-related-people-events {
  display: block;
}
/* ─── Toggle target: hide elements paired with an inactive toggle ─── */
.triniti-toggle-hidden {
  display: none;
}
/* ─── Toggle buttons: trailing accent line ───────────────────────────
   Short by default; expands on hover and while active. */
.triniti-toggle-button .wp-block-button__link {
  position: relative;
}
.triniti-toggle-button .wp-block-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  margin-left: 0.75rem;
  width: 1.5rem;
  height: 2px;
  background-color: var(--wp--preset--color--country-accent, #e0c084);
  transform: translateY(-50%);
  transition: width 0.4s ease;
  pointer-events: none;
}
.triniti-active-button .wp-block-button__link::after,
.triniti-toggle-button .wp-block-button__link:hover::after {
  width: 5rem;
}
/* ─── Post terms ───────────────────────────────────────────────────────── */
.wp-block-post-terms__separator {
  display: none !important;
}
/* stylelint-disable-next-line no-descending-specificity */
.taxonomy-person_countries,
.taxonomy-person_positions {
  display: contents;
}
/* Global term-pill style (outlined look from the experience carousel). Every
   frontend term is normalised to .wp-block-post-terms__term by the render_block
   filter, so one rule covers all post-terms displays. */
.wp-block-post-terms__term {
  display: inline-block;
  padding: 0.3em 1em;
  color: var(--wp--preset--color--country-accent, #e0c084);
  background: transparent;
  border: 1px solid var(--wp--preset--color--country-accent, #e0c084);
  border-radius: 100px;
}
/* Some term blocks set an editor-applied background/text colour on the wrapper
   (e.g. insight_category in single-insights.html). Neutralise it so the pill on
   the inner span is the only styling. */
.wp-block-post-terms.has-background {
  background: transparent !important;
}
.wp-block-post-terms.has-text-color .wp-block-post-terms__term {
  color: var(--wp--preset--color--country-accent, #e0c084);
}
/* Opt-in "Country background" block style (registered in functions.php). Fills
   each pill with a solid, pale tint of the country accent (the opaque match of
   the expertise cards' country-accent-opacity, so the photo can't bleed through
   on hover), with accent text and no border. Toggle per term list in the
   editor's Styles panel; the default stays transparent. */
.wp-block-post-terms.is-style-country-fill .wp-block-post-terms__term {
  background-color: color-mix(in srgb, var(--wp--preset--color--country-accent, #e0c084) 20%, #fff);
  border-color: transparent;
}
/* ─── Info Hub gated landing hero ──────────────────────────────────────── */
/* The columns are .alignfull so the photo column bleeds full-width up behind
   the glass header (the column-hero rule pads the text column clear of it).
   The photo column is usually shorter than the text column, so stretch the
   image to cover its column like the old site. */
.info-hub-hero__media {
  align-self: stretch;
}
.info-hub-hero__media .wp-block-image {
  height: 100%;
  margin: 0;
}
.info-hub-hero__media .wp-block-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
/* Info Hub gate form — match the old site: underline-only email field, pill
   outline submit, square custom checkboxes. Driven by the active country
   accent so it follows the per-country colour like the rest of the site. */
.info-hub-hero .wpcf7-form {
  --ih-accent: var(--wp--preset--color--country-accent, #55b299);
}
.info-hub-hero .single p {
  margin-bottom: var(--wp--preset--spacing--20);
  font-weight: 700;
}
.info-hub-hero input.wpcf7-email,
.info-hub-hero input.wpcf7-text {
  width: 100%;
  padding: 0 0 var(--wp--preset--spacing--20);
  border: 0;
  border-bottom: 1px solid var(--ih-accent);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.info-hub-hero .acceptance {
  margin-top: var(--wp--preset--spacing--30);
}
.info-hub-hero .acceptance p {
  margin: 0 0 var(--wp--preset--spacing--20);
}
.info-hub-hero .wpcf7-list-item {
  margin: 0;
}
.info-hub-hero .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: var(--wp--preset--spacing--20);
  cursor: pointer;
}
.info-hub-hero .wpcf7-list-item input[type=checkbox] {
  position: relative;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid var(--ih-accent);
  border-radius: 4px;
  background: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
.info-hub-hero .wpcf7-list-item input[type=checkbox]:checked {
  background: var(--ih-accent);
}
.info-hub-hero .wpcf7-list-item input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 6px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.info-hub-hero input.wpcf7-submit {
  margin-top: var(--wp--preset--spacing--40);
  padding: 0.5em 2em;
  border: 1px solid var(--ih-accent);
  border-radius: 999px;
  background: transparent;
  color: var(--ih-accent);
  font-size: var(--wp--preset--font-size--lg);
  font-weight: 300;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.info-hub-hero input.wpcf7-submit:hover,
.info-hub-hero input.wpcf7-submit:focus-visible {
  background: var(--ih-accent);
  color: #fff;
}
/* ─── WPML development notice ─────────────────────────────────────────── */
.otgs-development-site-front-end {
  display: none;
}
/* Footer — mirrors the old wam theme: white city names, each trailed by a gold
   accent line that grows on hover; the accent picks up the active country. */
/* Background darkens to the active country's tone (bg-dark var, set per
   body.country-* in _country-colors.scss). Transition smooths client-side
   country switches. */
.site-footer {
  transition: background-color 0.4s ease;
}
.site-footer__office {
  display: flex;
  align-items: center;
  /* Line lives inside the anchor so it's part of the clickable link; the
     inline-flex keeps the city name and its trailing line on one row. */
}
.site-footer__office a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.site-footer__office {
  /* Gold line after each city, grows on hover (old-site signature). Width is
     reserved at the hovered length and the resting state is scaled down, so
     growth is a transform (no layout shift — sibling offices stay put). */
}
.site-footer__office a::after {
  content: "";
  width: 4rem;
  height: 1px;
  margin-left: 1rem;
  background-color: var(--wp--preset--color--country-accent, #e0c084);
  transform: scaleX(0.5);
  transform-origin: left center;
  transition: transform 0.4s ease;
}
.site-footer__office a:hover::after {
  transform: scaleX(1);
}
/* Keep anchor jumps (footer city links → contacts offices) clear of the
   sticky header. */
:target {
  scroll-margin-top: 8rem;
}
/* Language switcher — match the old site: white current language in a
   country-accent pill, slash-separated languages. WPML's 1em gap and per-item
   --language-spacing are zeroed so the slash's symmetric margin is the only —
   and even — separator spacing. */
.site-footer .wpml-language-switcher-block ul.horizontal-list {
  --language-spacing: 0 !important;
  align-items: center;
  gap: 0 !important;
}
.site-footer .wpml-language-switcher-block ul.horizontal-list li[data-wpml=current-language-item] {
  padding: 0.4rem 1rem;
  border: 1px solid var(--wp--preset--color--country-accent, #e0c084);
  border-radius: 40px;
  font-weight: 700;
}
.site-footer .wpml-language-switcher-block ul.horizontal-list li[data-wpml=current-language-item],
.site-footer .wpml-language-switcher-block ul.horizontal-list li[data-wpml=current-language-item] span {
  color: var(--wp--preset--color--white, #fff);
}
.site-footer .wpml-language-switcher-block ul.horizontal-list {
  /* Slash separators between items — but NEVER on the current-language
     pill (which has border + padding, so any pseudo on it lands inside
     the pill). Default: trailing slash on every non-last, non-current
     item. Edge case: when the current pill is followed by more items,
     the pill's own ::after is suppressed, so we emit the slash as a
     leading ::before on the next sibling instead. */
}
.site-footer .wpml-language-switcher-block ul.horizontal-list li:not(:last-child):not([data-wpml=current-language-item])::after,
.site-footer .wpml-language-switcher-block ul.horizontal-list li[data-wpml=current-language-item] + li::before {
  content: "/";
  margin: 0 0.6rem;
  color: var(--wp--preset--color--country-accent, #e0c084);
}
/* Pages */
body.home .site-header::before {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.home main > .entry-content .wp-block-columns:first-child .wp-block-column:first-child {
  padding-left: 0;
}
body.home .homepage-hero-text {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.home .scroll-label {
  position: relative;
  transform: rotate(-90deg);
  transform-origin: 80% 100%;
  margin: 0;
  font-family: var(--wp--preset--font-family--satoshi, Satoshi, sans-serif);
  font-size: var(--wp--preset--font-size--xs, 0.75rem);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--wp--preset--color--dark, #111918);
  cursor: pointer;
}
body.home .scroll-label::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 100%;
  margin-right: 0.5rem;
  width: 3.5rem;
  height: 1px;
  background-color: var(--wp--preset--color--country-accent, #e0c084);
  transform: translateY(-50%);
  transition: width 0.4s ease;
}
body.home .scroll-label:hover::before {
  width: 5rem;
}

/*# sourceMappingURL=theme.css.map*/