/* Public storefront. Admin styles and inventory controls are intentionally separate. */
.public-site { --green:#116d50; --ink:#1c2925; --muted:#56645f; background:#f6f7f4; }
.public-site main {width:min(1320px,100%); margin:auto; padding:0 clamp(18px,3vw,44px) 64px;}
.public-site :is(h1,h2,h3,p) {overflow-wrap:break-word;}
.public-site h1 {font-size:clamp(30px,3.6vw,52px);line-height:1.12;letter-spacing:-.035em;max-width:24ch;margin:12px 0 18px;}
.public-site h2 {font-size:clamp(23px,2.2vw,32px);line-height:1.2;letter-spacing:-.02em;}
.public-site h3 {font-size:21px;line-height:1.25;}
.public-site p {line-height:1.65;}
.public-site img {max-width:100%;}
.public-site :is(a,button,input,select,textarea):focus-visible {outline:3px solid #bd7433;outline-offset:4px;}
.public-site :is(input,select,textarea) {font:inherit;max-width:100%;min-width:0;min-height:44px;border:1px solid #bbc6bf;border-radius:4px;background:white;color:var(--ink);padding:10px;}
.public-site :is(button,.primary,.secondary,.secondary-button) {min-height:44px;border-radius:4px;line-height:1.3;display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;}
.public-site .site-header {display:grid;min-height:82px;position:relative;grid-template-columns:minmax(200px,1fr) auto auto;padding:12px clamp(18px,3vw,44px);gap:18px;background:white;}
.public-site .site-header nav {gap:16px;flex-wrap:wrap;}
.public-site .site-header nav a {font-size:13px;min-height:40px;display:flex;align-items:center;}
.public-site .brand {max-width:265px;}
.public-site .brand img {height:48px;width:62px;}
.public-site .brand strong {font-size:12px;}
.public-site .brand small {font-size:9px;}
.public-site .header-actions {gap:12px;}
.public-site .language-switch a {padding:8px 5px;}
.public-site .menu-toggle {display:none;}
.public-site .section,.public-site .shop-department-section {padding:32px 0;margin:0;}
.public-site .section-head {margin-bottom:20px;gap:12px;}
.public-site .section-head h2 {margin:6px 0;}
.public-site :is(.shop-intro,.page-hero,.about-hero,.brand-landing) {padding:40px 0 28px;min-height:0;gap:32px;}
.public-site .shop-intro {grid-template-columns:minmax(0,1fr) auto;}
.public-site .shop-intro p {max-width:65ch;margin:10px 0;}
.public-site .shop-intro aside {padding:20px;min-width:180px;}
.public-site .shop-intro aside strong {font-size:20px;line-height:1.3;}
.public-site .department-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.public-site .department-card {padding:0 0 22px;overflow:hidden;border:1px solid #dbe1da;background:white;box-shadow:none;display:flex;flex-direction:column;min-height:0;}
.public-site .department-card>*:not(.department-photo) {margin-left:20px;margin-right:20px;}
.public-site .department-card .department-photo {width:100%;height:auto;aspect-ratio:16/10;display:block;margin:0 0 18px;overflow:hidden;background:#edf0e9;}
.public-site .department-photo img {width:100%;height:100%;object-fit:cover;transform:none;}
.public-site .department-photo img.contain {object-fit:contain;padding:16px;background:white;}
.public-site .department-card h3 {margin-top:8px;margin-bottom:8px;}
.public-site .department-card p {margin-top:0;font-size:14px;flex:1;}
.public-site .department-card strong {font-size:14px;color:var(--green);}
.public-site .department-status {font-size:11px;letter-spacing:.07em;}
.public-site .home-hero {margin:24px 0 0;padding:0;min-height:0;border-radius:6px;overflow:hidden;}
.public-site .home-slide-stage {height:540px;min-height:0;position:relative;}
.public-site .home-slide {height:100%;min-height:0;padding:0;}
.public-site .home-slide img {height:100%;object-fit:cover;}
.public-site .home-slide-copy {padding:42px;width:min(680px,70%);}
.public-site .home-slide-copy h1 {font-size:clamp(30px,3.6vw,48px);max-width:22ch;}
.public-site .home-slide-copy p {max-width:52ch;}
.public-site .home-slide-shade {background:linear-gradient(90deg,rgba(14,31,24,.87),rgba(14,31,24,.15));}
.public-site .home-slide-controls {bottom:18px;right:18px;left:auto;width:auto;transform:none;}
.public-site .home-actions {gap:10px;flex-wrap:wrap;}
.public-site .audience-grid {padding:24px 0;gap:24px;}
.public-site .audience-grid a {padding:24px;min-height:0;}
.public-site .audience-grid strong {font-size:20px;}
.public-site .product-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.public-site .product-card {display:flex;flex-direction:column;min-width:0;padding:0 0 18px;overflow:hidden;}
.public-site .product-card>a:first-child {display:flex;flex-direction:column;flex:1;}
.public-site .product-card>a:first-child>*:not(img) {margin-left:18px;margin-right:18px;}
.public-site .product-card .product-thumb {width:100%;height:220px;object-fit:cover;}
.public-site .product-card h3 {margin-top:8px;margin-bottom:8px;}
.public-site .product-card p {font-size:14px;}
.public-site .product-card :is(.product-action,.stock-note) {margin:12px 18px 0;}
.public-site .stock-note {font-size:12px;}
.public-site :is(.stock,.price-label) {font-size:12px;}
.public-site .department-brands {padding:12px 0 40px;grid-template-columns:repeat(auto-fit,minmax(270px,480px));}
.public-site .brand-card {min-height:0;padding:24px;grid-template-columns:90px 1fr;gap:20px;}
.public-site .brand-card h2 {font-size:25px;}
.public-site .brand-mark {width:90px;min-height:70px;}
.public-site .brand-mark img {width:100%;height:70px;object-fit:contain;}
.public-site .quote-panel {margin:12px 0;padding:28px;gap:32px;}
.public-site .service-photo {margin-bottom:22px;}
.public-site .service-photo img {width:100%;height:260px;object-fit:cover;}
.public-site .catalogue-heading,.public-site .product-heading {padding:36px 0 24px;}
.public-site .catalogue-heading>p,.public-site .product-heading>p {max-width:72ch;color:var(--muted);}
.public-site .back-link {font-size:13px;font-weight:650;color:var(--green);}
.public-site .catalogue-environment {position:relative;margin:0 0 28px;border-radius:6px;overflow:hidden;background:#e9ede7;}
.public-site .catalogue-environment img {display:block;width:100%;height:310px;object-fit:cover;}
.public-site .catalogue-environment figcaption {position:absolute;bottom:12px;left:16px;background:#fffef4eb;padding:6px 10px;font-size:12px;}
.public-site .catalogue-environment.catalogue-environment--full-frame img {height:auto;object-fit:contain;}
.public-site .catalogue-environment.catalogue-environment--full-frame figcaption {position:static;background:transparent;padding:9px 14px;color:var(--muted);font-size:11px;}
.public-site .catalogue-results {scroll-margin-top:20px;}
.public-site .range-search {display:grid;grid-template-columns:minmax(0,1fr) 220px auto;align-items:end;gap:14px;padding:22px;background:#e9eee6;border-radius:6px;}
.public-site label {display:grid;gap:6px;font-size:13px;font-weight:650;}
.public-site .range-search input {width:100%;}
.public-site .results-summary {font-size:13px;color:var(--muted);margin:20px 0;}
.public-site .range-list.refresh-ranges {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0;margin:0;}
.public-site .refresh-ranges .range-card {display:flex;flex-direction:column;min-height:0;padding:0;gap:0;background:white;border:1px solid #d9e0d8;overflow:hidden;border-radius:5px;}
.public-site .refresh-ranges .range-image {height:210px;min-height:0;width:100%;display:block;padding:0;background:#f0f2ee;}
.public-site .refresh-ranges .range-image img {display:block;width:100%;height:100%;object-fit:cover;}
.public-site .refresh-ranges .range-image img.contain {object-fit:contain;padding:15px;background:white;}
.public-site .refresh-ranges .range-card>div {padding:20px;display:flex;flex-direction:column;flex:1;min-height:0;}
.public-site .refresh-ranges .range-card h2 {font-size:22px;margin:6px 0 10px;}
.public-site .refresh-ranges .range-card p {font-size:13px;margin:0 0 14px;}
.public-site .refresh-ranges .range-card .eyebrow {font-size:10px;margin:0;}
.public-site .refresh-ranges .range-card .primary {margin-top:auto;}
.public-site .range-meta {gap:8px;font-size:12px;margin-bottom:18px;}
.public-site .range-pagination {display:flex;justify-content:space-between;align-items:center;padding:28px 0;gap:16px;}
.public-site .range-pagination a {padding:12px 18px;border:1px solid #c5d0c3;border-radius:4px;background:white;font-size:14px;}
.public-site .empty-results {padding:36px;background:white;}
.public-site .product-heading h1 {max-width:none;}
.public-site .mobile-product-action {display:none;}
.public-site .product-overview {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:36px;align-items:start;}
.public-site .image-zoom {display:block;position:relative;background:#e9ede7;overflow:hidden;border-radius:5px;}
.public-site .image-zoom>img {display:block;width:100%;object-fit:cover;}
.public-site .image-zoom>span {position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:white;display:grid;place-items:center;color:#143b2b;font-size:22px;}
.public-site .product-media>.image-zoom img {height:auto;max-height:560px;min-height:280px;object-fit:contain;}
.public-site .product-media>.product-object {background:white;}
.public-site .product-media>.product-object img {height:410px;object-fit:contain;padding:24px;}
.public-site .image-caption,.public-site .order-note {font-size:12px;color:var(--muted);}
.public-site .sample-detail {background:white;padding:16px;margin-top:20px;border:1px solid #dce2d9;}
.public-site summary {cursor:pointer;font-weight:650;padding:8px 0;}
.public-site .sample-image img {max-height:350px;object-fit:contain;}
.public-site .product-summary {padding:24px;background:white;border:1px solid #dce2d9;border-radius:5px;scroll-margin-top:20px;}
.public-site .product-summary h2 {font-size:24px;margin:8px 0 20px;}
.public-site .finish-picker {display:grid;gap:10px;}
.public-site .product-summary dl {margin:20px 0;font-size:13px;}
.public-site .product-summary dl>div {display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid #e8ece5;}
.public-site .product-summary dd {margin:0;}
.public-site .product-summary dt {color:var(--muted);}
.public-site .product-enquiry {display:grid;gap:12px;}
.public-site .product-colours {padding:36px 0;}
.public-site .product-colours .swatch-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;max-width:none;margin-top:20px;}
.public-site .product-colours .swatch-card {display:flex;flex-direction:column;min-width:0;gap:0;border:1px solid #d9e0d6;background:white;padding:0;overflow:hidden;border-radius:4px;}
.public-site .product-colours .swatch-card.active {outline:2px solid var(--green);outline-offset:2px;}
.public-site .product-colours .swatch-photo {height:auto;aspect-ratio:1/1;min-height:0;width:100%;object-fit:cover;margin:0;}
.public-site .product-colours .swatch-photo.contain {object-fit:contain;background:white;padding:8px;}
.public-site .product-colours .swatch-info {padding:12px;display:grid;gap:5px;}
.public-site .product-colours .swatch-info strong {font-size:12px;line-height:1.4;}
.public-site .product-colours .swatch-info small {font-size:11px;}
.public-site .technical-details {border-top:1px solid #ced8cd;padding:22px 0;}
.public-site .technical-details>summary {font-size:20px;}
.public-site .product-rich {padding:24px 0;margin:0;}
.public-site .product-rich-hero {gap:24px;padding:24px;}
.public-site .product-rich-hero img {max-height:340px;object-fit:contain;}
.public-site .verified-projects {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.public-site .verified-projects article {background:white;border:1px solid #dce2d9;border-radius:5px;overflow:hidden;}
.public-site .verified-projects article>.image-zoom img {height:330px;object-fit:cover;}
.public-site .verified-projects article>div {padding:24px;}
.public-site .verified-projects h2 {font-size:25px;}
.public-site .project-extra {max-width:200px;margin-top:16px;}
.public-site .project-extra img {height:120px;object-fit:cover;}
.public-site .portfolio-pages {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;}
.public-site .portfolio-pages figure {margin:0;background:white;border:1px solid #dce2d9;}
.public-site .portfolio-pages img {height:420px;object-fit:contain;padding:10px;}
.public-site .portfolio-pages figcaption {padding:14px 20px;font-size:13px;border-top:1px solid #dce2d9;}
.public-site .about-hero aside strong {font-size:38px;}
.public-site .about-proof-grid {padding:0;gap:22px;}
.public-site .about-proof-grid article {padding:24px;}
.public-site .about-proof-grid h2 {font-size:23px;}
.public-site .site-footer {padding:32px clamp(18px,3vw,44px);font-size:13px;}
.public-site .image-dialog {border:0;border-radius:8px;padding:14px;max-width:min(96vw,1500px);max-height:94dvh;background:#f4f5f1;}
.public-site .image-dialog::backdrop {background:rgba(7,17,12,.88);}
.public-site .image-dialog img {display:block;max-width:100%;max-height:78dvh;object-fit:contain;margin:auto;}
.public-site .image-dialog .dialog-close {display:block;margin:0 0 12px auto;}
.public-site .image-dialog .original-image {display:inline-block;margin-top:12px;font-size:13px;text-decoration:underline;}
.public-site .image-dialog{position:relative;min-width:min(92vw,900px)}.public-site .image-dialog .dialog-navigation{position:absolute;top:50%;z-index:6;width:54px;height:54px;border:1px solid rgba(255,255,255,.78);border-radius:50%;background:rgba(10,34,25,.82);color:#fff;font-size:1.5rem;box-shadow:0 7px 24px rgba(0,0,0,.3);transform:translateY(-50%)}.public-site .image-dialog .dialog-previous{left:24px}.public-site .image-dialog .dialog-next{right:24px}.public-site .image-dialog .dialog-count{display:inline-block;margin:12px 16px 0 6px;color:#526158;font-size:13px;font-weight:700}@media(max-width:680px){.public-site .image-dialog{min-width:94vw;padding:10px}.public-site .image-dialog .dialog-navigation{position:fixed;top:50%;width:48px;height:48px}.public-site .image-dialog .dialog-previous{left:14px}.public-site .image-dialog .dialog-next{right:14px}}
@media(min-width:1001px){.public-site .menu-toggle{display:none!important;}}
@media(max-width:1000px){
 .public-site .site-header {grid-template-columns:minmax(0,1fr) auto auto;gap:12px;min-height:72px;}
 .public-site .menu-toggle {display:inline-flex;grid-column:2;grid-row:1;font-size:13px;padding:10px;background:white;color:var(--ink);border:1px solid #ccd5c9;}
 .public-site .site-header #main-nav {display:none;grid-column:1/-1;grid-row:2;padding-top:10px;border-top:1px solid #dce2d9;}
 .public-site .site-header #main-nav.is-open {display:flex;}
 .public-site .header-actions {grid-column:3;grid-row:1;}
 .public-site .department-grid,.public-site .product-grid,.public-site .range-list.refresh-ranges {grid-template-columns:repeat(2,minmax(0,1fr));}
 .public-site .product-colours .swatch-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
 .public-site .brand small {display:none;}
}
@media(max-width:640px){
 .public-site main {padding:0 18px 40px;}
 .public-site .site-header {padding:10px 14px;gap:8px;}
 .public-site .brand img {width:45px;height:42px;}
 .public-site .brand span {display:none;}
 .public-site .header-actions {gap:6px;}
 .public-site .language-switch {gap:1px;}
 .public-site .language-switch a {font-size:11px;padding:9px 4px;}
 .public-site .cart-link {padding:8px;gap:4px;min-height:42px;font-size:11px;}
 .public-site .cart-link strong {font-size:11px;}
 .public-site .site-header #main-nav {gap:0;flex-direction:column;align-items:stretch;}
 .public-site .site-header #main-nav a {padding:10px;font-size:15px;}
 .public-site :is(.shop-intro,.page-hero,.about-hero,.brand-landing) {padding:24px 0;display:block;}
 .public-site .shop-intro aside {display:flex;flex-wrap:wrap;gap:8px 16px;min-width:0;padding:14px;margin-top:18px;}
 .public-site .shop-intro aside strong {font-size:15px;}
 .public-site .shop-intro aside span,.public-site .shop-intro aside a {font-size:12px;}
 .public-site .department-grid,.public-site .product-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
 .public-site .department-card {padding-bottom:14px;}
 .public-site .department-card>*:not(.department-photo) {margin-left:12px;margin-right:12px;}
 .public-site .department-card .department-photo {aspect-ratio:4/3;margin-bottom:12px;}
 .public-site .department-card h3 {font-size:17px;margin-top:6px;}
 .public-site .department-card p {font-size:12px;line-height:1.5;}
 .public-site .department-card strong {font-size:12px;}
 .public-site .department-status {font-size:9px;}
 .public-site .home-hero {margin-top:18px;}
 .public-site .home-slide-stage {height:570px;}
 .public-site .home-slide-copy {width:100%;padding:24px 22px 65px;align-self:end;}
 .public-site .home-slide-copy h1 {font-size:32px;max-width:19ch;}
 .public-site .home-slide-copy p {font-size:14px;}
 .public-site .home-slide-shade {background:linear-gradient(0deg,rgba(8,27,17,.92) 15%,rgba(8,27,17,.3) 100%);}
 .public-site .home-actions .secondary {display:none;}
 .public-site .home-actions .primary {width:auto;font-size:14px;}
 .public-site .audience-grid {grid-template-columns:1fr;padding:18px 0;gap:12px;}
 .public-site .audience-grid a {padding:20px;}
 .public-site .audience-grid strong {font-size:18px;}
 .public-site .section,.public-site .shop-department-section {padding:22px 0;}
 .public-site .section-head {display:block;}
 .public-site .section-head a {display:inline-block;padding:8px 0;font-size:13px;}
 .public-site .product-card .product-thumb {height:150px;}
 .public-site .product-card>a:first-child>*:not(img) {margin-left:12px;margin-right:12px;}
 .public-site .product-card h3 {font-size:16px;}
 .public-site .product-card p {font-size:12px;}
 .public-site .product-card :is(.product-action,.stock-note) {margin:10px 12px 0;font-size:11px;}
 .public-site .product-card .product-action {padding:10px;}
 .public-site .department-brands {grid-template-columns:1fr;}
 .public-site .quote-panel {padding:20px;grid-template-columns:1fr;}
 .public-site .catalogue-heading,.public-site .product-heading {padding:24px 0 20px;}
 .public-site .catalogue-environment img {height:200px;}
 .public-site .range-search {grid-template-columns:1fr auto;gap:12px;padding:16px;}
 .public-site .range-search label:first-of-type {grid-column:1/-1;}
 .public-site .range-search label {font-size:12px;}
 .public-site .range-search button {font-size:13px;}
 .public-site .range-list.refresh-ranges {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
 .public-site .refresh-ranges .range-image {height:135px;}
 .public-site .refresh-ranges .range-card>div {padding:12px;}
 .public-site .refresh-ranges .range-card h2 {font-size:17px;}
 .public-site .refresh-ranges .range-card p:not(.eyebrow) {font-size:12px;}
 .public-site .refresh-ranges .range-card .primary {font-size:11px;padding:10px 8px;}
 .public-site .range-meta {font-size:11px;}
 .public-site .range-pagination a {padding:10px;font-size:12px;}
 .public-site .mobile-product-action {display:inline-flex;font-size:13px;}
 .public-site .product-overview {grid-template-columns:1fr;gap:20px;}
 .public-site .product-media>.image-zoom img {min-height:0;max-height:320px;}
 .public-site .product-media>.product-object img {height:260px;}
 .public-site .product-summary {padding:20px;}
 .public-site .product-colours .swatch-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
 .public-site .product-colours .swatch-info {padding:9px;}
 .public-site .product-colours .swatch-info strong {font-size:11px;}
 .public-site .colour-stock-filter {flex-wrap:wrap;}
 .public-site .product-rich-hero {display:block;padding:18px;}
 .public-site .product-metrics,.public-site .product-info-grid {grid-template-columns:1fr;}
 .public-site .verified-projects,.public-site .portfolio-pages {grid-template-columns:1fr;gap:20px;}
 .public-site .verified-projects article>.image-zoom img {height:240px;}
 .public-site .portfolio-pages img {height:380px;}
 .public-site .about-hero aside {margin-top:24px;padding:20px;}
 .public-site .about-proof-grid {grid-template-columns:1fr;}
 .public-site .site-footer {display:grid;gap:20px;}
}
@media(prefers-reduced-motion:reduce){.public-site *, .public-site *::before,.public-site *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important;}}

/* Contextual gallery enquiries */
.public-site .gallery-quote{display:inline-flex;align-items:center;gap:12px;margin-top:14px;padding:11px 0;color:var(--green);font-size:13px;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor}.public-site .project-card-copy .gallery-quote{display:flex;width:fit-content}.public-site .project-album-grid figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px}.public-site .project-album-grid figcaption .gallery-quote{margin:0}.public-site .haima-gallery figure{margin:0;break-inside:avoid}.public-site .haima-gallery figure>a{display:block}.public-site .haima-gallery figcaption{padding:0 4px 20px}
