/* The proposal cover texture continues behind every section, edge to edge. */
:root {
  color-scheme: dark;
  --muted: #c4d1df;
  --line: rgba(220, 197, 147, .28);
}
body {
  color: #f4f6fa;
  background: #071b35;
  position: relative;
  isolation: isolate;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url('assets/brand-background.png') center / cover no-repeat;
}
header {
  background: transparent;
  isolation: isolate;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  box-shadow: none;
}
header::after {
  content: '';
  position: absolute;
  inset: 8px 48px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, #fff1cc20 0%, #071b3522 22%, #06172c66 65%, #020a1999 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid #b99658;
  border-top-color: #eed7a6;
  border-left-color: #ddc18a;
  box-shadow:
    inset 1px 2px 1px #fff0cc38,
    inset -1px -3px 3px #030916a6,
    0 3px 5px #03091677;
}
header .nav { padding-left: 72px; padding-right: 72px; }
.nav nav > a { font-size: 14.4px; }
header .brand {
  --header-logo-size: 104px;
  --header-logo-height: calc(var(--header-logo-size) * 1058 / 1486);
  --frame-line-edge: 11px;
  position: relative;
  align-self: stretch;
}
header .brand::before, header .brand::after {
  content: '';
  position: absolute;
  left: calc(var(--header-logo-size) * .4996635);
  transform: translateX(-50%);
  width: 1px;
  background: #e5c98e;
  pointer-events: none;
}
header .brand::before {
  top: var(--frame-line-edge);
  bottom: calc(50% + var(--header-logo-height) * .2335 + 3px);
}
header .brand::after {
  top: calc(50% + var(--header-logo-height) * .2883 + 3px);
  bottom: var(--frame-line-edge);
}
header .brand img {
  position: relative;
  z-index: 1;
  width: var(--header-logo-size);
  height: var(--header-logo-height);
  object-fit: contain;
}
header .brand > span { font-size: 25px; }
header .brand small { font-size: 10px; letter-spacing: 2.2px; white-space: nowrap; }
.header-contact-icons {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 10px;
  margin-left: 4px;
  padding-left: 22px;
  border-left: 1px solid var(--line);
}
.nav nav a.header-contact-icon {
  display: grid;
  flex-shrink: 0;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  color: #ead09a;
  border: 1px solid #c7aa6a77;
  border-radius: 50%;
  background: #d9bd8009;
}
.nav nav a.header-contact-icon::after { content: none; }
.nav nav a.header-contact-icon:hover { background: #d9bd8026; border-color: #ead09a; }
.header-contact-icon .email-at {
  font-family: Arial, sans-serif;
  font-size: 29px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 0;
}
.nav nav a.header-contact-icon.whatsapp {
  background: transparent;
  border-color: transparent;
}
.header-contact-icon .whatsapp-image {
  display: block;
  width: 42px;
  height: 42px;
  object-fit: contain;
}
.nav nav a.header-contact-icon.whatsapp:hover {
  background: transparent;
  border-color: transparent;
  filter: brightness(1.1);
}
.header-social-icon {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
}
.header-social-icon svg { display: block; width: 36px; height: 36px; }
.header-contact-icons > .header-contact-icon,
.header-contact-icons > .header-social-icon {
  transform: scale(.9);
  transform-origin: center;
}
.utility, .hero, .service-ribbon, .services, .brand-band, .faq-section, footer {
  background: transparent;
}
.hero:before { background: none; }
.hero-gallery { position: relative; min-width: 0; }
.photo-cycle-toggle {
  display: block;
  margin: 6px 0 0 auto;
  padding: 5px 8px;
  min-height: 32px;
  background: transparent;
  color: #e3c78f;
  font-size: 12px;
  border-bottom: 1px solid #c7aa6a66;
}
.photo-cycle-toggle:hover { color: #f3ddb1; border-color: #ead09a; }
.hero-photo { box-shadow: none; border-radius: 26px; }
.hero-photo::after { content: none; }
.hero-photo > img { object-position: 50% 50%; image-orientation: from-image; border-radius: 16px; }
h1.hero-slogan {
  font-size: clamp(34px, 3.7vw, 52px);
  line-height: 1.15;
  letter-spacing: -1.7px;
}
.hero-slogan .slogan-qualifier {
  display: block;
  margin: 17px 0;
  font-size: .5em;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
  color: #edf2f8;
}
.hero-slogan em { display: block; }
.utility { border-bottom: 1px solid transparent; }
.brand, .nav-phone, .nav nav, h2, h3 { color: #f5f7fb; }
.nav-phone > span, .service-ribbon small, .service-ribbon b,
.image-foot, .contact small, .footer-bottom { color: #c6d4e5; }
.nav-phone b, .ribbon-icon, .overline, h2 span, .underlined span,
.about-points > div > span, .image-foot b, .step-number span,
.faq-list summary span, .contact-phone > span, .contact-row > span { color: #e3c78f; }
.overline:before { background: #d9bd80; }
.service-ribbon, .services, .service-tabs, .service-panel, .about-points,
.process-grid article, .faq-list details, .faq-list details:first-child,
.contact-phone, .contact-phone > span, .contact-row > span,
.footer-bottom { border-color: var(--line); }
.service-ribbon a:hover { background: #e0c58d12; }
.about-copy > p.intro, .about-points strong, .check-list,
.faq-layout > div > p a, .underlined { color: #ecf1f7; }
.about-seal { border-color: #c9ad74; border-width: 1px; }
.underlined { border-color: #c9ad74; }
.service-tabs, .service-panel, .request-form { background: #06182b55; }
.service-tabs button { background: transparent; color: #f5f7fb; }
.service-tabs button > span, .service-tabs button > b { color: #c8d5e4; }
.service-tabs button[aria-selected=true] {
  background: #e0c58d1f;
  box-shadow: inset 0 -2px #d9bd80;
}
.service-tabs button:hover:not([aria-selected=true]) { background: #e0c58d12; }
.service-tabs button[aria-selected=true] > span,
.service-tabs button[aria-selected=true] > b,
.check-list li:before { color: #e4c992; }
.navy { background: #e1c58d; color: #071b35; }
.navy:hover { background: #f0d8a7; }
.outline { background: #06182b44; }
.outline:hover { background: #e0c58d18; }
.step-number { color: #dbc38e; }
.request-form { border-color: var(--line); border-top-color: #d9bd80; }
.request-form label { color: #e3ebf4; }
.request-form input, .request-form select, .request-form textarea {
  background: #06162c66;
  color: #f4f7fc;
  border-color: #9db0c866;
}
.request-form input::placeholder, .request-form textarea::placeholder { color: #b7c7d9; opacity: 1; }
.request-form select option { background: #102843; color: #f4f7fc; }
.request-form input:focus, .request-form select:focus, .request-form textarea:focus {
  border-color: #e3c78f;
  box-shadow: 0 0 0 2px #e3c78f22;
}
.request-form p.form-note, .footer-main p { color: #c4d1df; }
.request-form input:-webkit-autofill,
.request-form textarea:-webkit-autofill {
  -webkit-text-fill-color: #f4f7fc;
  box-shadow: 0 0 0 1000px #102843 inset;
}
.skip { background: #18334c; color: #fff; border: 1px solid #d9bd80; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: #efcf8a; }
@media (min-width: 901px) and (max-width: 1150px) {
  header .nav { gap: 16px; }
  .nav nav { gap: 12px; }
  .nav nav > a { font-size: 13.2px; }
  .header-contact-icons { gap: 8px; margin-left: 0; padding-left: 12px; }
  header .brand { --header-logo-size: 84px; }
  header .brand > span { font-size: 21px; }
}
@media (min-width: 901px) and (max-width: 1050px) {
  .menu-toggle {
    display: block;
    order: 3;
    margin-left: auto;
    width: 42px;
    height: 42px;
    font-size: 21px;
    background: #d9bd801a;
    color: #f5f7fb;
    border: 1px solid var(--line);
  }
  .nav nav {
    display: none;
    position: absolute;
    top: 94px;
    left: 0;
    right: 0;
    background: #071b35 url('assets/brand-background.png') center / cover;
    padding: 15px 32px 24px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
  }
  .nav nav.open { display: flex; }
  .nav nav > a { padding: 13px 0; font-size: 16.8px; }
  .header-contact-icons { margin: 12px 0 0; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 900px) {
  .nav nav > a { font-size: 16.8px; }
  .header-contact-icons { margin: 12px 0 0; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  header::after { inset: 7px 16px; }
  header .nav { padding-left: 36px; padding-right: 36px; }
  header .brand { --header-logo-size: 88px; --frame-line-edge: 10px; }
  header .brand > span { font-size: 22px; }
  .nav nav { background: #071b35 url('assets/brand-background.png') center / cover; }
  .menu-toggle { background: #d9bd801a; color: #f5f7fb; border: 1px solid var(--line); }
}
@media (max-width: 640px) {
  header .brand { --header-logo-size: 78px; }
  header .brand > span { font-size: 20px; }
  header .brand small { font-size: 8.5px; letter-spacing: 1.5px; }
  .mobile-bar { background: #071b35 url('assets/brand-background.png') center / cover; }
}
@media (max-width: 360px) {
  header .nav { padding-left: 28px; padding-right: 28px; }
  header .brand { --header-logo-size: 66px; }
  header .brand > span { font-size: 18px; }
}
