
/* V5: original-photo layer from the client's first-party source pages. */
.storm-logo { image-rendering: auto; }
.source-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(12px,2vw,26px); padding-block: clamp(36px,5vw,72px); }
.source-gallery figure,.craft-photo,.contact-image { margin: 0; min-width: 0; }
.source-gallery img,.craft-photo img,.contact-image img { display:block; width:100%; height:auto; aspect-ratio: 3/2; object-fit:cover; background:var(--cream); }
.source-gallery figure:first-of-type img { object-position:center; }
.source-gallery figcaption,.craft-photo figcaption,.contact-image figcaption { font-size:11px; line-height:1.6; margin-top:9px; color:var(--muted); }
.home-work-gallery { margin-top:8px; padding-inline:var(--gutter); }
.home-work-gallery .photo-section-heading { grid-column:1/-1; display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,4vw,60px); align-items:end; margin-bottom:8px; }
.home-work-gallery .photo-section-heading .section-title { font:400 clamp(42px,4.4vw,66px)/1.04 "Cormorant Local",Georgia,serif; }
.home-work-gallery .photo-section-heading p { max-width:55ch; font-size:14px; line-height:1.75; }
.advisory-gallery figure:nth-child(3) img { object-position:center 35%; }
.craft-photo { margin-top:25px; max-width:600px; }
.craft-photo img { aspect-ratio:16/10; }
.craft-section.sub-dark .craft-photo figcaption { color:rgb(234 225 210 / 78%); }
.craft-section .sub-split > div { min-width:0; }
.contact-image { padding-block:0 56px; }
.contact-image img { max-height:440px; object-position:center 42%; }
/* Real button visual is the dragging slider thumb. The source square stays
   cropped to the established round handle; no source pixels are repainted. */
.hero-premium .comparison-handle { pointer-events:auto; padding:0; overflow:hidden; cursor:ew-resize; touch-action:none; user-select:none; z-index:5; width:92px; height:92px; background:#000; border:3px solid var(--cream); box-shadow:0 3px 18px rgb(0 0 0 / 38%); }
.hero-premium .comparison-handle img { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; object-position:center; }
.hero-media:focus-within .comparison-handle { outline:3px solid #fff; outline-offset:5px; }
.hero-premium .comparison-controls { pointer-events:none; }
.hero-premium .comparison-controls input { pointer-events:none; }
.catalogue-photo-note { grid-column:1/-1; margin:0; max-width:70ch; color:var(--muted); font-size:12px; line-height:1.65; }
.catalogue-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; border:0; }
.catalogue-row { display:flex; flex-direction:column; gap:0; align-items:stretch; border:0; padding:0 0 25px; }
.catalogue-image { margin:0 0 17px; overflow:hidden; background:var(--cream); }
.catalogue-image img { width:100%; height:auto; display:block; aspect-ratio:1.23/1; object-fit:cover; transition:transform 450ms cubic-bezier(.2,.7,.2,1); }
.catalogue-row:hover .catalogue-image img { transform:scale(1.025); }
.catalogue-copy { display:grid; grid-template-rows:1fr auto; gap:12px; min-height:132px; padding:0 2px; }
.subpage-main .catalogue-row h3 { font-size:clamp(22px,2.1vw,30px); line-height:1.18; }
.subpage-main .catalogue-price { justify-self:start; text-align:left; font-size:13px; }
@media(max-width:900px) { .catalogue-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } }
@media(max-width:759px) {
 .source-gallery { grid-template-columns:1fr; gap:22px; padding-block:36px; }
 .home-work-gallery { padding-inline:var(--gutter); }
 .home-work-gallery .photo-section-heading { grid-template-columns:1fr; gap:14px; }
 .home-work-gallery .photo-section-heading .section-title { font-size:clamp(40px,10vw,52px); }
 .source-gallery img { aspect-ratio:4/3; }
 .catalogue-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; }
 .catalogue-row { min-width:0; }
 .catalogue-image { width:100%; aspect-ratio:1/1; }
 .catalogue-image img { height:100%; aspect-ratio:auto; object-fit:cover; }
 .catalogue-copy { min-height:140px; gap:10px; }
 .subpage-main .catalogue-row h3 { font-size:clamp(20px,5.3vw,26px); overflow-wrap:anywhere; }
 .subpage-main .catalogue-price { font-size:12px; overflow-wrap:anywhere; }
 .contact-image { padding-bottom:38px; }
 .hero-premium .comparison-handle { width:76px; height:76px; }
}
@media(max-width:359px) { .catalogue-list { grid-template-columns:1fr; } .catalogue-copy { min-height:0; gap:9px; } .hero-premium .comparison-handle { width:68px;height:68px; } }
@media(prefers-reduced-motion:reduce) { .catalogue-image img { transition:none; } }
