/* 1.2.3: shared typography, spacing and responsive interaction foundation. */
:root { --space-section:clamp(40px,5vw,72px); --muted:#52675a; }
body {font-size:16px;line-height:1.7}
h1,h2,h3 {letter-spacing:-.035em;line-height:1.18;overflow-wrap:break-word}
h1 {font-size:clamp(32px,4.5vw,60px)}
h2 {font-size:clamp(28px,3.2vw,42px)}
h3 {font-size:24px}
p {text-wrap:pretty}
.shell {width:min(1240px,calc(100% - 64px))}
button,input,textarea,select {font-size:16px}
input:not([type=checkbox]):not([type=hidden]),select,textarea {max-width:100%;min-height:48px;font-size:16px;line-height:1.5}
label,.admin-page label {font-size:14px;line-height:1.5}
label small {font-size:13px}
.button,.hero-actions .button,.filter-panel .button,.product-buy .button,.cookie-consent .button {font-size:14px;min-height:48px;line-height:1.4;padding:12px 20px;gap:12px}
.text-link,.product-copy .text-link {font-size:14px;min-height:44px;line-height:1.5}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:3px solid #4b7800;outline-offset:4px}
.site-header .site-search input {font-size:16px}
.site-search button {min-width:44px;min-height:44px}
.header-phone {font-size:14px}
.category-nav>a,.catalog-menu>summary {font-size:14px;padding:12px 0;min-height:44px}
.category-nav {gap:18px}
.catalog-dropdown strong {font-size:16px}
.catalog-dropdown small {font-size:14px}
.mobile-navigation>summary {min-height:48px;font-size:14px}
.mobile-navigation a {font-size:16px;min-height:48px}
.mobile-navigation>nav {max-height:min(70vh,560px);overscroll-behavior:contain}
.eyebrow,.hero-content .eyebrow,.section-heading .eyebrow,.knowledge-hero .eyebrow,.finish-feature .eyebrow {font-size:12px;letter-spacing:.1em}
.studio-hero h1 {font-size:clamp(48px,6.5vw,88px);line-height:1.04;letter-spacing:-.055em}
.hero-content>p:not(.eyebrow),.knowledge-hero>div>p:not(.eyebrow),.finish-feature p:not(.eyebrow) {font-size:17px;line-height:1.75}
.hero-bottom,.image-caption {font-size:11px;letter-spacing:.04em}
.value-strip {font-size:14px}
.section-heading>p,.collection-copy p,.knowledge-links p,.knowhow-title p:not(.eyebrow),.catalog-intro,.service-aside p,.knowledge-card p,.knowledge-section-title>p:not(.eyebrow),.knowledge-sections p,.home-reading p:not(.eyebrow),.guide-directory .journal-row p {font-size:16px;line-height:1.75}
.collection-copy p {opacity:1}
.collection-copy>span,.collection-top,.knowledge-card-copy>span {font-size:12px;line-height:1.6}
.collection-top {letter-spacing:.05em}
.collection-copy h3,.knowledge-card h2 {line-height:1.25}
.knowledge-card p {min-height:0}
.collection-section,.section {padding-block:var(--space-section)}
.section-heading {gap:32px}
.catalog-title h1,.page-intro h1,.knowledge-hero h1,.product-detail h1,.theme-guide h1 {font-size:clamp(32px,4.2vw,56px);line-height:1.15;letter-spacing:-.035em}
.breadcrumbs {font-size:13px;line-height:1.6;padding-block:24px;overflow-wrap:anywhere}
.breadcrumbs a {padding-block:10px}
.catalog-layout {grid-template-columns:260px minmax(0,1fr);gap:28px}
.catalog-layout>* {min-width:0}
.filter-panel label {font-size:14px}
.filter-panel input,.filter-panel select {font-size:16px}
.filter-heading a {font-size:14px;padding:10px 0}
.filter-help,.results-bar,.catalog-note,.price-note,.stock,.product-copy>p,.product-buy>strong,.specs>div,.spec-layout aside {font-size:14px;line-height:1.65}
.product-copy small,.product-buy>small,.detail-offer>small {font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.product-row {grid-template-columns:110px minmax(0,1fr) 210px;gap:20px}
.product-copy,.product-buy {min-width:0}
.product-copy h2 {font-size:22px;line-height:1.3}
.product-buy .button {white-space:normal;text-align:center}
.product-buy .price {font-size:26px!important}
.price small {font-size:14px}
.specs>div {align-items:start}
.specs dd {margin-left:0;text-align:right;overflow-wrap:anywhere}
.reading-date,.reading-toc a,.reading-help,.reading-sources p,.reading-sources li,.related-topics>a {font-size:14px!important;line-height:1.7}
.reading-toc a {min-height:44px}
.editorial-body .knowledge-sections p,.article-content,.prose-section p,.faq-section details>p {font-size:17px;line-height:1.8;max-width:70ch}
.article-content p+p {margin-top:1em}
.editorial-body {gap:56px}
.editorial-body .knowledge-sections h2 {font-size:clamp(25px,2.5vw,32px)}
.faq-section summary {font-size:16px;line-height:1.55;min-height:44px;align-items:center}
.faq-section summary span {flex-shrink:0}
.reading-checklist li {font-size:16px}
.reading-comparison table {font-size:15px;line-height:1.65}
.reading-comparison thead th {font-size:14px}
.related-topics>span {font-size:12px}
.related-topics>a {padding-block:10px}
.contact-large {overflow-wrap:anywhere}
.contact-layout>*,.prose-grid>*,.product-detail>* {min-width:0}
.footer-grid h2 {font-size:15px;line-height:1.5;margin-bottom:12px}
.footer-grid a:not(.brand) {font-size:14px;line-height:1.6;margin:0;padding:10px 0}
.site-footer p {font-size:14px;color:#bacdb1}
.footer-bottom {font-size:13px;align-items:center}
.footer-bottom a,.footer-link-button {display:inline-flex;align-items:center;min-height:44px}
.footer-callout>p {font-size:12px}
.cookie-consent {max-height:calc(100dvh - 24px);overflow-y:auto;width:min(540px,calc(100% - 32px))}
.cookie-consent h2 {font-size:20px;line-height:1.3}
.cookie-consent p {font-size:14px;line-height:1.65}
.cookie-actions {flex-wrap:wrap}
.cookie-actions .button,.cookie-actions button {min-height:44px;font-size:14px}
.cookie-dialog {max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}
.admin-page {padding:clamp(24px,5vw,64px) 16px}
.admin-login {width:100%;max-width:560px;margin-inline:auto;padding:clamp(24px,4vw,40px)}
.admin-login h1 {font-size:clamp(28px,3.2vw,40px);margin:24px 0 16px;line-height:1.2}
.admin-login>p {font-size:16px;line-height:1.75}
.admin-login .brand {font-size:26px}
.admin-login label {margin-bottom:20px}
.admin-page label small {float:none;display:block;margin-top:4px}
@media(max-width:1150px) {
 .category-nav {display:none}
 .masthead {flex-wrap:wrap;gap:16px}
 .masthead>.site-search {order:5;flex-basis:100%;max-width:none;margin:0}
 .masthead .brand {margin-right:auto}
 .mobile-navigation {display:block;position:relative}
 .mobile-navigation>summary {list-style:none;display:flex;align-items:center;gap:10px;background:#eaf0e3;border-radius:30px;padding:10px 16px;font-weight:700}
 .mobile-navigation>nav {position:absolute;top:56px;right:0;width:min(360px,calc(100vw - 32px));overflow-y:auto;background:#fff;box-shadow:0 18px 60px #123c2e30;border:1px solid var(--line);padding:12px;border-radius:18px}
 .mobile-navigation a {display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid var(--line)}
 .product-row {grid-template-columns:90px minmax(0,1fr)}
 .product-buy {grid-column:2;display:flex;flex-direction:column;align-items:stretch;gap:6px}
 .knowledge-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px) {
 .shell {width:calc(100% - 32px)}
 .catalog-layout,.editorial-body,.knowledge-body,.prose-grid,.contact-layout,.product-detail,.spec-layout {grid-template-columns:minmax(0,1fr);gap:28px}
 .editorial-body .knowledge-section-title {position:static}
 .spec-layout aside {grid-column:auto}
 .filter-panel form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
 .filter-heading,.dimension-fields {grid-column:1/-1}
 .filter-panel .button {grid-column:1/-1;width:100%}
 .filter-help {display:none}
 .footer-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .footer-grid>div:first-child {grid-column:1/-1}
 .footer-bottom {display:block}
 .footer-bottom>div {gap:8px 20px;flex-wrap:wrap}
}
@media(max-width:620px) {
 .masthead {gap:12px;padding-block:16px}
 .brand {font-size:24px;gap:8px}
 .mobile-navigation>summary {padding:10px 12px;font-size:14px}
 .site-header .site-search input {font-size:16px}
 .hero-content {padding:28px 20px 0}
 .studio-hero h1 {font-size:clamp(38px,10.8vw,64px)}
 .hero-content>p:not(.eyebrow),.knowledge-hero>div>p:not(.eyebrow),.finish-feature p:not(.eyebrow) {font-size:16px}
 .hero-actions {flex-wrap:wrap;gap:12px}
 .hero-actions .button {font-size:14px;padding:12px 16px;min-height:48px}
 .value-strip {font-size:13px;gap:16px 8px}
 .section-heading h2,.knowhow-title h2,.finish-feature h2,.closing-note h2,.knowledge-section-title h2 {font-size:32px;line-height:1.2}
 .collection-card {grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
 .collection-copy {padding:20px 0 24px 20px}
 .collection-copy h3 {font-size:24px}
 .collection-copy p {font-size:15px}
 .collection-top>span:first-child {font-size:11px}
 .knowledge-grid {grid-template-columns:minmax(0,1fr);gap:20px}
 .knowledge-card-copy {padding:24px}
 .knowledge-card h2 {font-size:24px}
 .knowledge-card p {font-size:16px}
 .knowledge-card-copy>span {font-size:14px}
 .card-surface {height:190px}
 .knowledge-hero {padding:28px 24px 12px;overflow:hidden}
 .knowledge-hero-art {max-width:100%}
 .knowledge-sections section {gap:12px}
 .product-row {grid-template-columns:72px minmax(0,1fr);gap:16px;padding:20px}
 .product-copy h2 {font-size:20px}
 .product-buy {grid-column:1/-1}
 .product-buy .button {width:100%;font-size:14px}
 .catalog-title h1 {font-size:36px}
 .editorial-body .knowledge-sections p,.article-content,.prose-section p {font-size:16px}
 .faq-section {padding:24px}
 .footer-callout>a {font-size:36px;letter-spacing:-.035em}
 .cookie-consent {left:16px;right:16px;bottom:12px;padding:20px}
 .cookie-actions {display:grid;grid-template-columns:1fr 1fr}
 .cookie-actions .button {padding:10px 12px}
 .finish-feature {overflow:hidden}
}
@media(max-width:360px) {
 .collection-card {display:flex;flex-direction:column}
 .collection-visual {width:100%;overflow:hidden}
 .collection-copy {padding:20px}
 .filter-panel form {grid-template-columns:minmax(0,1fr)}
 .footer-grid {grid-template-columns:minmax(0,1fr)}
 .cookie-actions {grid-template-columns:1fr}
 .header-cta {display:none}
 .brand {font-size:22px}
}
/* Compact page introductions; keep the enquiry form within reach on phones. */
.breadcrumbs {margin:0;padding-block:16px}
.page-intro {padding:20px 0 28px;margin-bottom:24px}
.catalog-title {margin-top:12px}
.form-note {font-size:14px;line-height:1.65;color:var(--muted)}
@media(max-width:760px) {
 .contact-layout>section {order:-1}
 .page-intro {padding:12px 0 20px;margin-bottom:16px}
 .breadcrumbs {padding-block:12px}
}

.contact-form .consent {min-height:44px;align-items:flex-start;font-size:14px;line-height:1.6}
.contact-form .consent span {color:var(--ink)}
.contact-form .consent input {width:20px;height:20px;flex-shrink:0;margin-top:2px}

/* 1.3 editorial expansion: readable longer headings, images and author cards. */
.studio-hero h1 {font-size:clamp(36px,4.1vw,58px);max-width:17ch;line-height:1.12;letter-spacing:-.035em}
.knowledge-hero h1 {font-size:clamp(30px,3.3vw,48px);overflow-wrap:break-word}
.editorial-photo {margin-block:40px;}
.editorial-photo img {display:block;width:100%;height:auto;max-height:520px;object-fit:cover;border-radius:20px}
.editorial-photo figcaption {font-size:14px;line-height:1.6;color:#52675a;margin-top:12px}
.editorial-authors {padding-block:24px;border-block:1px solid #d9e2d6;margin-block:32px}
.editorial-authors>div {display:grid;grid-template-columns:1fr 1fr;gap:32px}
.editorial-authors h2 {font-size:20px;margin:0 0 12px}
.editorial-authors p,.editorial-promo p {font-size:16px;line-height:1.75;max-width:75ch}
.editorial-authors a {text-decoration:underline;text-underline-offset:4px}
.editorial-promo {padding-block:48px}
.editorial-promo nav {display:flex;flex-wrap:wrap;gap:16px 28px}
.editorial-promo nav a,.sitemap-links a {display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.sitemap-links {display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;padding-bottom:48px}
.footer-bottom>div {flex-wrap:wrap;row-gap:12px}
@media(max-width:620px){.editorial-authors>div,.sitemap-links {grid-template-columns:1fr}.studio-hero h1 {font-size:36px;max-width:18ch}.editorial-photo {margin-block:28px}.editorial-photo img {border-radius:12px}.editorial-authors>div{gap:20px}}
.studio-hero h1 span {white-space:normal}

/* Grouped roll/sheet specifications, shared with the catalogue typography. */
.label-spec-groups {min-width:0}
.label-spec-groups section + section {margin-top:32px}
.label-spec-groups h3 {font-size:clamp(18px,2vw,23px);line-height:1.35;margin:0 0 12px}
.label-spec-groups .specs {margin:0}
.label-spec-groups .specs div {gap:16px}
@media(max-width:480px){.label-spec-groups .specs div{display:block}.label-spec-groups .specs dd{text-align:left;margin-top:6px}}

/* Catalog presentation and site-wide heading convention. */
h1,h2,h3,h4,h5,h6 { text-transform:uppercase; }
.catalog-v2 .catalog-hero { padding:28px 0 38px; }
.catalog-v2 .catalog-title { display:flex; align-items:center; gap:24px; margin:12px 0 20px; }
.catalog-v2 .catalog-title h1 { font-size:clamp(28px,3.6vw,50px); line-height:1.15; max-width:900px; overflow-wrap:normal; }
.catalog-v2 .catalog-title .text-link { flex-shrink:0; }
.catalog-v2 .catalog-intro { max-width:1050px; font-size:18px; line-height:1.8; margin:0 0 12px; }
.catalog-support { color:#5a6f65; line-height:1.7; }
.material-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px; }
.material-card { display:flex; align-items:center; gap:16px; padding:20px; border:1px solid #dbe4d9; border-radius:12px; background:#eef2eb; color:#153d30; font-size:19px; font-weight:700; text-decoration:none; }
.material-card small { display:block; font-size:13px; font-weight:400; margin-top:4px; }
.material-card > span:last-child { margin-left:auto; }
.material-card:hover,.material-card.selected { border-color:#285c42; background:#e1ecd8; }
.catalog-v2 .catalog-layout { grid-template-columns:260px minmax(0,1fr); align-items:start; gap:28px; }
.catalog-v2 .filter-panel form { display:flex; flex-direction:column; gap:20px; }
.catalog-v2 .filter-panel form > label { display:grid; gap:8px; }
.catalog-v2 .facet { border:0; border-top:1px solid #dce4df; padding:18px 0 0; margin:0; min-width:0; }
.catalog-v2 .facet legend { font-size:14px; font-weight:700; padding:0 8px 0 0; }
.facet-options { display:grid; gap:10px; max-height:240px; overflow:auto; }
.catalog-v2 .facet-options label { display:flex; align-items:flex-start; gap:9px; font-weight:400; line-height:1.4; }
.catalog-v2 .facet-options input { width:18px; height:18px; min-height:18px; padding:0; margin:1px 0 0; flex-shrink:0; accent-color:#215a41; }
.catalog-v2 .results-bar { padding:0 0 18px; font-size:17px; }
.catalog-v2 .product-row { display:grid; grid-template-columns:190px minmax(0,1fr); padding:26px; gap:26px; margin:0 0 20px; border:1px solid #e2e7e0; border-radius:14px; background:#fff; box-shadow:0 8px 30px #12332606; }
.catalog-v2 .product-row:nth-child(even) { background:#f0f3ed; }
.catalog-v2 .product-thumb { width:100%; height:auto; align-self:start; background:#fff; border-radius:10px; }
.catalog-v2 .product-thumb img { width:100%; height:210px; object-fit:contain; }
.catalog-v2 .product-copy h2 { font-size:clamp(18px,1.7vw,24px); line-height:1.4; margin:0 0 18px; }
.product-identifiers { display:flex; flex-wrap:wrap; gap:8px 24px; font-size:14px; color:#5c6c64; }
.product-facts { display:flex; flex-wrap:wrap; gap:8px 18px; margin:22px 0; color:#5c6c64; font-size:15px; line-height:1.7; }
.product-facts div { display:inline; }
.product-facts dt,.product-facts dd { display:inline; margin:0; }
.product-row-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; align-items:flex-end; }
.product-availability { display:grid; gap:6px; font-size:14px; max-width:330px; }
.product-availability .stock { color:#347520; font-size:17px; }
.product-availability small { color:#65756b; font-size:11px; }
.product-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.product-actions .button { font-size:14px; padding:13px 18px; }
.catalog-load { text-align:center; padding:12px; }
.catalog-load-status { text-align:center; color:#54695d; font-size:14px; }
@media(max-width:1100px) { .catalog-v2 .product-row { grid-template-columns:130px minmax(0,1fr); gap:18px; padding:20px; } .catalog-v2 .product-thumb img { height:160px; } .material-card { padding:14px; gap:10px; font-size:16px; } }
@media(max-width:800px) { .catalog-v2 .catalog-layout { grid-template-columns:1fr; } .catalog-v2 .catalog-title { flex-direction:column; align-items:flex-start; } .material-shortcuts { grid-template-columns:1fr; gap:10px; } .material-card img { width:45px; height:45px; } .catalog-v2 .product-row { grid-template-columns:100px minmax(0,1fr); } .catalog-v2 .product-thumb img { height:120px; } }
@media(max-width:480px) { .catalog-v2 .product-row { grid-template-columns:1fr; } .catalog-v2 .product-thumb { max-width:220px; justify-self:center; } .catalog-v2 .product-thumb img { height:180px; } .catalog-v2 .catalog-title h1 { font-size:29px; } }

.catalog-v2 .filter-panel label { margin-bottom:0; }
.catalog-v2 .product-copy h2,.product-identifiers { overflow-wrap:anywhere; }
