.mydc-project-facts{display:grid;gap:1rem;margin:0}.mydc-project-facts__item{margin:0}.mydc-project-facts__label{font-weight:600}.mydc-project-facts__value{margin:0}.mydc-project-scope{display:grid;gap:1.5rem}.mydc-project-scope__item{margin:0}.mydc-project-scope__title{margin:0 0 .5rem}.mydc-project-scope__description{white-space:normal}.mydc-project-gallery{display:grid;gap:1rem}.mydc-project-gallery--top{grid-template-columns:repeat(2,minmax(0,1fr))}.mydc-project-gallery--full{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.mydc-project-gallery__item{margin:0}.mydc-project-gallery__image{display:block;width:100%;height:auto}.mydc-project-gallery__link:focus-visible,.mydc-project-related__link:focus-visible{outline:2px solid currentColor;outline-offset:3px}.mydc-project-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.mydc-project-related__item{margin:0}.mydc-project-related__link{display:block}.mydc-project-related__image{display:block;width:100%;height:auto}.mydc-project-related__type{display:block;font-size:.875em}.mydc-project-related__title{margin:.35rem 0 0}@media (prefers-reduced-motion:reduce){.mydc-project-gallery__link,.mydc-project-related__link{transition:none}}

/* ==========================================================================
   MYDC Single Project - Elementor template 1050
   Rebuilt 2026-07-25 from Figma node 87:397.
   System: 1920 canvas / 80px gutter / 1760px content rail / 80px fixed header.
   This layer replaces every prior dated patch pass. Everything above this
   comment is the shared shortcode base and is also used by the archive.
   ========================================================================== */

/* --- Tokens and root ---------------------------------------------------- */
.mydc-project-single{
  --mydc-ink:#111;
  --mydc-olive:#66A403;
  --mydc-ground:#f7f5f0;
  --mydc-white:#fff;
  --mydc-dark:#1a1a1a;
  --mydc-muted:#666;
  --mydc-label:#8e8c84;
  --mydc-divider:#d8d6cf;
  --mydc-radius:8px;
  --mydc-rail:1760px;
  --mydc-gutter:80px;
  /* Full-bleed inset. The hero and the slideshow share it so the two image
     areas keep identical outer margins at every width. */
  --mydc-bleed:20px;
  --mydc-scroll-offset:104px;
  background:var(--mydc-ground);
  color:var(--mydc-ink);
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:clip;
}
.mydc-project-single,.mydc-project-single *{box-sizing:border-box}
.mydc-project-single a:focus-visible{outline:3px solid var(--mydc-olive);outline-offset:4px}

/* --- Anchor targets clear the 80px fixed header -------------------------- */
.mydc-project-single #project-overview,
.mydc-project-single #project-details,
.mydc-project-single #scope-of-work,
.mydc-project-single #project-gallery,
.mydc-project-single #related-projects{scroll-margin-top:var(--mydc-scroll-offset)}
@media (prefers-reduced-motion:no-preference){
  html:has(body.single-project){scroll-behavior:smooth}
}

/* --- Elementor container reset: sections run edge to edge ----------------
   Elementor boxes content through the inherited --content-width custom
   property and --padding-inline-*. Neutralising those is what lets this
   layer avoid forced overrides entirely. */
.mydc-project-single.e-con,
.mydc-project-single .e-con{
  --content-width:100%;
  --padding-inline-start:0px;
  --padding-inline-end:0px;
}
.mydc-project-single>.e-con-inner{width:100%;max-width:none;margin:0;padding:0}
.mydc-project-single>.e-con-inner>.e-con{width:100%;max-width:none;margin:0;padding-inline:0}

/* --- Container flex model -------------------------------------------------
   Elementor applies container flex to > .e-con-inner from custom properties,
   at the same specificity as this layer but far later in source order. The
   flex model is therefore declared through those properties rather than by
   escalating selectors or forcing overrides. */
.mydc-project-single .mydc-project-single__identity,
.mydc-project-single .mydc-project-single__overview,
.mydc-project-single .mydc-project-single__scope{
  --flex-direction:row;--flex-wrap:wrap;
  --justify-content:space-between;--align-items:flex-start;
}
.mydc-project-single .mydc-project-single__hero,
.mydc-project-single .mydc-project-single__nav,
.mydc-project-single .mydc-project-single__details,
.mydc-project-single .mydc-project-single__gallery,
.mydc-project-single .mydc-project-single__related{
  --flex-direction:column;--flex-wrap:nowrap;
  --justify-content:flex-start;--align-items:stretch;
}
.mydc-project-single .mydc-project-single__closer{
  --flex-direction:row;--flex-wrap:nowrap;
  --justify-content:flex-start;--align-items:center;
}
.mydc-project-single .mydc-project-single__identity-left,
.mydc-project-single .mydc-project-single__title-meta,
.mydc-project-single .mydc-project-single__overview-copy,
.mydc-project-single .mydc-project-single__inquiry,
.mydc-project-single .mydc-project-single__scope-intro,
.mydc-project-single .mydc-project-single__scope-output,
.mydc-project-single .mydc-project-single__details-intro,
.mydc-project-single .mydc-project-single__gallery-intro-copy,
.mydc-project-single .mydc-project-single__related-intro{
  --flex-direction:column;--flex-wrap:nowrap;
  --justify-content:flex-start;--align-items:flex-start;
}
.mydc-project-single .mydc-project-single__gallery-intro{
  --flex-direction:row;--flex-wrap:wrap;
  --justify-content:space-between;--align-items:flex-end;
}
@media (max-width:1024px){
  .mydc-project-single .mydc-project-single__title-meta{--flex-direction:row;--flex-wrap:wrap}
}
@media (max-width:480px){
  .mydc-project-single .mydc-project-single__title-meta{--flex-direction:column}
}

/* --- The shared content rail -------------------------------------------- */
.mydc-project-single .mydc-project-single__identity>.e-con-inner,
.mydc-project-single .mydc-project-single__nav>.e-con-inner,
.mydc-project-single .mydc-project-single__overview>.e-con-inner,
.mydc-project-single .mydc-project-single__details>.e-con-inner,
.mydc-project-single .mydc-project-single__scope>.e-con-inner,
.mydc-project-single .mydc-project-single__related>.e-con-inner{
  width:min(calc(100% - var(--mydc-gutter) * 2),var(--mydc-rail));
  max-width:none;margin-inline:auto;padding-inline:0;
}

/* --- Shared type -------------------------------------------------------- */
.mydc-project-single .mydc-project-single__eyebrow.elementor-widget-heading .elementor-heading-title{
  margin:0;color:var(--mydc-olive);font-size:12px;font-weight:700;
  letter-spacing:.14em;line-height:1.5;text-transform:uppercase;
}
.mydc-project-single .elementor-widget-heading .elementor-heading-title{
  margin:0;color:var(--mydc-ink);font-size:clamp(30px,2.3vw,44px);
  font-weight:700;line-height:1.2;letter-spacing:-.02em;
}
.mydc-project-single .mydc-project-single__section-lede p{
  margin:0;color:var(--mydc-muted);font-size:clamp(16px,1.05vw,20px);line-height:1.6;
}
.mydc-project-single .elementor-button{
  background:var(--mydc-olive);color:var(--mydc-ink);border-radius:5px;
  padding:18px 36px;font-size:15px;font-weight:700;line-height:1;
  letter-spacing:.08em;text-transform:uppercase;
}

/* --- 1. Hero: featured image with the project identity over it -----------
   The image is the project's WordPress featured image and fills the frame.
   The identity block that used to sit below the hero now lives inside it, so
   the h1 is here and appears exactly once on the page. */
.mydc-project-single__hero>.e-con-inner{width:100%;max-width:none;margin:0;padding:0}
.mydc-project-single .mydc-project-single__hero .elementor-widget-shortcode,
.mydc-project-single__hero .elementor-shortcode{display:block;width:100%;max-width:none}

.mydc-project-hero{
  position:relative;isolation:isolate;overflow:hidden;
  width:calc(100% - var(--mydc-bleed) * 2);margin:20px auto 0;
  min-height:clamp(460px,44vw,760px);
  display:flex;align-items:flex-end;
  border-radius:var(--mydc-radius);
  background-color:var(--mydc-dark,#1a1a1a);
}
.mydc-project-single .mydc-project-hero__image{
  position:absolute;inset:0;z-index:0;
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:50% 58%;
}
/* Strongest along the bottom, with extra weight behind the lower-left copy,
   clearing toward the top so the photography stays readable. */
.mydc-project-hero__overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to top,
      rgba(17,17,17,.86) 0%,
      rgba(17,17,17,.80) 14%,
      rgba(17,17,17,.66) 26%,
      rgba(17,17,17,.34) 42%,
      rgba(17,17,17,.10) 58%,
      rgba(17,17,17,0) 74%),
    linear-gradient(to right,
      rgba(17,17,17,.34) 0%,
      rgba(17,17,17,.10) 34%,
      rgba(17,17,17,0) 60%);
}
.mydc-project-hero__content{
  position:relative;z-index:2;width:100%;
  display:flex;flex-direction:row;flex-wrap:wrap;
  align-items:flex-end;justify-content:space-between;
  gap:28px 48px;
  padding:clamp(24px,3vw,56px);
}
.mydc-project-hero__lead{
  flex:1 1 520px;min-width:0;max-width:820px;
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
}
.mydc-project-hero__type{
  display:block;margin:0;
  color:rgba(255,255,255,.92);
  font-size:12px;font-weight:700;letter-spacing:.14em;line-height:1.5;
  text-transform:uppercase;
}
.mydc-project-single .mydc-project-hero__title{
  margin:0;color:var(--mydc-white,#fff);
  font-size:clamp(30px,3.1vw,58px);font-weight:700;
  line-height:1.08;letter-spacing:-.02em;
  text-wrap:balance;
}
.mydc-project-hero__summary{
  margin:0;max-width:62ch;
  color:rgba(255,255,255,.9);
  font-size:clamp(15px,1.05vw,19px);line-height:1.6;
}
.mydc-project-hero__aside{
  flex:0 1 auto;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:20px;
}
.mydc-project-hero__meta{
  display:flex;flex-wrap:wrap;gap:10px 36px;margin:0;
}
.mydc-project-hero__meta-item{margin:0;min-width:0}
.mydc-project-hero__meta-label{
  display:block;margin:0 0 4px;
  color:rgba(255,255,255,.66);
  font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1.4;
  text-transform:uppercase;
}
.mydc-project-hero__meta-value{
  display:block;margin:0;color:var(--mydc-white,#fff);
  font-size:15px;font-weight:700;line-height:1.4;
}

/* Neutral media control, deliberately not the green conversion button. */
.mydc-project-single .mydc-project-hero__gallery-button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:13px 22px;
  color:var(--mydc-ink,#111);
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.5);border-style:solid;
  border-radius:100px;
  box-shadow:0 4px 18px rgba(0,0,0,.3);
  font-size:12px;font-weight:700;letter-spacing:.12em;line-height:1;
  text-transform:uppercase;white-space:nowrap;cursor:pointer;
  transition:background-color .25s ease,color .25s ease,transform .25s ease;
}
.mydc-project-single .mydc-project-hero__gallery-button:hover{
  background:var(--mydc-white,#fff);color:var(--mydc-olive,#66A403);
}
.mydc-project-single .mydc-project-hero__gallery-button:focus-visible{
  background:var(--mydc-white,#fff);
  outline:3px solid var(--mydc-olive,#66A403);outline-offset:3px;
}
.mydc-project-hero__gallery-icon{display:block;flex:0 0 auto;pointer-events:none}
.mydc-project-hero__gallery-text{display:inline-block}

/* Mobile: one column in the order type, title, summary, metadata, button. */
@media (max-width:767px){
  .mydc-project-hero{min-height:clamp(470px,120vw,600px)}
  .mydc-project-hero__overlay{
    background:
      linear-gradient(to top,
        rgba(17,17,17,.90) 0%,
        rgba(17,17,17,.84) 32%,
        rgba(17,17,17,.72) 60%,
        rgba(17,17,17,.60) 82%,
        rgba(17,17,17,.34) 94%,
        rgba(17,17,17,.20) 100%);
  }
  .mydc-project-hero__content{
    flex-direction:column;align-items:stretch;justify-content:flex-end;gap:22px;
  }
  .mydc-project-hero__lead{flex:0 0 auto;max-width:none;gap:10px}
  .mydc-project-hero__aside{flex:0 0 auto;align-items:stretch;gap:18px;width:100%}
  .mydc-project-hero__meta{gap:14px 28px}
  .mydc-project-single .mydc-project-hero__gallery-button{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .mydc-project-single .mydc-project-hero__gallery-button{transition:none}
}
/* --- 2. Project introduction -------------------------------------------- */
.mydc-project-single .mydc-project-single__identity>.e-con-inner{
  flex-direction:row;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;
  gap:32px;padding-block:48px 40px;
}
.mydc-project-single .mydc-project-single__identity-left{
  flex:1 1 480px;max-width:960px;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:0;margin:0;
}
.mydc-project-single .mydc-project-type{
  display:block;color:var(--mydc-olive);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
}
.mydc-project-single .mydc-project-single__identity .elementor-widget-theme-post-title .elementor-heading-title{
  margin:0;font-size:clamp(38px,3.75vw,72px);font-weight:700;
  line-height:1.08;letter-spacing:-.03em;
}
.mydc-project-single .mydc-project-intro{
  margin:0;max-width:960px;color:var(--mydc-muted);
  font-size:clamp(17px,1.25vw,24px);line-height:1.6;
}
.mydc-project-single .mydc-project-single__title-meta{
  flex:0 1 400px;max-width:400px;min-width:0;
  display:flex;flex-direction:column;gap:20px;padding:12px 0 0;margin:0;
}
.mydc-project-single .mydc-project-title-meta__item{min-width:0}
.mydc-project-single .mydc-project-title-meta__label{
  display:block;margin:0 0 6px;color:var(--mydc-label);font-size:11px;
  font-weight:700;letter-spacing:.14em;line-height:1.2;text-transform:uppercase;
}
.mydc-project-single .mydc-project-title-meta__value{
  display:block;font-size:18px;font-weight:700;line-height:1.35;overflow-wrap:anywhere;
}

/* --- 3. Section navigation (static band) -------------------------------- */
.mydc-project-single .mydc-project-single__nav{
  background:var(--mydc-ground);
  border-top:1px solid var(--mydc-divider);
  border-bottom:1px solid var(--mydc-divider);
}
.mydc-project-single .mydc-project-single__nav .elementor-widget-text-editor,
.mydc-project-single__nav .elementor-widget-container{width:100%}
.mydc-project-single .mydc-project-nav{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 48px;width:100%;padding:24px 0;
}
.mydc-project-single .mydc-project-nav__link{
  position:relative;padding-bottom:6px;color:var(--mydc-ink);font-size:16px;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;white-space:nowrap;
}
.mydc-project-single .mydc-project-nav__link::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--mydc-olive);transform:scaleX(0);transform-origin:left;
  transition:transform .18s ease;
}
.mydc-project-single .mydc-project-nav__link:hover::after,
.mydc-project-single .mydc-project-nav__link:focus-visible::after{transform:scaleX(1)}

/* --- 4. Project Overview ------------------------------------------------- */
.mydc-project-single .mydc-project-single__overview>.e-con-inner{
  flex-direction:row;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;
  gap:40px;padding-block:72px 56px;
}
.mydc-project-single .mydc-project-single__overview-copy{
  flex:1 1 480px;max-width:980px;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:0;margin:0;
}
.mydc-project-single__overview-copy .elementor-widget-theme-post-content{width:100%}
.mydc-project-single .mydc-project-single__overview-copy .elementor-widget-theme-post-content p{
  margin:0 0 24px;color:var(--mydc-ink);font-size:clamp(16px,1.05vw,20px);line-height:1.6;
}
.mydc-project-single__overview-copy .elementor-widget-theme-post-content p:last-child{margin-bottom:0}
.mydc-project-single__overview-copy .elementor-widget-theme-post-content p:empty{display:none}
.mydc-project-single .mydc-project-single__inquiry{
  flex:0 1 420px;max-width:420px;min-width:0;align-self:flex-start;
  display:flex;flex-direction:column;align-items:flex-start;gap:16px;
  padding:40px;margin:0;background:var(--mydc-dark);border-radius:var(--mydc-radius);
}
.mydc-project-single .mydc-project-single__inquiry .elementor-heading-title{
  color:var(--mydc-white);font-size:22px;line-height:1.3;letter-spacing:0;
}
.mydc-project-single__inquiry .mydc-project-single__eyebrow.elementor-widget-heading .elementor-heading-title{color:var(--mydc-olive)}
.mydc-project-single__inquiry p{margin:0;color:#fbfbfb;font-size:15px;line-height:1.6}
.mydc-project-single__inquiry .elementor-widget-button{margin-top:8px}

/* --- 5. Project Details -------------------------------------------------- */
.mydc-project-single .mydc-project-single__details>.e-con-inner{
  display:flex;flex-direction:column;align-items:stretch;gap:28px;padding-block:64px;
}
.mydc-project-single .mydc-project-single__details-intro{
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  width:100%;max-width:none;padding:0;margin:0;
}
.mydc-project-single .mydc-project-facts{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:48px;row-gap:40px;width:100%;margin:0;padding:28px 0 0;
  border-top:1px solid var(--mydc-divider);
}
.mydc-project-single .mydc-project-facts__item{min-width:0;margin:0;padding:0}
.mydc-project-single .mydc-project-facts__label{
  display:block;margin:0 0 12px;color:var(--mydc-label);font-size:11px;
  font-weight:700;letter-spacing:.14em;line-height:1.3;text-transform:uppercase;
}
.mydc-project-single .mydc-project-facts__value{
  margin:0;color:var(--mydc-ink);font-size:16px;font-weight:700;line-height:1.45;
}

/* --- 6. Scope of Work: Number | Title | Description ---------------------- */
.mydc-project-single .mydc-project-single__scope>.e-con-inner{
  flex-direction:row;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;
  gap:48px;padding-block:96px;
}
.mydc-project-single .mydc-project-single__scope-intro{
  flex:0 1 480px;max-width:480px;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:0;margin:0;
}
.mydc-project-single__scope-intro p{margin:0;color:var(--mydc-muted);font-size:clamp(16px,1.05vw,20px);line-height:1.6}
.mydc-project-single__scope-output{flex:1 1 620px;max-width:1167px;min-width:0;padding:0;margin:0}
.mydc-project-single .mydc-project-scope{display:flex;flex-direction:column;width:100%;gap:0}
.mydc-project-single .mydc-project-scope__item{
  display:grid;grid-template-columns:48px 32px 320px 40px minmax(0,1fr);
  align-items:start;
  width:100%;margin:0;padding:32px 0;
  border-top:1px solid var(--mydc-divider);border-bottom:0;
}
.mydc-project-single .mydc-project-scope__item:last-child{border-bottom:1px solid var(--mydc-divider)}
.mydc-project-single .mydc-project-scope__number{
  grid-column:1;color:var(--mydc-olive);font-size:14px;font-weight:700;letter-spacing:1.5px;line-height:1.6;
}
.mydc-project-single .mydc-project-scope__title{
  grid-column:3;margin:0;font-size:clamp(17px,1.05vw,20px);font-weight:700;line-height:1.3;
}
.mydc-project-single .mydc-project-scope__description{
  grid-column:5;color:var(--mydc-muted);font-size:16px;line-height:1.6;
}

/* --- 7. Project Slideshow ------------------------------------------------
   A wide, dark presentation stage. The editorial intro stays on the shared
   content rail; the media area and its thumbnails break out to the hero's
   width through the shared --mydc-bleed token, so the page's two image areas
   line up exactly. The stage is a fixed responsive height so the page never
   reflows between slides, and the image is sized to its own intrinsic ratio
   inside that stage so mixed aspect ratios are shown whole, never cropped.
   Swiper is the copy Elementor already registers. */
.mydc-project-single .mydc-project-single__gallery>.e-con-inner{
  display:flex;flex-direction:column;align-items:stretch;
  gap:48px;padding-block:96px;
  width:100%;max-width:none;margin-inline:0;padding-inline:0;
}
/* The intro keeps the standard grid the rest of the page uses. */
.mydc-project-single .mydc-project-single__gallery-intro{
  flex-direction:row;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;
  gap:16px 32px;
  width:min(calc(100% - var(--mydc-gutter) * 2),var(--mydc-rail));
  max-width:none;margin-inline:auto;padding:0;
}
.mydc-project-single .mydc-project-single__gallery-intro-copy{
  flex:1 1 420px;max-width:1000px;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:0;margin:0;
}

/* The media area: hero width, hero gutters. */
.mydc-project-single .mydc-project-slideshow{
  --mydc-stage-height:clamp(620px,42vw,720px);
  --mydc-stage-ground:var(--mydc-dark,#171717);
  --mydc-thumb-height:92px;
  --mydc-thumb-width:138px;
  position:relative;min-width:0;
  width:calc(100% - var(--mydc-bleed) * 2);
  margin-inline:auto;
  display:flex;flex-direction:column;gap:24px;
}

/* The stage and every slide share one height, so no slide can resize the page. */
.mydc-project-single .mydc-project-slideshow__stage,
.mydc-project-single .mydc-project-slideshow .swiper-slide{
  height:var(--mydc-stage-height);
}
.mydc-project-single .mydc-project-slideshow__stage{
  position:relative;width:100%;min-width:0;overflow:hidden;
  background-color:var(--mydc-stage-ground);
  border-radius:var(--mydc-radius,8px);
}
.mydc-project-single .mydc-project-slideshow .swiper-slide{
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background-color:var(--mydc-stage-ground);
}
.mydc-project-single .mydc-project-slideshow__link{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;min-width:0;
}
.mydc-project-single .mydc-project-slideshow__link:focus-visible{outline:3px solid var(--mydc-olive,#66A403);outline-offset:-4px}

/* Intrinsic sizing inside the stage: the box matches the painted image, which
   keeps sizes="auto" honest. object-fit is the guard for anything that forces
   the element wider. The image takes the full stage height it can use. */
.mydc-project-single .mydc-project-slideshow__image{
  display:block;width:auto;height:auto;max-width:100%;max-height:100%;
  object-fit:contain;object-position:center;
}

/* Before the script runs, and if it never does, the track stays a native
   scroll-snap strip rather than a dead stack. */
.mydc-project-single .mydc-project-slideshow:not(.is-ready) .mydc-project-slideshow__track{
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.mydc-project-single .mydc-project-slideshow:not(.is-ready) .mydc-project-slideshow__track::-webkit-scrollbar{display:none}
.mydc-project-single .mydc-project-slideshow:not(.is-ready) .swiper-slide{flex:0 0 100%;scroll-snap-align:center}

/* Controls. The Elementor kit styles every <button> at (0,1,1), so these carry
   the section prefix to outrank it, and restate border-style, which the kit
   sets to none. */
.mydc-project-single .mydc-project-slideshow__previous,
.mydc-project-single .mydc-project-slideshow__next{
  position:absolute;top:50%;z-index:2;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;padding:0;
  color:var(--mydc-ink,#111);
  background:rgba(255,255,255,.88);
  border:0;border-style:solid;
  border-radius:50%;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
  cursor:pointer;
  transition:background-color .25s ease,color .25s ease,opacity .25s ease,transform .25s ease;
}
.mydc-project-single .mydc-project-slideshow__previous{left:28px}
.mydc-project-single .mydc-project-slideshow__next{right:28px}
.mydc-project-single .mydc-project-slideshow__previous:hover,
.mydc-project-single .mydc-project-slideshow__next:hover{
  background:var(--mydc-white,#fff);color:var(--mydc-ink,#111);
}
.mydc-project-single .mydc-project-slideshow__previous:focus-visible,
.mydc-project-single .mydc-project-slideshow__next:focus-visible{
  background:var(--mydc-white,#fff);
  outline:3px solid var(--mydc-olive,#66A403);outline-offset:3px;
}
.mydc-project-single .mydc-project-slideshow__previous[aria-disabled="true"],
.mydc-project-single .mydc-project-slideshow__next[aria-disabled="true"]{
  background:rgba(255,255,255,.3);color:rgba(17,17,17,.55);
  box-shadow:none;cursor:default;
}
.mydc-project-single .mydc-project-slideshow__arrow-icon{display:block;pointer-events:none}

.mydc-project-single .mydc-project-slideshow__counter{
  position:absolute;right:24px;bottom:24px;z-index:2;
  padding:9px 16px;border-radius:100px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.28);
  color:var(--mydc-white,#fff);
  font-size:13px;font-weight:700;letter-spacing:.1em;line-height:1;
  font-variant-numeric:tabular-nums;
}

.mydc-project-single .mydc-project-slideshow__thumbs{width:100%;min-width:0}
.mydc-project-single .mydc-project-slideshow__thumb-list{
  display:flex;gap:12px;
  margin:0;padding:0 0 4px;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.mydc-project-single .mydc-project-slideshow__thumb-item{flex:0 0 auto;margin:0;padding:0}
.mydc-project-single .mydc-project-slideshow__thumb{
  display:block;width:auto;padding:0;
  background:var(--mydc-stage-ground);
  border:0;border-radius:4px;overflow:hidden;
  opacity:.5;cursor:pointer;
  transition:opacity .25s ease,box-shadow .25s ease;
}
.mydc-project-single .mydc-project-slideshow__thumb-image{
  display:block;
  width:var(--mydc-thumb-width);height:var(--mydc-thumb-height);
  object-fit:cover;object-position:center;
}
.mydc-project-single .mydc-project-slideshow__thumb:hover{opacity:.8}
.mydc-project-single .mydc-project-slideshow__thumb[aria-current="true"]{
  opacity:1;box-shadow:inset 0 0 0 3px var(--mydc-olive,#66A403);
}
.mydc-project-single .mydc-project-slideshow__thumb:focus-visible{
  opacity:1;outline:3px solid var(--mydc-olive,#66A403);outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){
  .mydc-project-single .mydc-project-slideshow__previous,
  .mydc-project-single .mydc-project-slideshow__next,
  .mydc-project-single .mydc-project-slideshow__thumb{transition:none}
}
/* --- 8. Related Projects ------------------------------------------------- */
.mydc-project-single .mydc-project-single__related>.e-con-inner{
  display:flex;flex-direction:column;align-items:stretch;gap:48px;padding-block:96px;
}
.mydc-project-single .mydc-project-single__related-intro{
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  width:100%;max-width:none;padding:0;margin:0;
}
.mydc-project-single .mydc-project-related{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:100%;margin:0;
}
.mydc-project-single .mydc-project-related__item{min-width:0;margin:0}
.mydc-project-single .mydc-project-related__link{
  display:flex;flex-direction:column;align-items:flex-start;height:100%;
  color:inherit;text-decoration:none;
}
.mydc-project-single .mydc-project-related__media{
  display:block;width:100%;margin:0 0 18px;border-radius:var(--mydc-radius);overflow:hidden;
}
.mydc-project-single .mydc-project-related__image{
  display:block;width:100%;height:auto;aspect-ratio:554 / 360;object-fit:cover;
  transition:transform .4s ease;
}
.mydc-project-single .mydc-project-related__link:hover .mydc-project-related__image{transform:scale(1.03)}
.mydc-project-single .mydc-project-related__type{
  display:block;margin:0 0 10px;color:var(--mydc-olive);font-size:11px;
  font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.mydc-project-single .mydc-project-related__title{
  margin:0 0 10px;font-size:clamp(20px,1.5vw,26px);font-weight:700;line-height:1.25;
}
.mydc-project-single .mydc-project-related__meta{
  display:block;margin:0 0 18px;color:var(--mydc-muted);font-size:15px;line-height:1.5;
}
.mydc-project-single .mydc-project-related__cta{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;
  color:var(--mydc-ink);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
}

/* --- 9. Closing split section --------------------------------------------
   Reuses the interior-page closer pattern from About and Construction
   Management: warm-neutral band, 1361px inner rail, 52/50 columns, copy on the
   left and a 490px cover image on the right at the shared 10px radius. The
   geometry is declared here because this layer neutralises Elementor's boxed
   width and inline padding for every other section on the page. */
.mydc-project-single>.e-con-inner>.e-con.mydc-project-single__closer,
.mydc-project-single .mydc-project-single__closer{
  width:100%;margin:0;
  padding-inline:5%;
  background-color:#F8F7F3;
}
.mydc-project-single .mydc-project-single__closer>.e-con-inner{
  width:100%;max-width:1361px;margin-inline:auto;
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;
  gap:0;min-height:490px;
  padding-block:5%;padding-inline:0;
}
.mydc-project-single .mydc-project-single__closer-copy{
  width:52%;min-width:0;
  display:flex;flex-direction:column;align-items:flex-start;gap:20px;
  padding:0 8% 0 0;margin:0;
}
.mydc-project-single .mydc-project-single__closer-media{
  width:50%;min-width:0;padding:0;margin:0;
}
.mydc-project-single .mydc-project-single__closer-media .elementor-widget-image{width:100%}
.mydc-project-single .mydc-project-single__closer-media img{
  display:block;width:100%;height:490px;
  object-fit:cover;object-position:center;
  border-radius:10px;
}
.mydc-project-single .mydc-project-single__closer .mydc-project-single__closer-copy p{
  margin:0;color:var(--mydc-muted);font-size:clamp(16px,1.05vw,20px);line-height:1.6;
}

@media (max-width:1024px){
  .mydc-project-single .mydc-project-single__closer>.e-con-inner{
    flex-direction:column;flex-wrap:wrap;align-items:flex-start;gap:32px;min-height:0;
    padding-block:6%;
  }
  .mydc-project-single .mydc-project-single__closer-copy,
  .mydc-project-single .mydc-project-single__closer-media{width:100%;padding:0}
  .mydc-project-single .mydc-project-single__closer-media img{height:360px}
}
@media (max-width:767px){
  .mydc-project-single>.e-con-inner>.e-con.mydc-project-single__closer,
  .mydc-project-single .mydc-project-single__closer{padding-inline:6%}
  .mydc-project-single .mydc-project-single__closer>.e-con-inner{gap:28px;padding-block:9%}
  .mydc-project-single .mydc-project-single__closer-media img{height:261px}
}
/* --- Motion preferences -------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .mydc-project-single .mydc-project-gallery__image,
  .mydc-project-single .mydc-project-related__image,
  .mydc-project-single .mydc-project-nav__link::after{transition:none}
  .mydc-project-single .mydc-project-gallery__link:hover .mydc-project-gallery__image,
  .mydc-project-single .mydc-project-related__link:hover .mydc-project-related__image{transform:none}
}

/* --- Responsive: gutter schedule ---------------------------------------- */
@media (max-width:1024px){.mydc-project-single{--mydc-gutter:48px}}
@media (max-width:1024px){
  .mydc-project-single .mydc-project-slideshow{--mydc-stage-height:540px;--mydc-thumb-height:76px;--mydc-thumb-width:114px;gap:20px}
}
@media (max-width:767px){
  .mydc-project-single .mydc-project-slideshow{--mydc-stage-height:360px;--mydc-thumb-height:64px;--mydc-thumb-width:96px;gap:16px}
  .mydc-project-single .mydc-project-slideshow__previous,
  .mydc-project-single .mydc-project-slideshow__next{width:44px;height:44px}
  .mydc-project-single .mydc-project-slideshow__previous{left:14px}
  .mydc-project-single .mydc-project-slideshow__next{right:14px}
  .mydc-project-single .mydc-project-slideshow__counter{right:14px;bottom:14px;padding:8px 13px;font-size:12px}
}
@media (max-width:768px){.mydc-project-single{--mydc-gutter:32px}}
@media (max-width:480px){.mydc-project-single{--mydc-gutter:20px}}

/* --- Responsive: tablet -------------------------------------------------- */
@media (max-width:1024px){
  .mydc-project-single__identity>.e-con-inner{padding-block:48px 48px;gap:32px}
  .mydc-project-single__title-meta{flex-basis:100%;max-width:none;flex-direction:row;flex-wrap:wrap;gap:32px;padding-top:0}
  .mydc-project-single__overview>.e-con-inner{padding-block:72px}
  .mydc-project-single .mydc-project-single__details>.e-con-inner,
  .mydc-project-single .mydc-project-single__scope>.e-con-inner,
  .mydc-project-single .mydc-project-single__gallery>.e-con-inner,
  .mydc-project-single .mydc-project-single__related>.e-con-inner{padding-block:72px}
  .mydc-project-single__inquiry{flex-basis:100%;max-width:none}
  .mydc-project-single__scope-intro{flex-basis:100%;max-width:none}
  .mydc-project-single .mydc-project-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
  .mydc-project-single .mydc-project-related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mydc-project-single .mydc-project-nav{gap:8px 32px;padding:20px 0}
  .mydc-project-single .mydc-project-nav__link{font-size:14px}
}

/* --- Responsive: mobile -------------------------------------------------- */
@media (max-width:768px){
  .mydc-project-single{--mydc-bleed:16px}
  .mydc-project-hero{margin-top:16px}
  .mydc-project-single__identity>.e-con-inner{padding-block:40px 40px;gap:24px}
  .mydc-project-single__identity-left{gap:14px;flex-basis:100%}
  .mydc-project-single__title-meta{gap:24px}
  .mydc-project-single .mydc-project-single__overview>.e-con-inner,
  .mydc-project-single .mydc-project-single__details>.e-con-inner,
  .mydc-project-single .mydc-project-single__scope>.e-con-inner,
  .mydc-project-single .mydc-project-single__gallery>.e-con-inner,
  .mydc-project-single .mydc-project-single__related>.e-con-inner{padding-block:56px;gap:32px}
  .mydc-project-single__overview-copy{flex-basis:100%}
  .mydc-project-single .mydc-project-single__inquiry{padding:28px}
  .mydc-project-single .mydc-project-facts{grid-template-columns:1fr;row-gap:28px;padding-top:28px}
  .mydc-project-single .mydc-project-related{grid-template-columns:1fr}
  .mydc-project-single .mydc-project-scope__item{
    grid-template-columns:48px minmax(0,1fr);column-gap:20px;row-gap:10px;padding:24px 0;
  }
  .mydc-project-single .mydc-project-scope__number{grid-column:1}
  .mydc-project-single .mydc-project-scope__title{grid-column:2}
  .mydc-project-single .mydc-project-scope__description{grid-column:2}
  .mydc-project-single .mydc-project-nav{gap:6px 24px;padding:16px 0}
  .mydc-project-single .mydc-project-nav__link{font-size:13px}
}

/* --- Responsive: small mobile ------------------------------------------- */
@media (max-width:480px){
  .mydc-project-single{--mydc-bleed:12px}
  .mydc-project-hero{margin-top:12px}
  .mydc-project-single__title-meta{flex-direction:column;gap:20px}
  .mydc-project-single .mydc-project-nav{gap:6px 20px}
  .mydc-project-single .mydc-project-nav__link{font-size:12px;white-space:normal}
  .mydc-project-single .mydc-project-scope__item{grid-template-columns:36px minmax(0,1fr);column-gap:16px}
  .mydc-project-single .mydc-project-single__inquiry{padding:24px}
  /* Preserved from the previous build: footer type scale on project pages. */
  body.single-project .elementor-location-footer p,
  body.single-project .elementor-location-footer a,
  body.single-project .elementor-location-footer li{font-size:14px;line-height:1.5}
}

/* --- Column sizing --------------------------------------------------------
   The paired columns are Elementor containers whose width resolves from
   --width, so they are sized through that property rather than flex-basis.
   Percentages keep the pairs on one line at intermediate widths; the px
   ceilings reproduce the Figma geometry at the 1760px rail. */
.mydc-project-single .mydc-project-single__identity-left{--width:min(960px,62%)}
.mydc-project-single .mydc-project-single__title-meta{--width:min(400px,26%)}
.mydc-project-single .mydc-project-single__overview-copy{--width:min(980px,58%)}
.mydc-project-single .mydc-project-single__inquiry{--width:min(420px,26%)}
.mydc-project-single .mydc-project-single__scope-intro{--width:min(480px,29%)}
.mydc-project-single .mydc-project-single__scope-output{--width:min(1167px,66%)}
.mydc-project-single .mydc-project-single__gallery-intro-copy{--width:min(1000px,60%)}
@media (max-width:1024px){
  .mydc-project-single .mydc-project-single__identity-left,
  .mydc-project-single .mydc-project-single__title-meta,
  .mydc-project-single .mydc-project-single__overview-copy,
  .mydc-project-single .mydc-project-single__inquiry,
  .mydc-project-single .mydc-project-single__scope-intro,
  .mydc-project-single .mydc-project-single__scope-output,
  .mydc-project-single .mydc-project-single__gallery-intro-copy{--width:100%}
}


/* --- Empty sections -------------------------------------------------------
   A project may have no facts, scope, gallery or related entries. Hide those
   sections outright so an editorial heading never sits above nothing. The
   section nav is generated from the same availability test, so hidden
   sections are never linked. */
.mydc-project-single .mydc-project-single__hero:not(:has(.mydc-project-hero)),
.mydc-project-single .mydc-project-single__details:not(:has(.mydc-project-facts)),
.mydc-project-single .mydc-project-single__scope:not(:has(.mydc-project-scope__item)),
.mydc-project-single .mydc-project-single__gallery:not(:has(.mydc-project-slideshow__slide)),
.mydc-project-single .mydc-project-single__related:not(:has(.mydc-project-related__item)){display:none}
