/* HDFL design system */
:root{--hdfl-ink:#151515;--hdfl-muted:#69645e;--hdfl-line:#dfdcd6;--hdfl-soft:#f5f3ef;--hdfl-warm:#ebe6de;--hdfl-white:#fff;--hdfl-radius:0;--hdfl-max:1440px;--hdfl-gap:clamp(18px,2vw,32px);--hdfl-display:clamp(42px,5.5vw,88px);--hdfl-h2:clamp(30px,3vw,52px)}
.hdfl-site{color:var(--hdfl-ink);font-size:16px;line-height:1.65}.hdfl-site h1,.hdfl-site h2,.hdfl-site h3,.hdfl-site h4{color:var(--hdfl-ink);font-weight:500;letter-spacing:-.035em}.hdfl-container{width:min(calc(100% - 48px),var(--hdfl-max));margin-inline:auto}.hdfl-section{padding:clamp(68px,8vw,126px) 0}.hdfl-section--soft{background:var(--hdfl-soft)}.hdfl-section--dark{background:#171717;color:#fff}.hdfl-section--dark h2,.hdfl-section--dark strong,.hdfl-section--dark a{color:#fff}.hdfl-eyebrow,.hdfl-section-head>span,.hdfl-section-head>div>span{display:block;margin-bottom:16px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.hdfl-section-head{margin-bottom:38px}.hdfl-section-head h2{font-size:var(--hdfl-h2);margin:0}.hdfl-section-head--row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.hdfl-section-head--row>a{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.hdfl-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-width:188px;padding:15px 20px;border:1px solid var(--hdfl-ink);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:.25s ease}.hdfl-button--dark{background:var(--hdfl-ink);color:#fff!important}.hdfl-button--outline{background:transparent;color:var(--hdfl-ink)!important}.hdfl-button:hover{opacity:.78;transform:translateY(-1px)}.hdfl-icon{display:inline-grid;place-items:center;flex:0 0 auto;width:32px;height:32px}.hdfl-icon svg{width:24px;height:24px;fill:currentColor}
/* Homepage */
.hdfl-home-hero{min-height:min(82vh,900px);background-image:linear-gradient(90deg,rgba(245,243,239,.95) 0%,rgba(245,243,239,.70) 34%,rgba(245,243,239,0) 64%),var(--hdfl-hero);background-size:cover;background-position:center}.hdfl-home-hero__inner{display:flex;align-items:center;min-height:min(82vh,900px)}.hdfl-home-hero__copy{width:min(580px,48%)}.hdfl-home-hero h1{font-size:var(--hdfl-display);line-height:.98;margin:0 0 28px}.hdfl-home-hero p{max-width:470px;color:#48443f;font-size:18px}.hdfl-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hdfl-trust{border-block:1px solid var(--hdfl-line);padding:24px 0}.hdfl-trust-grid{display:grid;grid-template-columns:repeat(5,1fr)}.hdfl-trust article{display:flex;gap:14px;align-items:center;padding:0 22px;border-right:1px solid var(--hdfl-line)}.hdfl-trust article:last-child{border:0}.hdfl-trust strong,.hdfl-trust small{display:block}.hdfl-trust strong{font-size:11px;text-transform:uppercase;letter-spacing:.07em}.hdfl-trust small{font-size:11px;color:var(--hdfl-muted);line-height:1.35}.hdfl-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.hdfl-category-card{position:relative;min-height:360px;overflow:hidden;background:var(--hdfl-soft);color:var(--hdfl-ink)}.hdfl-category-card figure,.hdfl-category-card img{width:100%;height:100%;margin:0;object-fit:cover;transition:transform .6s ease}.hdfl-category-card:hover img{transform:scale(1.025)}.hdfl-category-card>span{position:absolute;left:24px;top:22px;font-size:20px}.hdfl-category-card>small{position:absolute;left:24px;bottom:22px;text-transform:uppercase;letter-spacing:.08em}.hdfl-product-grid.products{margin:0}.hdfl-product-grid .product-small.box{background:transparent}.hdfl-space-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:12px}.hdfl-space-grid a{position:relative;min-height:330px;overflow:hidden}.hdfl-space-grid figure,.hdfl-space-grid img{width:100%;height:100%;margin:0;object-fit:cover}.hdfl-space-grid span{position:absolute;left:18px;bottom:16px;color:#fff;font-size:15px;text-shadow:0 1px 12px rgba(0,0,0,.45)}.hdfl-project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.hdfl-project-grid a{position:relative;min-height:340px;overflow:hidden}.hdfl-project-grid figure,.hdfl-project-grid img{width:100%;height:100%;margin:0;object-fit:cover}.hdfl-project-grid a>div{position:absolute;inset:auto 0 0;padding:20px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff}.hdfl-project-grid strong,.hdfl-project-grid small{display:block}.hdfl-material-layout{display:grid;grid-template-columns:.7fr 2fr;gap:60px}.hdfl-material-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hdfl-line)}.hdfl-material-grid article{background:#fff;padding:22px}.hdfl-material-grid img{aspect-ratio:1.2/1;object-fit:cover}.hdfl-material-grid h3{font-size:18px;margin:20px 0 8px}.hdfl-material-grid p{font-size:14px;color:var(--hdfl-muted)}.hdfl-journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.hdfl-journal-grid article img{aspect-ratio:16/9;object-fit:cover;margin-bottom:18px}.hdfl-journal-grid small{display:block;color:var(--hdfl-muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.hdfl-journal-grid h3,.hdfl-journal-grid h2{font-size:24px;margin:8px 0 16px}.hdfl-journal-grid span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.hdfl-final-cta{padding:70px 0;background:var(--hdfl-warm)}.hdfl-final-cta>.hdfl-container{display:flex;align-items:center;justify-content:space-between;gap:40px}.hdfl-final-cta h2{font-size:clamp(32px,4vw,58px);margin:6px 0}.hdfl-final-cta p{margin:0;color:var(--hdfl-muted)}
/* Page heroes */
.hdfl-page-hero{min-height:390px;display:flex;align-items:center;background:linear-gradient(90deg,var(--hdfl-soft),rgba(245,243,239,.72)),var(--hdfl-hero);background-size:cover;background-position:center}.hdfl-page-hero h1{font-size:clamp(48px,6vw,88px);margin:0 0 18px}.hdfl-page-hero p{max-width:620px;font-size:18px;color:var(--hdfl-muted)}.hdfl-page-hero--compact{min-height:300px}.hdfl-page-hero--compact h1{font-size:clamp(42px,5vw,68px)}
/* Products */
.hdfl-catalog-mode .price,.hdfl-catalog-mode .cart,.hdfl-catalog-mode .add-to-cart-button,.hdfl-catalog-mode .header-cart-link{display:none!important}.hdfl-product-badge{position:absolute;top:16px;left:16px;z-index:3;background:#fff;padding:7px 10px;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.hdfl-product-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.hdfl-field-label{display:block;margin-bottom:10px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.hdfl-finishes{margin-top:22px}.hdfl-swatches{display:flex;gap:10px}.hdfl-swatch{display:block;width:32px;height:32px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--hdfl-line);background-size:cover;background-position:center}.hdfl-feature-strip{border-block:1px solid var(--hdfl-line)}.hdfl-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hdfl-line)}.hdfl-feature-item{display:flex;gap:15px;background:#fff;padding:26px}.hdfl-feature-item h3{font-size:15px;margin:0 0 4px}.hdfl-feature-item p{font-size:12px;color:var(--hdfl-muted);margin:0}.hdfl-spec-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.hdfl-spec-group{border-top:1px solid var(--hdfl-ink);padding-top:20px}.hdfl-spec-group h3{font-size:20px;margin:0 0 16px}.hdfl-spec-group dl>div{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;border-top:1px solid var(--hdfl-line);padding:11px 0}.hdfl-spec-group dt{font-size:13px;color:var(--hdfl-muted)}.hdfl-spec-group dd{font-size:13px;margin:0}.hdfl-download-list{border-top:1px solid var(--hdfl-ink)}.hdfl-download-list>a{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:16px;border-bottom:1px solid var(--hdfl-line);padding:18px 0}.hdfl-download-list strong,.hdfl-download-list small{display:block}.hdfl-download-list small{color:var(--hdfl-muted);font-size:12px}.hdfl-filter-form{margin-bottom:32px;border-block:1px solid var(--hdfl-line);padding:18px 0}.hdfl-filter-toggle{display:none}.hdfl-filter-fields{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.hdfl-filter-fields label{min-width:170px;margin:0}.hdfl-filter-fields label span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}.hdfl-filter-fields select{height:44px;margin:0;border-color:var(--hdfl-line);box-shadow:none;background:#fff}.hdfl-filter-fields .hdfl-button{min-width:120px;height:44px;padding:10px 15px}.hdfl-filter-reset{font-size:12px;padding:12px}
/* Contact / legal */
.hdfl-contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:24px}.hdfl-form-card,.hdfl-contact-card{background:var(--hdfl-soft);padding:clamp(28px,4vw,56px)}.hdfl-contact-card dl>div{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--hdfl-line);padding:12px 0}.hdfl-contact-card dt{font-size:12px;color:var(--hdfl-muted)}.hdfl-contact-card dd{margin:0}.hdfl-map iframe{width:100%;min-height:300px;margin-top:24px}.hdfl-legal-layout{display:grid;grid-template-columns:260px minmax(0,850px);gap:80px;align-items:start}.hdfl-legal-toc{position:sticky;top:110px;background:var(--hdfl-soft);padding:26px}.hdfl-legal-toc nav{display:grid;margin-top:16px}.hdfl-legal-toc a{border-top:1px solid var(--hdfl-line);padding:11px 0;font-size:13px}.hdfl-legal-content h2{font-size:28px;margin-top:48px;padding-top:18px;border-top:1px solid var(--hdfl-line)}.hdfl-legal-content h2:first-child{margin-top:0}.hdfl-updated{margin-top:60px;color:var(--hdfl-muted);font-size:13px}
/* CPT */
.hdfl-project-grid--archive{grid-template-columns:repeat(3,1fr)}.hdfl-space-grid--archive{grid-template-columns:repeat(3,1fr)}.hdfl-project-hero{position:relative;min-height:72vh;background:#111;color:#fff}.hdfl-project-hero>img{width:100%;height:72vh;object-fit:cover;opacity:.78}.hdfl-project-hero>.hdfl-container{position:absolute;left:50%;bottom:70px;transform:translateX(-50%)}.hdfl-project-hero h1{max-width:900px;color:#fff;font-size:clamp(52px,7vw,100px);margin:8px 0}.hdfl-project-hero p{max-width:650px;font-size:18px}.hdfl-prose{max-width:900px;font-size:18px}.hdfl-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.hdfl-gallery-grid img{width:100%;height:auto}.hdfl-journal-grid--archive{grid-template-columns:repeat(3,1fr)}
