@font-face{font-family:Space;src:url('/assets/space-grotesk.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/manrope.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root{--ink:#241e19;--dark:#211c18;--paper:#f7f3eb;--sand:#ede3d4;--terra:#8c402e;--terra-dark:#70301f;--warm:#e7a27d;--quiet:#62594f;--line:#d4c8b7;--wrap:min(1280px,calc(100% - clamp(36px,10vw,152px)));--body:Manrope,Arial,sans-serif;--display:Space,Manrope,Arial,sans-serif;color:var(--ink);background:var(--paper);font-family:var(--body);font-size:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:0}
a{color:inherit}
button,input{font:inherit}
button{color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
video{display:block;width:100%;max-height:65vh;background:#171411}
figure,p,dl,dd{margin:0}
h1,h2,h3{margin:0;font-family:var(--display);letter-spacing:-.055em;line-height:1.02}
h1,h2,h3,p,dd{overflow-wrap:anywhere}
:focus-visible{outline:3px solid #ad5538;outline-offset:4px}
.site-header :focus-visible,.section-projects :focus-visible,.site-footer :focus-visible,.contact :focus-visible{outline-color:#ffbf91}
.skip{position:absolute;z-index:5;top:10px;left:10px;transform:translateY(-180%);background:white;color:var(--ink);padding:12px 20px}
.skip:focus{transform:none}
.wrap{width:var(--wrap);margin-inline:auto}
.site-header{position:relative;z-index:2;background:var(--dark);color:var(--paper)}
.header-inner{min-height:84px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(20px,3vw,50px);padding:8px clamp(18px,5vw,76px)}
.brand{display:inline-flex;justify-self:start;gap:13px;align-items:center;text-decoration:none;min-width:0}
.brand svg{flex:none;color:var(--warm)}
.brand .brand-image{width:48px;height:43px;object-fit:contain;flex:none}
.brand strong,.brand small{display:block;overflow-wrap:anywhere}
.brand strong{font:700 1.25rem/1.03 var(--display);letter-spacing:.055em}
.brand small{margin-top:5px;font-size:.57rem;font-weight:800;letter-spacing:.11em;color:#e5d7ca}
.primary-nav,.header-tools{display:flex;align-items:center;gap:clamp(12px,1.9vw,30px)}
.header-tools{justify-self:end;gap:clamp(12px,1.35vw,20px)}
.primary-nav a,.designer-link{font-size:.88rem;font-weight:750;text-decoration:none;padding:12px 0;text-align:center}
.primary-nav a:hover,.designer-link:hover,.footer-nav a:hover{color:var(--warm)}
.designer-link{color:#e5c5ad}
.mobile-nav{display:none}
.button{display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:52px;padding:12px 19px;border:1px solid transparent;font-size:.88rem;font-weight:800;line-height:1.25;text-decoration:none;text-align:center;transition:background .18s,color .18s,border-color .18s;max-width:100%;overflow-wrap:anywhere}
.button svg,.text-link svg{flex:none}
.button-primary{background:var(--terra);color:white}
.button-primary:hover{background:var(--terra-dark)}
.button-header{border-color:#88694f;min-height:44px;color:var(--paper);padding:9px 12px}
.button-header:hover{background:#53362a}
.button-header svg{width:19px;height:19px}
.button-secondary{border-color:var(--line);background:var(--paper);color:var(--ink)}
.button-secondary:hover{background:var(--sand)}
.text-link{display:inline-flex;align-items:center;gap:9px;width:fit-content;min-height:44px;color:var(--ink);font-size:.86rem;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}
.text-link svg{width:15px;height:15px}
.text-link:hover{color:var(--terra)}
.hero{display:grid;grid-template-columns:47% 53%;min-height:clamp(510px,43vw,700px);border-bottom:1px solid var(--dark)}
.hero-copy{display:grid;align-content:center;padding:clamp(36px,5vw,76px) clamp(26px,3vw,50px) clamp(42px,5.2vw,84px) clamp(18px,5vw,76px);background:var(--sand)}
.hero-inner{width:100%;max-width:680px;margin-left:auto}
.index-label{display:flex;align-items:center;gap:10px;color:var(--terra);font-family:var(--display);font-size:.79rem;font-weight:700;letter-spacing:.135em;text-transform:uppercase;line-height:1.3}
.index-label span:first-child:not(:only-child){font-variant-numeric:tabular-nums}
.hero-location{gap:7px;margin-bottom:clamp(19px,2.35vw,38px)}
.hero-location svg{width:17px;height:17px}
.hero h1{font-size:clamp(3rem,5.8vw,6.45rem);font-weight:700;line-height:.99;letter-spacing:-.077em;max-width:10.9ch;text-wrap:balance}
.hero p{color:#54493e;font-size:clamp(1rem,1.3vw,1.19rem);line-height:1.62;margin-top:25px;max-width:40ch}
.hero-actions{display:flex;align-items:center;gap:clamp(12px,2vw,28px);margin-top:29px;flex-wrap:wrap}
.hero-photo{position:relative;min-width:0;min-height:100%;background:#655242}
.hero-photo img{position:absolute;inset:0;object-position:52% 50%}
.hero-fallback,.project-placeholder{display:block;height:100%;background:repeating-linear-gradient(132deg,#50392c 0 1px,transparent 1px 39px),#82634d}
.hero-photo figcaption{position:absolute;right:18px;top:18px;display:flex;flex-wrap:wrap;gap:10px 20px;padding:10px 17px;background:var(--dark);color:var(--paper);font-size:.72rem;font-weight:700;line-height:1.4;letter-spacing:.02em}
.hero-photo figcaption span:empty{display:none}
.hero-photo figcaption span + span{color:#e7c7af}
.service-band{background:var(--paper);border-bottom:1px solid var(--line)}
.service-band .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.service-band a{display:flex;align-items:center;gap:12px;padding:13px clamp(8px,1.5vw,23px);min-height:68px;border-inline-start:1px solid var(--line);font-size:clamp(.74rem,1.05vw,.92rem);font-weight:800;text-decoration:none}
.service-band a:last-child{border-inline-end:1px solid var(--line)}
.service-band a:hover{background:var(--sand)}
.service-band a span{color:var(--terra);font-family:var(--display);font-size:.74rem}
.section{padding:clamp(62px,8.5vw,129px) 0}
.section-head{display:grid;grid-template-columns:minmax(110px,1fr) 3fr;gap:clamp(20px,3vw,48px);align-items:start;margin-bottom:clamp(27px,4vw,58px)}
.section-head .index-label{margin-top:.52em}
.section-head .index-label span + span:before{content:'';display:inline-block;vertical-align:middle;width:20px;height:1px;margin-right:10px;background:currentColor;opacity:.75}
.section-intro h2,.contact h2{font-size:clamp(2.65rem,5vw,5.65rem);max-width:15ch;text-wrap:balance}
.section-intro p,.contact p{margin-top:17px;color:var(--quiet);max-width:53ch;font-size:1.01rem;line-height:1.66}
.section-image,.about-image{position:relative;background:var(--sand);overflow:hidden;aspect-ratio:16/7;margin-bottom:clamp(20px,4vw,48px)}
.sample-label{position:absolute;right:9px;bottom:9px;background:var(--paper);color:#3e2c24;font-size:.69rem;font-weight:800;line-height:1.28;padding:5px 7px;text-align:center}
.service-rows{border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:minmax(28px,.55fr) minmax(0,6fr) minmax(190px,2.8fr);align-items:center;gap:clamp(12px,3vw,48px);padding:16px 0;border-bottom:1px solid var(--line);min-height:115px}
.service-number{align-self:center;color:var(--terra);font:700 .9rem var(--display)}
.service-row h3{font-size:clamp(1.4rem,3vw,2.6rem)}
.service-row p{color:var(--quiet);font-size:.94rem;line-height:1.57;margin-top:8px;max-width:62ch}
.service-image{position:relative;aspect-ratio:2.35;background:var(--sand);overflow:hidden}
.service-image img{transition:transform .3s ease}
.service-row:hover img{transform:scale(1.035)}
.section-projects{background:var(--dark);color:var(--paper)}
.section-projects .index-label,.section-projects .project-category{color:var(--warm)}
.section-projects p{color:#dfd1c4}
.project-grid{display:grid;grid-template-columns:1.22fr 1fr;gap:clamp(20px,4.5vw,72px)}
.project-card:nth-child(even){padding-top:clamp(23px,5vw,72px)}
.project-open,.gallery-open{appearance:none;display:block;width:100%;border:0;padding:0;color:inherit;background:none;text-align:start;cursor:pointer}
.project-frame{display:block;position:relative;overflow:hidden;aspect-ratio:1.49;background:#5d4b3e}
.project-frame img,.gallery-frame img{transition:transform .32s ease}
.project-open:hover img,.gallery-open:hover img{transform:scale(1.035)}
.project-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:0 0 17px;border-bottom:1px solid #6d5c4f}
.project-caption svg{flex:none;color:var(--warm)}
.project-category{display:block;margin-bottom:7px;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-caption strong{display:block;font:700 clamp(1.25rem,2.5vw,2.55rem)/1.04 var(--display);letter-spacing:-.043em}
.section-about{background:#e9ddca}
.about-grid{display:grid;align-items:center;grid-template-columns:1.15fr .85fr;gap:clamp(26px,8vw,130px)}
.about-grid .section-head,.faq-grid .section-head{display:block}
.about-grid .section-head .index-label,.faq-grid .section-head .index-label{margin-bottom:24px}
.about-image{aspect-ratio:4/4.3;margin-bottom:0}
.area-note{display:grid;grid-template-columns:auto 1fr;gap:12px;max-width:440px;padding-top:21px;border-top:1px solid #bdac96}
.area-note svg{color:var(--terra)}
.area-note h3{font-size:1.35rem;letter-spacing:-.03em}
.area-note p{color:#5a4e43;margin-top:7px;font-size:.94rem;line-height:1.6}
.section-gallery{border-bottom:1px solid var(--line)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px clamp(14px,2.3vw,35px)}
.gallery-frame{background:var(--sand);aspect-ratio:1.16;position:relative;overflow:hidden}
.gallery-open{height:100%}
.gallery-card figcaption{display:grid;gap:4px;padding-top:12px;line-height:1.4}
.gallery-card strong{font:700 1.17rem var(--display);letter-spacing:-.03em}
.gallery-card figcaption span{font-size:.81rem;color:var(--quiet)}
.gallery-video{display:grid;height:100%;place-items:center;background:#e1d0b7;padding:12px}
.gallery-video:has(video){padding:0;background:var(--dark)}
.gallery-video video{height:100%;object-fit:contain;max-height:100%}
.zoom-mark{position:absolute;bottom:8px;right:8px;display:grid;place-items:center;width:38px;height:38px;background:var(--paper);color:var(--ink)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));padding:0;margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps li{padding:24px clamp(12px,2vw,31px);border-left:1px solid var(--line)}
.steps li:last-child{border-right:1px solid var(--line)}
.steps li span{color:var(--terra);font:700 .88rem var(--display)}
.steps h3{font-size:clamp(1.38rem,2.25vw,2.35rem);margin-top:14px}
.steps p{margin-top:10px;font-size:.94rem;line-height:1.62;color:var(--quiet);max-width:40ch}
.section-faq{background:#efe6d9}
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,100px)}
.faq-grid .section-head{margin-bottom:0}
.faq{border-bottom:1px solid #cdbfae}
.faq:first-of-type{border-top:1px solid #cdbfae}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:65px;padding:14px 0;font-size:1.04rem;font-weight:800;cursor:pointer}
summary::-webkit-details-marker{display:none}
.faq summary svg{flex:none;color:var(--terra);transition:transform .18s}
.faq[open] summary svg{transform:rotate(45deg)}
.faq p{margin:0 24px 20px 0;color:var(--quiet);line-height:1.62;font-size:.95rem}
.contact{background:var(--terra-dark);color:var(--paper);padding:clamp(50px,7.3vw,115px) 0}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:clamp(30px,6vw,95px)}
.contact .index-label{color:#ffc4a4;margin-bottom:19px}
.contact p{color:#fae6d5}
.button-contact{background:var(--paper);color:var(--terra-dark);margin-top:25px}
.button-contact:hover{background:#f2d5be}
.contact-details{display:grid;gap:0;border-top:1px solid #bd826e}
.contact-details div{display:grid;grid-template-columns:1fr 1.7fr;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #bd826e;min-height:53px}
.contact-details dt{font-size:.77rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.contact-details dd{font-size:.94rem;line-height:1.4}
.contact-details a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:3px}
.site-footer{background:var(--dark);color:var(--paper);padding:35px 0 26px}
.footer-main{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:20px;padding-bottom:25px;border-bottom:1px solid #66574a}
.footer-main p{font-size:.89rem;color:#e0d2c4}
.footer-nav,.credit{display:flex;gap:10px 17px;flex-wrap:wrap;align-items:center}
.footer-nav a,.credit a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:3px}
.footer-nav a{font-size:.88rem}
.footer-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:0 17px;align-items:center;margin-top:9px;font-size:.81rem;color:#f0e4d8}
.demo-notice{color:#debdab;font-size:.76rem;line-height:1.58}
.empty-public{max-width:45ch;line-height:1.6}
.site-dialog{background:var(--paper);color:var(--ink);width:min(760px,calc(100% - 26px));max-height:calc(100% - 26px);margin:auto;padding:clamp(19px,3.5vw,40px);border:0;overflow:auto;overscroll-behavior:contain}
.site-dialog::backdrop{background:#201711c9}
.site-dialog h2{font-size:clamp(1.85rem,5vw,3.15rem);margin:10px 0}
.site-dialog p,.section-projects .site-dialog p{color:var(--quiet);line-height:1.64;margin-bottom:15px}
.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--terra);font-size:.76rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.dialog-top button{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer}
.dialog-top button:hover{background:var(--sand)}
.site-dialog figure,.site-dialog video{margin:15px 0}
.site-dialog img{height:auto;max-height:65vh;object-fit:contain;background:var(--sand)}
.gallery-dialog{width:min(840px,calc(100% - 26px))}
.designer-dialog{width:min(470px,calc(100% - 26px))}
.designer-dialog dl,.info-page dl{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:6px 16px}
.designer-dialog dd a,.info-page dd a{display:inline-flex;min-height:44px;align-items:center;text-underline-offset:3px;overflow-wrap:anywhere;max-width:100%}
.compare-images{position:relative;aspect-ratio:4/3;background:var(--sand);--after:50%}
.compare-images img{position:absolute;inset:0;height:100%;object-fit:cover}
.compare-images .compare-after{clip-path:inset(0 0 0 var(--after))}
.compare-label{position:absolute;top:10px;padding:6px 10px;background:var(--paper);color:var(--ink);font-size:.8rem;font-weight:800}
.compare-label.before{left:10px}
.compare-label.after{right:10px}
.compare label{display:block;margin-top:13px;color:var(--ink);font-size:.88rem;font-weight:800}
.compare input{width:100%;min-height:44px;accent-color:var(--terra)}
.info-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--sand)}
.info-page{max-width:660px;padding:clamp(25px,5vw,70px);background:var(--paper);border-top:5px solid var(--terra)}
.info-page h1{font-size:clamp(2.25rem,7vw,4rem);margin:21px 0}
.info-page p{line-height:1.65;margin-bottom:16px}
.info-page .credit{border-top:1px solid var(--line);margin-top:24px;padding-top:10px;font-size:.88rem}
@media(max-width:1200px){.button-header{display:none}.header-inner{grid-template-columns:1fr auto auto}.hero h1{font-size:clamp(2.95rem,6.05vw,5rem)}}
@media(max-width:850px){
  .header-inner{min-height:67px;display:flex;justify-content:space-between;gap:12px;padding:7px 18px}
  .brand svg{width:37px;height:34px}.brand strong{font-size:1.13rem}.brand small{font-size:.53rem}.brand{gap:10px}
  .primary-nav,.header-tools{display:none}
  .mobile-nav{display:block}
  .mobile-nav summary{list-style:none;display:flex;align-items:center;gap:8px;padding:6px 10px;min-height:44px;border:1px solid #806350;font-size:.84rem;font-weight:800;cursor:pointer}
  .mobile-nav nav{position:absolute;top:100%;left:0;right:0;background:var(--dark);padding:8px 18px 19px;border-top:1px solid #655140;display:grid}
  .mobile-nav a{display:flex;align-items:center;min-height:47px;border-bottom:1px solid #5f4d3d;text-decoration:none;font-weight:750}
  .hero{min-height:470px}
}
@media(max-width:700px){
  .hero{display:block;min-height:auto}
  .hero-copy{padding:31px 18px 25px}
  .hero-inner{margin:0}
  .hero-location{margin-bottom:14px}
  .hero h1{font-size:clamp(2.78rem,9.9vw,4.5rem);letter-spacing:-.069em;max-width:12ch;text-wrap:initial}
  .hero p{margin-top:15px;font-size:.99rem;line-height:1.52}
  .hero-actions{margin-top:18px;gap:10px 16px}
  .hero-photo{min-height:0;aspect-ratio:1.51}
  .hero-photo figcaption{top:auto;right:0;bottom:0;padding:6px 10px;font-size:.66rem;gap:5px 12px}
  .service-band .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-band a{min-height:48px;padding:7px 9px;gap:8px}
  .service-band a:nth-child(even){border-inline-end:1px solid var(--line)}
  .service-band a:nth-child(n+3){border-top:1px solid var(--line)}
  .section-head{display:block}
  .section-head .index-label{margin:0 0 13px}
  .section-intro h2,.contact h2{font-size:clamp(2.48rem,9.8vw,3.7rem);text-wrap:initial}
  .section-intro p,.contact p{margin-top:12px;font-size:.94rem}
  .service-row{grid-template-columns:23px minmax(0,1fr) minmax(75px,28%);gap:9px;align-items:start;padding:16px 0;min-height:0}
  .service-number{align-self:start;font-size:.74rem;margin-top:4px}
  .service-row h3{font-size:1.36rem;letter-spacing:-.042em}
  .service-row p{font-size:.85rem;line-height:1.48}
  .service-image{aspect-ratio:1.1}
  .service-image .sample-label{font-size:.52rem;right:2px;bottom:2px;padding:3px;max-width:calc(100% - 4px)}
  .about-grid,.faq-grid,.contact-grid{grid-template-columns:1fr}
  .about-grid .section-head .index-label,.faq-grid .section-head .index-label{margin-bottom:13px}
  .about-image{aspect-ratio:1.4}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:1fr}
  .steps li{border-right:1px solid var(--line);padding:14px}
  .steps li+li{border-top:1px solid var(--line)}
  .steps h3{margin-top:8px}
  .footer-main{grid-template-columns:1fr;gap:13px}
}
@media(max-width:440px){.hero-actions .text-link{min-height:38px}.project-grid{grid-template-columns:1fr;gap:26px}.project-card:nth-child(even){padding-top:0}.contact-details div{grid-template-columns:.95fr 1.55fr}.site-footer .credit{gap:4px 9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.catalogue-card{height:auto}
.catalogue-image{display:block}
.catalogue-card .project-caption{border-color:var(--line)}
.catalogue-card .project-caption svg{color:var(--terra)}
.catalogue-price{display:block;margin-top:9px;font-size:.88rem;font-weight:800}
.dialog-photo{position:relative}

@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.language-link{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid currentColor;font:700 .8rem var(--display);text-decoration:none;letter-spacing:.05em}
.site-header .language-link{color:#f0c0a4;border-color:#88694f}
.language-link:hover,.language-link:focus-visible{color:var(--terra)}
.site-header .language-link:hover{background:#53362a;color:var(--paper)}
.mobile-language{display:none}
.language-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
@media (max-width:850px){.header-inner{gap:8px}.mobile-language{display:inline-flex;margin-left:auto}.mobile-nav{flex:none}}
.owner-link{display:inline-flex;align-items:center;min-height:44px;color:var(--paper);font-size:.82rem;font-weight:800;text-decoration:none;white-space:nowrap}
.owner-link:hover{color:var(--warm)}
.owner-dialog{width:min(460px,calc(100% - 26px))}
.owner-dialog form{display:grid;gap:14px;margin-top:18px}
.owner-dialog label{display:grid;gap:6px;font-size:.88rem;font-weight:750}
.owner-dialog input{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);background:white;padding:8px 10px;font:inherit}
.owner-dialog .password-wrap{display:flex}
.owner-dialog button{font:inherit;min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:800;cursor:pointer}
.owner-dialog .primary{background:var(--terra);color:white;border-color:var(--terra)}
.owner-dialog .status{font-size:.87rem;line-height:1.5}
.owner-dialog .status.error{color:#8f2c1d}
.owner-dialog .status:empty{display:none}
@media(min-width:1201px){.header-tools .button-header{display:none}}
