/* Project detail template */
.crumbs{font-size:.9rem;color:#AEB7C2;margin:0 0 1rem}
.crumbs a{color:#D9DFE6}
.crumbs span[aria-hidden]{margin:0 .4rem;opacity:.6}
.pd-hero{padding:2.6rem 0 2.8rem}
.pd-hero h1{font-size:clamp(2.2rem,5vw,3.6rem)}
.pd-hero .lead{max-width:40rem}
.pd-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.4rem 0 0;padding:0;list-style:none}
.pd-chips li{padding:.45rem .9rem;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);font-size:.92rem;color:#E6EAEE}
.pd-chips li b{color:#fff}

.pd-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:3.5rem;align-items:start;padding:3rem 1.25rem 4rem}
.pd-main>section{padding:0 0 3rem;margin:0 0 3rem;border-bottom:1px solid var(--line)}
.pd-main>section:last-child{border-bottom:0;margin-bottom:0}
.pd-main h2{font-size:var(--fs-xl);margin-bottom:1rem}
.pd-main p{max-width:44rem}
.note{font-size:.9rem;color:var(--ink-soft)}

.glance{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:0;border-top:1.5px solid var(--ink)}
.glance div{padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--line)}
.glance dt{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.glance dd{margin:.2rem 0 0;font-weight:600}

.dist{list-style:none;margin:0 0 1rem;padding:0;max-width:34rem}
.dist li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.dist li b{font-weight:600}

.plan{width:100%;max-width:44rem;border-collapse:collapse;margin:1rem 0}
.plan th,.plan td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line)}
.plan th{width:42%;font-weight:600;background:var(--mist)}
.tbc{display:inline-block;padding:.15rem .6rem;border-radius:999px;background:#FFF3D6;color:#6B4A00;font-size:.85rem;font-weight:600}
.plan-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.btn.outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.outline:hover{background:var(--mist)}
.btn.wa{background:#25D366;color:#06210F}
.btn.wa:hover{background:#3BE077}

.build{list-style:none;margin:0;padding:0;max-width:40rem}
.build li{position:relative;padding:0 0 1.4rem 2.2rem;border-left:2px solid var(--line);margin-left:.6rem}
.build li:last-child{border-left-color:transparent;padding-bottom:0}
.build li::before{content:"";position:absolute;left:-.6rem;top:.2rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--green-deep);box-shadow:0 0 0 4px #fff}
.build li.open::before{background:#fff;box-shadow:inset 0 0 0 2px var(--titanium),0 0 0 4px #fff}
.build b{display:block}
.build span{color:var(--ink-soft);font-size:.95rem}

.points{margin:0;padding:0;list-style:none;max-width:44rem}
.points li{padding:.9rem 0 .9rem 1rem;border-left:3px solid var(--green);margin-bottom:.9rem;background:var(--paper)}
.points li b{display:block;margin-bottom:.15rem}

.amen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem 2rem;max-width:40rem}
.amen li{padding-left:1.6rem;position:relative}
.amen li::before{content:"✓";position:absolute;left:0;color:var(--green-deep);font-weight:800}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.gallery div{aspect-ratio:3/4;border-radius:var(--r);background:linear-gradient(135deg,#C4CBD3,#E6EAEE);display:grid;place-items:center;color:var(--ink-soft);font-size:.85rem}

.faq details{border-bottom:1px solid var(--line);max-width:44rem}
.faq summary{cursor:pointer;list-style:none;padding:1rem 2rem 1rem 0;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:.8rem;font-size:1.4rem;color:var(--green-deep)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 1.1rem}

/* Glass-style site-visit card: translucent, calm and high-contrast. */
.pd-aside{
  position:sticky;top:1.2rem;isolation:isolate;overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(246,250,248,.76));
  -webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%);
  border:1px solid rgba(255,255,255,.94);border-radius:22px;padding:1.65rem;
  box-shadow:0 22px 58px rgba(22,29,25,.11),0 4px 14px rgba(22,29,25,.04),inset 0 1px 0 rgba(255,255,255,.9);
}
.pd-aside::before{content:"";position:absolute;z-index:-1;top:-88px;right:-78px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(0,168,88,.12),rgba(0,168,88,0) 70%);pointer-events:none}
.pd-aside h2{font-size:1.45rem;letter-spacing:-.035em;margin-bottom:.5rem;color:var(--ink)}
.pd-aside p{margin:0 0 1.2rem;color:var(--ink-soft);font-size:.96rem;line-height:1.55}
.pd-aside label{display:grid;gap:.38rem;font-size:.91rem;font-weight:650;color:#26312C;margin-bottom:.9rem}
.pd-aside input,.pd-aside select{
  display:block;width:100%;font:500 1rem var(--font);color:var(--ink);
  padding:.78rem .9rem;min-height:48px;border:1px solid rgba(174,183,194,.62);border-radius:11px;
  background:rgba(255,255,255,.78);box-shadow:inset 0 1px 2px rgba(22,29,25,.025);
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.pd-aside input:hover,.pd-aside select:hover{border-color:rgba(0,122,64,.45);background:rgba(255,255,255,.94)}
.pd-aside input:focus-visible,.pd-aside select:focus-visible{outline:3px solid rgba(0,168,88,.2);outline-offset:1px;border-color:var(--green-deep);background:#fff;box-shadow:0 0 0 1px rgba(0,122,64,.12)}
.pd-aside .btn{width:100%;min-height:48px;display:inline-flex;align-items:center;justify-content:center;text-align:center;margin-top:.25rem;border-radius:12px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
.pd-aside form>.btn{background:linear-gradient(135deg,#008849,var(--green-deep));color:#fff;box-shadow:0 8px 18px rgba(0,122,64,.18)}
.pd-aside form>.btn:hover{background:linear-gradient(135deg,#007A40,var(--green-dark));box-shadow:0 11px 22px rgba(0,122,64,.23);transform:translateY(-1px)}
.pd-aside .alt{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.85rem}
.pd-aside .alt .btn{margin:0;padding:.7rem .5rem;font-size:.95rem;min-height:46px}
.pd-aside .alt .btn.outline{background:rgba(255,255,255,.55);color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(35,44,39,.76)}
.pd-aside .alt .btn.outline:hover{background:rgba(255,255,255,.95);box-shadow:inset 0 0 0 1.5px var(--green-deep)}
.pd-aside .alt .btn.wa{background:#25D366;color:#06210F;box-shadow:0 7px 16px rgba(37,211,102,.18)}
.pd-aside .alt .btn.wa:hover{background:#3BE077;box-shadow:0 10px 20px rgba(37,211,102,.24);transform:translateY(-1px)}
.pd-aside .status{font-size:.9rem;margin:.75rem 0 0;color:var(--ink-soft)}
@media(prefers-reduced-motion:reduce){.pd-aside input,.pd-aside select,.pd-aside .btn{transition:none}.pd-aside .btn:hover{transform:none}}

.related{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.related a{padding:1.1rem;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;background:#fff}
.related a:hover{border-color:var(--green-deep)}
.related b{display:block;font-size:1.05rem}
.related span{font-size:.9rem;color:var(--ink-soft)}

@media (max-width:980px){
  .pd-layout{grid-template-columns:1fr;gap:2rem}
  .pd-aside{position:static}
}
@media (max-width:600px){
  .glance,.amen,.related{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
}

.visit{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;max-width:44rem}.visit label{display:grid;gap:.3rem;font-size:.9rem;font-weight:600}.visit input,.visit select{font:inherit;padding:.65rem .8rem;min-height:44px;border:1.5px solid var(--line);border-radius:8px;background:#fff}.visit .btn{grid-column:1/-1}.visit .status{grid-column:1/-1;margin:0;font-size:.9rem;color:var(--ink-soft)}@media(max-width:600px){.visit{grid-template-columns:1fr}}
.phase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.phase-card{display:grid;gap:.3rem;padding:1.4rem;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink)}
.phase-card:hover{border-color:var(--green-deep);box-shadow:0 8px 24px rgba(22,29,25,.08)}
.phase-card b{font-size:1.2rem}.phase-card span{color:var(--ink-soft);font-size:.92rem}.phase-card em{font-style:normal;font-weight:600;color:var(--green-deep);margin-top:.6rem}
.pd-main>section:target{scroll-margin-top:1rem}

/* Optional project feature image: fades in from the left without changing the hero's dark texture. */
.pd-hero{position:relative;isolation:isolate;overflow:hidden}
.pd-hero .wrap{position:relative;z-index:1}
.pd-hero.has-feature-image{min-height:330px}
.pd-hero-image{position:absolute;z-index:0;top:50%;right:0;width:min(60%,700px);height:auto;max-height:100%;aspect-ratio:3/2;object-fit:contain;object-position:right center;transform:translateY(-50%);opacity:.82;pointer-events:none;mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.14) 17%,rgba(0,0,0,.7) 36%,#000 52%);-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.14) 17%,rgba(0,0,0,.7) 36%,#000 52%)}
@media(max-width:720px){
  .pd-hero.has-feature-image{min-height:360px}
  .pd-hero-image{width:100%;max-width:600px;max-height:100%;opacity:.36;object-position:right center;mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.28) 15%,#000 52%);-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.28) 15%,#000 52%)}
}


/* Lightweight horizontal related-blog scroller for project pages. */
.project-blog-section{padding:3.5rem 0 4rem;background:linear-gradient(180deg,rgba(237,240,243,.62),rgba(248,249,250,.96));border-top:1px solid rgba(213,218,224,.7)}
.project-blog-section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem}
.project-blog-section__intro{min-width:0}
.project-blog-section__kicker{display:inline-block;color:var(--green-deep);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.4rem}
.project-blog-section__head h2{font-size:clamp(1.55rem,3vw,2.2rem);line-height:1.15;letter-spacing:-.035em;color:var(--ink);margin:0 0 .55rem}
.project-blog-section__head p{color:var(--ink-soft);margin:0;max-width:44rem}
.project-blog-section__controls{display:flex;gap:.5rem;flex-shrink:0}
.project-blog-section__controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.88);color:var(--ink);font:700 1.2rem/1 var(--font);cursor:pointer;box-shadow:0 3px 12px rgba(22,29,25,.05);transition:background-color .18s ease,border-color .18s ease,transform .18s ease}
.project-blog-section__controls button:hover:not(:disabled){background:#fff;border-color:var(--green-deep);transform:translateY(-1px)}
.project-blog-section__controls button:focus-visible{outline:3px solid rgba(0,168,88,.28);outline-offset:3px}
.project-blog-section__controls button:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}
.project-blog-rail{display:flex;gap:1rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:.15rem;padding:.2rem .15rem 1rem;scrollbar-width:thin;scrollbar-color:var(--green) var(--mist)}
.project-blog-rail:focus-visible{outline:3px solid rgba(0,168,88,.22);outline-offset:3px;border-radius:14px}
.project-blog-rail[data-blog-count="1"] .project-blog-card{flex-basis:min(100%,520px)}
.project-blog-card{flex:0 0 clamp(265px,31vw,360px);min-width:0;scroll-snap-align:start;display:flex;border:1px solid rgba(213,218,224,.92);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(22,29,25,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.project-blog-card:hover{transform:translateY(-3px);border-color:rgba(0,122,64,.4);box-shadow:0 16px 34px rgba(22,29,25,.1)}
.project-blog-card__link{display:flex;flex-direction:column;width:100%;min-height:100%;color:inherit;text-decoration:none}
.project-blog-card__art{position:relative;aspect-ratio:681 / 486;overflow:hidden;background:#eef3ef}
.project-blog-card__art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,25,18,.02),rgba(10,25,18,.22));pointer-events:none}
.project-blog-card__art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:none}
.project-blog-card:hover .project-blog-card__art img{transform:none}
.project-blog-card__label{position:absolute;z-index:1;left:.8rem;top:.8rem;max-width:calc(100% - 1.6rem);padding:.35rem .62rem;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(22,29,25,.74);backdrop-filter:blur(8px);color:#fff;font-size:.72rem;line-height:1.2;font-weight:750;letter-spacing:.025em}
.project-blog-card__body{display:flex;flex:1;flex-direction:column;padding:1rem 1.05rem 1.1rem}
.project-blog-card__meta{display:flex;align-items:center;gap:.5rem;min-height:1.1rem;color:var(--ink-soft);font-size:.78rem;margin-bottom:.45rem}
.project-blog-card__body h3{font-size:1.08rem;line-height:1.32;letter-spacing:-.02em;color:var(--ink);margin:0 0 .55rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.25em}
.project-blog-card__body p{font-size:.91rem;line-height:1.5;color:var(--ink-soft);margin:0 0 1rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.project-blog-card__read{display:flex;align-items:center;gap:.4rem;margin-top:auto;padding-top:.1rem;color:var(--green-deep);font-size:.9rem;font-weight:800}
.project-blog-card__link:focus-visible{outline:3px solid rgba(0,168,88,.3);outline-offset:-3px;border-radius:16px}
.project-blog-section__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.3rem;color:var(--ink-soft);font-size:.85rem}
.project-blog-section__foot a{color:var(--green-deep);font-weight:750;text-decoration:none}
.project-blog-section__foot a:hover{text-decoration:underline}
@media(max-width:720px){.project-blog-section{padding:2.5rem 0 3rem}.project-blog-section__head{align-items:flex-start;gap:1rem}.project-blog-section__controls{padding-top:.2rem}.project-blog-card{flex-basis:min(84vw,340px)}.project-blog-section__head h2{font-size:1.65rem}}
@media(max-width:420px){.project-blog-section__head{display:block}.project-blog-section__controls{margin-top:.9rem}.project-blog-card{flex-basis:84vw}.project-blog-section__foot{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.project-blog-section__controls button,.project-blog-card,.project-blog-card__art img{transition:none}.project-blog-card:hover,.project-blog-section__controls button:hover:not(:disabled){transform:none}}

.project-blog-empty{padding:1.25rem;color:var(--ink-soft);font-size:.95rem;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:12px;min-width:min(100%,420px)}

/* Titanium Agency — project hero image left fade (incremental override)
   Paste this at the VERY END of public/assets/css/project-detail.css.
   It preserves the right edge and image sizing while blending the left side
   into the dark hero background. */

.pd-hero.has-feature-image {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.pd-hero.has-feature-image .pd-hero-image {
  z-index: 0;
  opacity: 1;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    transparent 8%,
    rgba(0, 0, 0, 0.05) 20%,
    rgba(0, 0, 0, 0.18) 32%,
    rgba(0, 0, 0, 0.48) 46%,
    rgba(0, 0, 0, 0.82) 60%,
    #000 72%
  ) !important;
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    transparent 8%,
    rgba(0, 0, 0, 0.05) 20%,
    rgba(0, 0, 0, 0.18) 32%,
    rgba(0, 0, 0, 0.48) 46%,
    rgba(0, 0, 0, 0.82) 60%,
    #000 72%
  ) !important;
}

/* A matching dark overlay makes the transition reliable even where masks
   render differently. The hero text remains above this layer. */
.pd-hero.has-feature-image::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(60%, 700px);
  background: linear-gradient(
    to right,
    rgba(24, 32, 27, 1) 0%,
    rgba(24, 32, 27, 0.96) 14%,
    rgba(24, 32, 27, 0.82) 29%,
    rgba(24, 32, 27, 0.54) 45%,
    rgba(24, 32, 27, 0.24) 63%,
    rgba(24, 32, 27, 0.06) 82%,
    rgba(24, 32, 27, 0) 100%
  );
  pointer-events: none;
}

.pd-hero.has-feature-image .wrap {
  position: relative;
  z-index: 2;
}

@media (max-width: 720px) {
  .pd-hero.has-feature-image::after {
    width: 100%;
    background: linear-gradient(
      to right,
      rgba(24, 32, 27, 0.96) 0%,
      rgba(24, 32, 27, 0.88) 22%,
      rgba(24, 32, 27, 0.7) 42%,
      rgba(24, 32, 27, 0.42) 64%,
      rgba(24, 32, 27, 0.16) 82%,
      rgba(24, 32, 27, 0.06) 100%
    );
  }

  .pd-hero.has-feature-image .pd-hero-image {
    opacity: 0.62;
    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.08) 15%,
      rgba(0, 0, 0, 0.35) 38%,
      rgba(0, 0, 0, 0.75) 60%,
      #000 78%
    ) !important;
    mask-image: linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.08) 15%,
      rgba(0, 0, 0, 0.35) 38%,
      rgba(0, 0, 0, 0.75) 60%,
      #000 78%
    ) !important;
  }
}
