/* ============================================================
   BUILDIX — motion, contrast & responsive layer
   ============================================================ */
:root{
  --bx-navy:#032F4B; --bx-navy-2:#03466E; --bx-ink:#12344F;
  --bx-accent:#F68712; --bx-light:#CFDCE8; --bx-line:#DDE1E4;
  --bx-ease:cubic-bezier(.22,1,.36,1);
}

/* ---------- Hero : full viewport, full bleed ---------- */
.elementor-page .elementor .e-con.bx-hero{
  --min-height:calc(100svh - var(--wd-header-h, 145px));
  position:relative; overflow:hidden; isolation:isolate;
}
.e-con.bx-hero::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 30% 50%, #000 30%, transparent 100%);
          mask-image:radial-gradient(ellipse 70% 80% at 30% 50%, #000 30%, transparent 100%);
}
.e-con.bx-hero::after{
  content:""; position:absolute; inset-inline-start:0; bottom:0; height:4px; width:0;
  background:var(--bx-accent); animation:bxLine 1.2s var(--bx-ease) .5s forwards;
}
.bx-hero .elementor-heading-title{ font-size:clamp(31px, 4.4vw, 52px)!important; line-height:1.15!important; }
.bx-hero .elementor-widget-text-editor p{ max-width:62ch; }

/* hero cascade (CSS only, runs on load) */
body:not(.elementor-editor-active) .bx-rise{ opacity:0; transform:translateY(22px); animation:bxRise .9s var(--bx-ease) both; }
.bx-d1{ animation-delay:.05s } .bx-d2{ animation-delay:.18s } .bx-d3{ animation-delay:.32s }
body:not(.elementor-editor-active) .bx-hero-cta{ opacity:0; transform:translateY(22px); animation:bxRise .9s var(--bx-ease) .46s both; }
body:not(.elementor-editor-active) .bx-panel{ opacity:0; transform:translateX(-32px); animation:bxSlide 1s var(--bx-ease) .35s both; }

@keyframes bxRise { to{ opacity:1; transform:none } }
@keyframes bxSlide{ to{ opacity:1; transform:none } }
@keyframes bxLine { to{ width:100% } }

/* ---------- Scroll reveal (JS adds .bx-pre below the fold, then .bx-in) ---------- */
.bx-reveal{ transition:opacity .8s var(--bx-ease), transform .8s var(--bx-ease); }
.bx-reveal.bx-pre:not(.bx-in){ opacity:0; transform:translateY(24px); }
.bx-stagger > .elementor-element{ transition:opacity .7s var(--bx-ease), transform .7s var(--bx-ease); transition-delay:calc(var(--i, 0) * 70ms); }
.bx-stagger.bx-pre:not(.bx-in) > .elementor-element{ opacity:0; transform:translateY(20px); }

/* ---------- Cards : hover that means something ---------- */
.elementor-widget.bx-card{ position:relative; overflow:hidden; transition:transform .45s var(--bx-ease), border-color .35s ease, box-shadow .45s ease; }
.elementor-widget.bx-card::after{ content:""; position:absolute; inset-inline:0; top:0; height:3px; background:var(--bx-accent); transform:scaleX(0); transform-origin:right center; transition:transform .45s var(--bx-ease); }
.elementor-widget.bx-card:hover{ transform:translateY(-4px); }
.elementor-widget.bx-card:hover::after{ transform:scaleX(1); }
.elementor-widget.bx-card .elementor-icon{ transition:transform .45s var(--bx-ease); }
.elementor-widget.bx-card:hover .elementor-icon{ transform:translateY(-3px) scale(1.06); }
.elementor-widget.bx-card:not(.bx-card-dark):hover{ box-shadow:0 14px 30px -18px rgba(3,47,75,.35); }
.elementor-widget.bx-card .elementor-icon-box-title{ line-height:1.25; }
.elementor-widget.bx-card .elementor-icon-box-description{ line-height:1.65; }

/* ---------- Contrast safety on every dark band ---------- */
body .elementor .e-con.bx-dark, body .elementor .e-con.bx-dark .elementor-widget-text-editor, body .elementor .e-con.bx-dark p{ color:var(--bx-light); }
body .elementor .e-con.bx-dark .elementor-heading-title, body .elementor .e-con.bx-dark .wd-title-text, body .elementor .e-con.bx-dark h1, body .elementor .e-con.bx-dark h2, body .elementor .e-con.bx-dark h3{ color:#fff; }
body .elementor .e-con.bx-dark .elementor-icon-box-description{ color:#C9D6E2; }
body .elementor .e-con.bx-dark .elementor-icon-box-title, body .elementor .e-con.bx-dark .elementor-icon-box-title a{ color:#fff; }
body .elementor .e-con.bx-dark .elementor-icon i, body .elementor .e-con.bx-dark .elementor-icon svg{ color:var(--bx-accent); fill:var(--bx-accent); }
body .elementor .e-con.bx-dark a:not(.btn):not(.button){ color:#fff; }
body .elementor .e-con.bx-dark a:not(.btn):not(.button):hover{ color:var(--bx-accent); }
body .elementor .e-con.bx-dark .wd-list li{ color:var(--bx-light); }
.bx-btn .btn.btn-color-white, .bx-btn .btn.btn-style-bordered{ border-color:rgba(255,255,255,.55); }
.bx-btn .btn.btn-style-bordered:hover{ background:#fff; color:var(--bx-navy); }

/* Footer (dark) */
.wd-footer{ color:var(--bx-light); }
.wd-footer p, .wd-footer .elementor-widget-text-editor{ color:var(--bx-light); }
.wd-footer a:not(.btn){ color:#fff; }
.wd-footer a:not(.btn):hover{ color:var(--bx-accent); }
.wd-footer .wd-title-text, .wd-footer h4{ color:#fff; }
.copyrights-wrapper, .copyrights-wrapper a{ color:var(--bx-light); }

/* Marquee on orange band */
.bx-marquee .wd-marquee-item, .bx-marquee .wd-marquee-item i, .bx-marquee .wd-marquee-item svg{ color:var(--bx-navy); }
.bx-marquee .wd-marquee-item{ font-weight:700; }

/* Buttons : tactile press */
.btn, .button{ transition:transform .2s ease, background-color .25s ease, color .25s ease, border-color .25s ease; }
.btn:active, .button:active{ transform:translateY(1px) scale(.985); }

/* ---------- Responsive ---------- */
.wd-title-container .title{ overflow-wrap:anywhere; }

@media (max-width:1024px){
  .elementor-page .elementor .e-con.bx-hero{ --min-height:auto; }
  .bx-panel{ transform:translateY(24px); animation-name:bxRise; }
}
@media (max-width:767px){
  .bx-hero .elementor-heading-title{ font-size:clamp(28px, 8vw, 34px)!important; }
  .bx-hero-cta{ flex-direction:column; align-items:stretch; }
  .bx-hero-cta .elementor-widget-wd_button, .bx-hero-cta .wd-button-wrapper, .bx-hero-cta .btn{ width:100%; }
  .e-con.bx-dark .elementor-widget-wd_button .btn{ width:100%; }
  .elementor-widget.bx-card .elementor-icon-box-title{ font-size:15px; }
  .elementor-widget.bx-card .elementor-icon-box-description{ font-size:13px; }
  .bx-marquee .wd-marquee-item{ font-size:14px; }
}
@media (max-width:480px){
  .elementor-widget.bx-card .elementor-icon-box-title{ font-size:14px; }
}

/* ---------- Reduced motion : everything becomes static ---------- */
@media (prefers-reduced-motion: reduce){
  .bx-rise, .bx-hero-cta, .bx-panel, html.bx-js .bx-reveal, html.bx-js body:not(.elementor-editor-active) .bx-stagger > .elementor-element{ opacity:1!important; transform:none!important; animation:none!important; transition:none!important; }
  .e-con.bx-hero::after{ width:100%; animation:none; }
  .elementor-widget.bx-card, .elementor-widget.bx-card .elementor-icon{ transition:none; }
  .elementor-widget.bx-card:hover{ transform:none; }
  .wd-marquee-content{ animation:none!important; }
}


/* Woodmart wraps content in .container: release it on Elementor full-width pages so bands bleed edge to edge */
body.page-template-elementor_header_footer .wd-page-content > .wd-content-layout.container{ max-width:none; width:100%; padding-inline:0; }
body.page-template-elementor_header_footer .wd-page-content .e-con.e-parent.wd-negative-gap{ margin-inline:0; }
body.page-template-elementor_header_footer .wd-page-content .elementor > .e-con.e-parent{ width:100%; max-width:100%; }
body.page-template-elementor_header_footer .main-page-wrapper{ padding-top:0; }
body.page-template-elementor_header_footer .elementor > .e-con.e-parent.e-con-boxed > .e-con-inner{ max-width:var(--container-max-width,1222px); padding-inline:clamp(16px,3vw,24px); }
@media (min-width:1300px){ body.page-template-elementor_header_footer .elementor > .e-con.e-parent.e-con-boxed > .e-con-inner{ padding-inline:0; } }

/* ---------- Full-bleed bands ---------- */
.elementor-page .elementor > .e-con.e-parent.bx-section, .elementor-page .elementor > .e-con.e-parent.bx-dark{ width:100%; max-width:100%; }
.elementor-page .elementor > .e-con.e-parent > .e-con-inner{ max-width:var(--container-max-width,1222px); padding-inline:clamp(16px,3vw,24px); }
@media (min-width:1300px){ .elementor-page .elementor > .e-con.e-parent > .e-con-inner{ padding-inline:0; } }

/* ---------- Footer: 4 equal cells with hairline separators ---------- */
.wd-footer .e-con.bx-footer-4 > .e-con-inner{ align-items:stretch; }
.wd-footer .e-con.bx-fcol{ border-inline-start:1px solid rgba(255,255,255,.14); }
.wd-footer .e-con.bx-fcol:first-child{ border-inline-start:0; padding-inline-start:0!important; }
.wd-footer .e-con.bx-fcol:last-child{ padding-inline-end:0!important; }
@media (max-width:1024px){ .wd-footer .e-con.bx-fcol:nth-child(3){ border-inline-start:0; padding-inline-start:0!important; } .wd-footer .e-con.bx-fcol:nth-child(2){ padding-inline-end:0!important; } }
@media (max-width:767px){ .wd-footer .e-con.bx-fcol{ border-inline-start:0; border-top:1px solid rgba(255,255,255,.14); padding-top:24px; } .wd-footer .e-con.bx-fcol:first-child{ border-top:0; padding-top:0; } }

/* ---------- Footer payment logos ---------- */
.copyrights-wrapper .bx-payments{ display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; }
.copyrights-wrapper .bx-pay{ height:25px; width:auto; display:inline-block; background:#fff; border-radius:4px; padding:2px 5px; }
@media (max-width:767px){ .copyrights-wrapper .bx-payments{ justify-content:center; width:100%; margin-top:8px; } }
