/* HT Containers — global visual rules, 2026-10-23
   Hard rules:
   1) Real photography fills its frame. No white mat, no tiny centered photo.
   2) Technical drawings remain complete, but use a compact warm canvas and maximum readable scale.
   3) Adjacent content bands must have visible background contrast.
*/

:root{
  --ht-vr-white:#ffffff;
  --ht-vr-paper:#F5F3EE;
  --ht-vr-deep:#16262F;
  --ht-vr-primary:#1F3A4A;
  --ht-vr-border:#D9D6CF;
}

/* ---------- REAL PHOTOGRAPHY: EDGE TO EDGE ---------- */
.ex-model-hero-image,
.ex-model-nav>a,
.ex-option-grid .ex-spec-card,
.pl-media,
.ht-result-product,
.ds-hero-media,
.ds-feature-image,
.ds-story-media,
.ds-room,
.ds-gallery figure,
.ds-mosaic figure,
.hp-double-main,
.hp-double-grid>figure,
.hp-project-grid>a,
.ht-real-project-grid figure{
  overflow:hidden!important;
}

.ex-model-hero-image>img,
.ex-model-nav>a>img,
.ex-option-grid .ex-spec-card>img:not([src*="layout-source"]):not([src*="floor"]):not([src*="plan"]):not([src*="structure"]):not([src*="installation"]),
.pl-media.pl-photo>img,
.ht-result-product>img,
.ds-hero-media>img,
.ds-feature-image>img,
.ds-story-media>img,
.ds-room>img,
.ds-gallery figure>img,
.ds-mosaic figure>img,
.hp-double-main>img,
.hp-double-grid>figure>img,
.hp-project-grid>a>img,
.ht-real-project-grid figure>img,
img[src^="01_Exterior/"],
img[src^="02_Living_Dining_Kitchen/"],
img[src^="03_Bedroom/"],
img[src^="04_Bathroom/"],
img[src^="05_Interior_Circulation/"],
img[src^="06_Double_Storey_Custom/"],
img[src^="assets/20ft/"]{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Product photos in related-model cards must read as real products, not thumbnails. */
.ex-model-nav{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
}
.ex-model-nav>a{
  padding:0!important;
  background:var(--ht-vr-white)!important;
}
.ex-model-nav>a>img{
  height:260px!important;
  min-height:260px!important;
}
.ex-model-nav-copy{
  min-height:154px!important;
  padding:18px 20px 20px!important;
}

/* Configuration cards: two large cards per row, never four tiny photos. */
.ex-option-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
.ex-option-grid .ex-spec-card{
  padding:0!important;
  min-height:0!important;
}
.ex-option-grid .ex-spec-card>img{
  width:100%!important;
  height:285px!important;
  min-height:285px!important;
  max-height:285px!important;
}
.ex-option-grid .ex-spec-card>div{
  padding:22px 24px 25px!important;
}

/* ---------- TECHNICAL DRAWINGS: LARGE, COMPLETE, NO GIANT WHITE MAT ---------- */
img[src*="layout-source"],
img[src*="floor-plan"],
img[src*="floorplan"],
img[src*="plan-reference"],
img[src*="structure"],
img[src*="installation-diagram"],
.ex-layout-list .ex-visual-card>img,
.ex-option-grid .ex-spec-card>img[src*="layout-source"],
.ht-result-plan>img,
.pl-media:not(.pl-photo)>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:6px!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  background:var(--ht-vr-paper)!important;
  object-fit:contain!important;
  object-position:center!important;
  mix-blend-mode:multiply;
}

/* Technical-card frames are deliberately compact so the drawing fills the visible area. */
.ex-layout-list .ex-visual-card>img,
.ex-option-grid .ex-spec-card>img[src*="layout-source"]{
  height:285px!important;
  min-height:285px!important;
}
.ex-layout-list{
  gap:18px!important;
}
.ex-layout-list .ex-visual-card{
  padding:0!important;
  overflow:hidden!important;
}
.ex-layout-list .ex-visual-card>div{
  padding:22px 24px 25px!important;
}

/* ---------- HOUSE FINDER / PRODUCT RESULT ROWS ---------- */
.ht-result-wide-body{
  grid-template-columns:1.12fr 1fr .9fr!important;
  min-height:350px!important;
}
.ht-result-product,
.ht-result-plan{
  position:relative!important;
  min-height:350px!important;
  padding:0!important;
  background:var(--ht-vr-paper)!important;
}
.ht-result-product>span,
.ht-result-plan>span{
  z-index:3!important;
  left:14px!important;
  top:14px!important;
  padding:7px 9px!important;
  background:rgba(255,255,255,.94)!important;
  color:var(--ht-vr-primary)!important;
}
.ht-result-product>img{
  min-height:350px!important;
  object-fit:cover!important;
}
.ht-result-plan>img{
  min-height:350px!important;
  padding:12px!important;
  object-fit:contain!important;
  background:var(--ht-vr-paper)!important;
}
.ht-result-specs{
  padding:24px!important;
}

/* ---------- EXPANDABLE/FOLDING LANDING PRODUCT ROWS ---------- */
.pl-product-body{
  grid-template-columns:1.12fr 1fr .9fr!important;
  min-height:360px!important;
}
.pl-media{
  min-height:360px!important;
  padding:0!important;
  background:var(--ht-vr-paper)!important;
}
.pl-media>span{
  z-index:3!important;
  left:14px!important;
  top:14px!important;
  padding:7px 9px!important;
  background:rgba(255,255,255,.94)!important;
  color:var(--ht-vr-primary)!important;
}
.pl-media.pl-photo>img{
  min-height:360px!important;
  object-fit:cover!important;
}
.pl-media:not(.pl-photo)>img{
  min-height:360px!important;
  padding:12px!important;
}

/* ---------- HERO / DOUBLE-STOREY PHOTOS ---------- */
.ds-hero-media>img,
.ds-feature-image>img,
.hp-double-main>img{
  object-fit:cover!important;
  padding:0!important;
  background:transparent!important;
}

/* ---------- NO SAME-COLOR ADJACENT BANDS ---------- */
/* Content-rich pages: paper FAQ followed by CTA must switch to white. */
main>.cr-section.cr-paper + .cr-true-final{
  background:var(--ht-vr-white)!important;
}
main>.cr-section.cr-ink + .cr-true-final,
main>.cr-section:not(.cr-paper):not(.cr-ink) + .cr-true-final{
  background:var(--ht-vr-paper)!important;
}
/* Two ordinary CR sections cannot visually merge. */
main>.cr-section:not(.cr-paper):not(.cr-ink) + .cr-section:not(.cr-paper):not(.cr-ink){
  background:var(--ht-vr-paper)!important;
}
main>.cr-section.cr-paper + .cr-section.cr-paper{
  background:var(--ht-vr-white)!important;
}
/* Expandable model sections. */
main>.ex-series-section:not(.ex-soft) + .ex-series-section:not(.ex-soft){
  background:var(--ht-vr-paper)!important;
}
main>.ex-series-section.ex-soft + .ex-series-section.ex-soft{
  background:var(--ht-vr-white)!important;
}
/* Product landing sections. */
main>.pl-section:not(.pl-soft) + .pl-section:not(.pl-soft){
  background:var(--ht-vr-paper)!important;
}
main>.pl-section.pl-soft + .pl-section.pl-soft{
  background:var(--ht-vr-white)!important;
}
/* Double-storey landing sections. */
main>.ds-section:not(.soft) + .ds-section:not(.soft){
  background:var(--ht-vr-paper)!important;
}
main>.ds-section.soft + .ds-section.soft{
  background:var(--ht-vr-white)!important;
}

/* Explicit CTA separation from footer. */
.cr-true-final,
.pl-final,
.ds-final{
  border-top:1px solid var(--ht-vr-border)!important;
  border-bottom:1px solid var(--ht-vr-border)!important;
}
.cr-true-final + .foot,
.pl-final + .foot,
.ds-final + .foot{
  background:var(--ht-vr-deep)!important;
}

/* Mobile keeps full-width photos without turning them back into thumbnails. */
@media(max-width:980px){
  .ex-option-grid{grid-template-columns:1fr!important}
  .ht-result-wide-body,.pl-product-body{grid-template-columns:1fr 1fr!important}
  .ht-result-specs,.pl-spec{grid-column:1/3!important}
}
@media(max-width:650px){
  .ex-model-nav{grid-template-columns:1fr!important}
  .ex-model-nav>a>img{height:300px!important;min-height:300px!important}
  .ex-option-grid .ex-spec-card>img,
  .ex-layout-list .ex-visual-card>img{height:300px!important;min-height:300px!important;max-height:300px!important}
  .ht-result-wide-body,.pl-product-body{grid-template-columns:1fr!important}
  .ht-result-specs,.pl-spec{grid-column:auto!important}
  .ht-result-product,.ht-result-plan,.pl-media{min-height:300px!important}
  .ht-result-product>img,.ht-result-plan>img,.pl-media>img{min-height:300px!important}
}

/* Legacy/secondary page photo compatibility */
.cr-decision-media>img,
.cr-story-media>img,
.cr-rail-card>img,
.cr-case-media>img,
.cr-sizeband-media>img:not([src*="layout-source"]):not([src*="floor"]):not([src*="plan"]):not([src*="structure"]),
.ht-products-hero-media>img,
.ht-type-collection .ex-model-card>img,
.ht-type-collection .ht-product-three article>img,
.sp-hero-media>img,
.sp-app-card>img,
.sp-project-mosaic figure>img,
.sp-gallery figure>img,
.sp-case-media>img{
  display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;
  object-fit:cover!important;object-position:center!important;
}
.cr-sizeband-media,.cr-decision-media,.cr-story-media,.cr-case-media,.ht-products-hero-media,.sp-hero-media,.sp-case-media{
  padding:0!important;border:0!important;overflow:hidden!important;
}
.cr-sizeband-media>img[src*="layout-source"],
.cr-sizeband-media>img[src*="floor"],
.cr-sizeband-media>img[src*="plan"],
.cr-anatomy-visual>img,
.sp-split-media.sp-contain>img{
  width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;
  padding:8px!important;border:0!important;background:var(--ht-vr-paper)!important;object-fit:contain!important;mix-blend-mode:multiply;
}
.cr-rail-card>img{width:170px!important;height:118px!important}
.ht-products-hero-media,.sp-hero-media{min-height:480px!important}
.ex-option-grid .ex-spec-card>img,.ex-model-nav>a>img,.ht-result-product>img,.pl-media.pl-photo>img,.cr-rail-card>img{
  outline:0!important;border-radius:0!important;
}
main>.ex-series-section + .cr-section.cr-paper{background:var(--ht-vr-paper)!important}
main>.cr-section.cr-paper + .cr-section:not(.cr-paper):not(.cr-ink){background:#fff!important}
