:root {
  --properium-gold: #c9a961;
  --properium-navy: #0d1b2a;
  --properium-cream: #f8f6f1;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #4a4a4a; background: #fff; font: 400 16px/1.6 Manrope, sans-serif; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.3em; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; line-height: 1.2; font-weight: 700; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.text-center { text-align: center; }
.relative { position: relative; }
.absolute, .fill { position: absolute; inset: 0; }
.clearfix::after { content: ''; display: table; clear: both; }

/* The generated page markup is ordinary HTML. These layout rules are owned by
   this theme and replace the grid and section behavior formerly supplied by
   the page builder. */
.section { position: relative; display: flex; align-items: center; width: 100%; padding: 30px 0; }
.section-content { position: relative; z-index: 2; width: 100%; }
.section-bg { overflow: hidden; z-index: 0; }
.section-bg img.bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.section-bg-overlay { position: absolute; inset: 0; }
.section.dark { color: #f1f1f1; }
.section.dark h1, .section.dark h2, .section.dark h3 { color: #fff; }
.section.is-full-height { min-height: 100vh; }
.row { display: flex; flex-wrap: wrap; width: 100%; max-width: 1080px; margin: 0 auto; }
.row.row-large { max-width: 1080px; }
.row.align-middle { align-items: center; }
.row.align-center { justify-content: center; }
.row.row-collapse { max-width: 1080px; }
.col { position: relative; width: 100%; flex: 0 0 100%; max-width: 100%; padding: 0 15px 30px; }
.col-inner { position: relative; width: 100%; }
.large-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
.large-5 { flex-basis: 41.666667%; max-width: 41.666667%; }
.large-6 { flex-basis: 50%; max-width: 50%; }
.large-7 { flex-basis: 58.333333%; max-width: 58.333333%; }
.large-10 { flex-basis: 83.333333%; max-width: 83.333333%; }
.large-12 { flex-basis: 100%; max-width: 100%; }
.row-collapse > .col { padding: 0; }
.row-collapse .row { margin: 0; width: 100%; }
.gap-element { display: block; }
.is-divider { width: 100%; height: 3px; margin: 16px 0 24px; }
.text-center > .is-divider { margin-left: auto; margin-right: auto; }
.scroll-to { position: relative; display: block; scroll-margin-top: 90px; }
.scroll-to a { position: absolute; top: -90px; }
.text { width: 100%; }
.button { display: inline-block; border: 1px solid transparent; text-align: center; vertical-align: middle; white-space: nowrap; }
.button.primary { color: #fff; background: var(--properium-gold); border-color: var(--properium-gold); }

/* Static banner in the about section. */
.banner { position: relative; width: 100%; }
.banner-inner, .banner-bg, .banner-layers { position: absolute; inset: 0; }
.banner-layers { display: flex; align-items: center; justify-content: center; }
.banner-layer { position: relative; width: 100%; }
.text-box-content { width: 100%; }
.text-inner { width: 100%; }

/* Accordion behavior is implemented in assets/js/site.js. */
.accordion-item { border-bottom: 1px solid #e5e7eb; }
.accordion-title { display: block; position: relative; width: 100%; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.accordion-title:focus-visible { outline: 2px solid var(--properium-gold); outline-offset: 2px; }
.accordion-title .toggle { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); }
.accordion-title .icon-angle-down::before { content: '⌄'; font-style: normal; font-size: 22px; line-height: 1; }
.accordion-inner { display: none; }
.accordion-item.active .accordion-inner { display: block; }

/* Header, language switcher, and footer. */
.site-header { position: relative; z-index: 50; height: 90px; background: var(--properium-cream); }
.site-header__inner { display: flex; align-items: center; width: min(100%, 1080px); height: 100%; margin: auto; padding: 0 15px; }
.site-logo { display: inline-flex; align-items: center; width: 160px; height: 100%; flex: none; }
.site-logo img { display: block; width: 160px; height: auto; }
.site-navigation { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.site-navigation a { color: #4a4a4a; font-size: 14px; font-weight: 600; white-space: nowrap; }
.site-navigation a:hover, .site-navigation a:focus-visible { color: var(--properium-gold); }
.site-languages { display: flex; align-items: center; gap: 16px; margin-left: 24px; padding-left: 24px; border-left: 1px solid #dedbd3; }
.site-languages a { display: inline-flex; align-items: center; opacity: .75; }
.site-languages a[aria-current] { opacity: 1; }
.site-languages img { width: 20px; height: 14px; object-fit: cover; }
.site-menu-toggle { display: none; background: none; border: 0; padding: 10px; }
.site-menu-toggle span { display: block; width: 22px; height: 2px; margin: 4px 0; background: var(--properium-navy); }
.site-footer { background: #fff; color: #89909a; font-size: 13px; }
.site-footer__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; max-width: 1080px; margin: auto; padding: 42px 0; }
.site-footer__inner span { font-size: 12px; }
.site-footer__credit { color: #4a4a4a; text-align: right; }
.site-footer__credit img { display: block; width: 170px; height: auto; }

/* Newsletter remains handled by the existing Newsletter plugin. */
.site-main--newsletter { padding: 48px 15px 0; }
.newsletter-content { max-width: 500px; margin: 0 auto 44px; }
.newsletter-content .tnp-field { margin-bottom: 10px; }
.newsletter-content .tnp-field label { display: block; margin-bottom: 5px; font-size: 14px; }
.newsletter-content .tnp-email { display: block; width: 100%; height: 40px; padding: 8px 12px; border: 1px solid #eee; background: #f7f7f7; }
.newsletter-content .tnp-submit { padding: 10px 12px; border: 0; color: #fff; background: #444; font-size: 15px; font-weight: 700; text-transform: uppercase; }
.page-content { max-width: 1080px; margin: 50px auto; padding: 0 15px; }

@media (max-width: 849px) {
  .site-header { height: 70px; }
  .site-header__inner { justify-content: space-between; }
  .site-logo { width: 110px; }
  .site-logo img { width: 110px; }
  .site-menu-toggle { display: block; order: 3; }
  .site-languages { margin-left: auto; padding-left: 0; border: 0; }
  .site-navigation { position: absolute; left: 0; right: 0; top: 70px; display: none; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 8px 20px; background: var(--properium-cream); box-shadow: 0 8px 20px rgb(0 0 0 / 10%); }
  .site-navigation.is-open { display: flex; }
  .site-navigation a { padding: 12px; }
  .large-4, .large-5, .large-6, .large-7, .large-10 { flex-basis: 100%; max-width: 100%; }
  .medium-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
  .medium-5 { flex-basis: 41.666667%; max-width: 41.666667%; }
  .medium-6 { flex-basis: 50%; max-width: 50%; }
  .medium-7 { flex-basis: 58.333333%; max-width: 58.333333%; }
  .medium-10 { flex-basis: 83.333333%; max-width: 83.333333%; }
  .site-footer__inner { padding: 32px 15px; }
}

@media (max-width: 549px) {
  .small-12, .medium-4, .medium-5, .medium-6, .medium-7, .medium-10 { flex-basis: 100%; max-width: 100%; }
  .site-header__inner { padding: 0 15px; }
  .site-languages { gap: 10px; }
  .site-languages img { width: 18px; height: 13px; }
  .site-footer__inner { align-items: flex-start; }
  .site-footer__credit { max-width: 130px; font-size: 11px; }
  .row { margin: 0 auto; }
}
