/* Mobile presentation for the public website. The 3D workspace has its own layout. */
.site-language,.hero-mobile-lead{display:none}
.hero-stage>picture{display:contents}
body.menu-open{overflow:hidden}
html:has(body.menu-open){overflow:hidden;overscroll-behavior:none}
@media(max-width:1220px){
  #site .drawer .drawer-langs{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:18px;border-top:1px solid var(--nav-line)}
  #site .drawer .drawer-langs a[data-lang],#site .drawer .drawer-langs button[data-lang]{display:grid;place-items:center;flex:1;min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--nav-line);border-radius:4px;font:500 13px var(--sans);letter-spacing:.05em;color:var(--nav-ink)}
  #site .drawer .drawer-langs a[aria-current="page"],#site .drawer .drawer-langs button[aria-pressed="true"]{background:var(--gold);color:var(--black);border-color:var(--gold)}
}
@media (max-width:980px){
  #site .sec{padding-block:64px}
  #site .head{gap:18px;margin-bottom:30px}
  #site .head .lead{max-width:64ch}
  #site .btn{min-height:48px;white-space:normal;text-align:center}
  #site .brand{display:inline-flex;align-items:center;min-height:44px}
  #site .drawer{padding-top:112px;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
  #site .drawer .d3d{margin-top:0;margin-bottom:10px;min-height:54px}
  #site .drawer a:not(.btn){font-size:23px;line-height:1.25;padding-block:13px;min-height:48px}
  #site .drawer>.btn:not(.d3d){width:100%;margin-top:22px}
  #site .cinfo{gap:0;margin-top:26px}
  #site .cinfo>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
  #site .cinfo>div:last-child{border-bottom:0}
  #site .cinfo>div>div{display:block;min-width:0}
  #site .cinfo .ico{width:44px;height:44px;flex:none}
  #site .cinfo small{font-size:12px;line-height:1.45;margin-bottom:3px}
  #site .cinfo b{display:block;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
  #site .cinfo a{display:inline-flex;align-items:center;min-height:44px}
  #site .t3-pre a,#site .filters button,#site .ox-tabs button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  #site .project-more{min-height:44px}
  #site .dot{width:44px;height:44px;margin:-22px 0 0 -22px}
  #site .phone .pp{width:46px;height:46px}
  #site .ox-side .link{min-height:44px;line-height:1.45;align-items:center}
  #site .fgrid ul{gap:4px}
  #site .fgrid li>a{display:inline-flex;align-items:center;min-height:44px;line-height:1.45}
  #site .fgrid>.footer-contact{grid-template-columns:minmax(0,1fr)}
  #site .footer-contact-links{flex-direction:row;flex-wrap:wrap;gap:12px 32px}
  #site .footer-contact-links a,#site .footer-contact-value a{display:inline-flex;align-items:center;min-height:44px}
  #site .legal nav a{display:inline-flex;align-items:center;min-height:44px}
  #site .enquiry-attachment button{min-height:44px}
  #site .photo-remove{width:44px;height:44px}
}

@media (max-width:740px){
  #site .sec{padding-block:54px}
  #site .strip{margin-top:0}
  #site .strip .wrap>div{padding:18px 0;gap:4px}
  #site .strip .wrap>div+div{padding-left:18px}
  #site .strip .wrap>div:nth-child(3){padding-left:0}
  #site .strip b{font-size:clamp(24px,7vw,31px)}
  #site .strip .wrap>div>span{font-size:12px;line-height:1.4}
  #site h2{font-size:clamp(29px,8.4vw,37px);line-height:1.12;letter-spacing:-.015em}
  #site .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:13px;line-height:1.6}
  #site .eyebrow::before{width:20px;flex:none}
  #site .head{gap:15px;margin-bottom:26px}
  #site .lead{font-size:16px;line-height:1.65}
  #site .project-heading{gap:12px;margin-bottom:22px}
  #site .project-heading .eyebrow{margin:0}
  #site .project-signature{font-size:9px;letter-spacing:.14em}
  #site .project-layout{gap:28px}
  #site .project-copy{grid-row:auto}
  #site .project-main>img{aspect-ratio:4/3}
  #site .project-thumbs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:31%;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:8px;margin-top:12px;scrollbar-width:thin;scrollbar-color:var(--gold-d) transparent}
  #site .project-thumbs button{scroll-snap-align:start}
  #site .project-thumbs button>span{font-size:11px;line-height:1.4;align-items:flex-start;gap:5px;margin-top:7px}
  #site .project-copy>.lead{font-size:16px;margin-top:16px}
  #site .project-details{gap:9px;padding-block:16px;margin-block:18px;font-size:13px}
  #site .project-description{font-size:14px;line-height:1.65;margin-bottom:20px}
  #site .project-copy>.btn{width:100%;padding:14px 18px}
  #site .project-more{margin-top:10px}
  #site .offer{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
  #site .card{border-radius:8px;min-width:0}
  #site .card .body{padding:13px;gap:7px}
  #site .card h3{font-size:18px;line-height:1.2;overflow-wrap:anywhere}
  #site .card.big h3{font-size:25px}
  #site .card.big .pic{aspect-ratio:16/10}
  #site .card p{font-size:14px;line-height:1.55}
  #site .card .more{font-size:12px;line-height:1.35;padding-top:9px;gap:6px}
  #site .card .badge{top:10px;left:10px;font-size:9px;padding:5px 8px;letter-spacing:.06em}
  #site .opts{gap:7px;margin-top:22px}
  #site .opts>span:first-child{flex-basis:100%;margin-bottom:3px;font-size:10px}
  #site .chip{padding:6px 11px;font-size:12px}
  #site .lines{gap:18px}
  #site .lc .pic{aspect-ratio:16/9}
  #site .lc .body{padding:21px;gap:10px}
  #site .lc .tier{font-size:10px}
  #site .lc h3{font-size:29px}
  #site .lc p,#site .lc ul{font-size:14px;line-height:1.55}
  #site .lc ul{gap:7px}
  #site .lc .spec{font-size:12px;gap:12px}
  #site .t3-grid{gap:28px}
  #site .t3-copy .lead{margin-top:16px}
  #site .t3-copy>.btn{width:100%;margin-top:24px!important}
  #site .t3-list{margin-top:22px;gap:16px}
  #site .t3-list li{font-size:14px;grid-template-columns:34px 1fr;gap:12px}
  #site .t3-list li b{font-size:15px}
  #site .t3-pre{gap:7px;margin-top:18px}
  #site .t3-pre a{font-size:12px;padding:8px 12px}
  #site .filters,#site .ox-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:7px;margin:0 -2px 20px;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
  #site .filters button,#site .ox-tabs button{flex:none;scroll-snap-align:start;padding:9px 15px;font-size:13px}
  #site .ox{gap:23px}
  #site .ox-side h3{font-size:27px}
  #site .ox-side>p{font-size:15px;line-height:1.65}
  #site .ox-img .lab{left:12px;bottom:12px;font-size:12px}
  #site .ox-list{margin-top:19px}
  #site .ox-list button{grid-template-columns:62px minmax(0,1fr) 18px;gap:11px;padding:9px}
  #site .ox-list button img{width:62px;height:46px}
  #site .ox-list button b{font-size:15px}
  #site .ox-list button small{font-size:12px}
  #site .ox-side .link{font-size:14px;margin-top:16px}
  #site .zw{gap:28px}
  #site .zw li{font-size:14px;gap:12px}
  #site .phone{width:min(290px,86%);border-radius:20px}
  #site .procs{gap:22px}
  #site .ps{column-gap:15px;grid-template-columns:48px 1fr;gap:7px 15px}
  #site .ps .n{width:48px;height:48px;font-size:20px}
  #site .procs::before,#site .procs::after{left:24px;top:24px;bottom:24px}
  #site .ps h3{font-size:21px}
  #site .ps p{font-size:14px;line-height:1.6}
  #site .about{gap:28px}
  #site .stats{margin-top:24px}
  #site .stats div{padding:16px 13px}
  #site .stats b{font-size:31px}
  #site .stats span{font-size:12px}
  #site .why{margin-top:30px;gap:12px}
  #site .why>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px 14px;padding:20px}
  #site .why .ico{width:42px;height:42px;grid-row:1/3;border-radius:9px}
  #site .why h3{font-size:20px;line-height:1.2}
  #site .why p{font-size:14px;line-height:1.6}
  #site .gal{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
  #site .gal button{aspect-ratio:auto;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)}
  #site .gal button[hidden]{display:none}
  #site .gal button.feat{aspect-ratio:auto}
  #site .gal button img{height:auto;aspect-ratio:4/3;flex:none}
  #site .gal button.feat img{aspect-ratio:16/10}
  #site .gal button>span{position:static;opacity:1;transform:none;display:flex;align-items:center;flex:1;min-height:42px;background:#fff;color:var(--ink-2);padding:9px 10px;font-size:12px;line-height:1.4}
  #site .gal .zoom{display:none}
  #site .detail{gap:26px;margin-bottom:26px}
  #site .dt>p{font-size:15px}
  #site .hl{margin-top:18px}
  #site .hl li{padding:11px 8px;column-gap:12px}
  #site .hl li span{font-size:14px}
  #site .real{gap:12px}
  #site .real figcaption{font-size:13px}
  #site .mw{gap:26px}
  #site .faq{gap:26px}
  #site .qa button{font-size:19px;line-height:1.35;padding-block:19px;gap:16px}
  #site .qa .a p{font-size:15px;line-height:1.7}
  #site .band .wrap{padding-block:38px;gap:22px}
  #site .band .btn{width:100%}
  #site .contact{gap:30px}
  #site #contact form{padding:22px 18px;border:1px solid var(--line);border-radius:10px;gap:17px}
  #site #contact form h3{font-size:27px;line-height:1.15;margin-bottom:3px}
  #site .fi{gap:7px}
  #site .fi label{font-size:13px}
  #site .fi input,#site .fi select,#site .fi textarea{border-color:var(--line-2);padding:12px;min-height:48px}
  #site .fi textarea{min-height:120px}
  #site .garden-photos>p{font-size:12px}
  #site .garden-photos legend small{margin-left:5px}
  #site .photo-picker{grid-template-columns:26px minmax(0,1fr);gap:4px 11px;padding:17px 14px;border-radius:6px}
  #site .photo-picker svg{width:24px;height:24px}
  #site .photo-picker small{font-size:11px;line-height:1.5}
  #site .photo-previews{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  #site .privacy-ack{font-size:12px;line-height:1.7;gap:10px;padding-block:5px}
  #site .privacy-ack input{width:20px;height:20px;flex-basis:20px}
  #site .fnote{font-size:12px;line-height:1.6}
  #site form>.btn{width:100%;justify-self:stretch;min-height:51px}
  #site footer{padding-top:56px}
  #site .fgrid{gap:38px 28px;grid-template-columns:repeat(2,minmax(0,1fr))}
  #site .fgrid>div:first-child{padding-bottom:0}
  #site .fgrid>div:nth-child(2){grid-column:1/-1}
  #site .fgrid>div:nth-child(2) ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  #site .fgrid>div:nth-child(3){grid-column:1}
  #site .fgrid>div:nth-child(4){grid-column:2}
  #site .fgrid>.footer-contact{padding-top:32px;gap:24px}
  #site .fgrid>.footer-contact ul{grid-template-columns:minmax(0,1fr);gap:20px}
  #site .fgrid img{height:48px}
  #site .fgrid p{font-size:14px;line-height:1.8;max-width:42ch;margin-top:20px}
  #site .fgrid h4{font-size:11px;letter-spacing:.12em;margin-bottom:16px}
  #site .fgrid>.footer-contact h4{margin:0}
  #site .fgrid li{font-size:14px;line-height:1.7}
  #site .fgrid li>a{padding-block:7px}
  #site .footer-contact-label{margin-bottom:0}
  #site .footer-contact-value{min-height:36px;line-height:36px}
  #site .footer-contact-links{column-gap:28px;font-size:14px}
  #site .legal{margin-top:36px}
  #site .legal .wrap{padding-block:28px;font-size:12px;gap:20px}
  #site .legal nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;width:100%}
  #site .legal nav a{font-size:12px;line-height:1.45;overflow-wrap:anywhere}
}

@media (min-width:741px) and (max-width:980px){
  #site .strip{margin-top:0}
  #site .fgrid{column-gap:36px}
}

@media (max-width:359px){
  #site .card .body{padding:11px}
  #site .card h3{font-size:16px}
  #site .project-thumbs{grid-auto-columns:38%}
  #site #contact form{padding:20px 14px}
  #site .photo-picker{padding:15px 10px}
}

@media (hover:none) and (pointer:coarse){
  #site .card:hover,#site .lc:hover,#site .why>div:hover,#site .btn:hover{transform:none}
  #site .card:hover img,#site .lc:hover img,#site .gal button:hover img{transform:none}
}

/* A single navigation bar and a continuous photographic opening on smaller screens. */
@media(max-width:1220px){
  html{--navh:calc(73px + env(safe-area-inset-top,0px))}
  #site>.top{display:none}
  #site .nav{top:0;padding-top:env(safe-area-inset-top,0px)}
  #site .nav .wrap{height:72px;gap:12px;padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right))}
  #site .nav .brand{margin-right:auto;min-height:44px}
  #site .nav .brand img{width:122px;height:auto}
  #site .nav .burger{margin-left:0;flex:none;border:0;border-radius:0}
  #site .site-language{
    display:block;appearance:none;-webkit-appearance:none;width:56px;min-height:44px;
    padding:8px 19px 8px 8px;border:0;border-radius:0;font:400 16px var(--sans);letter-spacing:.04em;
    background:var(--nav) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23ecebe6' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 6px center;
    color:var(--nav-ink)
  }
  #site .site-language option{background:var(--nav);color:var(--nav-ink)}
  #site .drawer{padding-top:calc(92px + env(safe-area-inset-top,0px))}
}
@media(max-width:980px){
  #site .hero-stage{--hero-gut:clamp(20px,5.6vw,36px);height:auto;isolation:isolate}
  #site .hero-img{
    position:absolute;inset:0;width:100%;height:min(580px,100%);aspect-ratio:auto;
    object-fit:cover;object-position:50% 42%;animation:none
  }
  #site .hero-shade{
    inset:0;height:580px;max-height:100%;
    background:linear-gradient(180deg,rgba(29,29,32,.04) 18%,rgba(29,29,32,.16) 36%,rgba(29,29,32,.82) 63%,var(--nav) 96%);
    pointer-events:none
  }
  #site .hero-in{padding:clamp(265px,35svh,340px) var(--hero-gut) 24px;padding-inline:max(var(--hero-gut),env(safe-area-inset-left)) max(var(--hero-gut),env(safe-area-inset-right));display:flex;flex-direction:column;gap:0}
  #site .hero-copy{width:100%;max-width:650px;padding:0}
  #site .hero .eyebrow{font-size:10px;letter-spacing:.12em;line-height:1.5;gap:9px;margin-bottom:12px;color:#e1bf7b}
  #site .hero .eyebrow::before{width:19px;flex:none}
  #site .hero h1{font-size:clamp(36px,10.5vw,50px);line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
  #site .hero .lead{display:none}
  #site .hero-mobile-lead{display:block;margin-top:16px;color:rgba(255,255,255,.76);font-size:16px;line-height:1.55;max-width:42ch}
  #site .hero .ctas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;max-width:430px}
  #site .hero .ctas .btn{min-height:52px;padding:12px 10px;font-size:13px;letter-spacing:0;gap:10px;line-height:1.35}
  #site .hero .ctas .btn.lite{border-color:rgba(255,255,255,.32)}
  #site .hero .trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px;padding-top:20px}
  #site .hero .trust>span{display:flex;align-items:flex-start;gap:6px;font-size:12px;line-height:1.45;color:rgba(255,255,255,.67)}
  #site .hero .trust>span>span{display:block;font-size:inherit;color:inherit}
  #site .hero .trust svg{width:16px;height:16px;margin-top:1px}
  #site .hero-cap{
    position:static;order:0;align-self:stretch;min-width:0;width:auto;min-height:44px;
    margin:18px 0 0!important;padding:12px 0 0;gap:16px;border:0;border-top:1px solid var(--nav-line);
    border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none
  }
  #site .hero-cap em{font-size:9px;letter-spacing:.12em;margin-bottom:3px;color:var(--nav-ink-2)}
  #site .hero-cap b{font:400 14px var(--sans);color:var(--nav-ink)}
  #site .hero-cap small{display:none}
  #site .hero-cap i{width:30px;height:30px;border:0;color:var(--gold)}
  #site .hero-cap:hover{background:transparent;transform:none}
}
@media(min-width:741px) and (max-width:980px){
  #site .hero-img{height:660px;object-position:58% 45%}
  #site .hero-shade{height:660px;background:linear-gradient(180deg,rgba(29,29,32,0) 15%,rgba(29,29,32,.4) 42%,var(--nav) 96%)}
  #site .hero-in{padding-top:clamp(310px,38svh,390px);padding-bottom:30px}
  #site .hero h1{font-size:56px}
  #site .hero .trust{max-width:600px}
  #site .hero .trust>span{font-size:13px}
  #site .hero-cap{max-width:650px}
}
@media(max-width:359px){
  #site .nav .brand img{width:112px}
  #site .hero-in{padding-top:230px}
  #site .hero .eyebrow{font-size:9px;letter-spacing:.08em}
  #site .hero h1{font-size:32px}
  #site .hero-mobile-lead{font-size:15px}
  #site .hero .ctas .btn{font-size:12px;gap:6px;padding-inline:8px}
  #site .hero .trust{gap:8px}
  #site .hero .trust>span{display:block;font-size:11px}
  #site .hero .trust svg{margin:0 0 5px}
}
@media(max-width:980px) and (orientation:landscape) and (max-height:600px){
  html{--navh:calc(65px + env(safe-area-inset-top,0px))}
  #site .nav .wrap{height:64px}
  #site .nav .brand img{width:112px}
  #site .drawer{padding-top:calc(82px + env(safe-area-inset-top,0px))}
  #site .hero-img{inset:0 0 0 auto;width:60%;height:100%;object-position:50% 45%}
  #site .hero-shade{height:100%;background:linear-gradient(90deg,var(--nav) 40%,rgba(29,29,32,.82) 60%,rgba(29,29,32,.12) 100%)}
  #site .hero-in{padding-block:26px 24px}
  #site .hero-copy{width:56%;max-width:none}
  #site .hero .eyebrow{font-size:9px;margin-bottom:10px}
  #site .hero h1{font-size:34px}
  #site .hero-mobile-lead{font-size:14px;margin-top:12px}
  #site .hero .ctas{margin-top:18px;gap:8px}
  #site .hero .ctas .btn{font-size:12px;min-height:48px;padding:10px 8px;gap:7px}
  #site .hero .trust{margin-top:20px;padding-top:16px}
  #site .hero .trust>span{font-size:11px}
  #site .hero-cap{width:56%;align-self:flex-start}
}
