.elementor-kit-6{--e-global-color-primary:#D7A000;--e-global-color-secondary:#0A0C14;--e-global-color-text:#0A0C14;--e-global-color-accent:#A87B00;--e-global-typography-primary-font-family:"DM Sans";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-weight:400;color:#0A0C14;font-family:"DM Sans", Sans-serif;font-size:16px;font-weight:400;line-height:1.75em;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --brand-primary:#D7A000; --brand-primary-hover:#BE8E00; --surface-dark:#0A0C14; --surface-mid:#0E1120; --surface-darker:#020305; --surface-modal:#0E1120; --text-slate:rgba(255,255,255,0.50); --text-on-dark:#FFFFFF; --gold-dark:#A87B00; --surface-paper:#F4F1EC; --surface-slate:#F0F3F7; --ink-strong:#0A0C14; --ink-muted:rgba(10,12,20,0.65); --ink-tertiary:rgba(10,12,20,0.48); --ink-label:rgba(10,12,20,0.38); --font-heading:'DM Sans', sans-serif; --font-body:'DM Sans', sans-serif; --text-muted-dark:rgba(255,255,255,0.72); --text-display-xl:clamp(42px, 27.14px + 3.81vw, 82px); --text-display-lg:clamp(38px, 26.86px + 2.86vw, 68px); --text-display-md:clamp(30px, 23.31px + 1.71vw, 48px); --text-display-sm:clamp(24px, 19.54px + 1.14vw, 36px); --text-title:clamp(18px, 15.77px + 0.57vw, 24px); }
/* Start custom CSS */header.elementor-location-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; }
@keyframes aceocNavDarken {
  from { background-color: rgba(10,12,20,0.60); }
  to   { background-color: rgba(10,12,20,0.97); }
}
/* Drawer open: the two hamburger bars rotate into an X (bars drawn by g-nav-toggle) */
body.e-off-canvas__no-scroll header.elementor-location-header .nav-toggle::before {
  top: 19px; transform: rotate(45deg);
}
body.e-off-canvas__no-scroll header.elementor-location-header .nav-toggle::after {
  bottom: 19px; transform: rotate(-45deg);
}
/* Hero curtain reveal — inner line spans rise from under their mask */
@keyframes aceocLineRise {
  from { transform: translateY(130%); }
  to   { transform: translateY(0); }
}
/* Curtain line reveal — generic, opt-in via the data-curtain attribute */
[data-curtain] .line { display: block; overflow: hidden; padding-bottom: 0.12em; margin-bottom: -0.12em; }
[data-curtain] .line > span { display: block; transform: translateY(130%);
  animation: aceocLineRise 0.6s cubic-bezier(0.35, 0, 0.15, 1) forwards; }
/* Section-head wipe — generic, opt-in via the data-wipe attribute */
@keyframes aceocWipeIn {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}
/* opacity (not clip) hides the waiting state: a fully-clipped element has zero
   intersection area, so IntersectionObserver would never fire on it */
.aceoc-wipe { opacity: 0; }
.aceoc-wipe.aceoc-wipe-in { opacity: 1; animation: aceocWipeIn 0.55s cubic-bezier(0.35, 0, 0.15, 1) both; }

/* ── ACEOC CF7 skin — universal for every Contact Form 7 form on the site.
   Fields the client adds later inherit this automatically. Structural
   classes (af-label, af-grid-2/3, af-path, af-note) come from the form
   markup seeded by .atomic-build/sites/form-aceoc.php ── */
.wpcf7 form.wpcf7-form { display: flex; flex-direction: column; gap: 32px; }
.wpcf7 .af-label { display: block; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-label); margin-bottom: 8px; }
.wpcf7 .af-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.wpcf7 .af-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=url], .wpcf7 input[type=number], .wpcf7 input[type=date], .wpcf7 select, .wpcf7 textarea { width: 100%; font-family: inherit; font-size: 14.4px; color: var(--ink-strong); background: #FFFFFF; border: 1px solid rgba(10,12,20,0.15); border-radius: 0; padding: 14px 16px; outline: none; transition: border-color 0.18s; box-sizing: border-box; appearance: none; }
.wpcf7 select { cursor: pointer; }
.wpcf7 textarea { resize: vertical; min-height: 120px; line-height: 1.7; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: rgba(10,12,20,0.4); }
.wpcf7 .af-path .wpcf7-radio { display: flex; gap: 1px; background: rgba(10,12,20,0.1); }
.wpcf7 .af-path .wpcf7-list-item { flex: 1; margin: 0; }
.wpcf7 .af-path .wpcf7-list-item label { display: block; cursor: pointer; height: 100%; }
.wpcf7 .af-path .wpcf7-list-item-label { height: 100%; display: flex; align-items: center; justify-content: center; box-sizing: border-box; }
.wpcf7 .af-path input[type=radio] { position: absolute; opacity: 0; pointer-events: none; }
.wpcf7 .af-path .wpcf7-list-item-label { display: block; text-align: center; padding: 16px 24px; font-size: 12.8px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; background: #FFFFFF; color: var(--ink-label); transition: all 0.18s; }
.wpcf7 .af-path label:has(input:checked) .wpcf7-list-item-label { background: var(--surface-dark); color: #FFFFFF; }
.wpcf7 .af-path-desc { font-size: 12.8px; color: var(--ink-muted); margin-top: 10px; line-height: 1.6; }
.wpcf7 .af-path:has(input[value="CXO Receptions"]:checked) .af-desc-ceo { display: none; }
.wpcf7 .af-path:not(:has(input[value="CXO Receptions"]:checked)) .af-desc-cxo { display: none; }
.wpcf7 input[type=submit] { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; background: var(--brand-primary); color: #000000; border: none; border-radius: 0; padding: 18px 44px; cursor: pointer; transition: opacity 0.2s; appearance: none; width: auto; }
.wpcf7 input[type=submit]:hover { opacity: 0.85; }
.wpcf7 .af-note { font-size: 12px; color: var(--ink-label); letter-spacing: 0.12em; margin-top: 14px; max-width: 520px; line-height: 1.6; }
/* QA-21/QA-43: iOS Safari zooms any focused field under 16px — mobile
   floor at 16px kills the zoom (desktop keeps the 14.4px design size) */
@media (max-width: 767px) {
  .wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel],
  .wpcf7 input[type=url], .wpcf7 input[type=number], .wpcf7 input[type=date],
  .wpcf7 select, .wpcf7 textarea { font-size: 16px; }
}

/* QA-44: required-field marker */
.wpcf7 .af-req { color: var(--brand-primary); font-weight: 600; }
/* QA-40: after a successful send only the confirmation remains — and it
   becomes a real success state (the small strip stays for errors, which
   show alongside the form) */
.wpcf7 form.aceoc-sent > *:not(.wpcf7-response-output) { display: none; }
.wpcf7 form.aceoc-sent .wpcf7-response-output {
  margin: 0 !important; border: none !important;
  border-top: 2px solid var(--brand-primary) !important;
  background: var(--surface-dark);
  color: rgba(255,255,255,0.88);
  padding: 56px 48px !important;
  text-align: center;
  font-size: 17.6px; line-height: 1.75;
  max-width: 640px;
}
.wpcf7 form.aceoc-sent .wpcf7-response-output::before {
  content: "✓";
  display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; margin: 0 auto 24px;
  border: 1px solid var(--brand-primary); border-radius: 50%;
  color: var(--brand-primary); font-size: 24px; line-height: 1;
}

/* QA-20/QA-39: the CF7 spinner sits beside the submit button — center
   the pair vertically instead of the default baseline drift */
.wpcf7 form p:has(> input[type=submit]) { display: flex; align-items: center; gap: 14px; margin: 0; }
.wpcf7 .wpcf7-spinner { margin: 0; flex-shrink: 0; }

.wpcf7 .wpcf7-not-valid-tip { font-size: 12px; color: #C0392B; margin-top: 6px; letter-spacing: 0.08em; }
.wpcf7 .wpcf7-response-output { border: none !important; border-left: 2px solid var(--brand-primary) !important; margin: 8px 0 0 !important; padding: 16px 20px !important; background: rgba(215,160,0,0.06); color: var(--ink-strong); font-size: 14.4px; line-height: 1.7; }
/* top-to-bottom wipe variant (photo cards) — data-wipe="ms down" */
@keyframes aceocWipeDown {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0 0); }
}
.aceoc-wipe.aceoc-wipe-down.aceoc-wipe-in { animation-name: aceocWipeDown; }

/* Partner detail panel — fixed modal shell (opened by the ACEOC Motion toggle; the inner card is styled by its composer) */
[data-partner-panel] { position: fixed; inset: 0; z-index: 120; display: none !important; align-items: center; justify-content: center; padding: 24px !important; background: rgba(2,3,5,0.78); }
[data-partner-panel].is-open { display: flex !important; }
body.aceoc-panel-lock { overflow: hidden; }

[data-panel-card] p a { color: var(--gold-dark); text-decoration: none; border-bottom: 1px solid rgba(168,123,0,0.4); transition: border-color 0.18s; }
[data-panel-card] p a:hover { border-bottom-color: var(--gold-dark); }
/* an e-button without a link renders as <button> — hide it (empty website) */
[data-panel-card] button.e-button-base:not([data-panel-close]) { display: none; }

/* Partner team grid (shortcode aceoc_partner_team, inside the detail panel) */
.aceoc-team { width: 100%; margin: 0 0 28px; padding-top: 24px; border-top: 1px solid rgba(10,12,20,0.08); }
.aceoc-team-head { font-family: "DM Sans", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 1.7px; text-transform: uppercase; color: var(--gold-dark); margin: 0 0 16px; }
.aceoc-team-grid { display: flex; flex-direction: column; gap: 24px; }
.aceoc-team-person + .aceoc-team-person { border-top: 1px solid rgba(10,12,20,0.08); padding-top: 24px; }
.aceoc-team-header { display: flex; gap: 14px; align-items: center; margin: 0 0 10px; }
.aceoc-team-photo { width: 64px; height: 64px; object-fit: cover; flex-shrink: 0; }
.aceoc-team-name { font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 500; color: var(--ink-strong); margin: 0 0 4px; }
.aceoc-team-bio { font-family: "DM Sans", sans-serif; font-size: 13.5px; line-height: 1.6; color: var(--ink-muted); margin: 0; }
.aceoc-team-link { font-family: "DM Sans", sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gold-dark); text-decoration: none; border-bottom: 1px solid rgba(168,123,0,0.4); }
.aceoc-team-link:hover { border-bottom-color: var(--gold-dark); }

@media (prefers-reduced-motion: no-preference) {
  [data-partner-panel].is-open { animation: aceocPanelFade .24s ease both; }
  [data-partner-panel].is-open [data-panel-card] { animation: aceocPanelCard .32s cubic-bezier(.16,1,.3,1) both; }
}
@keyframes aceocPanelFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes aceocPanelCard { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
[data-partner-panel] :focus-visible, [data-partner-panel]:focus-visible { outline: 2px solid var(--gold-dark); outline-offset: 2px; }
/* Partner wall hairlines — per-cell borders instead of gap+backdrop, so
   partial last rows (odd counts) and uneven heights leave no gray slabs.
   nth-of-type, not nth-child: the loop container's first child is a <style>. */
[data-partner-wall] .elementor-grid { grid-auto-rows: 1fr; }
[data-partner-wall] .e-loop-item { border: 0 solid rgba(10,12,20,0.06); }
@media (min-width: 1025px) {
  [data-partner-wall] .e-loop-item { border-top-width: 2px; border-left-width: 2px; }
  [data-partner-wall] .e-loop-item:nth-of-type(-n+3) { border-top-width: 0; }
  [data-partner-wall] .e-loop-item:nth-of-type(3n+1) { border-left-width: 0; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  [data-partner-wall] .e-loop-item { border-top-width: 2px; border-left-width: 2px; }
  [data-partner-wall] .e-loop-item:nth-of-type(-n+2) { border-top-width: 0; }
  [data-partner-wall] .e-loop-item:nth-of-type(2n+1) { border-left-width: 0; }
}
@media (max-width: 767px) {
  [data-partner-wall] .e-loop-item { border-top-width: 2px; }
  [data-partner-wall] .e-loop-item:nth-of-type(1) { border-top-width: 0; }
}

[data-curtain]{visibility:hidden;animation:aceoc-curtain-safety 0s .6s forwards}
@keyframes aceoc-curtain-safety{to{visibility:visible}}/* End custom CSS */