@charset "UTF-8";
/*!
Theme Name: Amabilia
Theme URI: https://bymat.io/
Author: MAT
Author URI: https://bymat.io/
Description: Custom WordPress theme for Amabilia.
Version: 1.0.1
Requires at least: 6.4
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: wp-amabilia
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/
/* Runtime design tokens. */
:root {
  --color-accent: #fdb913;
  --color-header: #efecdf;
  --color-surface: #e5e2d7;
  --color-background: #efecdf;
  --color-white: #ffffff;
  --color-border: #666666;
  --color-button-fill: #d8d7d2;
  --color-text: #000000;
  --color-text-muted: #565656;
  --color-text-inverse: #efecdf;
  --color-accent-line: #ebb731;
  --color-focus: #005fcc;
  --color-skip-link-text: #171717;
  --color-debug-outline: lightgrey;
  --font-size-root: 20px;
  --font-sans: "Gibson", system-ui, -apple-system, "BlinkMacSystemFont", "Segoe UI", sans-serif;
  --font-serif: "Lora", "Georgia", serif;
  --font-monospace: ui-monospace, "SFMono-Regular", "Consolas", "Liberation Mono", monospace;
  --line-height-base: 1.5;
  --type-display-family: var(--font-serif);
  --type-display-size: 1.25rem;
  --type-display-weight: 400;
  --type-display-line-height: 1.2;
  --type-section-family: var(--font-serif);
  --type-section-size: 1.4rem;
  --type-section-weight: 400;
  --type-section-line-height: 1.25;
  --type-section-tracking: -0.01em;
  --type-lead-family: var(--font-sans);
  --type-lead-size: 1rem;
  --type-lead-weight: 400;
  --type-lead-line-height: 1.35;
  --type-body-family: var(--font-sans);
  --type-body-size: 0.85rem;
  --type-body-weight: 400;
  --type-body-line-height: 1.55;
  --type-ui-family: var(--font-sans);
  --type-ui-size: 0.8rem;
  --type-ui-weight: 600;
  --type-ui-line-height: 1.25;
  --type-button-family: var(--font-serif);
  --type-button-size: 0.8rem;
  --type-button-weight: 400;
  --type-button-line-height: 1.25;
  --type-button-tracking: 0em;
  --type-meta-family: var(--font-sans);
  --type-meta-size: 0.7rem;
  --type-meta-weight: 400;
  --type-meta-line-height: 1.45;
  --type-kicker-family: var(--font-sans);
  --type-kicker-size: 0.6rem;
  --type-kicker-weight: 600;
  --type-kicker-line-height: 1.4;
  --type-display-tracking: -0.01em;
  --type-ui-tracking: 0.015em;
  --type-kicker-tracking: 0.12em;
  --type-title-family: var(--type-display-family);
  --type-title-size: var(--type-display-size);
  --type-title-weight: var(--type-display-weight);
  --type-title-line-height: var(--type-display-line-height);
  --type-family-family: var(--type-section-family);
  --type-family-size: var(--type-section-size);
  --type-family-weight: var(--type-section-weight);
  --type-family-line-height: var(--type-section-line-height);
  --type-subsection-family: var(--type-ui-family);
  --type-subsection-size: var(--type-ui-size);
  --type-subsection-weight: var(--type-ui-weight);
  --type-subsection-line-height: var(--type-ui-line-height);
  --type-card-family: var(--type-lead-family);
  --type-card-size: var(--type-lead-size);
  --type-card-weight: var(--type-lead-weight);
  --type-card-line-height: var(--type-lead-line-height);
  --type-label-family: var(--type-ui-family);
  --type-label-size: var(--type-ui-size);
  --type-label-weight: var(--type-ui-weight);
  --type-label-line-height: var(--type-ui-line-height);
  --type-editorial-family: var(--type-body-family);
  --type-editorial-size: var(--type-body-size);
  --type-editorial-weight: var(--type-body-weight);
  --type-editorial-line-height: var(--type-body-line-height);
  --type-navigation-family: var(--type-meta-family);
  --type-navigation-size: var(--type-meta-size);
  --type-navigation-weight: var(--type-meta-weight);
  --type-navigation-line-height: 1.4;
  --type-help-family: var(--type-meta-family);
  --type-help-size: var(--type-meta-size);
  --type-help-weight: var(--type-meta-weight);
  --type-help-line-height: var(--type-meta-line-height);
  --type-caption-family: var(--type-meta-family);
  --type-caption-size: var(--type-meta-size);
  --type-caption-weight: var(--type-meta-weight);
  --type-caption-line-height: var(--type-meta-line-height);
  --type-swatch-family: var(--type-kicker-family);
  --type-swatch-size: var(--type-kicker-size);
  --type-swatch-weight: var(--type-body-weight);
  --type-swatch-line-height: var(--type-kicker-line-height);
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.12vw, 8rem);
  --site-header-height: 6.8rem;
  --site-header-compact-height: 4rem;
  --hero-shade-height: clamp(10rem, 18vw, 16rem);
  --hero-shade-start: rgb(0 0 0 / 60%);
  --hero-shade-middle: rgb(0 0 0 / 24%);
  --link-hover-opacity: 0.6;
  --motion-duration-fast: 0.16s;
  --motion-duration-base: 0.3s;
  --motion-duration-button: var(--motion-duration-base);
  --motion-duration-slow: 0.45s;
  --motion-duration-scroll: 0.28s;
  --motion-ease: power2.out;
}

@media (max-width: 767px) {
  :root {
    --type-display-size: 1.1rem;
    --type-section-size: 1.2rem;
    --site-header-height: 4.5rem;
    --site-header-compact-height: 3.5rem;
  }
}
/* Local webfonts and generic reset. */
@font-face {
  font-family: "Gibson";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("resources/fonts/gibson/gibson-300.woff2") format("woff2");
}
@font-face {
  font-family: "Gibson";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("resources/fonts/gibson/gibson-400.woff2") format("woff2");
}
@font-face {
  font-family: "Gibson";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("resources/fonts/gibson/gibson-600.woff2") format("woff2");
}
@font-face {
  font-family: "Gibson";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("resources/fonts/gibson/gibson-700.woff2") format("woff2");
}
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

body {
  min-height: 100vh;
}

ul[role=list],
ol[role=list] {
  margin: 0;
  padding: 0;
  list-style: none;
}

img,
picture,
svg,
video,
canvas {
  display: block;
  max-width: 100%;
}

img,
picture,
video,
canvas {
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
}

button,
select {
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  cursor: pointer;
}

textarea {
  resize: vertical;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

[hidden] {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
/* Unclassed HTML elements. */
html {
  background: var(--color-background);
  font-size: var(--font-size-root);
  scroll-behavior: auto;
}

body {
  color: var(--color-text);
  background: var(--color-background);
  font-family: var(--font-sans);
  font-size: var(--type-body-size);
  line-height: var(--type-body-line-height);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1 {
  font-size: 1.4rem;
}

h2 {
  font-size: 1.2rem;
}

h3 {
  font-size: 1.1rem;
}

h4 {
  font-size: 1rem;
}

h5 {
  font-size: 0.9rem;
}

h6 {
  font-size: 0.8rem;
}

a {
  color: inherit;
  text-decoration-thickness: from-font;
  text-underline-offset: 0.15em;
}

code,
kbd,
pre,
samp {
  font-family: var(--font-monospace);
}

:focus-visible {
  outline: 0.1rem solid var(--color-focus);
  outline-offset: 0.15rem;
}

::selection {
  color: var(--color-background);
  background: var(--color-text);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.3;
}

/* Animation definitions. */
/* Reusable layout and visual patterns. */
.o-container {
  width: calc(100% - 2 * var(--layout-gutter));
  max-width: var(--layout-max-width);
  margin-inline: auto;
}

.o-fullimage {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.o-hero-shade {
  position: relative;
  isolation: isolate;
}
.o-hero-shade::after {
  position: absolute;
  inset: 0 0 auto;
  z-index: 1;
  height: min(100%, var(--hero-shade-height));
  background: linear-gradient(180deg, var(--hero-shade-start), var(--hero-shade-middle) 50%, transparent);
  content: "";
  pointer-events: none;
}

.t-display,
.t-title {
  font-family: var(--type-display-family);
  font-size: var(--type-display-size);
  font-weight: var(--type-display-weight);
  line-height: var(--type-display-line-height);
  letter-spacing: var(--type-display-tracking);
}

.t-section,
.t-family {
  font-family: var(--type-section-family);
  font-size: var(--type-section-size);
  font-weight: var(--type-section-weight);
  line-height: var(--type-section-line-height);
  letter-spacing: var(--type-section-tracking);
}

.t-display,
.t-section {
  text-transform: uppercase;
}

.t-lead,
.t-card {
  font-family: var(--type-lead-family);
  font-size: var(--type-lead-size);
  font-weight: var(--type-lead-weight);
  line-height: var(--type-lead-line-height);
}

.t-body,
.t-editorial {
  font-family: var(--type-body-family);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line-height);
}

.t-ui,
.t-label,
.t-subsection {
  font-family: var(--type-ui-family);
  font-size: var(--type-ui-size);
  font-weight: var(--type-ui-weight);
  line-height: var(--type-ui-line-height);
  letter-spacing: var(--type-ui-tracking);
}

.t-button {
  font-family: var(--type-button-family);
  font-size: var(--type-button-size);
  font-weight: var(--type-button-weight);
  line-height: var(--type-button-line-height);
  letter-spacing: var(--type-button-tracking);
  text-transform: uppercase;
}

.t-meta,
.t-help,
.t-caption {
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}

.t-kicker {
  font-family: var(--type-kicker-family);
  font-size: var(--type-kicker-size);
  font-weight: var(--type-kicker-weight);
  line-height: var(--type-kicker-line-height);
  letter-spacing: var(--type-kicker-tracking);
  text-transform: uppercase;
}

.t-navigation {
  font-family: var(--type-navigation-family);
  font-size: var(--type-navigation-size);
  font-weight: var(--type-navigation-weight);
  line-height: var(--type-navigation-line-height);
}

.t-swatch {
  font-family: var(--type-swatch-family);
  font-size: var(--type-swatch-size);
  font-weight: var(--type-swatch-weight);
  line-height: var(--type-swatch-line-height);
}

.o-site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  padding-block-start: var(--site-header-height);
}

.has-hero-header .o-site {
  padding-block-start: 0;
}

.o-site > .o-main {
  flex: 1;
}

.o-logo {
  display: block;
  color: inherit;
  text-decoration: none;
}

.o-logo__image {
  width: 100%;
  height: auto;
}

.o-logo__text {
  font-family: var(--font-serif);
  font-size: 1.2rem;
}

.o-logo--header {
  flex: 0 0 auto;
  width: 9.5rem;
}

.o-logo--footer {
  display: block;
  width: min(100%, var(--footer-logo-width));
}
.o-logo--footer .o-logo__image {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1199px) {
  .o-logo--header {
    width: 8rem;
  }
}
.o-button,
.o-button--wide,
.search-submit,
.form-submit .submit,
.post-password-form input[type=submit] {
  --button-normal-color: var(--color-text-muted);
  --button-normal-background: transparent;
  --button-normal-border: var(--color-text-muted);
  --button-active-color: var(--color-white);
  --button-active-background: var(--color-text);
  --button-active-border: transparent;
  border: 0.05rem solid var(--button-normal-border);
  color: var(--button-normal-color);
  background-color: var(--button-normal-background);
  font-family: var(--type-button-family);
  font-size: var(--type-button-size);
  font-weight: var(--type-button-weight);
  line-height: var(--type-button-line-height);
  letter-spacing: var(--type-button-tracking);
  text-transform: uppercase;
}

.o-button--filled {
  --button-normal-background: var(--color-button-fill);
  --button-normal-border: transparent;
}

.o-button--wide {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 15.75rem;
  max-width: 100%;
  min-height: 2.35rem;
  padding: 0.55rem 1.5rem;
  border-radius: 2rem;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  text-wrap: balance;
}

.o-button--contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.3rem 2rem;
  border-radius: 2rem;
  text-decoration: none;
  text-align: center;
}

:root:not(.has-gsap) :is(.o-button, .o-button--wide, .search-submit, .form-submit .submit, .post-password-form input[type=submit]):not(:disabled):not([aria-disabled=true]):focus-visible {
  color: var(--button-active-color);
  background-color: var(--button-active-background);
  border-color: var(--button-active-border);
}
@media (hover: hover) {
  :root:not(.has-gsap) :is(.o-button, .o-button--wide, .search-submit, .form-submit .submit, .post-password-form input[type=submit]):not(:disabled):not([aria-disabled=true]):hover {
    color: var(--button-active-color);
    background-color: var(--button-active-background);
    border-color: var(--button-active-border);
  }
}

@media (max-width: 767px) {
  .o-button--wide {
    min-width: min(100%, 16rem);
    max-width: 100%;
  }
  .o-button--contact {
    padding-inline: 1.2rem;
  }
}
@media (max-width: 480px) {
  .o-button--contact {
    width: 100%;
    max-width: 21rem;
  }
}
.o-button--editorial {
  min-width: 0;
  padding-inline: 1.8rem;
}

.o-form {
  --form-field-border: var(--color-text);
  --form-error-color: #9a1f1f;
  --form-field-radius: 0.5rem;
  --form-message-height: 6rem;
  display: block;
  margin: 0;
  font-family: var(--type-body-family);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line-height);
}

.o-form__fields {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
}

.o-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.o-form__field {
  display: block;
  min-width: 0;
}
.o-form__field .wpcf7-form-control-wrap {
  display: block;
}
.o-form__field input:not([type=hidden]):not([type=checkbox]),
.o-form__field select,
.o-form__field textarea {
  display: block;
  width: 100%;
  min-height: 2.2rem;
  padding: 0.45rem 0.65rem;
  border: 0.05rem solid var(--form-field-border);
  border-radius: var(--form-field-radius);
  color: var(--color-text);
  background: var(--color-white);
  font: inherit;
}
.o-form__field input::placeholder,
.o-form__field textarea::placeholder {
  color: var(--color-text);
  opacity: 1;
}
.o-form__field textarea {
  height: var(--form-message-height);
  min-height: var(--form-message-height);
  resize: vertical;
}
.o-form__field .wpcf7-not-valid {
  --form-field-border: var(--form-error-color);
  border-color: var(--form-error-color);
}

.o-form__label {
  display: block;
  margin-block-end: 0.4rem;
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}

.o-form__privacy {
  margin-block-start: 0.1rem;
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}
.o-form__privacy .wpcf7-list-item {
  margin: 0;
}
.o-form__privacy .wpcf7-list-item > label {
  display: flex;
  align-items: start;
  gap: 0.35rem;
}
.o-form__privacy input[type=checkbox] {
  flex: 0 0 0.7rem;
  width: 0.7rem;
  height: 0.7rem;
  margin: 0.12rem 0 0;
  accent-color: var(--color-accent);
}

.o-form__actions {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-block-start: 1rem;
}
.o-form__actions .wpcf7-spinner {
  position: absolute;
  inset-inline-start: calc(50% + 4.1rem);
  margin: 0;
}

.o-form__submit {
  min-width: 7rem;
  min-height: 2.35rem;
  padding: 0.35rem 1.5rem;
  border-radius: 2rem;
  font-family: var(--type-button-family);
  font-size: var(--type-button-size);
  font-weight: var(--type-button-weight);
  line-height: var(--type-button-line-height);
  letter-spacing: var(--type-button-tracking);
  text-align: center;
}
.o-form__submit:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.o-form__trap {
  display: none;
}

.o-form .wpcf7-not-valid-tip {
  margin-block-start: 0.25rem;
  color: var(--form-error-color);
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}

.o-form .wpcf7-response-output {
  margin: 1rem 0 0;
  padding: 0.6rem;
  border: 0.1rem solid var(--color-accent);
  border-radius: 0.25rem;
  color: var(--color-text);
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}

.o-form-panel {
  --form-panel-border: var(--color-text-muted);
  --form-panel-radius: 3.6rem;
  padding: 2.3rem 2.8rem 2.15rem;
  border: 0.05rem solid var(--form-panel-border);
  border-radius: var(--form-panel-radius);
  color: var(--color-text);
  background: transparent;
}
.o-form-panel .o-form {
  --form-field-border: var(--form-panel-border);
  --form-field-radius: 1.4rem;
  --form-message-height: 6.6rem;
}
.o-form-panel .o-form__fields {
  gap: 1.3rem;
}
.o-form-panel .o-form__row {
  gap: 1.5rem;
}
.o-form-panel .o-form__field input:not([type=hidden]):not([type=checkbox]),
.o-form-panel .o-form__field select,
.o-form-panel .o-form__field textarea {
  min-height: 2.35rem;
  padding-inline: 1.1rem;
}
.o-form-panel .o-form__field input::placeholder,
.o-form-panel .o-form__field textarea::placeholder {
  color: var(--color-border);
}
.o-form-panel .o-form__field select {
  appearance: none;
  padding-inline-end: 2.6rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23000' stroke-width='1.25'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.1rem center;
  background-size: 0.6rem 0.4rem;
}
.o-form-panel .o-form__field textarea {
  min-height: var(--form-message-height);
  padding-block: 0.75rem;
  border-radius: 2rem;
}
.o-form-panel .o-form__privacy {
  color: var(--color-border);
}
.o-form-panel .o-form__actions {
  margin-block-start: 2.5rem;
}
.o-form-panel .o-form__actions .wpcf7-spinner {
  inset-block-start: calc(100% + 0.4rem);
  inset-inline-start: 50%;
  transform: translateX(-50%);
}
.o-form-panel .o-form__submit {
  min-width: 10.5rem;
}

.o-form-panel__header {
  margin-block-end: 1.25rem;
  text-align: center;
}

.o-form-panel__title {
  text-transform: uppercase;
}

.o-form-panel__subtitle {
  margin-block-start: 0.2rem;
}

.o-form-section {
  width: 100%;
  max-width: 43rem;
  margin: 0 auto clamp(3rem, 8vw, 6rem);
  scroll-margin-block-start: calc(var(--site-header-height, 4rem) + 1rem);
}
.o-form-section .wpcf7 {
  margin: 0;
}

.o-form-section__subtitle {
  margin-block-start: 0.4rem;
}

.o-form-section__purpose {
  padding-block-start: 0.6rem;
  color: var(--color-text-muted);
}

.o-form-section__unavailable {
  padding-block: 1rem;
}

@media (max-width: 767px) {
  .o-form-panel {
    --form-panel-radius: 2.5rem;
    padding: 2rem 1.2rem;
  }
  .o-form-panel .o-form__fields {
    gap: 0.8rem;
  }
  .o-form-panel .o-form__actions {
    margin-block-start: 2rem;
  }
}
@media (max-width: 480px) {
  .o-form__row {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Site components. */
.b-header {
  --header-current-height: var(--site-header-height);
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  color: var(--color-text);
  background-color: var(--color-background);
}

.has-hero-header .b-header:not(.is-scrolled):not(.is-open) {
  color: var(--color-text-inverse);
  background-color: transparent;
  text-shadow: 0 0.05rem 0.4rem rgba(0, 0, 0, 0.35);
}
.has-hero-header .b-header:not(.is-scrolled):not(.is-open) .o-logo__image {
  filter: brightness(0) invert(1);
}

.b-header.is-scrolled {
  --header-current-height: var(--site-header-compact-height);
}

.b-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 95%;
  max-width: none;
  height: var(--header-current-height);
}

.b-header__panel {
  font-family: var(--type-navigation-family);
  font-size: var(--type-navigation-size);
  font-weight: var(--type-navigation-weight);
  line-height: var(--type-navigation-line-height);
}

.b-header__panel-inner {
  width: 100%;
  max-width: none;
}

.b-header__menu,
.b-header__menu .sub-menu {
  margin: 0;
  padding: 0;
  list-style: none;
}

.b-header__menu > .menu-item {
  position: relative;
}

.b-header__link {
  display: block;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}

:root:not(.has-gsap) .b-header__panel .b-header__link:is(:hover, :focus-visible) {
  opacity: var(--link-hover-opacity);
}

.b-header__link--primary,
.b-header__link--secondary {
  text-transform: uppercase;
}

.b-header__link--primary {
  letter-spacing: 0.04rem;
  white-space: nowrap;
}

.b-header__submenu-toggle {
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}

.b-header__link--gateway,
.b-header__link--gateway .b-header__submenu-toggle {
  cursor: default;
}

.b-header__submenu-icon {
  display: block;
  width: 0.3rem;
  height: 0.3rem;
  border-inline-end: 0.05rem solid currentColor;
  border-block-end: 0.05rem solid currentColor;
  transform: rotate(45deg);
}

.b-header__toggle {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}

.b-header__toggle-icon {
  position: relative;
  display: block;
  width: 1.2rem;
  height: 1rem;
}
.b-header__toggle-icon span {
  position: absolute;
  inset-inline: 0;
  top: 50%;
  height: 0.05rem;
  background: currentColor;
  transform: translateY(-50%);
}
.b-header__toggle-icon span:first-child {
  transform: translateY(calc(-50% - 0.3rem));
}
.b-header__toggle-icon span:last-child {
  transform: translateY(calc(-50% + 0.3rem));
}

@media (min-width: 1200px) {
  .b-header__toggle {
    display: none;
  }
  .b-header__panel {
    position: absolute;
    inset-inline-start: 50%;
    transform: translateX(-50%);
  }
  .b-header__menu {
    display: flex;
    align-items: center;
    gap: clamp(0.75rem, 1.65vw, 1.2rem);
  }
  .b-header__menu > .menu-item > .b-header__link {
    padding-block: 0.8rem;
  }
  .b-header__menu > .menu-item > .b-header__submenu-toggle {
    position: absolute;
    inset: 0 -0.75rem 0 auto;
    width: 0.75rem;
    opacity: 0;
  }
  .b-header__menu > .menu-item > .b-header__submenu-toggle:focus-visible {
    opacity: 1;
  }
  .b-header__link--gateway > .b-header__submenu-toggle {
    display: none;
  }
  .b-header__submenu {
    position: absolute;
    inset-block-start: calc(100% - 0.5rem);
    inset-inline-start: -0.8rem;
    width: max-content;
    min-width: 12rem;
    max-width: 18rem;
    padding: 0.4rem 0.8rem;
    color: var(--color-text);
    background-color: var(--color-background);
    text-shadow: none;
  }
  .sub-menu .b-header__link {
    padding-block: 0.3rem;
    font-size: var(--type-navigation-size);
    line-height: 1.4;
    letter-spacing: 0.025rem;
  }
  .b-header:not(.is-enhanced) .b-header__submenu {
    display: none;
  }
  .b-header:not(.is-enhanced) .menu-item:is(:hover, :focus-within) > .b-header__submenu {
    display: block;
  }
}
@media (max-width: 1199px) {
  :root {
    --site-header-height: 4.5rem;
  }
  .b-header__inner {
    width: calc(100% - 2rem);
  }
  .b-header__panel {
    position: absolute;
    inset: 100% -1rem auto;
    min-height: calc(100svh - var(--header-current-height));
    max-height: calc(100svh - var(--header-current-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--color-text);
    background: var(--color-background);
    padding: 1rem 1rem 2rem;
  }
  .b-header__menu > .menu-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .b-header__menu > .menu-item > .b-header__link {
    padding-block: 0.65rem;
    font-size: 0.8rem;
  }
  .b-header__menu > .menu-item > .b-header__submenu-toggle {
    width: 2.2rem;
  }
  .b-header__link--gateway {
    display: flex;
    justify-content: space-between;
    align-items: center;
    grid-column: 1/-1;
    width: 100%;
    text-align: start;
  }
  .b-header__link--gateway > .b-header__submenu-toggle {
    width: 2.2rem;
  }
  .b-header__submenu {
    grid-column: 1/-1;
    padding: 0.4rem 0.8rem;
  }
  .sub-menu .b-header__link {
    padding-block: 0.45rem;
    font-size: 0.8rem;
  }
}
.is-menu-open {
  overflow: hidden;
}

.b-footer {
  --layout-gutter: clamp(1rem, 8.25vw, 8rem);
  --layout-max-width: 72rem;
  --footer-background: var(--color-background);
  --footer-color: var(--color-text);
  --footer-font-size: var(--type-ui-size);
  --footer-heading-size: var(--type-ui-size);
  --footer-claim-size: var(--type-meta-size);
  --footer-legal-size: var(--type-meta-size);
  --footer-logo-width: 13rem;
  color: var(--footer-color);
  background: var(--footer-background);
}
.b-footer a {
  color: inherit;
  text-decoration: none;
}

:root:not(.has-gsap) .b-footer a:is(:hover, :focus-visible) {
  opacity: var(--link-hover-opacity);
}

.b-footer__main {
  display: grid;
  gap: 3rem;
  padding-block-start: 5rem;
}

.b-footer__brand {
  min-width: 0;
}

.b-footer__claim {
  max-width: 16rem;
  margin-block-start: 0.8rem;
  font-family: var(--font-sans);
  font-size: var(--footer-claim-size);
  font-weight: 400;
  line-height: 1.55;
}

.b-footer__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.8rem 1.5rem;
}

.b-footer__column {
  min-width: 0;
}

.b-footer__heading {
  margin-block-end: 0.65rem;
  font-family: var(--font-sans);
  font-size: var(--footer-heading-size);
  font-weight: var(--type-ui-weight);
  line-height: 1.2;
}

.b-footer__menu,
.b-footer__legal-menu {
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-sans);
  font-weight: 400;
}

.b-footer__menu {
  font-size: var(--footer-font-size);
  line-height: 1.6;
}
.b-footer__menu a {
  display: inline-block;
  overflow-wrap: anywhere;
}

.b-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.2rem;
  padding-block: 3rem;
  font-family: var(--font-sans);
  font-size: var(--footer-legal-size);
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}

.b-footer__copyright {
  white-space: nowrap;
}

.b-footer__legal-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.1rem;
  font-size: inherit;
}
.b-footer__legal-menu > .menu-item::before {
  margin-inline: 0.05rem 0.2rem;
  content: "·";
}

@media (min-width: 600px) {
  .b-footer__columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .b-footer__main {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
@media (max-width: 767px) {
  .b-footer__main {
    padding-block-start: 3rem;
  }
  .b-footer__bottom {
    padding-block: 2.5rem;
  }
}
.c-product-single {
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.1vw, 8rem);
  --product-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  --product-column-gap: 9%;
  --product-rule-color: var(--color-text);
  --product-muted: var(--color-text);
  --product-inquiry-background: var(--color-white, #fff);
  --product-sample-size: 2.4rem;
  padding-block: clamp(2.5rem, 5.7vw, 4.1rem) clamp(4rem, 7vw, 7rem);
}

.c-product-single__detail {
  display: grid;
  grid-template-columns: var(--product-columns);
  align-items: start;
  gap: var(--product-column-gap);
}

.c-product-gallery,
.c-product-single__information {
  min-width: 0;
}

.c-product-gallery__stage {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
}

.c-product-gallery__zoom {
  display: block;
  width: 100%;
  cursor: zoom-in;
}

.c-product-gallery__main-image {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
}

.c-product-gallery__empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--product-rule-color);
}
.c-product-gallery__empty svg {
  width: 30%;
  stroke: currentColor;
  stroke-width: 0.6;
}

.c-product-gallery__thumbnails {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.7rem;
  margin-block-start: 2.2rem;
}

.c-product-gallery__thumbnail {
  padding: 0;
  border: 0;
  background: transparent;
}
.c-product-gallery__thumbnail.is-active {
  box-shadow: 0 0.15rem 0 var(--color-text-muted);
}
.c-product-gallery__thumbnail img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
}

.c-product-single__eyebrow {
  margin-block-end: 0.8rem;
}

.c-product-single__subcategory {
  margin-block-start: 0.35rem;
  color: var(--color-text-muted);
}

.c-product-single__header + .c-product-single__description {
  margin-block-start: 1.65rem;
}

.c-product-single__description > h2 {
  margin-block-end: 0.45rem;
}
.c-product-single__description p + p {
  margin-block-start: 0.8rem;
}

.c-product-single__dimensions {
  margin-block-start: 1.6rem;
  padding-block-start: 1rem;
  border-block-start: 0.05rem solid var(--product-rule-color);
}
.c-product-single__dimensions h2 {
  margin-block-end: 0.45rem;
}
.c-product-single__dimensions dl > div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
}

.c-product-configurator {
  margin-block-start: 5.8rem;
}
.c-product-configurator > h2 {
  margin-block-end: 1.25rem;
}

.c-product-configurator__group {
  border-block-start: 0.05rem solid var(--product-rule-color);
}
.c-product-configurator__group:last-of-type {
  border-block-end: 0.05rem solid var(--product-rule-color);
}
.c-product-configurator__group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  min-height: 3rem;
  padding-block: 0.6rem;
  list-style: none;
  cursor: pointer;
}
.c-product-configurator__group > summary::-webkit-details-marker {
  display: none;
}
.c-product-configurator__group[open] > summary .c-product-configurator__chevron {
  transform: rotate(180deg);
}

.c-product-configurator__chevron {
  flex: 0 0 auto;
  width: 0.4rem;
  height: 0.4rem;
  margin-inline-end: 0.9rem;
}
.c-product-configurator__chevron::after {
  display: block;
  width: 100%;
  height: 100%;
  border-inline-end: 0.05rem solid var(--product-rule-color);
  border-block-end: 0.05rem solid var(--product-rule-color);
  transform: rotate(45deg);
  content: "";
}

.c-product-configurator__options {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: start;
  gap: 1.1rem 0.6rem;
  min-width: 0;
  max-height: 18rem;
  margin: 0;
  padding: 0.25rem 0.2rem 1rem;
  border: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.c-product-configurator__enlarge {
  display: inline-block;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.c-product-configurator__enlarge:hover {
  text-decoration: none;
}

.c-product-option {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 0.35rem;
  min-width: 0;
  cursor: pointer;
  text-align: center;
}
.c-product-option > input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.c-product-option > input:focus-visible + .c-product-option__sample {
  outline: 0.1rem solid var(--color-focus);
  outline-offset: 0.2rem;
}
.c-product-option > input:checked + .c-product-option__sample {
  box-shadow: 0 0 0 0.1rem var(--color-background), 0 0 0 0.15rem var(--color-text);
}
.c-product-option > input:checked + .c-product-option__sample::after {
  position: absolute;
  inset-block-end: -0.1rem;
  inset-inline-end: -0.1rem;
  display: grid;
  place-items: center;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  color: var(--color-text-inverse);
  background: var(--color-text);
  font-size: 0.5rem;
  content: "✓";
}

.c-product-option__sample {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, var(--product-sample-size));
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-white, #fff);
  pointer-events: none;
}
.c-product-option__sample img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.c-product-option__sample--empty {
  border: 0.05rem solid var(--product-rule-color);
  font-size: var(--type-kicker-size);
  color: var(--product-muted);
}

.c-product-option--base .c-product-option__sample {
  border-radius: 0;
}
.c-product-option--base .c-product-option__sample img {
  object-fit: contain;
}

.c-product-option--color .c-product-option__sample {
  border: 0.05rem solid var(--product-rule-color);
}

.c-product-option__name {
  width: 100%;
  font-family: var(--type-kicker-family);
  font-size: var(--type-kicker-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-kicker-line-height);
  letter-spacing: normal;
  text-transform: none;
  overflow-wrap: anywhere;
  pointer-events: none;
}

.c-product-configurator__note {
  margin-block-start: 1.2rem;
  margin-block-end: 0.8rem;
  color: var(--product-muted);
}

.c-product-configurator__help {
  margin-block-start: 4rem;
}
.c-product-configurator__help a {
  display: inline-block;
  margin-block-start: 0.4rem;
}

.c-product-contact {
  --product-contact-inset: clamp(1.25rem, 2.5vw, 2rem);
  display: grid;
  grid-template-columns: var(--product-columns);
  align-items: start;
  gap: var(--product-column-gap);
  width: 100%;
  margin-block-start: clamp(3rem, 6vw, 5rem);
  scroll-margin-block-start: calc(var(--site-header-compact-height) + 1.5rem);
}

.c-product-contact__intro {
  max-width: 24rem;
  padding-block-start: calc(var(--product-contact-inset) + 0.05rem);
}
.c-product-contact__intro h2 {
  margin-block-end: 0.75rem;
}
.c-product-contact__intro > p + p {
  margin-block-start: 0.8rem;
}

.c-product-contact__benefits {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}
.c-product-contact__benefits li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.c-product-contact__benefits svg {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.c-product-inquiry__context {
  margin-block-end: 0.65rem;
}

.c-product-inquiry {
  min-width: 0;
  padding: var(--product-contact-inset);
  padding-block-end: max(var(--product-contact-inset), 2rem);
  border: 0.05rem solid var(--product-rule-color);
  border-radius: 1rem;
  background: var(--product-inquiry-background);
}
.c-product-inquiry .c-product-inquiry__subtitle {
  margin-block: 0.75rem 1.25rem;
}
.c-product-inquiry .c-product-inquiry__form.wpcf7-form {
  --form-field-border: var(--color-text);
  --form-field-radius: 1rem;
  --form-message-height: 6.6rem;
}
.c-product-inquiry .o-form__fields,
.c-product-inquiry .o-form__row {
  gap: 0.85rem;
}
.c-product-inquiry .o-form__row {
  grid-template-columns: minmax(0, 1fr);
}
.c-product-inquiry .o-form__field input:not([type=hidden]):not([type=checkbox]),
.c-product-inquiry .o-form__field select,
.c-product-inquiry .o-form__field textarea {
  min-height: 2.4rem;
  padding: 0.45rem 0.9rem;
  background: var(--color-white, #fff);
}
.c-product-inquiry .c-product-inquiry__context {
  margin-block-end: 1.25rem;
}
.c-product-inquiry .o-form__privacy {
  margin-block-start: 0.1rem;
}
.c-product-inquiry .o-form__actions {
  margin-block-start: 1.25rem;
}
.c-product-inquiry .o-form__actions .wpcf7-spinner {
  inset-block-start: calc(100% + 0.4rem);
  inset-inline-start: 50%;
  transform: translateX(-50%);
}
.c-product-inquiry .o-form__submit {
  min-width: 10.5rem;
  min-height: 2.35rem;
  padding: 0.45rem 1.5rem;
}

.c-product-inquiry__summary {
  padding: 0.85rem 1rem;
  border-radius: 0.8rem;
  color: var(--color-text-inverse);
  background: var(--color-text);
  font-family: var(--type-body-family);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line-height);
  overflow-wrap: anywhere;
}
.c-product-inquiry__summary ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-product-inquiry__placeholder {
  margin-block-start: 0.4rem;
  font-family: var(--type-meta-family);
  font-size: var(--type-meta-size);
  font-weight: var(--type-meta-weight);
  line-height: var(--type-meta-line-height);
}

@media (min-width: 960px) and (max-width: 1199px) {
  .c-product-configurator__options {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 959px) {
  .c-product-single {
    --layout-gutter: clamp(1rem, 5vw, 2rem);
    --product-columns: minmax(0, 1fr);
    --product-column-gap: 2rem;
    padding-block-start: 2rem;
  }
  .c-product-gallery {
    width: 100%;
    max-width: 30rem;
    margin-inline: auto;
  }
  .c-product-gallery__thumbnails {
    gap: 1rem;
    margin-block-start: 1rem;
  }
  .c-product-configurator {
    margin-block-start: 3rem;
  }
  .c-product-configurator__help {
    margin-block-start: 2rem;
  }
  .c-product-contact {
    max-width: 30rem;
    margin-inline: auto;
  }
  .c-product-contact__intro {
    padding-block-start: 0;
  }
}
@media (max-width: 480px) {
  .c-product-single {
    --product-sample-size: 2.1rem;
  }
  .c-product-configurator__options {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 359px) {
  .c-product-configurator__options {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.c-product-single .c-catalogue-breadcrumbs {
  padding-block-start: 0;
  margin-block-end: clamp(1rem, 2.5vw, 1.8rem);
}

.c-product-single__eyebrow--with-logo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.c-product-single__brand-logo {
  width: auto;
  max-width: 7rem;
  height: 1.25rem;
  object-fit: contain;
}

:root:has(.c-product-lightbox[open]) {
  overflow: hidden;
}

.c-product-lightbox {
  max-inline-size: calc(100% - 1.5rem);
  max-block-size: calc(100% - 1.5rem);
  margin: auto;
  padding: 0.65rem;
  border: 0;
  border-radius: 0.5rem;
  color: var(--color-text);
  background: var(--color-background);
  overscroll-behavior: contain;
  -webkit-user-select: none;
  user-select: none;
}
.c-product-lightbox:not([open]) {
  display: none;
}
.c-product-lightbox[open] {
  display: grid;
  gap: 0.4rem;
}
.c-product-lightbox::backdrop {
  background: rgba(0, 0, 0, 0.75);
}

.c-product-lightbox--carousel {
  inline-size: min(68rem, 100% - 1.5rem);
}

.c-product-lightbox__close,
.c-product-lightbox__arrow {
  display: grid;
  place-items: center;
  inline-size: 2.2rem;
  block-size: 2.2rem;
  padding: 0;
  border-radius: 50%;
  cursor: pointer;
}
.c-product-lightbox__close svg,
.c-product-lightbox__arrow svg {
  width: 0.95rem;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.c-product-lightbox__close {
  justify-self: end;
  border: 0.05rem solid currentColor;
  color: inherit;
  background: transparent;
}

.c-product-lightbox__stage {
  position: relative;
}

.c-product-lightbox__arrow {
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  border: 0;
  color: var(--color-white);
  background: rgba(0, 0, 0, 0.7);
}
.c-product-lightbox__arrow--previous {
  inset-inline-start: 0.25rem;
}
.c-product-lightbox__arrow--next {
  inset-inline-end: 0.25rem;
}

.c-product-lightbox__counter {
  margin: 0;
  text-align: center;
}

.c-product-lightbox__media {
  display: grid;
  place-items: center;
  min-inline-size: min(42vw, 12rem);
  min-block-size: min(20vh, 8rem);
}
.c-product-lightbox__media img {
  -webkit-touch-callout: none;
  max-inline-size: min(100vw - 3rem, 64rem);
  max-block-size: calc(100vh - 5.5rem);
  max-block-size: calc(100dvh - 5.5rem);
  object-fit: contain;
}

.c-product-lightbox--carousel .c-product-lightbox__media {
  grid-template: minmax(0, 1fr)/minmax(0, 1fr);
  block-size: min(42rem, 100vw, 100vh - 7.5rem);
  block-size: min(42rem, 100vw, 100dvh - 7.5rem);
  min-inline-size: 0;
  min-block-size: 0;
  touch-action: pan-y pinch-zoom;
}
.c-product-lightbox--carousel .c-product-lightbox__media img {
  inline-size: 100%;
  block-size: 100%;
  max-inline-size: 100%;
  max-block-size: 100%;
}

.c-product-lightbox--upholstery {
  --upholstery-preview-size: min(26rem, calc(100vw - 3rem), calc(100vh - 10rem));
  inline-size: min(38rem, 100% - 1.5rem);
}
@supports (height: 100dvh) {
  .c-product-lightbox--upholstery {
    --upholstery-preview-size: min(26rem, calc(100vw - 3rem), calc(100dvh - 10rem));
  }
}
.c-product-lightbox--upholstery .c-product-lightbox__media {
  grid-template: minmax(0, 1fr)/minmax(0, 1fr);
  inline-size: var(--upholstery-preview-size);
  block-size: var(--upholstery-preview-size);
  min-inline-size: 0;
  min-block-size: 0;
  max-inline-size: 100%;
  margin-inline: auto;
  touch-action: pan-y pinch-zoom;
}
.c-product-lightbox--upholstery .c-product-lightbox__media img {
  inline-size: auto;
  block-size: auto;
  max-inline-size: 100%;
  max-block-size: 100%;
  object-fit: contain;
}
.c-product-lightbox--upholstery .c-product-lightbox__close,
.c-product-lightbox--upholstery .c-product-lightbox__arrow {
  min-inline-size: 44px;
  min-block-size: 44px;
}
.c-product-lightbox--upholstery .c-product-lightbox__caption {
  max-inline-size: 100%;
  margin: 0;
  text-align: center;
  overflow-wrap: anywhere;
}
.c-product-lightbox--upholstery .c-product-lightbox__counter {
  margin-block-start: 0.2rem;
}

.c-catalogue {
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.15vw, 8rem);
  --catalogue-family-rule-thickness: 0.1rem;
  --catalogue-grid-gap: clamp(1rem, 4.65vw, 3.35rem);
  --catalogue-intro-space-before: 3rem;
  --catalogue-intro-space-after: clamp(2.5rem, 5.6vw, 4rem);
  --catalogue-cta-space-before: clamp(4rem, 11.5vw, 8.25rem);
  --catalogue-cta-space-after: clamp(4rem, 10.5vw, 7.5rem);
  font-family: var(--type-body-family);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line-height);
}

.c-catalogue-hero {
  width: 100%;
  aspect-ratio: 2.7;
  overflow: hidden;
}

.c-catalogue-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.c-catalogue-breadcrumbs {
  padding-block-start: clamp(2rem, 7.3vw, 5.25rem);
}
.c-catalogue-breadcrumbs a {
  text-decoration: none;
}
.c-catalogue-breadcrumbs a:hover,
.c-catalogue-breadcrumbs a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.c-catalogue-breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2em;
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-catalogue-breadcrumbs__separator {
  margin-inline-end: 0.2em;
}

.c-catalogue__intro {
  padding-block: var(--catalogue-intro-space-before) var(--catalogue-intro-space-after);
  text-align: center;
}

.c-catalogue__title {
  max-width: 48rem;
  margin-inline: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.c-catalogue-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.75rem var(--catalogue-grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-catalogue-grid > li {
  min-width: 0;
}

.c-catalogue-card {
  display: block;
  text-align: center;
  text-decoration: none;
}
.c-catalogue-card:focus-visible {
  border-radius: 0.05rem;
}

.c-catalogue-card__media {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  overflow: hidden;
}

.c-catalogue-card__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0.65rem;
  object-fit: contain;
}

.c-catalogue-card__title {
  display: block;
  margin-block-start: 0.45rem;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.c-catalogue--category,
.c-catalogue--brand {
  --catalogue-intro-space-before: 2.15rem;
  --catalogue-intro-space-after: 3.25rem;
  --catalogue-cta-space-before: clamp(4rem, 8vw, 5.5rem);
  --catalogue-cta-space-after: clamp(3rem, 7vw, 5rem);
}
.c-catalogue--category .c-catalogue-breadcrumbs,
.c-catalogue--brand .c-catalogue-breadcrumbs {
  padding-block-start: 3rem;
}

.c-catalogue__brand-logo {
  display: block;
  width: auto;
  height: clamp(3rem, 7vw, 5rem);
  max-width: min(18rem, 100%);
  margin-inline: auto;
  object-fit: contain;
}

.c-catalogue__brand-description {
  max-width: 43rem;
  margin: 1.5rem auto 0;
}

.c-catalogue-family--brand + .c-catalogue-family--brand {
  margin-block-start: clamp(3rem, 6vw, 5rem);
}
.c-catalogue-family--brand .c-catalogue-grid {
  margin-block-start: 1.5rem;
}

.c-catalogue-family__title {
  display: flex;
  align-items: baseline;
  gap: clamp(0.8rem, 2.5vw, 2.15rem);
  overflow-wrap: anywhere;
}
.c-catalogue-family__title::after {
  flex: 1 1 auto;
  min-width: 1.5rem;
  height: var(--catalogue-family-rule-thickness);
  background: var(--color-accent-line);
  content: "";
}

.c-catalogue-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-block: clamp(1.5rem, 3.8vw, 3rem) 2rem;
}

.c-catalogue-filters__button {
  --button-normal-border: color-mix(in srgb, var(--color-border) 40%, transparent);
  max-width: 100%;
  min-height: 2rem;
  padding: 0.35rem 0.8rem;
  border-radius: 2rem;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.c-catalogue-filters__button[aria-current=page] {
  --button-normal-color: var(--color-white);
  --button-normal-background: var(--color-text-muted);
  --button-normal-border: transparent;
}

.c-catalogue-brand {
  margin-block-start: 1.3rem;
}
.c-catalogue-brand:not([hidden]) ~ .c-catalogue-brand {
  margin-block-start: clamp(2.5rem, 5vw, 4rem);
}

.c-catalogue-brand__title {
  display: flex;
  align-items: center;
  min-height: 3.5rem;
  margin-block-end: 1.5rem;
  overflow-wrap: anywhere;
}

.c-catalogue-brand__link {
  display: inline-flex;
  max-width: 100%;
  color: inherit;
  text-decoration: none;
}
.c-catalogue-brand__link:hover {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.c-catalogue-brand__logo {
  display: block;
  width: auto;
  height: 3rem;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

.c-catalogue-cta {
  padding-block: var(--catalogue-cta-space-before) var(--catalogue-cta-space-after);
  text-align: center;
}

.c-catalogue-cta__title {
  max-width: 45rem;
  margin-inline: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.c-catalogue-cta__body {
  max-width: 43rem;
  margin: 1rem auto 0;
}

.c-catalogue-cta__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 2.7rem;
  margin-block-start: 1.5rem;
}

.c-catalogue__empty {
  padding-block: 2rem;
  text-align: center;
}

@media (min-width: 1200px) {
  .c-catalogue-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .c-catalogue {
    --catalogue-grid-gap: 1rem;
    --catalogue-intro-space-before: 2rem;
    --catalogue-intro-space-after: 3rem;
  }
  .c-catalogue-hero {
    aspect-ratio: 1.65;
  }
  .c-catalogue--category .c-catalogue-breadcrumbs,
  .c-catalogue--brand .c-catalogue-breadcrumbs {
    padding-block-start: 2rem;
  }
  .c-catalogue-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 1.5rem;
  }
  .c-catalogue-family__title {
    gap: 1rem;
  }
  .c-catalogue-brand__logo {
    height: 2.3rem;
  }
  .c-catalogue-brand__title {
    min-height: 2.3rem;
  }
  .c-catalogue-cta__links {
    gap: 0.8rem;
    margin-block-start: 2rem;
  }
}
@media (max-width: 480px) {
  .c-catalogue-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .c-catalogue-card__image {
    padding: 1rem;
  }
  .c-catalogue-cta__links {
    flex-direction: column;
    align-items: center;
  }
}
.c-brands {
  --catalogue-intro-space-before: 2.15rem;
  --catalogue-intro-space-after: 3.25rem;
}
.c-brands .c-catalogue-breadcrumbs {
  padding-block-start: 3rem;
}

.c-brands__description {
  max-width: 31rem;
  margin: 1rem auto 0;
  text-wrap: balance;
}

.c-brands__content {
  padding-block-end: clamp(4rem, 8vw, 6rem);
}

.c-brands__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem var(--catalogue-grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-brands__grid > li {
  min-width: 0;
}

.c-brands-card__media {
  display: grid;
  place-items: center;
  min-height: 9rem;
  padding: 1.5rem 0.5rem;
}

.c-brands-card__logo {
  display: block;
  width: auto;
  height: auto;
  max-width: min(13rem, 100%);
  max-height: 5rem;
  object-fit: contain;
}

.c-brands-card__wordmark {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: center;
}

.c-brands__browse {
  margin-block-start: 2.5rem;
  text-align: center;
}
.c-brands__browse a {
  text-decoration: none;
}

@media (max-width: 990px) {
  .c-brands__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
}
@media (max-width: 767px) {
  .c-brands .c-catalogue-breadcrumbs {
    padding-block-start: 2rem;
  }
  .c-brands-card__media {
    min-height: 7.5rem;
  }
}
@media (max-width: 480px) {
  .c-brands__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.c-contact-page {
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.25vw, 8rem);
}

.c-contact-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 2.7;
  min-height: 10rem;
  background: var(--color-text);
  overflow: hidden;
}

.c-contact-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.c-contact-breadcrumb {
  padding-block-start: 2.2rem;
}
.c-contact-breadcrumb a {
  text-decoration: none;
}
.c-contact-breadcrumb a:is(:hover, :focus-visible) {
  text-decoration: underline;
}

.c-contact-intro {
  max-width: 36rem;
  margin-inline: auto;
  padding-block: 2.3rem clamp(3.5rem, 7.5vw, 5.4rem);
  text-align: center;
}
.c-contact-intro > p {
  margin-block-start: 1rem;
}

.c-contact-location {
  display: grid;
  gap: 2rem;
  align-items: center;
}

.c-contact-location--with-map {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.c-contact-details {
  display: grid;
  justify-items: center;
  gap: 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}
.c-contact-details > li {
  width: 100%;
}
.c-contact-details svg {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0 auto 0.6rem;
}
.c-contact-details address {
  font-style: normal;
}
.c-contact-details a {
  text-decoration: none;
}
.c-contact-details a:is(:hover, :focus-visible) {
  text-decoration: underline;
}

.c-contact-details__label {
  display: block;
  margin-block-end: 0.3rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.c-contact-map {
  --contact-map-background: #2d2c28;
  --contact-map-roads: #6d6a61;
  --contact-map-marker: var(--color-button-fill);
  min-width: 0;
  margin: 0;
  border: 0.05rem solid color-mix(in srgb, var(--color-border) 28%, transparent);
  border-radius: 0.8rem;
  overflow: hidden;
}

.c-contact-map__stage {
  position: relative;
  aspect-ratio: 1;
  background: var(--contact-map-background);
}

.c-contact-map__stage > .c-contact-map__canvas {
  position: absolute;
  inset: 0;
}

.c-contact-map__status {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  margin: 0;
  padding: 1.25rem;
  background: var(--contact-map-background);
  color: var(--color-text-inverse);
  text-align: center;
  pointer-events: none;
}

.c-contact-map__caption {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.3rem 1rem;
  padding: 0.8rem 1rem;
}

.c-contact-map__link {
  text-underline-offset: 0.15em;
}

.c-contact-advice {
  padding-block: clamp(3.5rem, 8vw, 6rem) clamp(3rem, 6vw, 4.5rem);
  text-align: center;
}
.c-contact-advice > h2 {
  max-width: 39rem;
  margin-inline: auto;
  text-wrap: balance;
}
.c-contact-advice > p {
  max-width: 36rem;
  margin: 0.9rem auto 0;
}

.c-contact-advice__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.8rem;
  margin-block-start: 1.6rem;
}

@media (max-width: 767px) {
  .c-contact-hero {
    aspect-ratio: 1.8;
  }
  .c-contact-breadcrumb {
    padding-block-start: 1.3rem;
  }
  .c-contact-intro {
    padding-block-start: 1.8rem;
  }
  .c-contact-location--with-map {
    grid-template-columns: minmax(0, 1fr);
  }
  .c-contact-map__stage {
    aspect-ratio: 4/3;
  }
}
@media (max-width: 480px) {
  .c-contact-advice__actions {
    flex-direction: column;
    align-items: center;
  }
}
.c-projects {
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.35vw, 8rem);
  --project-media-ratio: 3 / 2;
  --project-image-gap: 0.7rem;
  --catalogue-cta-space-before: clamp(3rem, 7vw, 5rem);
  --catalogue-cta-space-after: clamp(3rem, 6vw, 4.5rem);
}

.c-projects-hero {
  width: 100%;
  aspect-ratio: 2.45;
  overflow: hidden;
}

.c-projects-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.c-projects-breadcrumb {
  padding-block-start: 2.2rem;
}
.c-projects-breadcrumb a {
  text-decoration: none;
}
.c-projects-breadcrumb a:is(:hover, :focus-visible) {
  text-decoration: underline;
}

.c-projects-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25em;
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-projects__intro {
  padding-block: 2.3rem 3rem;
  text-align: center;
}

.c-projects__title {
  max-width: 48rem;
  margin-inline: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.c-projects__list {
  display: grid;
  row-gap: clamp(4.5rem, 12vw, 7.5rem);
}

.c-project-showcase__main {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "media copy";
  align-items: start;
  gap: clamp(1rem, 1.85vw, 1.5rem);
}

:where(.c-project-showcase:nth-child(even)) .c-project-showcase__main {
  grid-template-areas: "copy media";
}

.c-project-showcase__copy {
  grid-area: copy;
  min-width: 0;
  overflow-wrap: anywhere;
}

.c-project-showcase__location {
  margin-block-end: 0.4rem;
}

.c-project-showcase__description {
  margin-block-start: 0.8rem;
}
.c-project-showcase__description p + p {
  margin-block-start: 0.8rem;
}

.c-project-slider {
  position: relative;
  grid-area: media;
  min-width: 0;
  background: var(--color-surface);
}
.c-project-slider:focus-visible {
  outline-offset: 0.2rem;
}

.c-project-slider__track {
  display: grid;
  aspect-ratio: var(--project-media-ratio);
  overflow: hidden;
  touch-action: pan-y;
}

.c-project-slider__slide {
  grid-area: 1/1;
  min-width: 0;
  margin: 0;
}

.c-project-slider__image {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: var(--project-media-ratio);
  object-fit: cover;
}

.c-project-slider__controls {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: 0.5rem;
  pointer-events: none;
}

.c-project-slider__arrow {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  padding: 0.4rem;
  border: 0;
  border-radius: 50%;
  color: var(--color-white);
  background: rgba(0, 0, 0, 0.4);
  cursor: pointer;
  pointer-events: auto;
}
.c-project-slider__arrow svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  stroke-width: 1.6;
}

.c-project-slider__counter {
  position: absolute;
  inset-block-end: 0.6rem;
  inset-inline-start: 50%;
  padding: 0.2rem 0.6rem;
  border-radius: 1rem;
  color: var(--color-white);
  background: rgba(0, 0, 0, 0.6);
  transform: translateX(-50%);
}

.c-project-showcase__featured {
  display: grid;
  grid-template-columns: repeat(var(--project-feature-count, 3), minmax(0, 1fr));
  gap: var(--project-image-gap);
  margin-block-start: var(--project-image-gap);
}

.c-project-showcase__feature {
  min-width: 0;
  margin: 0;
  aspect-ratio: var(--project-media-ratio);
  background: var(--color-surface);
  overflow: hidden;
}
.c-project-showcase__feature img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-project-showcase.c-project-showcase--without-gallery .c-project-showcase__main {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy";
}
.c-project-showcase.c-project-showcase--without-gallery .c-project-showcase__copy {
  max-width: 36rem;
}

.c-projects--without-items {
  --catalogue-cta-space-before: 0;
}

@media (max-width: 959px) {
  .c-project-showcase .c-project-showcase__main {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "copy" "media";
    gap: 1.25rem;
  }
}
@media (max-width: 767px) {
  .c-projects-hero {
    aspect-ratio: 1.8;
  }
  .c-projects-breadcrumb {
    padding-block-start: 1.3rem;
  }
  .c-projects__intro {
    padding-block: 1.8rem 2.5rem;
  }
  .c-project-showcase__featured {
    grid-template-columns: minmax(0, 1fr);
  }
}
.c-editorial {
  --layout-max-width: 72rem;
  --layout-gutter: clamp(1rem, 8.3vw, 8rem);
  --editorial-media-height: 35vw;
  --editorial-image-gap: clamp(0.4rem, 1vw, 0.7rem);
  --editorial-block-space: clamp(2.5rem, 6vw, 4.5rem);
  --editorial-card-media-height: 26vw;
}

.c-editorial--home {
  --home-hero-height: 100vh;
}

.c-home-opening__media {
  height: var(--home-hero-height);
  aspect-ratio: auto;
}

.c-home-opening__panel {
  position: relative;
  z-index: 2;
  background: var(--color-background);
}

.c-home-opening__frame {
  position: relative;
  height: var(--home-hero-height);
  clip-path: inset(0);
  isolation: isolate;
}
.c-home-opening__frame .c-home-opening__media {
  position: fixed;
  inset: 0 0 auto;
}

.c-editorial--home .c-editorial__blocks {
  scroll-margin-block-start: calc(var(--site-header-height) + 1rem);
}

.c-editorial-hero {
  width: 100%;
  aspect-ratio: 2.7;
  overflow: hidden;
}

.c-editorial-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.c-editorial-breadcrumb {
  padding-block-start: 2.2rem;
}
.c-editorial-breadcrumb a {
  text-decoration: none;
}
.c-editorial-breadcrumb a:is(:hover, :focus-visible) {
  text-decoration: underline;
}

.c-editorial__heading {
  max-width: 48rem;
  margin-inline: auto;
  padding-block: 3rem 1.2rem;
  text-align: center;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.c-editorial-copy p + p {
  margin-block-start: 0.8rem;
}

.c-editorial-intro {
  padding-block-end: var(--editorial-block-space);
  text-align: center;
}
.c-editorial-intro .c-editorial-copy {
  max-width: 36rem;
  margin-inline: auto;
}

.c-editorial-intro__heading + .c-editorial-copy {
  margin-block-start: 0.8rem;
}

.c-editorial-intro__link {
  display: inline-block;
  margin-block-start: 1rem;
  color: var(--color-text-muted);
  text-decoration: underline;
}
.c-editorial-intro__link:hover {
  opacity: 1;
  text-decoration: none;
}

.c-editorial-feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "media copy";
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding-block: clamp(1.5rem, 3vw, 2.5rem);
}
.c-editorial-feature--right {
  grid-template-areas: "copy media";
}
.c-editorial-feature--without-image {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy";
}

.c-editorial-feature__media {
  grid-area: media;
  margin: 0;
  min-width: 0;
  aspect-ratio: 3/2;
}
.c-editorial-feature__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-editorial-feature__copy {
  grid-area: copy;
  min-width: 0;
  text-align: start;
}
.c-editorial-feature__copy h2 {
  margin-block-start: 0.5rem;
  text-wrap: balance;
  scroll-margin-block-start: calc(var(--site-header-height) + 1rem);
}
.c-editorial-feature__copy .c-editorial-copy {
  margin-block-start: 0.9rem;
}
.c-editorial-feature__copy .o-button--editorial {
  margin-block-start: 1.3rem;
}

.c-editorial-cards {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 13fr);
  gap: clamp(1rem, 2vw, 1.75rem);
  padding-block-end: var(--editorial-block-space);
}
.c-editorial-cards--reverse {
  grid-template-columns: minmax(0, 13fr) minmax(0, 7fr);
}

.c-editorial-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.c-editorial-card:only-child {
  grid-column: 1/-1;
}

.c-editorial-card__media {
  height: var(--editorial-card-media-height);
  margin: 0;
}
.c-editorial-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-editorial-card__copy {
  display: flex;
  flex-direction: column;
  flex: 1;
  align-items: flex-start;
  padding-block-start: 1rem;
}
.c-editorial-card__copy h2 {
  margin-block: 0.5rem 0.8rem;
  text-wrap: balance;
}
.c-editorial-card__copy .c-editorial-copy {
  margin-block-end: 1.3rem;
}
.c-editorial-card__copy .o-button--editorial {
  margin-block-start: auto;
}

.c-editorial-images {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--editorial-image-gap);
  height: var(--editorial-media-height);
}
.c-editorial-images--30_70 {
  grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
}
.c-editorial-images--70_30 {
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
}
.c-editorial-images--50_50 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.c-editorial-images + .c-editorial-images {
  margin-block-start: var(--editorial-image-gap);
}

.c-editorial-feature + .c-editorial-images {
  margin-block-start: var(--editorial-block-space);
}

.c-editorial-images__item {
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
}
.c-editorial-images__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-editorial-video {
  height: var(--editorial-media-height);
  background: var(--color-surface);
}
.c-editorial-video video, .c-editorial-video img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-editorial-process {
  padding-block: calc(2 * var(--editorial-block-space));
  text-align: center;
}
.c-editorial-process > .o-button--editorial {
  margin-block-start: 1.8rem;
}

.c-editorial-process__heading {
  margin-block-end: 1.2rem;
}

.c-editorial-process__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}

.c-editorial-process__item {
  padding: clamp(1.3rem, 3vw, 2rem);
  border: 0.05rem solid var(--color-border);
  border-radius: 2rem;
  background: var(--color-white);
}
.c-editorial-process__item h3 {
  margin-block-start: 0.55rem;
  font-family: var(--font-serif);
  text-transform: uppercase;
}
.c-editorial-process__item .c-editorial-copy {
  margin-block-start: 0.8rem;
}

.c-editorial-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: var(--editorial-block-space);
  padding-inline-start: max(var(--layout-gutter), (100% - var(--layout-max-width)) / 2);
}
.c-editorial-strip--without-gallery {
  grid-template-columns: minmax(0, 1fr);
  padding-inline-end: var(--layout-gutter);
}

.c-editorial-strip__copy {
  max-width: 23rem;
}
.c-editorial-strip__copy .c-editorial-copy {
  margin-block-start: 1rem;
}

.c-editorial-strip__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  margin-block-start: 1.5rem;
}

.c-editorial-strip--without-gallery {
  padding-inline: var(--layout-gutter);
}
.c-editorial-strip--without-gallery .c-editorial-strip__copy {
  width: 100%;
  max-width: 40rem;
  margin-inline: auto;
  text-align: center;
}
.c-editorial-strip--without-gallery .c-editorial-strip__actions {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.c-editorial-marquee {
  --editorial-marquee-height: 27vw;
  min-width: 0;
}

.c-editorial-marquee__viewport {
  overflow-x: auto;
  scrollbar-width: thin;
}
.c-editorial-marquee__viewport:focus-visible {
  outline-offset: 0.2rem;
}

.c-editorial-marquee--moving .c-editorial-marquee__viewport {
  overflow: hidden;
}

.c-editorial-marquee__track, .c-editorial-marquee__group {
  display: flex;
  width: max-content;
  align-items: stretch;
}

.c-editorial-marquee__group {
  gap: var(--editorial-image-gap);
  padding-inline-end: var(--editorial-image-gap);
  flex-shrink: 0;
}

.c-editorial-marquee__item {
  margin: 0;
  flex-shrink: 0;
}
.c-editorial-marquee__item img {
  width: auto;
  max-width: none;
  height: var(--editorial-marquee-height);
}

.c-editorial-form-wrap {
  padding-block: var(--editorial-block-space);
}

.c-editorial-form.o-form-section {
  margin-block-end: 0;
}

@media (max-width: 959px) {
  .c-editorial {
    --editorial-card-media-height: 56vw;
  }
  .c-editorial-cards {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 2.5rem;
  }
  .c-editorial-feature {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "copy" "media";
  }
  .c-editorial-feature--without-image {
    grid-template-areas: "copy";
  }
  .c-editorial-feature__copy {
    max-width: 34rem;
    margin-inline: auto;
  }
  .c-editorial-strip {
    grid-template-columns: minmax(0, 1fr);
    padding-inline-start: 0;
  }
  .c-editorial-strip__copy {
    max-width: 34rem;
    padding-inline: var(--layout-gutter);
  }
  .c-editorial-strip--without-gallery {
    padding-inline: var(--layout-gutter);
  }
  .c-editorial-strip--without-gallery .c-editorial-strip__copy {
    padding-inline: 0;
  }
  .c-editorial-marquee {
    --editorial-marquee-height: 60vw;
  }
}
@media (max-width: 767px) {
  .c-editorial-hero {
    aspect-ratio: 1.8;
  }
  .c-editorial-breadcrumb {
    padding-block-start: 1.3rem;
  }
  .c-editorial-process__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 480px) {
  .c-editorial-form .o-form__row {
    row-gap: 0.8rem;
  }
}
.c-legal {
  padding-block: clamp(1.5rem, 4vw, 3rem) clamp(3rem, 8vw, 6rem);
}

.c-legal__document {
  margin-inline: auto;
  max-inline-size: 48rem;
  overflow-wrap: anywhere;
}

.c-legal__title {
  margin-block-end: 1rem;
}

.c-legal__content a {
  text-decoration: underline;
}

.c-legal__content > * + * {
  margin-block-start: 0.65rem;
}

.c-legal__content h2 {
  font-family: var(--type-section-family);
  font-size: var(--type-section-size);
  font-weight: var(--type-section-weight);
  letter-spacing: var(--type-section-tracking);
  line-height: var(--type-section-line-height);
}

.c-legal__content > * + h2 {
  margin-block-start: 1.5rem;
}

.c-legal__content :is(h3, h4, h5, h6) {
  font-family: var(--type-ui-family);
  font-size: var(--type-ui-size);
  font-weight: var(--type-ui-weight);
  line-height: var(--type-ui-line-height);
}

.c-legal__content :is(h2, h3)[id] {
  scroll-margin-block-start: calc(var(--site-header-height) + 0.75rem);
}

.c-legal__content :is(ul, ol) {
  margin-block-end: 0;
  padding-inline-start: 1.3rem;
}

.c-legal__content li + li {
  margin-block-start: 0.3rem;
}

.c-legal__content .wp-block-table {
  overflow-x: auto;
}

.c-legal__content table {
  inline-size: 100%;
}

.c-legal__content :is(th, td) {
  border-block-end: 0.05rem solid var(--color-border);
  padding: 0.55rem 0.65rem;
  text-align: start;
  vertical-align: top;
}

.c-legal__content figcaption,
.c-legal__edit {
  color: var(--color-text-muted);
}

.o-main--404 {
  display: grid;
  place-items: center;
  min-block-size: calc(100vh - var(--site-header-height));
  min-block-size: calc(100svh - var(--site-header-height));
  padding-block: clamp(3rem, 8vh, 6rem);
}

.c-error-404 {
  max-inline-size: 28rem;
  text-align: center;
}

.c-error-404__label {
  margin-block-end: 0.8rem;
  color: var(--color-text-muted);
}

.c-error-404__title {
  margin-block-end: 1rem;
  text-wrap: balance;
}

.c-error-404__description {
  max-inline-size: 24rem;
  margin-inline: auto;
  color: var(--color-text-muted);
  text-wrap: pretty;
}

.c-error-404__action {
  margin-block-start: 1.75rem;
}

/* Contextual overrides. */
.s-debug [class] {
  outline: 0.15rem solid var(--color-debug-outline);
}

/* Single-purpose helpers. */
.screen-reader-text {
  position: absolute;
  width: 0.05rem;
  height: 0.05rem;
  margin: -0.05rem;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}
.screen-reader-text:focus {
  top: 0.4rem;
  left: 0.4rem;
  z-index: 100000;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.6rem 0.8rem;
  overflow: visible;
  clip: auto;
  clip-path: none;
  color: var(--color-skip-link-text);
  background: var(--color-background);
  white-space: normal;
}

.u-none,
.u-hidden {
  display: none !important;
}

.u-tal {
  text-align: left !important;
}

.u-tac {
  text-align: center !important;
}

.u-tar {
  text-align: right !important;
}
