/*
Theme Name: Caledon Forest Products
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Description: A modern product catalogue for Caledon Forest Products.
Text Domain: caledon-forest
*/
:root{--green:#136e39;--ink:#18251c;--cream:#ffffff;--tan:#136e39;--line:#d8e2d9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--cream);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #22894d;outline-offset:4px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:10px}.topline{padding:10px 5%;display:flex;justify-content:space-between;background:var(--green);color:#eee;font-size:10px;letter-spacing:1.8px}header{padding:24px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:25px;font-weight:800;letter-spacing:2px;line-height:1.05;display:flex;align-items:center;gap:10px}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:6px}.mark{font-size:42px}nav{display:flex;gap:32px;font-size:13px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:16px 24px;background:var(--green);color:white;border:1px solid var(--green);font-size:13px;font-weight:600}.button:hover{filter:brightness(1.15)}.small{padding:12px 18px}.tan{background:var(--tan);color:var(--ink);border-color:var(--tan)}.hero{margin:0 24px;min-height:620px;background:linear-gradient(90deg,rgba(8,28,20,.9),rgba(8,28,20,.1)),url(assets/hero.png) center/cover;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.hero-copy{padding:75px 5% 60px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,6.1vw,88px);font-weight:500;line-height:1.04;letter-spacing:-4px;margin-bottom:26px}h1 em{font-family:Georgia,serif;font-weight:400;color:#a9d8b5}.hero-copy>p:not(.eyebrow){color:#dce4dc;margin-bottom:30px;font-size:16px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;padding:20px 5%;border-top:1px solid #ffffff40;font-size:9px;letter-spacing:2px}.hero-bottom a{font-size:25px}h2{font-size:clamp(34px,3.4vw,50px);font-weight:500;letter-spacing:-2px;line-height:1.12}.intro{padding:100px 7%;display:grid;grid-template-columns:1fr 1fr;gap:0 8%}.intro>.eyebrow{grid-column:1/-1}.intro p{max-width:500px;color:#57655c}.intro>.eyebrow{color:var(--green)}.text-link{font-size:12px;letter-spacing:.3px;font-weight:700;border:0;border-bottom:1px solid #98b59e;padding:0 0 6px;background:none}.catalogue{padding:75px 5%;background:#f0f5f0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:38px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:13px;color:#5d695f}.tools{display:flex;gap:16px;margin-bottom:24px}.search{display:flex;align-items:center;gap:16px;padding:0 20px;background:var(--cream);border:1px solid var(--line);flex:1}.search span{font-size:28px}.search input{padding:17px 0;width:100%;border:0;outline:0;background:transparent;font-size:14px}.family-label{font-size:10px;display:flex;flex-direction:column;justify-content:center;padding:4px 16px;background:var(--cream);border:1px solid var(--line);min-width:250px}select{background:transparent;color:var(--ink);border:0;font-size:13px;max-width:300px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tabs button{padding:10px 14px;border:1px solid #cbdccd;background:transparent;color:var(--ink);font-size:11px}.tabs button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.results-line{display:flex;justify-content:space-between;margin:25px 0 18px;align-items:center}.results-line p{font-size:12px;margin:0}.products{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.product{background:var(--cream);display:flex;flex-direction:column;border:1px solid #d9e4da}.visual{height:190px;background:#e7ece5;position:relative;overflow:hidden;display:grid;place-items:center}.visual img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}.visual .diagram{width:120px;height:115px;border:9px solid #345a47;background:repeating-linear-gradient(90deg,#b99c6b 0 21px,#cfb98c 21px 23px);transform:skewY(-8deg);box-shadow:12px 13px 0 #bec3b7}.visual .chemical{font-size:34px;font-weight:bold;border:3px solid #136e39;padding:20px 14px;border-radius:8px;background:#f2f6f0;letter-spacing:-1px}.product-body{padding:23px;display:flex;flex-direction:column;flex:1}.product .eyebrow{font-size:9px;margin-bottom:12px;color:#356647}.product h3{font-size:21px;line-height:1.25;letter-spacing:-.5px;font-weight:500;margin-bottom:12px}.product .family{font-size:11px;color:#6b756d;margin-bottom:22px}.product button{margin-top:auto;text-align:left;width:100%;background:transparent;color:var(--green);border:0;border-top:1px solid var(--line);padding:13px 0 0;font-size:12px;display:flex;justify-content:space-between}.load{display:flex;margin:32px auto 0}.catalogue-note{font-size:10px;color:#6b756d;text-align:center;margin:24px 0 0}.custom{padding:70px 8%;display:grid;grid-template-columns:1fr 1fr;gap:8%;background:var(--green);color:white}.custom p:not(.eyebrow){color:#d5dfd4;max-width:430px}.custom h2{font-size:64px;margin:0}.contact{padding:90px 7%;display:grid;grid-template-columns:1.2fr 1fr;gap:8%}.contact p{color:#647064;font-size:14px}.contact-details>a:first-child{font-size:19px}.contact-details>a{display:block;margin-bottom:18px}.contact-details p{padding-top:15px;border-top:1px solid var(--line)}footer{border-top:1px solid var(--line);margin:0 5%;padding:30px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}footer>.brand{display:block;font-size:19px}footer p,footer>span{font-size:10px;margin:0;color:#647064}dialog{border:0;padding:55px;max-width:650px;width:calc(100% - 32px);background:var(--cream);color:var(--ink)}dialog::backdrop{background:#071e16b8}dialog h2{font-size:35px;overflow-wrap:anywhere}.close{position:absolute;right:14px;top:8px;border:0;background:transparent;font-size:30px;color:var(--green)}[hidden]{display:none!important}@media(max-width:800px){header{padding:20px 5%;flex-wrap:wrap}header>.button{display:none}nav{gap:18px;font-size:12px}.brand{font-size:21px}.hero{margin:0 12px;min-height:560px}.hero-copy{padding:65px 7%}h1{letter-spacing:-2px}.hero-bottom span:nth-child(2){display:none}.intro,.custom,.contact{grid-template-columns:1fr;padding:60px 7%;gap:25px}.intro>.eyebrow{margin-bottom:0}.section-heading{display:block}.section-heading>p{margin-top:20px}.products{grid-template-columns:repeat(2,1fr)}.tools{flex-direction:column}.family-label{padding:10px 18px}select{max-width:100%}.catalogue{padding:55px 5%}.custom h2{font-size:50px}footer{flex-wrap:wrap}dialog{padding:40px 25px}}@media(max-width:480px){.topline{font-size:8px;letter-spacing:1px}.topline>a{display:none}header{gap:20px}nav{width:100%;justify-content:space-between}.products{grid-template-columns:1fr}.visual{height:210px}.hero-copy>p:not(.eyebrow){font-size:14px}.contact-details>a:first-child{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.site-logo{display:block;width:180px;height:auto;max-width:100%}header{padding-top:13px;padding-bottom:13px}footer .site-logo{width:145px}@media(max-width:480px){.site-logo{width:155px}}

/* Brand palette: greens sampled from the original company logo. */
.tan{color:#fff}.topline{background:#19341d}.custom{background:#19341d}.hero{background-image:linear-gradient(90deg,rgba(16,39,20,.91),rgba(16,39,20,.16)),url(assets/hero.png)}.hero-copy .eyebrow{color:#b8dfc0}.text-link{color:#136e39}.custom .eyebrow{color:#b8dfc0}.product button:hover,nav a:hover{color:#136e39}.button:hover{filter:brightness(1.08)}

.visual{height:230px;background:#f2f5f1}.visual img{object-fit:contain;padding:22px;mix-blend-mode:normal}.image-label{position:absolute;left:12px;bottom:7px;font-size:9px;color:#53675a;background:#ffffffde;padding:2px 6px}.reference{font-size:10px;color:#647268;overflow-wrap:anywhere;margin-top:-12px}.product h3{font-size:19px}

.visual{height:255px}.visual img{padding:8px;width:100%;height:100%}.detail-image{width:100%;max-height:430px;object-fit:contain;margin:14px 0;background:#f6f9f5}.image-note{font-size:12px;color:#52695a}dialog{max-width:800px;max-height:90vh;overflow:auto}.no-photo{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:28px;background:#f5f7f3;gap:8px}.photo-status{font-size:13px;color:#52695a}.photo-reference{font-size:18px;font-weight:500;margin:0;overflow-wrap:anywhere}.supplier-bar{padding:30px 0;background:white;border-bottom:1px solid #d8e2d9;overflow:hidden}.supplier-heading{display:flex;justify-content:space-between;align-items:center;padding:0 5%;margin-bottom:24px}.supplier-heading .eyebrow{margin:0}.supplier-track{display:flex;width:max-content;animation:supplier-scroll 38s linear infinite}.supplier-group{display:flex;align-items:center;gap:65px;padding:0 32.5px}.supplier-group img{width:135px;height:52px;object-fit:contain}.supplier-bar:hover .supplier-track,.supplier-bar:focus-within .supplier-track,.supplier-bar.paused .supplier-track{animation-play-state:paused}@keyframes supplier-scroll{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.supplier-track{animation:none;max-width:100%;width:auto}.supplier-group{flex-wrap:wrap;justify-content:center;gap:25px}.supplier-group[aria-hidden=true]{display:none}#supplier-motion{display:none}}@media(max-width:600px){.supplier-group{gap:30px;padding:0 15px}.supplier-group img{width:110px;height:45px}}
.supplier-group{min-width:100vw;justify-content:space-around}.no-photo{height:auto;min-height:0;padding:15px 23px;background:#f0f5f0}.no-photo .photo-reference{display:none}.product:has(.no-photo) .photo-status{font-size:11px}

.panel-filters{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px;align-items:center}.panel-filters .family-label{min-width:220px;flex:1;padding:10px 16px}.panel-filters p{font-size:12px;color:#52695a;margin:0;flex:1;min-width:180px}.panel-filters select{width:100%;max-width:none;padding:5px 0}

.product-body .compatible-systems{font-size:13px;font-weight:600;line-height:1.6;color:#136e39;background:#edf5ee;padding:8px 10px;border-radius:6px;margin:8px 0 16px}

.spec-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.spec-filters .family-label{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:10px 14px}.spec-filters select{width:100%;max-width:none}.product-specs{display:grid;grid-template-columns:minmax(100px,1fr) 1.5fr;gap:5px 12px;font-size:12px;line-height:1.5;margin:12px 0 20px}.product-specs dt{color:#52695a}.product-specs dd{margin:0;font-weight:600;overflow-wrap:anywhere}@media(max-width:700px){.spec-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:400px){.spec-filters{grid-template-columns:1fr}}

/* Preserve the complete square timber product photograph. */
img[src*="material-crete-beam.png"]{object-fit:contain!important;background:#f1f5f0;}

/* Consistent, labelled classifier treatments on cards and product details. */
.product-specs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 22px}
.product-specs .classifier{display:flex;flex-direction:column;gap:3px;max-width:100%;padding:9px 12px;border:1px solid #d5dfd8;border-radius:6px;background:#f5f7f5;line-height:1.4}
.product-specs dt{font-size:9px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#4a5b50}
.product-specs dd{font-size:13px;font-weight:600;margin:0;color:#243b2c;overflow-wrap:anywhere}
.product-specs .classifier--overlay{background:#e5f2e9;border-color:#a4c9ae;border-left:3px solid #136e39}
.product-specs .classifier--overlay dd{font-size:15px;font-weight:800;letter-spacing:.6px;color:#10582e}
.product-specs .classifier--range{background:#edf3ed;border-color:#c4d7c5}
.product-specs .classifier--range dd{font-weight:700}
.product-specs .classifier--species{background:#f5f1e9;border-color:#ddd2bc}
.product-specs .classifier--species dd{font-style:italic;color:#58472e}
.product-specs .classifier--grade{background:#edf0f4;border-color:#cbd3df}
.product-specs .classifier--grade dd{font-weight:700;color:#35475e}
.product-specs .classifier--dimension{background:#fff;border-color:#d4ded6}
.product-specs .classifier--dimension dd{font-variant-numeric:tabular-nums;letter-spacing:.2px}
.product-specs .classifier--supplier dd{font-weight:700}
.product-specs .classifier--finish dd{font-weight:500}
.product h3 .title-name,dialog h2 .title-name{font-weight:650}
.product h3 .title-spec,dialog h2 .title-spec{font-size:.88em;font-weight:400;font-variant-numeric:tabular-nums;color:#526459}
.product h3 .title-variant,dialog h2 .title-variant{font-size:.78em;font-weight:600;color:#136e39}
@media(max-width:480px){.product-specs{gap:6px}.product-specs .classifier{padding:8px 10px}}

/* Standard product-photo presentation for dimension lumber. */
.visual.dimension-lumber-photo{height:255px;background:#f5f4ef;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.visual.dimension-lumber-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;padding:0;mix-blend-mode:normal}
.visual.dimension-lumber-photo img[src*="square-timber-original"]{position:static;object-fit:contain;width:auto;height:205px;max-width:85%;padding:0;margin-bottom:24px}
.visual.dimension-lumber-photo .image-label{bottom:10px;left:10px;right:10px;width:fit-content;max-width:calc(100% - 20px);font-size:10px;background:#fffffff0;padding:4px 8px;line-height:1.4}
.detail-image[src*="square-timber-original"]{height:300px;object-fit:contain}

.spec-filters{display:flex;flex-direction:column;gap:18px}.spec-filter-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:0;margin:0;padding:0;min-width:0}.spec-filter-group legend{font-size:11px;font-weight:700;color:#345a41;letter-spacing:.7px;margin-bottom:10px}.spec-filter-group .family-label{min-width:0}@media(max-width:700px){.spec-filter-group{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:400px){.spec-filter-group{grid-template-columns:1fr}}

.visual.dimension-lumber-photo img[src*="lumber-diagrams/"]{position:static;width:100%;height:100%;object-fit:contain;padding:0}.visual.dimension-lumber-photo:has(img[src*="lumber-diagrams/"]) .image-label{display:none}.detail-image[src*="lumber-diagrams/"]{object-fit:contain;background:#f5f4ef}

.visual.dimension-lumber-photo img[src*="lumber-diagrams/"]{position:static;width:100%;height:100%;object-fit:contain;padding:0}.visual.dimension-lumber-photo:has(img[src*="lumber-diagrams/"]) .image-label{display:none}.detail-image[src*="lumber-diagrams/"]{object-fit:contain;background:#f5f4ef}

.visual:has(img[src*="assets/panels/"]){background:#f5f4ef}.visual img[src*="assets/panels/"]{padding:0;object-fit:contain}.visual:has(img[src*="assets/panels/"]) .image-label{display:none}.detail-image[src*="assets/panels/"]{background:#f5f4ef}

.visual:has(img[src*="plywood-diagrams/"]){background:#f5f4ef}.visual img[src*="plywood-diagrams/"]{padding:0;object-fit:contain}.visual:has(img[src*="plywood-diagrams/"]) .image-label{display:none}.detail-image[src*="plywood-diagrams/"]{background:#f5f4ef}

/* Keep every diagram's complete 600 × 360 canvas visible without letterboxing. */
.visual:has(img[src*="lumber-diagrams/"]),.visual:has(img[src*="plywood-diagrams/"]),.visual:has(img[src*="assets/panels/"]){height:auto;aspect-ratio:5/3;display:block;overflow:hidden;background:#f5f4ef}
.visual img[src*="lumber-diagrams/"],.visual img[src*="plywood-diagrams/"],.visual img[src*="assets/panels/"]{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;margin:0;padding:0;object-fit:contain;object-position:center}
.detail-image[src*="lumber-diagrams/"],.detail-image[src*="plywood-diagrams/"],.detail-image[src*="assets/panels/"]{height:auto;aspect-ratio:5/3;max-height:none;object-fit:contain;padding:0}

.measurement-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:20px 0}.measurement-controls label{min-width:210px;background:white;border:1px solid var(--line);padding:10px 16px}.measurement-controls select{display:block;width:100%}.measurement-note{font-size:12px;color:#52695a;flex:1;min-width:220px}@media(max-width:600px){.measurement-controls label{min-width:0;flex:1}.measurement-note{flex-basis:100%;margin:0}}

.visual:has(img[src*="chamfer-diagrams/"]){height:auto;aspect-ratio:5/3;background:#f5f4ef;overflow:hidden}.visual img[src*="chamfer-diagrams/"]{position:absolute;inset:0;width:100%;height:100%;padding:0;object-fit:contain}.visual:has(img[src*="chamfer-diagrams/"]) .image-label{display:none}.detail-image[src*="chamfer-diagrams/"]{height:auto;aspect-ratio:5/3;max-height:none;background:#f5f4ef;object-fit:contain}

/* Keep manufacturer package labels fully visible. */
.product .visual.chemical-photo{background:#fff}.product .visual.chemical-photo img{object-fit:contain;padding:12px 12px 36px;box-sizing:border-box}.product .visual.chemical-photo .image-label{font-size:10px}
#detail-image[src*="/nox-"]{object-fit:contain;background:#fff}

#detail-image[src*="/mesto-"]{object-fit:contain;background:#fff}

#detail-image[src*="/aicher-"],#detail-image[src*="/peri-dw20-"]{object-fit:contain;background:#fff}

#detail-image[src*="/aicher-"],#detail-image[src*="/peri-dw20-"]{object-fit:contain;background:#fff}

#detail-image[src*="/aicher-"],#detail-image[src*="/peri-dw20-"]{object-fit:contain;background:#fff}
