/* WordPress + Elementor compatibility layer for Gold Coast */

/* Hello Elementor paints every native button/link #c36 (pink). Neutralize it. */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  background-color: transparent;
  border-color: transparent;
  color: inherit;
}
/* Hello reset.css sets nowrap + pink border on every [type=button]. FAQ rows must wrap. */
button.gcc-faq__q,
[type="button"].gcc-faq__q {
  display: flex;
  width: 100%;
  white-space: normal;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--gcc-navy);
}
button.gcc-faq__q > span:first-child,
[type="button"].gcc-faq__q > span:first-child {
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  overflow-wrap: break-word;
}

button:not(.gcc-btn):not(.elementor-button):hover,
button:not(.gcc-btn):not(.elementor-button):focus,
[type="button"]:not(.gcc-btn):not(.elementor-button):hover,
[type="button"]:not(.gcc-btn):not(.elementor-button):focus,
[type="reset"]:not(.gcc-btn):hover,
[type="reset"]:not(.gcc-btn):focus,
[type="submit"]:not(.gcc-btn):not(.elementor-button):hover,
[type="submit"]:not(.gcc-btn):not(.elementor-button):focus {
  background-color: transparent;
  color: inherit;
}
a {
  color: inherit;
}
/* Hello reset uses #336 on hover. Follow Elementor Site Settings accent unless a widget overrides it. */
[class*="elementor-kit-"] a:not(.gcc-btn):not(.elementor-button):hover,
[class*="elementor-kit-"] a:not(.gcc-btn):not(.elementor-button):focus,
[class*="elementor-kit-"] a:not(.gcc-btn):not(.elementor-button):active {
  color: var(--e-global-color-accent, #B89858);
}
[class*="elementor-kit-"] a.gcc-btn--gold:hover,
[class*="elementor-kit-"] a.gcc-btn--gold:focus,
[class*="elementor-kit-"] a.gcc-btn--gold:active,
[class*="elementor-kit-"] a.gcc-btn--gold:hover span,
[class*="elementor-kit-"] a.gcc-btn--gold:hover svg,
[class*="elementor-kit-"] button.gcc-btn--gold:hover,
[class*="elementor-kit-"] button.gcc-btn--gold:hover span,
[class*="elementor-kit-"] button.gcc-btn--gold:hover svg {
  color: var(--gcc-navy-dark);
}
html.gcc-preloader-active .elementor-location-header,
html.gcc-preloader-active .gcc-header {
  z-index: 1 !important;
}

html.gcc-preloader-skip .gcc-preloader {
  display: none !important;
}

.elementor-widget-html .elementor-widget-container,
[class*="elementor-widget-gcc_"] > .elementor-widget-container {
  padding: 0 !important;
}

.elementor-editor-active .gcc-preloader,
.elementor-editor-preview .gcc-preloader,
.elementor-editor-active .gcc-scrollprogress,
.elementor-editor-preview .gcc-scrollprogress {
  display: none !important;
}

/* Elementor re-injects widget HTML after our reveal JS has run — keep sections visible while editing */
.elementor-editor-active .gcc-reveal,
.elementor-editor-preview .gcc-reveal,
.elementor-edit-area .gcc-reveal {
  opacity: 1 !important;
  transform: none !important;
}
.elementor-editor-active .gcc-hero__line > span,
.elementor-editor-preview .gcc-hero__line > span,
.elementor-editor-active .gcc-hero__fade-in,
.elementor-editor-preview .gcc-hero__fade-in,
.elementor-editor-active .gcc-hero__goldline,
.elementor-editor-preview .gcc-hero__goldline {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
.elementor-editor-active .gcc-faq__a,
.elementor-editor-preview .gcc-faq__a { display: block !important; }
.elementor-editor-active .gcc-explorer__panel-item.is-active,
.elementor-editor-preview .gcc-explorer__panel-item.is-active { display: block !important; }

.elementor-editor-active .gcc-feebar__fill--trad,
.elementor-editor-preview .gcc-feebar__fill--trad { transform: scaleX(1) !important; }
.elementor-editor-active .gcc-feebar__fill--gcc,
.elementor-editor-preview .gcc-feebar__fill--gcc { transform: scaleX(0.5) !important; }

.elementor-location-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 400;
  width: 100%;
}
.elementor-location-header,
.elementor-location-header .elementor-element,
.elementor-location-header .elementor-widget,
.elementor-location-header .elementor-widget-container {
  transform: none !important;
  filter: none !important;
  perspective: none !important;
}

.elementor-location-archive .e-con,
.elementor-location-archive .e-con-inner,
.elementor-location-single .e-con,
.elementor-location-single .e-con-inner,
.elementor-location-archive .elementor-section,
.elementor-location-single .elementor-section {
  max-width: none !important;
  width: 100%;
  padding: 0 !important;
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  --margin-top: 0px;
  --margin-bottom: 0px;
}

body.blog,
body.archive,
body.search,
body.single-post {
  background: var(--gcc-cream);
}

.gcc-article__body .alignwide,
.gcc-article__body .alignfull,
.gcc-article__body .wp-block-image {
  margin-left: 0;
  margin-right: 0;
}

.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-footer .e-con,
.elementor-location-footer .e-con-inner,
.elementor-location-header .elementor-section,
.elementor-location-footer .elementor-section {
  max-width: none !important;
  width: 100%;
  padding: 0 !important;
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  --margin-top: 0px;
  --margin-bottom: 0px;
}

.elementor .elementor-element.e-con {
  --widgets-spacing: 0px 0px;
}

body.elementor-page,
.elementor-template-canvas,
body.page-template-elementor_canvas {
  background: var(--gcc-cream);
  margin: 0;
}

.site-header,
header.site-header,
.site-footer {
  display: none !important;
}

button.gcc-burger {
  background: none;
  font-family: inherit;
}

.gcc-preloader__word span {
  display: inline-block;
  opacity: 0;
  animation: gcc-letter-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes gcc-letter-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

.gcc-preloader.is-leaving {
  transform: translateY(-100%);
  transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.gcc-preloader__bar span {
  transform-origin: left;
  animation: gcc-preload-bar 1.1s ease-in-out forwards;
}
@keyframes gcc-preload-bar {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.gcc-reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.gcc-reveal.is-inview {
  opacity: 1;
  transform: none;
}

.gcc-feebar__fill {
  transform: scaleX(0);
}
.gcc-feebar__fill.is-inview {
  transition: transform 1.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.gcc-feebar__fill--trad.is-inview { transform: scaleX(1); }
.gcc-feebar__fill--gcc.is-inview { transform: scaleX(0.5); }

.gcc-hero__goldline {
  display: block;
  height: 2px;
  width: 92px;
  background: var(--gcc-gold);
  margin-top: 24px;
  transform-origin: left;
  animation: gcc-goldline 1s cubic-bezier(0.22, 1, 0.36, 1) 0.85s both;
}
@keyframes gcc-goldline {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.gcc-hero__line > span {
  animation: gcc-mask-up 1.15s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gcc-hero__line:nth-child(1) > span { animation-delay: 0.15s; }
.gcc-hero__line:nth-child(2) > span { animation-delay: 0.32s; }
.gcc-hero__line:nth-child(3) > span { animation-delay: 0.49s; }
@keyframes gcc-mask-up {
  from { transform: translateY(112%); }
  to { transform: translateY(0); }
}

.gcc-hero__fade-in {
  animation: gcc-fade-up 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes gcc-fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

.gcc-scrollprogress {
  transform: scaleX(0);
}

body.admin-bar .e-con:has(> .gcc-el-form),
body.admin-bar .gcc-contact-form-card {
  top: calc(var(--gcc-header-h) + 60px);
}
body.admin-bar .gcc-header { top: 32px; }
body.admin-bar .gcc-scrollprogress { top: 32px; }
body.admin-bar .gcc-preloader { top: 32px; height: calc(100% - 32px); }
body.admin-bar .gcc-mobilemenu { top: 32px; height: calc(100% - 32px); }
@media screen and (max-width: 782px) {
  body.admin-bar .gcc-header,
  body.admin-bar .gcc-scrollprogress { top: 46px; }
  body.admin-bar .gcc-preloader { top: 46px; height: calc(100% - 46px); }
  body.admin-bar .gcc-mobilemenu { top: 46px; height: calc(100% - 46px); }
}

.gcc-nav {
  align-self: stretch;
  align-items: stretch;
}
.gcc-nav__item {
  position: static;
  display: flex;
  align-items: center;
}
.gcc-mega {
  display: none;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  overflow: visible;
}
.gcc-nav__item.is-open .gcc-mega,
.gcc-nav__item:hover .gcc-mega {
  display: block;
  pointer-events: auto;
  animation: gcc-mega-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.gcc-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 28px;
}
@keyframes gcc-mega-in {
  from { opacity: 0; }
  to { opacity: 1; }
}


.gcc-pagehero .gcc-hero__line > span {
  animation-delay: 0.15s;
}
.gcc-pagehero .gcc-hero__line:nth-child(2) > span {
  animation-delay: 0.32s;
}

.gcc-svcrow__head > svg {
  color: var(--gcc-line);
  align-self: center;
  flex-shrink: 0;
  transition: color 0.35s, transform 0.45s var(--gcc-ease);
}
.gcc-svcrow:hover .gcc-svcrow__head > svg {
  color: var(--gcc-gold);
  transform: translate(4px, -4px);
}
.gcc-stepcard > svg:first-of-type {
  position: absolute;
  top: 34px;
  right: 28px;
  color: var(--gcc-line);
  transition: color 0.4s, transform 0.4s var(--gcc-ease);
}
.gcc-stepcard:hover > svg:first-of-type {
  color: var(--gcc-gold);
  transform: translateX(4px);
}

/* Cards are both the grid child and the card — stack title + body, never row-flex */
.gcc-pcards > .gcc-pcard,
.gcc-stepcards > .gcc-stepcard,
.gcc-pcard,
.gcc-stepcard {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex-wrap: nowrap !important;
}
.gcc-pcard > .gcc-pcard__no {
  position: absolute;
  top: 12px;
  right: 18px;
  left: auto;
}
.gcc-pcard > h3,
.gcc-pcard > p,
.gcc-stepcard > h3,
.gcc-stepcard > p,
.gcc-stepcard > .gcc-stepcard__no {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  position: relative;
  flex: 0 0 auto !important;
}
.gcc-stepcard > svg:first-of-type {
  flex: 0 0 auto;
  align-self: flex-end;
}
.gcc-stepcard > .gcc-stepcard__no {
  padding-right: 36px;
}

.gcc-about-why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 48px clamp(40px, 6vw, 96px);
  align-items: start;
}
.gcc-about-why-pillars { display: grid; gap: 20px; }
.gcc-section--navy .gcc-about-why-pillars .gcc-body {
  color: rgba(244, 241, 234, 0.68);
  margin-top: 10px;
  font-size: 0.94rem;
}
.gcc-diff-stack { display: grid; gap: 16px; }
.gcc-explorer__panel-item.is-active { display: grid; }
.elementor-editor-active .gcc-explorer__panel-item.is-active,
.elementor-editor-preview .gcc-explorer__panel-item.is-active { display: grid !important; }

.gcc-svc-together-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 48px clamp(40px, 6vw, 96px);
  align-items: start;
}
.gcc-svc-together-copy .gcc-body { margin-top: 18px; }
.gcc-svc-together-side > .gcc-reveal .gcc-h3 { margin-bottom: 8px; }
.gcc-svc-together-stack { display: grid; gap: 16px; margin-top: 28px; }

.gcc-pagehero__cta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 36px; }
.gcc-pagehero__sublead { margin-top: 18px; max-width: 720px; color: rgba(244, 241, 234, 0.72); }
.gcc-pagehero__sublead + .gcc-pagehero__sublead { margin-top: 14px; }

/* About §07 — match React equal columns + body type */
.gcc-about-custody-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 48px clamp(40px, 6vw, 96px);
  align-items: center;
}
.gcc-about-custody-grid .gcc-body {
  margin-top: 14px;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--gcc-muted);
  font-weight: 400;
}
.gcc-about-custody-grid > div:first-child > .gcc-reveal:nth-child(2) .gcc-body {
  margin-top: 18px;
}

/* Section titles: masked slide-up when they enter the viewport (preview MaskedTitle) */
.gcc-section .gcc-hero__line,
.gcc-ctaband .gcc-hero__line {
  overflow: hidden;
}
.gcc-section .gcc-hero__line > h2,
.gcc-ctaband .gcc-hero__line > h2 {
  display: block;
  transform: translateY(106%);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.08s;
  will-change: transform;
}
.gcc-section .gcc-hero__line.is-inview > h2,
.gcc-ctaband .gcc-hero__line.is-inview > h2 {
  transform: none;
}

.elementor-editor-active .gcc-section .gcc-hero__line > h2,
.elementor-editor-preview .gcc-section .gcc-hero__line > h2,
.elementor-editor-active .gcc-ctaband .gcc-hero__line > h2,
.elementor-editor-preview .gcc-ctaband .gcc-hero__line > h2 {
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .gcc-reveal,
  .gcc-section .gcc-hero__line > h2,
  .gcc-ctaband .gcc-hero__line > h2 {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
