/* v1.5.1: shared layout constraints. Visual styles remain in style.css.
 * --ec-unit stops viewport-driven artwork/type growth at the same 1500px stage.
 * No document scaling or overflow masking is used. */
:root {
 --ec-stage:1500px;
 --ec-content:1368px;
 --ec-gutter:clamp(16px,4vw,60px);
 --ec-unit:min(1vw,15px);
}
.header-inner,.wide,.about,.brands-inner,.footer-inner,.content-wrap {
 width:calc(100% - var(--ec-gutter) * 2);
 max-width:var(--ec-content);
 margin-inline:auto;
}
.header-inner,.hero-stage,.hero-inner,.about,.about-copy,.trust-list,
.category-card,.gallery-item,.featured,.featured-content,.brand-clients,
.brand-logos>div,.form-grid>* {min-width:0;}
.hero-stage {position:relative;width:100%;max-width:var(--ec-stage);margin-inline:auto;}
.hero-inner {width:calc(100% - var(--ec-gutter) * 2);max-width:var(--ec-content);margin-inline:auto;}
.about {grid-template-columns:minmax(0,34.5fr) minmax(0,39fr) minmax(0,26.5fr);}
.about:not(:has(.trust-list)) {grid-template-columns:minmax(0,40fr) minmax(0,60fr);}
.about-photo {position:relative;}
.about-photo img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.category-card .image-frame,.gallery-item {position:relative;}
.category-card .image-frame img,.gallery-item>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.category-caption,.about-copy,.trust-list li,.site-footer,.popup {overflow-wrap:anywhere;}
.brands {padding:0;min-height:0;}
.brands-stage {position:relative;max-width:var(--ec-stage);margin-inline:auto;padding:clamp(26px,calc(2.4 * var(--ec-unit)),36px) 0 clamp(30px,calc(3 * var(--ec-unit)),45px);}
.brands-inner {grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(24px,calc(3 * var(--ec-unit)),45px);}
.featured {min-height:0;}
.brands h2 {font-size:clamp(22px,calc(1.7 * var(--ec-unit)),26px);}
.featured-content img {max-height:90px;}
.featured-content p {font-size:clamp(12px,calc(.98 * var(--ec-unit)),15px);}
.brand-logos {gap:clamp(14px,calc(3 * var(--ec-unit)),45px);}
.brand-logos>div {height:clamp(50px,calc(5 * var(--ec-unit)),75px);}
.floral-left {width:var(--ec-gutter);}
.floral-right {width:var(--ec-gutter);top:-24px;}
.site-footer {padding-inline:0;}
.content-page {padding-inline:0;}
.content-wrap img {max-width:100%;}
.popup {max-width:calc(100% - 30px);max-height:90dvh;}
.form-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
.form-grid input,.form-grid textarea,.form-grid select {min-width:0;width:100%;}
/* A native date control must be allowed to shrink inside its grid column. */
.form-grid input[type=date] {min-inline-size:0;}
.lightbox {max-width:95%;}
@media(min-width:1025px) {
 .header-inner {display:grid;grid-template-columns:minmax(150px,var(--logo-width)) minmax(0,1fr);align-items:center;gap:clamp(20px,calc(3 * var(--ec-unit)),45px);min-height:clamp(130px,calc(10.7 * var(--ec-unit)),161px);padding:0;}
 .brand {position:static;width:100%;max-width:var(--logo-width);}
 .brand img {max-height:161px;}
 .header-right {display:flex;flex-direction:column;justify-content:center;align-items:stretch;width:auto;margin:0;gap:14px;padding-block:12px;}
 .header-tools {position:static;gap:clamp(8px,calc(.8 * var(--ec-unit)),12px);min-height:0;}
 .header-tools>.icon-button,.header-tools>.social {width:clamp(36px,calc(2.6 * var(--ec-unit)),39px);height:clamp(36px,calc(2.6 * var(--ec-unit)),39px);}
 .header-tools svg {width:clamp(25px,calc(1.9 * var(--ec-unit)),29px);height:clamp(25px,calc(1.9 * var(--ec-unit)),29px);}
 .header-order {width:clamp(145px,calc(12 * var(--ec-unit)),180px);min-height:clamp(44px,calc(3.5 * var(--ec-unit)),53px);font-size:clamp(14px,calc(1.18 * var(--ec-unit)),18px);}
 #primary-nav {position:static;width:100%;margin:0;}
 #primary-nav>.menu {flex-wrap:wrap;gap:0 clamp(8px,calc(.8 * var(--ec-unit)),12px);justify-content:space-between;}
 #primary-nav .menu a {font-size:clamp(11px,calc(1.02 * var(--ec-unit)),15.3px);padding:6px 0 10px;white-space:nowrap;}
 .sub-menu {max-width:min(300px,80vw);}
 #primary-nav .sub-menu a {white-space:normal;overflow-wrap:anywhere;}
 .menu>li:last-child>.sub-menu {left:auto;right:0;}
 .menu>li:last-child .sub-menu .sub-menu {left:auto;right:100%;}
 .hero {min-height:0;}
 .hero-inner {min-height:clamp(500px,calc(43 * var(--ec-unit)),645px);padding:calc(9.1 * var(--ec-unit)) 0 calc(2.3 * var(--ec-unit));}
 .hero-art {inset:0 0 0 43%;}
 .hero-copy {width:65%;}
 .hero h1 {font-size:clamp(42px,calc(4.6 * var(--ec-unit)),69px);}
 .hero-copy>p {max-width:570px;font-size:clamp(17px,calc(1.6 * var(--ec-unit)),24px);margin:calc(1 * var(--ec-unit)) 0 calc(1.45 * var(--ec-unit));}
 .hero-copy>.button {font-size:clamp(14px,calc(1.25 * var(--ec-unit)),19px);min-height:clamp(46px,calc(4 * var(--ec-unit)),60px);padding:calc(.8 * var(--ec-unit)) calc(2.3 * var(--ec-unit));}
 .hero-script {font-size:clamp(28px,calc(3.1 * var(--ec-unit)),46.5px);}
 .hero .benefits {width:45%;max-width:615px;gap:calc(1.5 * var(--ec-unit));margin:calc(2.3 * var(--ec-unit)) 0 0;}
 .hero .benefit-icon {width:clamp(50px,calc(4.6 * var(--ec-unit)),69px);height:clamp(50px,calc(4.6 * var(--ec-unit)),69px);margin-bottom:calc(.7 * var(--ec-unit));}
 .hero .benefit p {font-size:clamp(11px,calc(1 * var(--ec-unit)),15px);}
}
@media(min-width:1025px) and (max-width:1200px) {
 .header-inner {grid-template-columns:200px minmax(0,1fr);gap:20px;}
 .brand {width:200px;}
}
@media(min-width:601px) and (max-width:1024px) {
 .header-inner {padding:8px 0;}
 .hero-inner {padding:50px 0 25px;}
 .hero-art {left:52%;}
 .hero-copy {width:48%;}
 .hero h1 {font-size:clamp(30px,4.5vw,46px);}
 .hero-script {right:6%;width:27%;font-size:clamp(18px,2.9vw,26px);}
 .hero .benefits {width:48%;max-width:465px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);}
 .hero .benefit p {font-size:clamp(9px,1.3vw,12px);overflow-wrap:anywhere;}
 .about {grid-template-columns:minmax(0,42fr) minmax(0,58fr);}
}
@media(max-width:1024px) {
 .brands {padding:0;}
 .brands-stage {padding:30px 0 34px;}
 .brands-inner {grid-template-columns:minmax(0,1fr);gap:25px;}
 .brands h2 {font-size:26px;}
 .featured-content p {font-size:14px;}
 .brand-logos>div {height:65px;}
 .floral-left,.floral-right {width:var(--ec-gutter);}
 .floral-right {top:-20px;}
}
@media(max-width:600px) {
 .header-inner {padding:8px 0;}
 .hero-stage {display:contents;}
 .hero-inner {display:contents;width:auto;}
 .hero-art {height:auto;aspect-ratio:1.24;}
 .hero-copy {padding-inline:var(--ec-gutter);overflow-wrap:anywhere;}
 .hero-script {right:6%;width:24%;font-size:clamp(18px,5.5vw,27px);}
 .hero .benefits {padding-inline:var(--ec-gutter);}
 .about-photo {width:100%;aspect-ratio:1.25;}
 .about-copy {padding-inline:0;}
 .trust-list {padding-inline:0;}
 .brands-stage {padding:32px 0 58px;}
 .brands-inner {gap:27px;}
 .featured-content p {font-size:14px;}
 .brand-logos {gap:20px 25px;}
 .brand-logos>div {height:44px;}
 .brand-logos>div:first-child {height:36px;}
 .form-grid {grid-template-columns:minmax(0,1fr);}
}
/* Reflow for high-zoom effective viewports narrower than a phone. */
@media(max-width:280px) {
 .header-inner {flex-wrap:wrap;justify-content:center;gap:6px;}
 .header-right {margin-inline:auto;}
 .header-tools {gap:6px;}
 .hero-script {font-size:clamp(12px,5.5vw,18px);}
 .hero h1 {font-size:clamp(22px,10vw,32px);}
 .button,.gallery-action .button,.about-copy>.button {max-width:100%;padding-inline:12px;gap:6px;font-size:13px;}
 .hero .benefits {gap:12px;}
 .benefit,.benefit p {overflow-wrap:anywhere;}
 .benefit-icon {width:36px;height:36px;}
 .brand-logos {grid-template-columns:minmax(0,1fr);}
 .brand-logos>div:first-child {grid-column:auto;}
 .trust-list {grid-template-columns:minmax(0,1fr);}
 .trust-list>li:last-child:nth-child(odd) {justify-content:flex-start;}
 .popup {padding:30px 14px 20px;}
}
