/* Shared type and layout rules for every page. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:1rem;line-height:1.5}
main,section,article,header,footer,nav,form,.section-top>*,.service>*,.about-bottom>*,.project-grid>*,.steps>*,.packs>*,.form-grid>*{min-width:0}
h1,h2,h3,p,li,a,label,span{overflow-wrap:break-word}
h1,h2,h3{text-wrap:balance}
p,li{hyphens:auto}
img{max-width:100%}
header{gap:1.5rem}
header nav{flex-wrap:wrap;row-gap:.6rem}
.logo{flex-shrink:0}
.button{max-width:100%;min-height:48px;white-space:normal;line-height:1.5;text-align:left;gap:clamp(1rem,3vw,2.8rem)}
.button>span{flex-shrink:0}
.section-top{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.service{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.2fr)}
.about-bottom,.includes{grid-template-columns:repeat(2,minmax(0,1fr))}
.steps,.packs{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}
.detail h1,.legal h1{font-size:clamp(2.1rem,6.5vw,5.8rem);line-height:1.1}
.detail h2[style]{font-size:clamp(1.65rem,3.7vw,2.375rem)!important;line-height:1.2;letter-spacing:-.035em!important}
.service h3{font-size:clamp(1.4rem,2.6vw,1.85rem);line-height:1.2}
.service p,.step p,.pack p,.project-lab p{font-size:clamp(.9375rem,1.25vw,1rem);line-height:1.7}
.intro,.contact-intro,.about-bottom{font-size:clamp(1.0625rem,1.9vw,1.375rem);line-height:1.65}
.eyebrow,.premium-label,.tags{font-size:.75rem;line-height:1.65;letter-spacing:.1em}
.legal p,.legal li{font-size:1rem;line-height:1.8}
.legal a,.footer-social a,.draft a{overflow-wrap:anywhere}
.footer-main{flex-wrap:wrap}
.footer-bottom{flex-wrap:wrap}
.footer-social{font-size:.875rem}
footer,.gallery-note,.detail-note,.form-note{font-size:.875rem;line-height:1.7}
input,select,textarea{font-size:1rem;min-width:0}
.landscape-credit{max-width:85%;font-size:.75rem;line-height:1.4}
@media(max-width:1000px){
 .service{grid-template-columns:2rem minmax(0,1fr) minmax(0,1.1fr)}
 .steps,.packs{gap:1.25rem}
 .hero-bottom,.cta-bottom{flex-wrap:wrap;align-items:flex-start}
 .art .word{font-size:16vw}
 .art .arrow{font-size:14vw}
 .manifesto{font-size:clamp(1.9rem,4.7vw,4rem);line-height:1.2}
}
@media(max-width:760px){
 header{align-items:flex-start;flex-direction:column;padding:18px 5vw;gap:14px}
 header nav{display:flex;width:100%;justify-content:flex-start;gap:10px 22px;font-size:.875rem;line-height:1.5}
 header nav .hide{display:inline}
 .logo{font-size:1.65rem}
 .hero{min-height:0;padding:45px 5vw 55px}
 .hero h1{font-size:clamp(2rem,8.5vw,4rem);line-height:1.06;letter-spacing:-.055em;margin:30px 0}
 .hero-bottom{display:block;padding-bottom:15px}
 .hero-bottom p{font-size:1.0625rem;line-height:1.6}
 .hero-bottom .button{margin-top:18px}
 .section{padding:55px 5vw}
 .section-top{grid-template-columns:minmax(0,1fr);gap:22px}
 .section h2{font-size:clamp(1.9rem,7.5vw,3rem);line-height:1.12}
 .service{grid-template-columns:1.7rem minmax(0,1fr);gap:14px;padding-top:25px;padding-bottom:25px}
 .service>p,.service>div:last-child:not(:nth-child(2)){grid-column:2}
 .service .num{font-size:.875rem}
 .service h3{font-size:clamp(1.4rem,5.8vw,1.8rem)}
 .about-bottom,.includes,.steps,.packs,.project-grid,.form-grid{grid-template-columns:minmax(0,1fr)}
 .form-field.wide{grid-column:auto}
 .about-bottom{gap:15px}
 .manifesto{font-size:clamp(1.7rem,6.8vw,2.8rem);line-height:1.24;letter-spacing:-.035em}
 .manifesto br{display:none}
 .manifesto span{display:block;margin-top:15px}
 .art{height:auto;min-height:245px;padding:35px 5vw 105px;align-items:center;gap:10px}
 .art .word{font-size:16vw;letter-spacing:-.075em}
 .art .arrow{font-size:15vw}
 .art small{left:5vw;right:5vw;bottom:62px;font-size:.6875rem;line-height:1.6;letter-spacing:.06em}
 .art-cta{left:5vw;right:auto;bottom:22px;font-size:.875rem;max-width:90%}
 .service-banner{min-height:360px;padding:45px 5vw 85px}
 .service-banner h1{font-size:clamp(2rem,8.5vw,3.7rem);line-height:1.1;letter-spacing:-.05em}
 .service-banner p{font-size:clamp(1.05rem,4.4vw,1.3rem);line-height:1.5}
 .service-banner .eyebrow{font-size:.75rem;letter-spacing:.08em}
 .landscape-credit{left:5vw;right:5vw;bottom:35px;max-width:none;font-size:.6875rem}
 .detail{padding:40px 5vw 55px}
 .gallery-section h2{font-size:clamp(1.8rem,7vw,2.6rem)}
 .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cta{padding:45px 5vw}
 .cta h2{font-size:clamp(2rem,8.4vw,4rem);line-height:1.1;letter-spacing:-.05em}
 .cta-bottom{display:block}
 .cta p{font-size:1rem}
 .cta .button{margin-top:18px}
 .project-lab h3{font-size:clamp(1.7rem,6.8vw,2.2rem)}
 .footer-main{flex-direction:column;gap:24px}
 .footer-bottom{flex-direction:column;gap:10px}
 .legal-links{font-size:.875rem;gap:14px 22px}
}
@media(max-width:380px){
 header nav{gap:10px 18px}
 .hero h1{font-size:1.95rem}
 .button{width:100%;padding:15px;gap:12px}
 .premium{padding-left:10px;padding-right:10px}
 .service{gap:10px;grid-template-columns:1.3rem minmax(0,1fr)}
 .project-lab{padding:24px}
 .art{min-height:230px}
}
