/* Concept 02: layered architecture and weaving, kept clear of content. */
footer .footer-grid{background:url('/khmer-landscape.svg') no-repeat right bottom/460px auto}@media(max-width:650px){footer .footer-grid{background-size:300px auto}}
footer{position:relative}footer:before{content:"";position:absolute;inset:0 0 0 auto;width:30px;background:url('/khmer-weave.svg') repeat-y center/30px auto;opacity:.2;pointer-events:none}.footer-grid{padding-bottom:100px}.footer-description{max-width:38ch;line-height:1.7}.footer-brand>a{font-weight:700}.footer-grid section{min-width:0}.footer-grid p{overflow-wrap:anywhere}@media(max-width:650px){.footer-grid{padding-bottom:95px;gap:24px}}
.hero{background-image:linear-gradient(90deg,#0d3533 0%,#0d3533ed 25%,#0d35333b 60%,#0d353322),url('/khmer-landscape.svg'),radial-gradient(ellipse at 80% 80%,#28594e,#0c302f);background-size:cover,auto 94%,cover;background-position:center,98% bottom,center;background-repeat:no-repeat}
.hero:before{inset:0 14px 0 auto;width:48px;opacity:.58;background:url('/khmer-weave.svg') repeat-y center/48px 64px;pointer-events:none}
.hero:after{content:"";position:absolute;left:-12px;bottom:0;width:120px;height:200px;background:url('/khmer-palms.svg') bottom/contain no-repeat;opacity:.15;pointer-events:none}
.hero-copy,.hero-visual{position:relative;z-index:1}
.hero .secondary{border-color:#b8995b;color:#f3e6c7}
.category-scene:after{inset:0 0 0 auto;width:32px;height:auto;opacity:.32;background:url('/khmer-weave.svg') repeat-y center/32px auto}
.category-scene:before{content:"";position:absolute;inset:0 auto 0 0;width:24px;background:url('/khmer-weave.svg') repeat-y center/24px auto;opacity:.18;pointer-events:none}
.service-strip .service-card:after{content:"";position:absolute;right:0;top:0;bottom:0;width:30px;background:url('/khmer-weave.svg') repeat-y center/30px auto;opacity:.2;pointer-events:none}
.home-contact{background:#eee8d6 url('/khmer-landscape.svg') no-repeat right bottom;background-size:auto 100%;min-height:176px;border-color:#d6c49a}
.home-contact>img{display:none}
.home-contact:after{content:"";position:absolute;inset:0 0 0 auto;width:48px;background:url('/khmer-weave.svg') repeat-y;opacity:.25;pointer-events:none}
.home-contact h2,.home-contact p{max-width:54%;position:relative;z-index:1}.home-contact p{color:#39544a}
footer{background-color:#fbf8ef;background-image:url('/khmer-landscape.svg');background-repeat:no-repeat;background-position:right bottom;background-size:460px auto}
.footer-grid,.footer-bottom{position:relative}.footer-bottom{background:#fbf8efe8}
.prose{background-image:linear-gradient(90deg,#fffdf8 45%,#fffdf8d9),url('/khmer-landscape.svg');background-size:cover,75% auto;background-position:center,right bottom;background-repeat:no-repeat;position:relative}
.prose:after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;background:url('/khmer-weave.svg') repeat-y center/28px auto;opacity:.25;pointer-events:none}
.detail .gallery{background-image:url('/khmer-weave.svg');background-repeat:repeat-y;background-position:right;background-size:24px auto}
@media(max-width:800px){
 .hero{background-image:linear-gradient(90deg,#0d3533f7,#0d3533c4 55%,#0d35334d),url('/khmer-landscape.svg'),linear-gradient(#123f39,#0c302f);background-size:cover,auto 92%,cover;background-position:center,62% bottom,center}
 .hero:before{right:5px;width:26px;background-size:26px auto;opacity:.5}.hero:after{width:70px;height:130px;opacity:.12}
 .home-contact{background-color:#123f39;background-image:linear-gradient(#123f3944,#123f3988),url('/khmer-landscape.svg');background-size:cover,auto 95%;background-position:center,right bottom;color:#fff8e7;padding:24px 28px;min-height:190px}
 .home-contact h2,.home-contact p{max-width:100%;color:#fff8e7}.home-contact:after{width:22px;background-size:22px auto;opacity:.4}
 .home-contact:before{content:"";position:absolute;inset:0 auto 0 0;width:22px;background:url('/khmer-weave.svg') repeat-y center/22px auto;opacity:.4}
 footer{background-size:320px auto}.prose{background-size:cover,auto 180px}.prose:after{width:18px;background-size:18px auto}
}
.about-page{max-width:1210px}.about-description{max-width:760px}.about-links{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px}.about-links .button{font-size:14px;min-height:44px}.about-store{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.about-store section{padding:20px;background:#fffdf5dc;border:1px solid #ded4bd;border-radius:10px;min-width:0}.about-store a{display:block;min-height:44px;padding:10px 0;overflow-wrap:anywhere}.about-store p{white-space:pre-line}.home-contact>.button{margin-right:10px;margin-top:8px}@media(max-width:650px){.about-store{grid-template-columns:1fr}.about-links .button{font-size:13px}.about-page h1{font-size:30px}}
footer{background-image:none}
/* Desktop: architecture participates in the grid instead of reserving a blank strip. */
@media(min-width:801px){
 footer .footer-grid{background:none;padding-bottom:0;grid-template-columns:1.15fr 1fr 1fr;column-gap:clamp(24px,4vw,64px);row-gap:20px;align-items:start}
 .footer-grid .footer-brand{grid-row:1 / 3}
 footer .footer-grid:after{content:"";display:block;grid-column:2 / 4;grid-row:2;width:100%;aspect-ratio:20 / 7;background:url('/khmer-landscape.svg') no-repeat center/contain;pointer-events:none;align-self:end}
 footer:before{width:clamp(28px,3vw,48px);background-size:100% auto}
 .hero{background-size:cover,min(78%, 850px) auto,cover;background-position:center,right bottom,center}
 .hero:before{width:clamp(30px,3.4vw,48px);background-size:100% auto}
 .prose{background-size:cover,min(75%, 880px) auto}
}
.footer-grid a.button{color:#fff;text-decoration:none;padding:10px 16px}
/* Compact mobile footer; desktop rules above remain unchanged. */
@media(max-width:700px){
 footer{padding:20px 5% 16px}
 footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-bottom:48px;background-size:auto 58px;background-position:right bottom}
 .footer-grid section{padding-bottom:12px;align-self:start}
 .footer-grid .footer-brand{grid-column:1 / -1;display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:12px;row-gap:4px}
 .footer-brand>*{grid-column:1 / -1;margin:0}
 .footer-brand>svg{display:none}
 .footer-brand>h3{grid-column:1;margin:0;align-self:start;line-height:1.8}
 .footer-brand>h3+p,.footer-brand>h3+a{grid-column:2;margin:0}
 .footer-grid h2{font-size:16px;margin:0 0 8px;line-height:1.5}
 .footer-grid p{font-size:13px;line-height:1.65;margin:4px 0}
 .footer-grid .footer-description{max-width:none;margin:4px 0}
 .footer-grid svg{width:24px;height:24px;margin-right:6px}
 .footer-grid a{font-size:13px;min-height:44px;padding:10px 0;line-height:1.7}
 .footer-grid a.button{padding:10px 12px}
 .footer-bottom{margin-top:10px;padding-top:10px}
 .footer-bottom p{margin:4px 0;font-size:11px;line-height:1.65}
 footer:before{width:18px;background-size:18px auto}
}
/* Separate landscape and weaving lanes; foliage never enters the right border. */
.hero{--weave-width:clamp(30px,3.4vw,48px);--weave-right:14px;--landscape-inset:calc(var(--weave-width) + var(--weave-right) + 18px);background-position:center,right var(--landscape-inset) bottom,center;background-size:cover,min(calc(100% - var(--landscape-inset) - 24px),850px) auto,cover}
.hero:before{right:var(--weave-right);width:var(--weave-width)}
@media(max-width:800px){.hero{--weave-width:26px;--weave-right:5px;--landscape-inset:45px;background-size:cover,auto 86%,cover;background-position:center,right var(--landscape-inset) bottom,center}}
