@font-face{font-family:Jost;src:url('fonts/jost-latin-variable.woff2') format('woff2');font-weight:200 700;font-style:normal;font-display:swap}
:root{--nero:#0f0e0d;--graphite:#252523;--acciaio:#6e6c68;--sand:#c0b5a4;--bianco:#f7f6f4;--line:rgba(15,14,13,.18);--display:Jost,Futura,'Century Gothic',sans-serif;--body:'Helvetica Neue',Helvetica,Arial,sans-serif;--gutter:clamp(24px,6vw,100px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--bianco);color:var(--nero);font-family:var(--body);font-weight:300;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,ol{margin:0}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;text-underline-offset:6px;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
button,input,summary{font:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:6px}
::selection{background:var(--sand);color:var(--nero)}
h1,h2,h3{font-family:var(--display);font-weight:300;letter-spacing:.025em;text-wrap:balance}
h1{font-size:clamp(30px,3.6vw,50px);line-height:1.18}
h2{font-size:clamp(26px,2.6vw,38px);line-height:1.25}
h3{font-size:21px;line-height:1.42}
p{font-size:17px;line-height:1.8;letter-spacing:.01em}
p+p{margin-top:20px}
.shell{width:calc(100% - var(--gutter)*2);max-width:1280px;margin-inline:auto}
.section-space{padding-block:clamp(72px,7.6vw,112px)}
.dark{background:var(--nero);color:var(--bianco);--acciaio:#96948e;--line:rgba(247,246,244,.2)}
.dark p{color:var(--sand)}
.lead{font-size:21px;line-height:1.65}
.caption,figcaption{font-size:13px;line-height:1.7;letter-spacing:.035em;color:var(--acciaio)}
.notation{font-family:var(--display);font-size:11px;font-weight:400;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:var(--acciaio);margin-bottom:24px;display:flex;align-items:center;gap:16px}
.notation::before{content:'';width:24px;height:1px;background:currentColor}
.text-link{font-family:var(--display);font-weight:400;font-size:14px;line-height:1.5;letter-spacing:.04em;display:inline-flex;align-items:center;gap:28px;min-height:44px;border-bottom:1px solid var(--line);padding-block:10px}
.text-link:hover{border-color:currentColor;text-decoration:none}
.light{color:var(--bianco)}
.arrow{width:28px;height:16px;fill:none;stroke:currentColor;stroke-width:1;flex-shrink:0}
.up{transform:rotate(-90deg)}
.skip-link{position:absolute;left:24px;top:-100px;z-index:10;background:var(--bianco);color:var(--nero);padding:16px}
.skip-link:focus{top:12px}

/* The host context is secondary to the Daruso chapter below it. */
.host-header{min-height:76px;display:flex;align-items:center;gap:40px;padding:16px var(--gutter);font-size:13px;line-height:1.5}
.host-logo{flex:none;padding-block:10px}
.host-logo img{width:170px;height:auto}
.host-nav{display:flex;align-items:center;justify-content:center;gap:30px;margin-left:auto}
.host-nav a{padding-block:12px;white-space:nowrap}
.host-nav [aria-current]{text-decoration:underline;text-underline-offset:8px}
.host-contact{padding:12px 0;white-space:nowrap;margin-left:20px}
.brand-masthead{display:flex;justify-content:space-between;align-items:center;padding-top:48px;padding-bottom:36px;border-bottom:1px solid var(--line)}
.daruso-logo{width:clamp(175px,18vw,260px);height:auto}
.brand-descriptor{font-family:var(--display);font-size:15px;line-height:1.55;letter-spacing:.05em;width:270px}
.hero-copy{display:grid;grid-template-columns:1.6fr 1fr;align-items:end;gap:60px;padding-block:38px 46px}
.hero-intro{padding-bottom:4px}
.hero-intro p{font-size:18px;line-height:1.7}
.hero-intro .text-link{margin-top:18px}
.hero-photo .carousel-viewport{aspect-ratio:1.9}
.atelier{display:grid;grid-template-columns:1fr 1.15fr;gap:10%}
.atelier-copy p{max-width:64ch}
.atelier-copy .lead{margin-bottom:24px}
.chapter-nav{position:sticky;top:0;z-index:3;background:var(--bianco);border-block:1px solid var(--line)}
.chapter-inner{display:flex;gap:clamp(24px,3.1vw,46px);align-items:center;min-height:68px}
.chapter-inner a{font-family:var(--display);font-size:13px;letter-spacing:.035em;font-weight:400;line-height:1.5;display:flex;align-items:center;min-height:48px;white-space:nowrap}
.chapter-inner .chapter-mark{margin-right:auto;flex:none}
.chapter-mark img{width:26px}
.chapter-inner .chapter-contact{margin-left:auto}
.room-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;align-items:end;margin-bottom:50px}
.room-heading>p,.room-heading>div>p{max-width:55ch}
.kitchen-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.kitchen-gallery img{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 52%}
figcaption{padding-top:16px}
.scope-line{display:flex;flex-wrap:wrap;gap:16px 38px;border-top:1px solid var(--line);margin-top:40px;padding-top:22px;font-family:var(--display);font-size:13px;letter-spacing:.04em}
.living{padding-top:28px;padding-bottom:80px}
.living-photo .carousel-viewport{aspect-ratio:1.9}
.living-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6.5vw,100px);margin-top:clamp(40px,5vw,72px);align-items:center}
.living-detail .detail-note{max-width:48ch}
.living-detail .detail-note p{text-wrap:pretty}
.detail-note h3{font-size:clamp(23px,2.1vw,30px);line-height:1.25;max-width:16ch;margin-bottom:24px}
.living-detail img{width:100%;aspect-ratio:1;object-fit:cover}
.living-detail figcaption{text-wrap:balance}
.wardrobe{border-top:1px solid var(--line)}
.wardrobe-layout{display:grid;grid-template-columns:.8fr 1.3fr;gap:8%;align-items:center}
.wardrobe-copy h2{margin-bottom:30px}
.wardrobe-copy .text-link{margin-top:24px}
.wardrobe-layout figure img{width:100%;aspect-ratio:1;object-fit:cover}
.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
.material-grid img{width:100%;aspect-ratio:1;object-fit:cover}
.material-grid figcaption{color:var(--sand);line-height:1.7;padding-top:22px}
.material-grid figcaption span{display:block;color:var(--bianco);font:300 25px/1.5 var(--display);letter-spacing:.04em;margin-bottom:6px}
.process{display:grid;grid-template-columns:.85fr 1.15fr;gap:12%}
.process-intro{display:flex;flex-direction:column}
.process-intro>p:not(.notation){margin-top:30px;max-width:45ch}
.designer{font-family:var(--display);font-size:18px;letter-spacing:.04em}
.designer span{display:block;font-family:var(--body);font-size:13px;letter-spacing:.02em;color:var(--acciaio);margin-top:3px}
.process-art{position:relative;overflow:hidden;flex:1;min-height:280px;margin:40px 0 0}
.process-mark{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.04;pointer-events:none;user-select:none}
.process-list{list-style:none;padding:0}
.process-list li{border-top:1px solid var(--line);padding:27px 0;display:grid;grid-template-columns:36px 1fr;gap:26px}
.process-list li:last-child{padding-bottom:0}
.step-number{font:300 18px/1.8 var(--display);color:var(--acciaio);letter-spacing:.04em}
.process-list p{font-size:16px;line-height:1.75;margin-top:9px}
.questions{display:grid;grid-template-columns:.85fr 1.15fr;gap:12%;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}
.faq-list summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:26px;list-style:none;font:400 18px/1.55 var(--display);padding:23px 0}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';font-family:var(--display);font-weight:300;font-size:24px;flex:none}
.faq-list details[open] summary::after{content:'−'}
.faq-list details p{font-size:16px;padding:0 30px 25px 0}
.consultation-inner{display:grid;grid-template-columns:1fr 1.15fr;align-items:start;gap:9%}
.consultation h2{font-size:clamp(32px,3.4vw,46px);line-height:1.2}
.consultation-lede>p:last-child{max-width:34ch;margin-top:26px}
.button{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--bianco);color:var(--nero);padding:22px 24px;margin-top:32px;font-family:var(--display);font-size:15px;line-height:1.5;font-weight:400;letter-spacing:.035em}
.button:hover{background:var(--sand);text-decoration:none}
.button:focus-visible{outline-color:var(--bianco)}
.button-dark{background:var(--nero);color:var(--bianco)}
.button-dark:hover{background:var(--graphite)}
.button-dark:focus-visible{outline-color:var(--nero)}
.atelier .button{max-width:420px}
.consultation-copy .caption{color:var(--acciaio);margin-top:16px}

/* Millwork inquiry form. Built to the same craft as the home-renovation page —
   hairline underlines, fine uppercase labels, a ghost submit rather than a solid
   slab — expressed in Daruso's tokens: Jost labels, Nero ground, Sand and
   Acciaio for the quiet type. No rounded corners anywhere. */
.inquiry{max-width:600px}
/* Belt and braces with the `hidden` attribute in the markup: if this sheet ever
   fails to load, a visible field that silently discards the submission would
   lose real leads. */
.inquiry .hp{display:none}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.f{margin-bottom:26px}
.f label{display:block;font-family:var(--display);font-weight:400;font-size:10px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--acciaio);margin-bottom:10px}
.f input,.f select,.f textarea{
  width:100%;background:transparent;color:var(--bianco);
  border:none;border-bottom:.5px solid rgba(192,181,164,.3);border-radius:0;
  -webkit-appearance:none;appearance:none;
  font:300 14px/1.6 var(--body);letter-spacing:.02em;
  padding:8px 0 12px;min-height:44px;
  transition:border-color .3s ease}
.f select{cursor:pointer;padding-right:22px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 7 7-7' fill='none' stroke='%2396948E' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1px center;background-size:11px 7px}
/* Nothing chosen yet reads as a placeholder, not as an answer. */
.f select:invalid{color:var(--acciaio)}
.f select option{color:var(--bianco);background:var(--nero)}
.f textarea{resize:vertical;min-height:88px;padding-top:6px}
.f input::placeholder,.f textarea::placeholder{color:var(--acciaio);opacity:1}
.f input:hover,.f select:hover,.f textarea:hover{border-bottom-color:rgba(192,181,164,.55)}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--sand)}
.f input:focus-visible,.f select:focus-visible,.f textarea:focus-visible{outline:2px solid var(--sand);outline-offset:5px}
/* Only flag a field once it has actually been left invalid. */
.inquiry.checked :is(input,select,textarea):user-invalid{border-bottom-color:#E4A08A}
/* A ghost submit, as on the home-renovation page: a hairline outline that fills
   on hover rather than a solid block competing with the photography above. */
.inquiry .submit{display:inline-flex;align-items:center;gap:16px;
  padding:15px 30px;min-height:44px;margin-top:6px;
  font-family:var(--display);font-weight:400;font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--sand);
  background:transparent;border:.5px solid rgba(192,181,164,.45);border-radius:0;
  cursor:pointer;transition:color .25s ease,background-color .25s ease,border-color .25s ease}
.inquiry .submit:hover{background:var(--bianco);border-color:var(--bianco);color:var(--nero)}
.inquiry .submit:disabled{opacity:.55;cursor:default}
.inquiry .submit .arrow{width:22px;height:14px}
.inquiry .form-note{margin-top:20px;font-size:12px;line-height:1.7;letter-spacing:.02em;
  color:var(--acciaio);max-width:46ch}
.consultation-copy .email-link{margin-top:24px}
.email-link{display:inline-block;font-size:14px;padding-block:12px;margin-top:16px;text-decoration:underline}
.footer{background:var(--graphite);padding-block:52px 22px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:42px}
.footer-top p{font-size:14px;line-height:1.8}
.footer-top .text-link{font-size:12px}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:22px}
.footer-bottom p,.footer-bottom a{font-size:11px;line-height:1.7;color:var(--sand);margin:0;letter-spacing:.03em}

@media(min-width:1700px){.hero-photo .carousel-viewport,.living-photo .carousel-viewport{max-height:max(895px,72vh)}}
@media(max-width:1100px){.host-header{gap:20px}.host-nav{gap:20px}.host-contact{margin-left:0}.host-nav a:nth-child(2){display:none}.hero-copy{gap:32px;grid-template-columns:1.35fr 1fr}.brand-descriptor{width:245px}.chapter-inner{gap:26px}.chapter-inner .chapter-contact{display:none}}
@media(max-width:860px){.host-nav a:not([aria-current]){display:none}.host-nav{margin-left:auto}.host-contact{display:none}.brand-masthead{padding-block:32px;gap:30px}.brand-descriptor{width:auto;max-width:220px;font-size:13px}.hero-copy{grid-template-columns:1fr;gap:26px;padding-block:32px}.hero-intro{display:flex;gap:32px;align-items:center;justify-content:space-between}.hero-intro p{font-size:16px}.hero-intro .text-link{margin-top:0}.hero-photo .carousel-viewport{aspect-ratio:1.65}.living-photo .carousel-viewport{aspect-ratio:1.65}.atelier{grid-template-columns:1fr;gap:36px}.atelier h2 br{display:none}.chapter-inner{justify-content:space-between;gap:15px}.chapter-inner a{font-size:12px}.chapter-inner .chapter-mark{margin-right:0}.room-heading{grid-template-columns:1fr;gap:30px}.room-heading h2 br{display:none}.room-heading>p,.room-heading>div>p{max-width:66ch}.wardrobe-layout{grid-template-columns:1fr;gap:38px}.wardrobe-copy{max-width:65ch}.wardrobe-layout figure img{aspect-ratio:1.25}.wardrobe-copy h2 br{display:none}.process,.questions{grid-template-columns:1fr;gap:46px}.process-intro>p:not(.notation){max-width:66ch}.process-art{min-height:220px;flex:none;margin-top:32px}.consultation-inner{gap:38px;grid-template-columns:1fr}.inquiry{max-width:none}.consultation-copy{max-width:540px}.consultation h2 br:nth-child(2){display:none}.footer-top{flex-wrap:wrap}.footer-top .text-link{margin-left:auto}.footer-bottom p:nth-child(2){display:none}}
@media(max-width:680px){html{scroll-padding-top:105px}.host-header{min-height:64px;padding-block:12px;gap:16px}.host-logo img{width:140px}.host-nav{font-size:12px}.host-nav a{white-space:normal;text-align:right}.brand-masthead{display:block}.daruso-logo{width:min(100%,205px)}.brand-descriptor{margin-top:25px;max-width:none;font-size:13px;line-height:1.6}.brand-descriptor br{display:none}.hero-copy{padding-top:26px;padding-bottom:32px}.hero-intro{display:block}.hero-intro .text-link{margin-top:14px}.hero-photo .carousel-viewport{aspect-ratio:1.5}.section-space{padding-block:64px}.atelier .lead{font-size:20px}.chapter-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px;padding-block:6px;min-height:90px}.chapter-inner .chapter-mark{grid-row:1/3;grid-column:1;display:none}.chapter-inner a{justify-content:center;min-height:38px;font-size:12px}.chapter-inner .chapter-contact{display:flex;margin-left:0}.room-heading{margin-bottom:32px;gap:24px}.kitchen-gallery{grid-template-columns:1fr;gap:32px}.scope-line{gap:10px 24px;font-size:12px;margin-top:30px}.living{padding-top:0;padding-bottom:54px}.living-photo .carousel-viewport{aspect-ratio:1.5}.living-detail{grid-template-columns:1fr;gap:28px}.wardrobe-layout figure img{aspect-ratio:1}.material-grid{grid-template-columns:1fr;gap:38px;margin-top:38px}.material-grid figcaption{padding-top:15px}.materials .lead br{display:none}.process-list li{gap:16px;grid-template-columns:28px 1fr}.faq-list summary{font-size:18px;gap:18px;padding-block:22px}.faq-list details p{padding-right:0}.consultation h2 br:nth-child(2){display:block}.f-row{grid-template-columns:1fr;gap:0}.button{padding:20px;font-size:14px;gap:14px}.footer-top{display:block;padding-bottom:32px}.footer-top img{width:130px}.footer-top p{margin-top:28px}.footer-top .text-link{margin-top:20px}.footer-bottom{gap:18px}.footer-bottom a{padding-block:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.host-header,.chapter-nav,.skip-link{display:none}html{scroll-behavior:auto}.section-space{padding-block:36px}.dark{-webkit-print-color-adjust:exact;print-color-adjust:exact}details>p{display:block}h2,h3{break-after:avoid}figure{break-inside:avoid}}

/* Catalog-image carousels retain a static first frame without JavaScript. */
.carousel-viewport{position:relative;width:100%;overflow:hidden;background:var(--graphite)}
.carousel-viewport img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.carousel-viewport img[hidden]{display:none}
.carousel-viewport img.is-current{z-index:1}
.carousel-viewport:focus-visible{outline-color:var(--sand);outline-offset:-4px}
.carousel-controls{background:var(--nero);color:var(--bianco);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px var(--gutter);min-height:68px}
.carousel-controls[hidden]{display:none}
.carousel-caption{font:300 14px/1.6 var(--body);letter-spacing:.035em}
.carousel-navigation{display:flex;align-items:center;gap:18px;flex:none}
.carousel-controls button{appearance:none;border:0;border-radius:0;background:transparent;color:inherit;cursor:pointer;min-height:44px;min-width:44px;padding:10px;font:400 12px/1.5 var(--display);letter-spacing:.06em}
.carousel-controls button:hover{background:var(--graphite)}
.carousel-controls button:focus-visible{outline-color:var(--bianco);outline-offset:2px}
.carousel-toggle{margin-right:12px}
.carousel-count{font:300 13px/1.5 var(--display);letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--sand);min-width:55px;text-align:center}
.carousel-arrow svg{display:block;width:28px;height:16px;fill:none;stroke:currentColor;stroke-width:1}
.carousel-arrow.previous svg{transform:rotate(180deg)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:680px){.carousel-controls{flex-wrap:wrap;gap:0;padding-block:12px}.carousel-caption{width:100%;font-size:13px}.carousel-navigation{width:100%;justify-content:flex-end;gap:12px;margin-top:4px}.carousel-toggle{margin-right:auto}.carousel-controls button{padding-inline:8px}}
@media print{.carousel-controls{display:none}.carousel-viewport img:not(.is-current){display:none}.carousel-viewport img:first-child{display:block}}
