.elementor-7123 .elementor-element.elementor-element-1dabcf86{--display:flex;}.elementor-7123 .elementor-element.elementor-element-1dabcf86:not(.elementor-motion-effects-element-type-background), .elementor-7123 .elementor-element.elementor-element-1dabcf86 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-size:cover;}.elementor-7123 .elementor-element.elementor-element-76238534{--display:flex;}.elementor-7123 .elementor-element.elementor-element-74aa1d1e{--display:flex;}.elementor-7123 .elementor-element.elementor-element-163c7e59{--display:flex;}.elementor-7123 .elementor-element.elementor-element-169b510a{--display:flex;}.elementor-7123 .elementor-element.elementor-element-64771c02{--display:flex;}.elementor-7123 .elementor-element.elementor-element-3587a09{--display:flex;}.elementor-7123 .elementor-element.elementor-element-d1add73{--display:flex;}.elementor-7123 .elementor-element.elementor-element-daec929{--display:flex;}.elementor-7123 .elementor-element.elementor-element-febea9b{--display:flex;}.elementor-7123 .elementor-element.elementor-element-52ddc08b{--display:flex;}.elementor-7123 .elementor-element.elementor-element-724d3acb{--display:flex;}.elementor-7123 .elementor-element.elementor-element-1dd8ef23{--display:flex;}.elementor-7123 .elementor-element.elementor-element-544cf2ed{--display:flex;}.elementor-7123 .elementor-element.elementor-element-69d0b023{--display:flex;}.elementor-7123 .elementor-element.elementor-element-7b065aec{--display:flex;}.elementor-7123 .elementor-element.elementor-element-42a0e3b0{--display:flex;}.elementor-7123 .elementor-element.elementor-element-7f05a158{--display:flex;}.elementor-7123 .elementor-element.elementor-element-14e9ec81{--display:flex;}.elementor-7123 .elementor-element.elementor-element-16f59352{--display:flex;}.elementor-7123 .elementor-element.elementor-element-ffa351{--display:flex;}.elementor-7123 .elementor-element.elementor-element-54afda74{--display:flex;}.elementor-7123 .elementor-element.elementor-element-454a6b13{--display:flex;}.elementor-7123 .elementor-element.elementor-element-784f38cf{--display:flex;}.elementor-7123 .elementor-element.elementor-element-6c257ea8{--display:flex;}.elementor-7123 .elementor-element.elementor-element-4c470919{--display:flex;}.elementor-7123 .elementor-element.elementor-element-1bb397f1{--display:flex;}.elementor-7123 .elementor-element.elementor-element-55548572{--display:flex;}.elementor-7123 .elementor-element.elementor-element-1b8ade7{--display:flex;}.elementor-7123 .elementor-element.elementor-element-be034d1 .gallery-item .gallery-caption{text-align:center;}.elementor-7123 .elementor-element.elementor-element-1c62fc0c{--display:flex;}.elementor-7123 .elementor-element.elementor-element-19819134{--display:flex;}.elementor-7123 .elementor-element.elementor-element-85c814a{--display:flex;}.elementor-7123 .elementor-element.elementor-element-15ba16de{--grid-columns:3;}@media(max-width:1024px){.elementor-7123 .elementor-element.elementor-element-15ba16de{--grid-columns:2;}}@media(max-width:767px){.elementor-7123 .elementor-element.elementor-element-15ba16de{--grid-columns:1;}}/* Start custom CSS *//* ==========================================================
   Alumno | Single Project: Completed  (template custom CSS)
   Tokens match the live :root in alumno-additions v5.9.1
   ========================================================== */
.e-con.cp{
  --cp-paper:#f6f4f0; --cp-warm:#eae6e0; --cp-green:#2e3e2e; --cp-green-ink:#e9ece4;
  --cp-text:#394054; --cp-ink:#232837; --cp-label:#5d5c52; --cp-line:#d6d1c9;
  --cp-ease:cubic-bezier(0.23,1,0.32,1); --cp-gutter:clamp(16px,4vw,48px);
  font-family:'Outfit',sans-serif; font-weight:300; color:var(--cp-text);
  background-color:var(--cp-paper);
}

/* ---------- Container reset: layout is controlled here, not per element ---------- */
.e-con.cp, .e-con.cp .e-con{
  --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px;
  --gap:0px; --row-gap:0px; --column-gap:0px; --min-height:0;
}
.e-con.cp .elementor-widget{margin:0; --container-widget-width:100%}
.e-con.cp .elementor-heading-title{margin:0; color:inherit; font-family:inherit; font-weight:inherit; font-size:inherit; line-height:inherit; letter-spacing:inherit; text-transform:inherit}
.e-con.cp .elementor-heading-title a{color:inherit; text-decoration:none}
.e-con.cp .e-con.cp-wrap{
  width:100%; max-width:1240px; margin-left:auto !important; margin-right:auto !important;
  --padding-left:var(--cp-gutter); --padding-right:var(--cp-gutter);
}
.e-con.cp p{margin:0 0 1.1em}
.e-con.cp .cp-h2 .elementor-heading-title{font-size:clamp(30px,3.2vw,44px); letter-spacing:-.02em; line-height:1.1; color:var(--cp-ink); text-wrap:balance}
.e-con.cp .cp-eyebrow .elementor-heading-title,
.e-con.cp .cp-fact-label .elementor-heading-title,
.e-con.cp .cp-caption .elementor-heading-title,
.e-con.cp .cp-back .elementor-heading-title{font-size:12px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:var(--cp-label); line-height:1.5}

/* ---------- 1. Hero ---------- */
.e-con.cp-hero{--min-height:min(92dvh,880px); min-height:min(92dvh,880px); background-color:#1d2230; color:#f4f2ee}
.e-con.cp-hero > .e-con.cp-hero-shade{
  flex-grow:1; justify-content:flex-end; --justify-content:flex-end;
  background:linear-gradient(180deg,rgba(29,34,48,.45) 0%,rgba(29,34,48,0) 22%,rgba(29,34,48,0) 45%,rgba(29,34,48,.78) 100%);
  padding-top:120px;
}
.e-con.cp .cp-hero-content{--padding-bottom:clamp(40px,7vw,88px)}
.e-con.cp-hero .cp-eyebrow .elementor-heading-title{color:rgba(244,242,238,.85)}
.e-con.cp .cp-title .elementor-heading-title{
  color:#fbfaf7; font-weight:200; letter-spacing:-.025em; line-height:1.02;
  font-size:clamp(44px,7.4vw,104px); margin:14px 0 18px; max-width:14ch; text-wrap:balance;
}
.e-con.cp .cp-standfirst .elementor-heading-title{font-size:clamp(18px,1.6vw,22px); line-height:1.55; max-width:38ch; color:rgba(251,250,247,.92)}

/* ---------- 2. Key facts ---------- */
.e-con.cp-facts{--padding-top:clamp(56px,8vw,112px); --padding-bottom:clamp(48px,7vw,96px)}
.e-con.cp .cp-back{margin-bottom:clamp(36px,5vw,64px) !important}
.e-con.cp .cp-back a:hover{text-decoration:underline}
.e-con.cp .e-con.cp-facts-grid{--display:grid; display:grid; grid-template-columns:5fr 7fr; gap:clamp(32px,6vw,96px); align-items:end}
.e-con.cp .cp-bignum .elementor-heading-title{font-size:clamp(110px,17vw,220px); font-weight:200; line-height:.82; letter-spacing:-.05em; color:var(--cp-green); font-variant-numeric:tabular-nums}
.e-con.cp .cp-bignum-label .elementor-heading-title{font-size:20px; line-height:1.4; margin-top:18px; color:var(--cp-ink); max-width:20ch}
.e-con.cp .e-con.cp-dl{--display:grid; display:grid; grid-template-columns:repeat(3,1fr); gap:34px 28px; border-top:1px solid var(--cp-line); padding-top:30px}
.e-con.cp .cp-fact-label{margin-bottom:6px !important}
.e-con.cp .cp-fact-value .elementor-heading-title{font-size:19px; color:var(--cp-ink); font-weight:400; line-height:1.35}
/* hide a fact when its value is empty (Elementor drops empty widgets) */
.e-con.cp .e-con.cp-fact:not(:has(.cp-fact-value)){display:none}

/* ---------- 3. About ---------- */
.e-con.cp-about{--padding-bottom:clamp(72px,9vw,128px)}
.e-con.cp .e-con.cp-about-grid{--display:grid; display:grid; grid-template-columns:4fr 8fr; gap:clamp(32px,6vw,96px); background:linear-gradient(var(--cp-line),var(--cp-line)) no-repeat; background-size:calc(100% - 2 * var(--cp-gutter)) 1px; background-position:var(--cp-gutter) 0; --padding-top:clamp(40px,5vw,64px)}
.e-con.cp .cp-about-h{position:sticky; top:32px; align-self:start}
.e-con.cp .cp-overview{max-width:64ch; font-size:17px; line-height:1.65}
.e-con.cp .cp-overview p:first-child:not(:only-child){font-size:clamp(21px,2vw,26px); line-height:1.45; color:var(--cp-ink); margin-bottom:1em}

/* ---------- 4. Feature image (hidden when no image) ---------- */
.e-con.cp-feature:not(:has(.cp-feature-img img)){display:none}
.e-con.cp .cp-feature-img img{width:100%; height:clamp(340px,72vh,780px); object-fit:cover; display:block; max-width:none}
.e-con.cp .cp-caption{padding-top:14px}

/* ---------- 5. Art and community (hidden when no text) ---------- */
.e-con.cp-art{background-color:var(--cp-warm); --padding-top:clamp(72px,9vw,128px); --padding-bottom:clamp(72px,9vw,128px); margin-top:clamp(72px,9vw,128px)}
.e-con.cp-art:not(:has(.cp-art-text p)){display:none}
.e-con.cp .e-con.cp-art-grid{--display:grid; display:grid; grid-template-columns:6fr 5fr; gap:clamp(32px,6vw,96px); align-items:center}
.e-con.cp-art:not(:has(.cp-art-img img)) .e-con.cp-art-grid{grid-template-columns:1fr}
.e-con.cp .cp-art-img img{width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:2px; box-shadow:0 1px 2px rgba(57,52,40,.06),0 12px 32px -12px rgba(57,52,40,.22)}
.e-con.cp .cp-art-copy .cp-h2{margin-bottom:24px !important}
.e-con.cp .cp-art-text{max-width:46ch; line-height:1.65}

/* ---------- 6. Voices (hidden when no main quote) ---------- */
.e-con.cp-voices{background-color:var(--cp-green); color:var(--cp-green-ink); --padding-top:clamp(80px,10vw,144px); --padding-bottom:clamp(80px,10vw,144px)}
.e-con.cp-voices:not(:has(.cp-q1-text)){display:none}
.e-con.cp .cp-voices-label{text-align:center; margin-bottom:36px !important}
.e-con.cp-voices .cp-voices-label .elementor-heading-title{color:rgba(233,236,228,.7)}
.e-con.cp .cp-q1-text .elementor-heading-title{font-size:clamp(26px,3.3vw,44px); line-height:1.3; letter-spacing:-.01em; color:#f3f5ef; text-align:center; max-width:30ch; margin:0 auto 32px}
.e-con.cp .e-con.cp-cite{--flex-direction:row; flex-direction:row; flex-wrap:wrap; justify-content:center; column-gap:.35em}
.e-con.cp .cp-cite .elementor-widget{width:auto; --container-widget-width:auto}
.e-con.cp .cp-cite-name .elementor-heading-title{font-weight:500; color:#f3f5ef; font-size:15px}
.e-con.cp .cp-cite-name:has(+ .cp-cite-role) .elementor-heading-title::after{content:","}
.e-con.cp .cp-cite-role .elementor-heading-title{font-size:15px}
.e-con.cp .e-con.cp-q2{max-width:720px; margin:clamp(56px,7vw,88px) auto 0 !important; padding-top:40px; border-top:1px solid rgba(233,236,228,.22)}
.e-con.cp .e-con.cp-q2:not(:has(.cp-q2-text)){display:none}
.e-con.cp .cp-q2-text .elementor-heading-title{font-size:19px; line-height:1.55; text-align:center; margin-bottom:18px}

/* ---------- 7. Gallery (asymmetric grid, pattern repeats every 6) ---------- */
.e-con.cp-gallery{--padding-top:clamp(72px,9vw,128px); --padding-bottom:clamp(72px,9vw,128px)}
.e-con.cp-gallery:not(:has(.cp-gal img)){display:none}
.e-con.cp .cp-gal-h{margin-bottom:clamp(28px,4vw,48px) !important}
.e-con.cp .cp-gal .gallery{display:grid !important; grid-template-columns:repeat(12,1fr); grid-auto-rows:260px; gap:10px; margin:0 !important}
.e-con.cp .cp-gal .gallery br{display:none}
.e-con.cp .cp-gal .gallery-item{width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; grid-column:span 4; overflow:hidden; border-radius:2px}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+1){grid-column:span 7; grid-row:span 2}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+2),
.e-con.cp .cp-gal .gallery-item:nth-child(6n+3){grid-column:span 5}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+4){grid-column:span 4}
.e-con.cp .cp-gal .gallery-item .gallery-icon, .e-con.cp .cp-gal .gallery-item a{display:block; height:100%}
.e-con.cp .cp-gal .gallery-item img{width:100% !important; height:100% !important; object-fit:cover; border:0 !important; display:block; transition:transform .5s var(--cp-ease)}
.e-con.cp .cp-gal .gallery-item:hover img{transform:scale(1.03)}
.e-con.cp .cp-gal .gallery-caption{display:none}

/* ---------- 8. More completed projects ---------- */
.e-con.cp-more{--padding-bottom:clamp(80px,10vw,140px)}
.e-con.cp .e-con.cp-more-head{--flex-direction:row; flex-direction:row; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:clamp(28px,4vw,44px) !important; border-top:1px solid var(--cp-line); --padding-top:clamp(40px,5vw,64px)}
.e-con.cp .cp-more-head .elementor-widget{width:auto; --container-widget-width:auto}
.e-con.cp .cp-btn .elementor-button{background:transparent; border:1px solid var(--cp-ink); color:var(--cp-ink); border-radius:0; padding:13px 22px; font-family:inherit; font-size:13px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; transition:background .25s var(--cp-ease),color .25s var(--cp-ease)}
.e-con.cp .cp-btn .elementor-button:hover, .e-con.cp .cp-btn .elementor-button:focus-visible{background:var(--cp-ink); color:var(--cp-paper)}
.e-con.cp .cp-loop .elementor-loop-container{gap:10px; --grid-column-gap:10px; --grid-row-gap:10px}

/* ---------- Focus ---------- */
.e-con.cp a:focus-visible{outline:2px solid var(--cp-green); outline-offset:3px}
.e-con.cp-hero a:focus-visible, .e-con.cp-voices a:focus-visible{outline-color:#f3f5ef}

/* ---------- Tablet and mobile ---------- */
@media (max-width:1024px){
  .e-con.cp .e-con.cp-facts-grid{grid-template-columns:1fr}
  .e-con.cp .e-con.cp-dl{grid-template-columns:repeat(2,1fr)}
  .e-con.cp .e-con.cp-about-grid{grid-template-columns:1fr}
  .e-con.cp .cp-about-h{position:static}
  .e-con.cp .e-con.cp-art-grid{grid-template-columns:1fr}
}
@media (max-width:767px){
  .e-con.cp .cp-gal .gallery{grid-template-columns:1fr 1fr; grid-auto-rows:180px}
  .e-con.cp .cp-gal .gallery-item,
  .e-con.cp .cp-gal .gallery-item:nth-child(n){grid-column:span 1; grid-row:span 1}
  .e-con.cp .cp-gal .gallery-item:nth-child(6n+1){grid-column:1 / -1; grid-row:span 2}
  .e-con.cp .e-con.cp-more-head{flex-direction:column; align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .e-con.cp .cp-gal .gallery-item img{transition:none}
}

/* ---------- Fixes after first QA ---------- */
.e-con.cp .cp-overview, .e-con.cp .cp-art-text{font-size:18px; line-height:1.65; color:var(--cp-text)}
/* gallery: tidy the last row whatever the image count */
.e-con.cp .cp-gal .gallery-item:nth-child(6n+1):nth-last-child(-n+2){grid-row:span 1}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+1):last-child{grid-column:1 / -1; grid-row:span 2}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+2):last-child{grid-row:span 2}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+4):nth-last-child(2), .e-con.cp .cp-gal .gallery-item:nth-child(6n+5):last-child{grid-column:span 6}
.e-con.cp .cp-gal .gallery-item:nth-child(6n+4):last-child{grid-column:1 / -1}

/* ---------- Project cards (loop item #7120), duplicated here so the editor preview matches ---------- */
.e-con.cp-card{--padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px; --gap:0px; position:relative; display:flex; aspect-ratio:4/5; overflow:hidden; border-radius:2px; background-color:#2b3040; color:#fff; text-decoration:none; justify-content:flex-end}
.e-con.cp-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(29,34,48,0) 45%,rgba(29,34,48,.72) 100%); pointer-events:none; z-index:1}
.e-con.cp-card > .e-con.cp-card-txt{--padding-top:0px; --padding-right:22px; --padding-bottom:22px; --padding-left:22px; --gap:6px; position:relative; z-index:2; margin-top:auto}
.e-con.cp-card .elementor-heading-title{margin:0; color:#fff; font-family:inherit}
.e-con.cp-card .cp-card-city .elementor-heading-title{font-size:11px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.85)}
.e-con.cp-card .cp-card-title .elementor-heading-title{font-size:24px; font-weight:400; line-height:1.2}
.e-con.cp-card:focus-visible{outline:2px solid var(--cp-green); outline-offset:3px}
@media (max-width:767px){ .e-con.cp-card{aspect-ratio:4/3} }

/* ---------- Hide "More completed projects" when there are no other newly completed projects ---------- */
.e-con.cp-more:not(:has(.e-loop-item)){display:none}
.e-con.cp .e-con.cp-dl:not(:has(.cp-fact-value)){display:none}

/* ---------- Hero: more breathing room between the label and the project name ---------- */
.e-con.cp-hero .cp-title .elementor-heading-title{margin-top:30px}
@media (max-width:767px){ .e-con.cp-hero .cp-title .elementor-heading-title{margin-top:20px} }/* End custom CSS */