/* ==========================================================
 * WordPress / Elementor additions (not part of the static design)
 * ======================================================== */

/* Elementor containers use the CSS variable --display for their own layout (flex);
   the design uses --display for its heading font. Restore the font inside theme widgets. */
.elementor-widget[class*="elementor-widget-dco-"]{--display:'Poppins','Helvetica Neue',Helvetica,Arial,sans-serif}

/* Elementor wrappers around theme widgets add no spacing. */
.elementor .e-con:has(> .elementor-widget[class*="elementor-widget-dco-"]),
.elementor .e-con:has(> .e-con-inner > .elementor-widget[class*="elementor-widget-dco-"]){--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;padding:0;gap:0;min-height:0}
.elementor .e-con:has(> .elementor-widget[class*="elementor-widget-dco-"]) > .elementor-widget,
.elementor .elementor-widget[class*="elementor-widget-dco-"]{width:100%;max-width:100%;margin:0;--kit-widget-spacing:0px}
.elementor-section .elementor-widget-wrap:has(> .elementor-widget[class*="elementor-widget-dco-"]){padding:0}
.elementor-widget[class*="elementor-widget-dco-"] > .elementor-widget-container{margin:0;padding:0}
.elementor-widget[class*="elementor-widget-dco-"]:not(:last-child){margin-bottom:0}

/* Sticky bars (project filters, FAQ search) stick for the rest of the page, as in the design:
   their Elementor wrappers do not create a box of their own. */
.elementor-widget-dco-project-register,
.elementor-widget-dco-project-register > .elementor-widget-container,
.elementor-widget-dco-faq-explorer,
.elementor-widget-dco-faq-explorer > .elementor-widget-container,
.dco-register,
.e-con:has(> .elementor-widget-dco-project-register),
.e-con:has(> .elementor-widget-dco-faq-explorer){display:contents}
body.elementor-editor-active .elementor-widget-dco-project-register,
body.elementor-editor-active .elementor-widget-dco-faq-explorer,
body.elementor-editor-active .e-con:has(> .elementor-widget-dco-project-register),
body.elementor-editor-active .e-con:has(> .elementor-widget-dco-faq-explorer){display:block}
.dco-register-data{display:none}

/* WordPress admin bar: keep the fixed header below it. */
body.admin-bar .hdr{top:32px}
body.admin-bar .progress{top:32px}
@media (max-width:782px){body.admin-bar .hdr,body.admin-bar .progress{top:46px}}
@media (max-width:600px){body.admin-bar .hdr,body.admin-bar .progress{top:0}}

/* Elementor editor: everything visible while editing (no scroll-triggered states). */
.elementor-editor-active [data-rv],
.elementor-editor-active .cnt__i{opacity:1!important;transform:none!important;clip-path:none!important}
.elementor-editor-active .loader{display:none}

/* Pages not built with Elementor (plain WordPress content) */
.dco-plain-hero{min-height:0!important;padding-bottom:clamp(40px,6vw,80px)}
.dco-404{min-height:100svh}
.dco-prose{max-width:780px}
.dco-prose > * + *{margin-top:1rem}
.dco-prose img{max-width:100%;height:auto}
.dco-prose a{color:var(--brass);text-decoration:underline}
.alignleft{float:left;margin:0 1.5rem 1rem 0}.alignright{float:right;margin:0 0 1rem 1.5rem}.aligncenter{display:block;margin-left:auto;margin-right:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Single project page (uses the register's room-schedule panel styles) */
.dco-project{padding:calc(var(--nav,76px) + 40px) 0 clamp(60px,8vw,110px);background:var(--bone)}
.dco-project .sheet__p{position:static;transform:none;max-width:760px;margin:0 auto;height:auto;max-height:none;box-shadow:0 30px 80px -40px rgba(0,0,0,.35)}
.dco-project .sheet__h{position:static}
.dco-project__photo{max-width:760px;margin:0 auto 24px}
.dco-project__photo img{width:100%;height:auto;display:block}

/* Single team member page */
.dco-person{padding:calc(var(--nav,76px) + 40px) 0 clamp(60px,8vw,110px)}
.dco-person .tq__g{grid-template-columns:minmax(0,420px);justify-content:center}
.dco-person .tqc{opacity:1;transform:none}

/* ═══ Fixes (Nov 2026) ═══ */
/* Hero headline: reveal as the loader wipes away instead of ~2s after it */
.dco-skin-home .hero .line > i{transform:translateY(135%);opacity:0;transition:transform 1.15s var(--ease),opacity .5s linear}
.ready .dco-skin-home .hero .line > i{transform:translateY(0);opacity:1}
.dco-skin-home .hero .line:nth-child(1) > i{transition-delay:.35s}
.dco-skin-home .hero .line:nth-child(2) > i{transition-delay:.45s}
.dco-skin-home .hero .line:nth-child(3) > i{transition-delay:.55s}
.dco-skin-home .hero .hero__meta{animation:none;transition:opacity .9s var(--ease) .8s,transform .9s var(--ease) .8s}
.ready .dco-skin-home .hero .hero__meta{opacity:1;transform:none}
@media print{.dco-skin-home .hero .hero__meta{opacity:1!important;transform:none!important;transition:none!important}}

/* Testimonials / "The work is the reference": remove browser-default figure + blockquote
   margins and the fixed min-height; slides now stack in one grid cell so the box is
   exactly as tall as the tallest slide */
.quotesec .quotes{display:grid;min-height:0}
.quotesec .quotes > .q{position:relative;inset:auto;grid-area:1 / 1}
.quotesec figure.q:not(#dco-x){margin:0}
.quotesec .q__t{margin:0}
@media print{.quotesec .quotes > .q{grid-area:auto}}

/* Tighter testimonials band: less padding top/bottom and between heading, slide and dots */
.dco-skin-home section.quotesec.pad{padding-top:clamp(36px,4vw,56px);padding-bottom:clamp(36px,4vw,56px)}
.quotesec .shead{margin-bottom:clamp(16px,2vw,24px)}
.quotesec .qnav{margin-top:clamp(16px,2vw,24px)}
.quotesec .q__pic{aspect-ratio:16 / 9}

/* Social (Facebook / Instagram) band: no cream gap above/below */
.dco-skin-home section.social{padding-top:0;padding-bottom:0}

/* ═══ Mobile responsive pass ═══ */
/* safety net: nothing may push the page sideways (clip keeps position:sticky working) */
html body.dco{overflow-x:clip}
/* image placeholders were picking up the browser's 16px/40px figure margin (galleries, timeline, cards) */
figure.ph:not(#dco-x){margin:0}
/* home "Pick yours" requirement rows collapsed into each other when there's no fixed height */
@media (max-width:899px){.indset > .indrow{flex:1 0 auto}}
/* how-we-work sticky stage bar was 5px wider than the screen */
.pbar__seg{min-width:0}
.pbar__s{min-width:0;overflow:hidden}
/* projects photo wall: hover captions stuck out to the right */
section.pwall{overflow-x:clip}

@media (max-width:767px){
  /* tall filter panels must not stick over half the screen */
  .fbar,.fsearch{position:static!important;top:auto!important}
  /* hero slideshow caption + progress: stack instead of squeezing the caption into a narrow column */
  .vhx__hud{flex-wrap:wrap;row-gap:10px;align-items:center}
  .vhx__hud .vhx__cr{flex:1 1 100%;max-width:none}
  .vhx__hud .vhx__pips{flex:1 1 100%}
  /* stats: long values wrap instead of being cut off */
  .stat__n{white-space:normal;overflow-wrap:break-word}
  .stat__n[style]{display:flex;flex-wrap:wrap;column-gap:0}
  /* contact card: long email addresses fit on one line */
  .acard strong{font-size:clamp(12px,3.4vw,15px)!important;overflow-wrap:anywhere}
}
@media (max-width:480px){
  /* header: the floating "Book free consultation" button covers this on phones */
  .hdr .btn.btn--fill{display:none}
  .stat__n:not([style]){font-size:min(28px,7.2vw)}
}
