:root{--cream:#f6f2eb;--ink:#392d29;--wine:#4b2029;--muted:#766b61;--line:#d8cfc2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.8 Arial,sans-serif}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #a17d45;outline-offset:5px}header{height:104px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--cream);position:relative;z-index:10}.brand{font:38px/1 Georgia,serif;letter-spacing:-2px;white-space:nowrap}.brand i{font-weight:normal;color:#936f52;font-size:34px}.brand span{display:block;font:8px/1 Arial,sans-serif;letter-spacing:3px;text-align:center;margin-top:13px}nav{display:flex;gap:34px;align-items:center;font-size:12px}nav a{padding:10px 0}nav a:hover{color:#985b5b}.nav-contact{border-bottom:1px solid var(--ink)}.nav-contact span{padding-left:24px}.menu{display:none}.hero{height:min(820px,83vw);min-height:580px;position:relative;color:white;background:#3b322b}.hero-images,.hero-shade{position:absolute;inset:0}.hero-images img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.hero-shade{background:linear-gradient(0deg,rgba(15,9,6,.65),transparent 80%)}.hero-content{position:absolute;bottom:130px;left:7%}.eyebrow,.section-label,.hero-bottom,.gallery-hint{font-size:10px;font-weight:normal;letter-spacing:2.2px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal;line-height:1.1;letter-spacing:-2px}h1{font-size:clamp(48px,5.2vw,80px);margin:25px 0 28px}em{font-weight:normal}h2{font-size:clamp(42px,4.2vw,62px);margin-bottom:28px}h3{font-weight:normal}.light-link,.text-link{display:inline-flex;gap:42px;align-items:center;font-size:12px;padding:10px 0;border-bottom:1px solid currentColor}.hero-bottom{position:absolute;bottom:32px;left:7%;right:6%;display:flex;justify-content:space-between;align-items:center}.hero-controls{display:flex;gap:20px;align-items:center}.hero-controls button{color:white;background:transparent;border:1px solid #ffffff66;border-radius:50%;width:40px;height:40px}.section{padding:85px 7% 90px}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;color:var(--muted);margin-bottom:65px}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:10%}.about-copy h3{font:11px Arial,sans-serif;letter-spacing:2px;margin:9px 0 26px}.about-copy p{max-width:550px;font-size:15px;color:#665b52}.about-note{border-top:1px solid var(--line);margin-top:55px;padding-top:30px;display:flex;gap:45px;align-items:center}.small-brand{font:38px Georgia,serif}.small-brand i{color:#9a7353}.about-note p{margin:0;font:italic 22px Georgia,serif;color:var(--muted)}.elements{background:#eee8de}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px}.section-heading>p{max-width:330px;font-size:14px;color:var(--muted)}.element-list{display:grid;grid-template-columns:1fr 1fr;gap:0 65px;margin-top:30px;margin-bottom:75px}.element-list details{border-bottom:1px solid #cfc4b5;padding:18px 0}.element-list summary{list-style:none;display:flex;align-items:center;font:21px Georgia,serif;cursor:pointer}.element-list summary::-webkit-details-marker{display:none}.element-list summary span{font:10px Arial,sans-serif;color:var(--muted);width:40px}.element-list summary b{margin-left:auto;font:18px Arial,sans-serif;font-weight:normal}.element-list details[open] b{transform:rotate(45deg)}.element-list details p{font-size:13px;margin:15px 20px 0 40px;color:var(--muted)}.gallery-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.gallery-heading .eyebrow{color:var(--muted);font-size:9px;margin-bottom:7px}.gallery-heading h3{font:32px Georgia,serif;margin:0}.arrows{display:flex;gap:10px}.arrows button{background:none;border:1px solid #b6aa9b;border-radius:50%;width:42px;height:42px;color:var(--ink)}.arrows button:hover{background:var(--wine);color:white}.gallery{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.gallery figure{margin:0;flex:0 0 31.8%;scroll-snap-align:start}.gallery button{background:none;border:none;padding:0;display:block;width:100%;overflow:hidden}.gallery img{width:100%;height:410px;object-fit:cover;display:block;transition:transform .6s}.gallery button:hover img{transform:scale(1.035)}.gallery figcaption{font-size:11px;margin-top:12px;color:#75675a;display:flex;justify-content:space-between}.gallery-hint{font-size:8px;color:var(--muted);margin:22px 0 0;letter-spacing:1.5px}.gallery-hint span{padding:0 12px}.rooms-block{margin-top:65px}.rooms figure{flex-basis:65%}.rooms img{height:420px}.services{display:grid;grid-template-columns:1fr 1fr;background:var(--wine);color:#f8f0e4}.services-image{min-height:740px}.services-image img{width:100%;height:100%;object-fit:cover;display:block}.services-copy{padding:75px 12%}.services-copy h2{font-size:clamp(40px,3.8vw,57px);margin:30px 0}.services-copy>p:not(.eyebrow){font-size:14px;line-height:1.95;color:#ddcdd0}.services-copy .light-link{margin-top:18px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%}.contact-grid>div>p{font-size:14px;color:var(--muted);max-width:320px}.contact-note{font-size:12px;color:var(--muted);margin-top:32px}form{display:flex;flex-direction:column}label{font-size:10px;letter-spacing:1px;margin-top:12px}input,textarea{border:0;border-bottom:1px solid #c6baaa;background:transparent;padding:8px 0 15px;border-radius:0;color:var(--ink);font-size:14px;resize:vertical}input:focus,textarea:focus{outline:none;border-color:var(--wine)}.submit{margin-top:28px;text-align:left;background:var(--wine);color:var(--cream);border:0;padding:17px 20px;font-size:12px;display:flex;justify-content:space-between}.form-note,#form-status{font-size:10px;color:var(--muted);margin-top:12px}.contact{padding-bottom:95px}footer{border-top:1px solid var(--line);margin:0 7%;padding:42px 0 28px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:25px}footer .brand{font-size:32px}footer p{font:italic 17px Georgia,serif;margin:0;text-align:center}footer small{grid-column:1/-1;font-size:9px;color:var(--muted);letter-spacing:1px;margin-top:25px}dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:#201b18f5;border:0;padding:55px 70px;color:white}dialog::backdrop{background:#201b18}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{margin:0;text-align:center;max-width:85%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}dialog img{max-width:100%;max-height:90%;object-fit:contain}dialog figcaption{font-size:12px;margin-top:15px}dialog button{position:absolute;background:#ffffff15;color:white;border:1px solid #ffffff55;border-radius:50%;height:42px;width:42px}.close{right:24px;top:20px}.lb-prev{left:15px;top:50%}.lb-next{right:15px;top:50%}@media(min-width:1600px){.section{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}}@media(max-width:800px){header{height:88px;padding:0 6%}.brand{font-size:32px}.brand span{font-size:7px;letter-spacing:2px}.brand i{font-size:28px}.menu{display:flex;gap:20px;background:none;border:0;font-size:12px}nav{display:none;position:absolute;top:88px;left:0;right:0;background:var(--cream);padding:20px 7% 30px;flex-direction:column;align-items:start;gap:8px}nav.open{display:flex}.hero{height:75svh;min-height:530px;max-height:800px}.hero-images img{object-position:48% center}.hero-content{left:7%;right:5%;bottom:110px}h1{font-size:49px;letter-spacing:-1.7px}.hero-content .eyebrow{font-size:8px;letter-spacing:1.5px}.hero-bottom>span{font-size:7px;letter-spacing:1px}.hero-controls{gap:10px;font-size:9px}.hero-controls button{width:34px;height:34px}.section{padding:55px 7%}.section-label{margin-bottom:40px;font-size:8px;letter-spacing:1.3px}.section-label>span:last-child{display:none}.about-grid,.contact-grid{grid-template-columns:1fr;gap:20px}h2{font-size:44px;letter-spacing:-1.5px}.about-copy p{font-size:14px}.about-note{margin-top:35px;gap:22px}.about-note p{font-size:18px}.small-brand{white-space:nowrap;font-size:30px}.section-heading{display:block}.section-heading>p{max-width:100%}.element-list{grid-template-columns:1fr;margin-bottom:50px}.element-list summary{font-size:21px}.gallery-heading h3{font-size:25px}.arrows{gap:6px}.arrows button{height:34px;width:34px}.gallery{gap:14px}.gallery figure{flex-basis:78%}.gallery img{height:380px}.rooms figure{flex-basis:94%}.rooms img{height:270px}.gallery-hint{font-size:7px;letter-spacing:1px}.rooms-block{margin-top:45px}.services{grid-template-columns:1fr}.services-image{min-height:0;height:480px}.services-image img{object-position:center 48%}.services-copy{padding:48px 7% 55px}.services-copy h2{font-size:44px}.contact-grid{gap:25px}.contact-note{margin-top:20px}footer{grid-template-columns:1fr auto;gap:25px}footer p{grid-column:1/-1;grid-row:2;text-align:left;font-size:16px}footer .text-link{font-size:10px;gap:0}footer small{margin-top:5px}dialog{padding:55px 20px}dialog figure{max-width:100%}.lb-prev,.lb-next{top:auto;bottom:16px}.lb-prev{left:calc(50% - 55px)}.lb-next{right:calc(50% - 55px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Quiet, upright typography for section titles. */
h2, .services-copy h2 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: clamp(36px, 3.7vw, 54px);
  line-height: 1.18;
  letter-spacing: -1.5px;
}
h2 em {font-style: normal; font-weight: inherit;}
.gallery-heading h3 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: 28px;
  letter-spacing: -.6px;
}
.rotation-toggle, .arrows .rotation-toggle {
  width: auto;
  min-width: 50px;
  border-radius: 0;
  border: 0;
  background: transparent;
  font: 10px Arial, sans-serif;
  letter-spacing: .5px;
  color: inherit;
  padding: 0 8px;
}
.rotation-toggle:hover, .arrows .rotation-toggle:hover {background: transparent; color: inherit; text-decoration: underline;}
@media (max-width:800px) {
  h2, .services-copy h2 {font-size: 36px; letter-spacing: -1px;}
  .gallery-heading h3 {font-size: 23px; max-width: 200px;}
  .gallery-heading {gap: 12px;}
  .arrows {flex-shrink: 0;}
  .rotation-toggle, .arrows .rotation-toggle {min-width: 36px; padding: 0 3px; font-size: 9px;}
  .hero-controls {gap: 7px;}
}

/* Concept 2: clear images, warm ivory and restrained typography. */
header {height: 116px;}
.brand {display: block; width: 255px; line-height: 0;}
.logo-image {display: block; width: 100%; height: auto;}
.hero {height: auto; min-height: 0; background: var(--cream); color: var(--ink);}
.hero-images {position: relative; width: 100%; aspect-ratio: 1.8;}
.hero-images img {position: absolute; inset: 0; object-position: center 52%;}
.hero-bottom {position: relative; left: auto; right: auto; bottom: auto; padding: 16px 7%; min-height: 72px;}
.hero-bottom > span {font-size: 8px; letter-spacing: 1.8px;}
.hero-controls button {color: var(--ink); border-color: #b6aa9b;}
.about-title {font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: clamp(36px,3.7vw,54px); font-weight: 300; line-height: 1.18; letter-spacing: -1.5px; margin: 0;}
.about .section-label {margin-bottom: 44px;}
.about-copy p:first-child {margin-top: 0;}
.about {padding-top: 54px; padding-bottom: 66px;}
.services {background: var(--cream); color: var(--ink); padding: 65px 7% 75px; gap: 7%; grid-template-columns: .95fr 1fr; border-top: 1px solid var(--line); align-items: center;}
.services-image {min-height: 0; width: 100%;}
.services-image svg {display: block; width: 100%; height: auto;}
.services-copy {padding: 0;}
.services-copy h2 {margin: 20px 0 25px;}
.services-copy > p:not(.eyebrow) {color: #665b52;}
.services-copy .eyebrow {color: var(--muted);}
.elements {background: #f0ebe3;}
.elements .section-label {margin-bottom: 35px;}
.element-list {gap: 28px 60px; margin-top: 30px; margin-bottom: 55px;}
.element {border-top: 1px solid var(--line); padding-top: 20px;}
.element h3 {display: flex; align-items: baseline; font: 18px/1.4 "Helvetica Neue",Helvetica,Arial,sans-serif; margin: 0 0 12px; letter-spacing: -.25px;}
.element h3 span {font: 9px Arial,sans-serif; min-width: 30px; color: var(--muted);}
.element p {font-size: 13px; line-height: 1.8; color: var(--muted); margin: 0 0 0 30px;}
.styling-galleries {display: grid; grid-template-columns: 1fr 1fr; gap: 32px;}
.gallery-block {min-width: 0;}
.rooms-block {margin: 0;}
.gallery-heading {gap: 10px; align-items: flex-end; min-height: 88px;}
.gallery-heading h3 {font-size: 24px; line-height: 1.3;}
.arrows {gap: 6px; flex-shrink: 0;}
.arrows button {width: 32px; height: 32px;}
.gallery figure, .rooms figure {flex-basis: 100%;}
.gallery img, .rooms img {height: 470px;}
.gallery {gap: 0;}
.gallery figcaption {padding-right: 3px;}
@media(max-width: 1050px) {
 .gallery-heading {align-items: flex-start; flex-direction: column; min-height: 125px;}
 .gallery img, .rooms img {height: 420px;}
}
@media(max-width: 800px) {
 header {height: 98px;}
 .brand {width: 205px;}
 nav {top: 98px;}
 .hero {height: auto; min-height: 0; max-height: none;}
 .hero-images {aspect-ratio: 1.5;}
 .hero-images img {object-position: center;}
 .hero-bottom {padding: 14px 6%; gap: 12px; align-items: center;}
 .hero-bottom > span {font-size: 6px; line-height: 1.8; max-width: 130px; letter-spacing: 1px;}
 .hero-controls {gap: 7px;}
 .hero-controls button {width: 30px; height: 30px;}
 .hero-controls .rotation-toggle {width: auto;}
 .about-title {font-size: 36px; letter-spacing: -1px;}
 .about {padding: 40px 7% 50px;}
 .about-grid {gap: 24px;}
 .services {padding: 45px 7% 50px; grid-template-columns: 1fr; gap: 32px;}
 .services-image {height: auto; max-width: 500px;}
 .services-copy {padding: 0;}
 .element-list {grid-template-columns: 1fr; gap: 22px;}
 .styling-galleries {grid-template-columns: 1fr; gap: 44px;}
 .gallery-heading {flex-direction: row; align-items: end; min-height: 0;}
 .gallery-heading h3 {font-size: 22px; max-width: 180px;}
 .gallery img, .rooms img {height: 430px;}
 .gallery-hint {margin-top: 14px;}
 footer .brand {width: 190px;}
}

/* Preserve complete portfolio images and keep controls beneath them. */
.gallery button {height: clamp(390px, 45vw, 610px); display:flex; align-items:center; justify-content:center;}
.gallery img, .rooms img {width:100%; height:100%; object-fit:contain; object-position:center;}
.gallery button:hover img {transform:none;}
.gallery-heading {min-height:0; margin-bottom:22px; display:block;}
.gallery-heading h3 {max-width:none;}
.carousel-controls {display:flex; justify-content:center; align-items:center; gap:12px; margin-top:18px;}
.rotation-toggle svg {display:block; width:18px; height:18px; margin:auto;}
.rotation-toggle, .arrows .rotation-toggle {display:flex; align-items:center; justify-content:center; min-width:34px; width:34px; height:34px; padding:6px; border:1px solid #b6aa9b; border-radius:50%;}
.hero-controls .rotation-toggle {width:40px; height:40px;}
.gallery-hint {text-align:center;}
.element-list details.element {padding:20px 0; border-top:0; border-bottom:1px solid var(--line);}
.element-list details.element summary {font:18px/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif; display:flex; gap:16px; justify-content:space-between; align-items:center;}
.element-list details.element summary .expand-icon {font:22px/1 Arial,sans-serif; width:auto; min-width:22px; color:var(--ink); text-align:center; transition:transform .2s;}
.element-list details.element[open] summary .expand-icon {transform:rotate(45deg);}
.element-list details.element p {margin:15px 30px 0 0;}
@media(max-width:800px) {
 .gallery button {height:clamp(380px, 120vw, 650px);}
 .gallery-heading {display:block; min-height:0;}
 .hero-controls .rotation-toggle {width:30px; height:30px;}
 .element-list details.element summary {font-size:18px;}
}

.carousel-dots {display:flex; gap:2px; justify-content:center; align-items:center;}
.carousel-controls .carousel-dot, .hero-controls .carousel-dot {
 width:22px; height:30px; min-width:22px; padding:0; border:0; border-radius:0; background:transparent; display:grid; place-items:center;
}
.carousel-dot::after {content:""; width:5px; height:5px; border-radius:50%; background:#c0b6ab; transition:background .2s,transform .2s;}
.carousel-dot.active::after {background:var(--wine); transform:scale(1.3);}
.carousel-dot:hover::after {background:var(--wine);}
.carousel-controls {gap:8px;}

/* Reference typography: understated labels and finely proportioned serif titles. */
.about-title {font-family: Georgia, "Times New Roman", serif; font-weight:400; font-size:40px; letter-spacing:-1.25px; line-height:1.12;}
.section-label {font:10px/1.6 Arial,sans-serif; letter-spacing:2px; color:var(--muted);}
.about-copy p, .services-copy > p:not(.eyebrow) {font-size:14px; line-height:1.85;}
.services {grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:10%; align-items:center;}
.services-image {max-width:390px; justify-self:center;}
.services-image img {width:100%; height:auto; object-fit:contain;}
.services-copy h2, .styling-label h2 {font:12px/1.6 Arial,sans-serif; font-weight:400; letter-spacing:2px; text-transform:uppercase; margin:0 0 25px;}
.styling-label {display:flex; justify-content:center; margin-bottom:50px!important;}
.styling-label h2 {margin:0;}
.styling-galleries {display:block;}
.editorial-row {display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:12%; align-items:center;}
.editorial-row + .editorial-row {margin-top:65px; padding-top:65px; border-top:1px solid var(--line);}
.gallery-copy {max-width:410px;}
.gallery-copy > h3 {font:34px/1.15 Georgia,"Times New Roman",serif; letter-spacing:-.75px; font-weight:400; margin:0 0 35px;}
.gallery-copy .element-list {display:block; margin:0;}
.gallery-copy .element-list details.element {padding:18px 0;}
.gallery-copy .element-list details.element summary {font-size:14px; line-height:1.6;}
.gallery-copy .element-list details.element p {font-size:13px; margin-top:12px;}
.gallery-media {min-width:0; width:100%; max-width:470px; justify-self:center;}
.gallery button {height:590px;}
.gallery img, .rooms img {object-fit:contain;}
.rooms-block .gallery-copy {grid-column:2; grid-row:1;}
.rooms-block .gallery-media {grid-column:1; grid-row:1;}
.carousel-controls, .hero-controls {display:flex; flex-direction:column-reverse; justify-content:center; align-items:center; gap:0;}
.hero-bottom {flex-direction:column; justify-content:center; gap:6px; padding:15px 7% 8px;}
.hero-bottom > span {text-align:center; max-width:none;}
.rotation-toggle, .arrows .rotation-toggle, .hero-controls .rotation-toggle {
 min-width:30px; width:30px; height:28px; padding:5px; border:none; border-radius:0; color:#797979; opacity:.48; background:transparent;
}
.rotation-toggle svg {width:12px; height:12px;}
.rotation-toggle:hover, .arrows .rotation-toggle:hover, .hero-controls .rotation-toggle:hover {opacity:.8; color:#666; background:transparent;}
.rotation-toggle:focus-visible {opacity:1;}
.carousel-controls .carousel-dot:hover, .hero-controls .carousel-dot:hover {background:transparent;}
.carousel-controls {margin-top:12px;}
.gallery-hint {margin-top:5px; font-size:7px; color:#978f85;}
@media(max-width:800px){
 .about-title {font:400 34px/1.14 Georgia,"Times New Roman",serif; letter-spacing:-1px;}
 .services {grid-template-columns:1fr; gap:32px;}
 .services-image {max-width:360px; width:100%;}
 .services-copy h2, .styling-label h2 {font-size:11px;}
 .editorial-row {grid-template-columns:1fr; gap:30px;}
 .editorial-row + .editorial-row {margin-top:45px; padding-top:45px;}
 .gallery-copy {max-width:none;}
 .gallery-copy > h3 {font-size:29px; margin-bottom:20px;}
 .gallery-copy > h3 br {display:none;}
 .rooms-block .gallery-copy, .rooms-block .gallery-media {grid-column:auto; grid-row:auto;}
 .gallery-media {width:100%; max-width:440px;}
 .gallery button {height:clamp(380px,120vw,590px);}
 .hero-controls .rotation-toggle {width:30px; height:28px;}
 .hero-bottom > span {font-size:6px;}
 .styling-label {margin-bottom:35px!important;}
}

.gallery-copy .heading-line {display:block;}
.hero-images .hero-fade-layer {z-index:1; pointer-events:none;}
@media(max-width:800px){.gallery-copy .heading-line {display:inline;}}

/* Reference layout: quiet editorial sections and stacked image cards. */
.about-grid {grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:12%; align-items:center;}
.about-copy .eyebrow {font:10px/1.6 Arial,sans-serif; letter-spacing:2px; color:var(--muted); margin:0 0 24px;}
.about-copy .about-title {font-size:40px; margin:0 0 30px;}
.about-image {width:100%; max-width:420px; justify-self:end;}
.about-image img {width:100%; height:auto; display:block;}
.outline-button {display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:12px 28px; border:1px solid #a99e90; font:10px/1.4 Arial,sans-serif; letter-spacing:1.5px; margin-top:12px; transition:background .2s;}
.outline-button:hover {background:#ebe4d9;}
.elements {background:var(--cream); padding-top:48px; padding-bottom:56px;}
.styling-label {border-top:1px solid var(--line); padding-top:30px; margin-bottom:32px!important;}
.styling-label h2 {font-size:11px; letter-spacing:2px;}
.styling-galleries {display:flex; flex-direction:column; align-items:center; gap:46px;}
.gallery-block {width:100%; max-width:560px; margin:0; padding:0;}
.gallery-media {max-width:none;}
.gallery {border:1px solid var(--line); border-bottom:0;}
.gallery button {height:610px;}
.gallery figcaption {display:none;}
.gallery-title-button {display:block; width:100%; background:transparent; border:1px solid var(--line); padding:18px 22px; text-align:left; color:var(--ink); font:14px/1.5 Arial,sans-serif; letter-spacing:0;}
.gallery-title-button:hover {background:#eee8de;}
.styling-details {max-width:800px; margin:46px auto 0; border:1px solid var(--line); padding:0 24px;}
.styling-details > summary {display:flex; justify-content:space-between; align-items:center; list-style:none; cursor:pointer; padding:18px 0; font:10px/1.6 Arial,sans-serif; letter-spacing:1.8px;}
.styling-details > summary::-webkit-details-marker {display:none;}
.styling-details > summary .expand-icon {font:18px/1 Arial,sans-serif; color:#8d8278;}
.styling-details[open] > summary .expand-icon {transform:rotate(45deg);}
.styling-details .element-list {margin:0 0 24px; gap:0 32px;}
.styling-details .element-list details.element summary {font-size:13px; line-height:1.6; letter-spacing:0;}
.styling-details .element-list details.element p {font-size:12px; line-height:1.8; margin-left:0;}
.services {grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:7%; padding-top:55px; padding-bottom:55px;}
.services-image {max-width:440px; justify-self:start;}
.services-copy h2 {font-size:11px; margin-top:0;}
@media(max-width:800px){
 .about-grid {grid-template-columns:1fr; gap:32px;}
 .about-copy .about-title {font-size:34px; margin-bottom:24px;}
 .about-image {max-width:440px; justify-self:center;}
 .gallery-block {max-width:440px;}
 .gallery button {height:clamp(380px,120vw,590px);}
 .gallery-title-button {font-size:13px; padding:16px 18px;}
 .styling-galleries {gap:36px;}
 .styling-details {padding:0 18px; margin-top:36px;}
 .styling-details .element-list {display:block;}
 .services {grid-template-columns:1fr; gap:30px;}
 .services-image {max-width:440px; justify-self:center;}
}

/* Give each part of the story a complete viewport, with natural overflow. */
html {scroll-padding-top:0; scroll-snap-type:y proximity;}
main > section {scroll-snap-align:start; scroll-margin-top:0;}
.hero {height:100svh; min-height:480px; display:flex; flex-direction:column;}
.hero > header {flex:none; width:100%;}
.hero-images {flex:1; min-height:0; aspect-ratio:auto;}
.hero-bottom {flex:none; min-height:0; padding:8px 7%; gap:0;}
.hero-bottom > span {display:none;}
.hero-controls {height:28px;}
.about, .services, .details-screen, .contact {min-height:100svh; padding-top:clamp(30px,5svh,60px); padding-bottom:clamp(30px,5svh,60px);}
.about {display:flex; align-items:center;}
.about-grid {width:100%;}
.about-image img {max-height:78svh; object-fit:contain;}
.elements {min-height:100svh; padding-top:24px; padding-bottom:24px; display:flex; flex-direction:column; justify-content:center;}
.styling-label {border:0; padding:0; margin-bottom:18px!important; flex:none;}
.styling-galleries {gap:18px; width:100%;}
.gallery-block {max-width:650px;}
.gallery {border:0; background:transparent;}
.gallery button {height:max(140px,calc((100svh - 270px)/2));}
.gallery img, .rooms img {border:0; object-fit:contain;}
.gallery-title-button {width:fit-content; max-width:100%; min-width:230px; margin:12px auto 0; min-height:42px; padding:12px 24px; border:1px solid #a99e90; text-align:center; font:10px/1.4 Arial,sans-serif; letter-spacing:1px; color:var(--ink);}
.carousel-controls {margin-top:2px; height:24px;}
.details-screen {display:flex; align-items:center; justify-content:center;}
.styling-details {width:100%; margin:0;}
.services-image img {max-height:80svh; object-fit:contain;}
.contact {display:flex; flex-direction:column; justify-content:center;}
.contact .section-label {margin-bottom:40px;}
@media(max-width:800px){
 .hero > header {height:88px;}
 .hero nav {top:88px;}
 .about-grid {gap:24px;}
 .about-copy .eyebrow {margin-bottom:14px;}
 .about-copy .about-title {font-size:30px; margin-bottom:18px;}
 .about-copy p, .services-copy > p:not(.eyebrow) {font-size:13px; line-height:1.75;}
 .about-image img {max-height:35svh; margin:auto; width:auto; max-width:100%;}
 .about-copy .outline-button {margin-top:4px;}
 .services {gap:24px; align-content:center;}
 .services-image img {max-height:35svh; width:auto; max-width:100%; margin:auto;}
 .services-copy h2 {margin-bottom:16px;}
 .services-copy .outline-button {margin-top:4px;}
 .gallery-block {max-width:440px;}
 .elements {padding:20px 6%;}
 .styling-galleries {gap:16px;}
 .gallery button {height:max(140px,calc((100svh - 270px)/2));}
 .gallery-title-button {font-size:10px; min-width:230px;}
 .contact .section-label {margin-bottom:28px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none;}}

/* Soft section endings; each carousel now has its own full-screen stage. */
main > section {position:relative;}
main > section::after {content:""; position:absolute; bottom:0; left:6%; right:6%; height:1px; background:rgba(57,45,41,.09); pointer-events:none;}
.services {border-top:0;}
.contact .section-label {border-top:0;}
footer {border-top:0;}
.elements {padding-top:32px; padding-bottom:32px;}
.gallery-block {max-width:900px;}
.gallery button {height:max(220px,calc(100svh - 170px));}
.elements-continuation .gallery button {height:max(220px,calc(100svh - 134px));}
@media(max-width:800px){
 .hero-images img {object-fit:contain; object-position:center;}
 .hero-bottom {padding:16px 6% 24px; gap:12px;}
 .hero-bottom > span {display:block; max-width:270px; font-size:7px; line-height:1.9; letter-spacing:1.5px; text-align:center;}
 .about, .services {padding:36px 6% 48px;}
 .about-grid {display:flex; flex-direction:column; gap:32px;}
 .about-image {order:-1; width:100%; max-width:520px;}
 .about-image img, .services-image img {width:100%; height:auto; max-width:none; max-height:none; display:block;}
 .about-copy, .services-copy {width:100%; max-width:520px; margin:0 auto;}
 .about-copy p, .services-copy > p:not(.eyebrow) {font-size:14px; line-height:1.8;}
 .services {display:flex; flex-direction:column; justify-content:center; gap:32px;}
 .services-image {width:100%; max-width:520px; margin:0 auto;}
 .elements {padding:28px 6%;}
 .gallery-block {max-width:520px;}
 .gallery button, .elements-continuation .gallery button {height:min(calc(100svh - 172px),132vw); min-height:220px;}
 .gallery-title-button {margin-top:20px;}
 .carousel-controls {margin-top:8px;}
}

/* Sandstone, clear labels, and a caption connected to the image. */
:root {--cream:#eee3d3; --muted:#746a5f; --line:#d4c5b3;}
body, header, .hero, .elements, .services, nav {background:var(--cream);}
.logo-image {mix-blend-mode:darken;}
.section-label, .about-copy .eyebrow, .styling-label h2, .services-copy h2, .styling-details > summary {color:#302e2b;}
.about-copy .outline-button {color:#776e62; border-color:#ac9e8c;}
.gallery-title-button {text-transform:uppercase; color:#39342e; font-size:10px; letter-spacing:1.2px;}
.hero-presentation {flex:1; min-height:0; display:flex; flex-direction:column; justify-content:center;}
.hero-images {touch-action:pan-y pinch-zoom; cursor:grab;}
.hero-images:active {cursor:grabbing;}
.hero-images img {user-select:none; -webkit-user-drag:none;}
.hero-bottom {padding:14px 6% 12px; gap:6px;}
.hero-bottom > .studio-disciplines {display:flex; flex-direction:column; align-items:center; gap:4px; max-width:none; color:#423b33; font:9px/1.7 Arial,sans-serif; letter-spacing:1.6px;}
.gallery {touch-action:pan-x pan-y pinch-zoom; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;}
@media(max-width:800px){
 .hero-images {flex:none; height:auto; aspect-ratio:var(--hero-ratio,6 / 5); width:100%;}
 .hero-images img {object-fit:contain;}
 .hero-bottom {padding:16px 5% 0; gap:10px;}
 .hero-bottom > .studio-disciplines {font-size:9px; line-height:1.8; letter-spacing:1.2px; gap:2px;}
}

/* Luxe Interiors: the oxblood editorial mood from the concept reference. */
.luxe-section {background:#2d080c; color:#ecdfc8; min-height:100svh; display:flex; align-items:center; padding:65px 7%;}
.luxe-section::after {background:rgba(236,223,200,.13);}
.luxe-layout {display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1.6fr); align-items:center; gap:7%; width:100%; max-width:1400px; margin:auto;}
.luxe-label {font:10px/1.6 Arial,sans-serif; letter-spacing:2.5px; color:#d4bea0; margin:0 0 30px;}
.luxe-copy h2 {font:400 clamp(32px,3.4vw,56px)/1.08 Georgia,"Times New Roman",serif; letter-spacing:-.8px; margin:0; color:#ecdfc8;}
.luxe-copy h2 span {display:block;}
.luxe-section .gallery-block, .luxe-section .gallery-media {max-width:none; width:100%;}
.luxe-section .gallery button {height:auto; min-height:0; aspect-ratio:3 / 2;}
.luxe-section .gallery img {width:100%; height:100%; object-fit:contain;}
.luxe-section .carousel-controls {margin-top:14px;}
.luxe-section .rotation-toggle {color:#d8c8b2; opacity:.5;}
.luxe-section .rotation-toggle:hover {color:#ecdfc8; opacity:.9;}
.luxe-section button:focus-visible, .luxe-section .gallery:focus-visible {outline-color:#d8c8b2;}
@media(max-width:1000px) and (min-width:801px){nav {gap:20px; font-size:11px;} .brand{width:225px;} .luxe-layout{gap:5%; grid-template-columns:minmax(205px,.8fr) minmax(0,1.3fr);} .luxe-copy h2{font-size:33px;}}
@media(max-width:800px){
 .luxe-section {padding:48px 6%;}
 .luxe-layout {grid-template-columns:1fr; gap:38px;}
 .luxe-copy {width:100%; max-width:520px; margin:0 auto;}
 .luxe-label {font-size:9px; margin-bottom:22px;}
 .luxe-copy h2 {font-size:clamp(32px,9.5vw,48px); line-height:1.07; letter-spacing:-.65px;}
 .luxe-section .gallery-block {max-width:520px; margin:0 auto;}
 .luxe-section .carousel-controls {margin-top:12px;}
}
.luxe-copy h2 span {white-space:nowrap;}
@media(max-width:1000px) and (min-width:801px){.luxe-copy h2{font-size:28px;}}

/* Let the image titles provide context without competing with the photographs. */
.gallery figcaption {display:block; text-align:center; padding:0 10px; margin:12px 0 0; font:12px/1.6 Arial,sans-serif; color:#665b50; letter-spacing:.15px;}
.hero-bottom .image-caption {font:12px/1.6 Arial,sans-serif; color:#665b50; letter-spacing:.15px; margin:0 0 8px; text-align:center;}
.luxe-section .gallery figcaption {color:#dfcfb8;}
.luxe-section {padding-left:5%; padding-right:5%;}
.luxe-layout {grid-template-columns:minmax(190px,.5fr) minmax(0,1.8fr); gap:4%; max-width:1500px;}
.luxe-copy h2 {font-size:clamp(28px,2.8vw,44px); line-height:1.1;}
.luxe-label {margin-bottom:22px;}
.luxe-section .carousel-controls {margin-top:12px;}
@media(max-width:1000px) and (min-width:801px){.luxe-copy h2 {font-size:26px;} .luxe-layout {grid-template-columns:190px minmax(0,1fr); gap:4%;}}
@media(max-width:800px){
 .luxe-section {padding:42px 0;}
 .luxe-layout {grid-template-columns:1fr; gap:30px;}
 .luxe-copy {padding:0 6%; max-width:570px;}
 .luxe-copy h2 {font-size:clamp(28px,8.2vw,40px); line-height:1.09;}
 .luxe-section .gallery-block {max-width:570px; width:100%;}
 .luxe-section .gallery figcaption {margin-top:14px; padding:0 6%;}
 .hero-bottom .image-caption {font-size:11px;}
}

/* Keep image names attached to their photographs and studio copy distinct. */
#rooms img {object-position:center bottom;}
#rooms figcaption {margin-top:10px;}
.hero-presentation > .image-caption {flex:none; color:#665b50; text-align:center; text-transform:uppercase; font:9px/1.7 Arial,sans-serif; letter-spacing:1.6px; margin:0; padding:0 6% 12px;}
@font-face {font-family:"Luxe Serif"; src:url("assets/luxe-serif.woff") format("woff"); font-weight:400; font-style:normal; font-display:swap;}
.luxe-copy h2 {font-family:"Luxe Serif","Times New Roman",serif; font-weight:400; font-synthesis:none; letter-spacing:0;}
@media(max-width:800px){.hero-presentation > .image-caption {letter-spacing:1.2px; padding-bottom:12px;}}

/* Editorial captions and a centred studio signature beneath the landing image. */
.hero-presentation > .image-caption {min-height:43px; display:flex; align-items:center; justify-content:center; padding:0 6% 12px; text-wrap:balance;}
.gallery figcaption {text-wrap:balance; min-height:38.4px;}
.hero-bottom {position:relative; padding:28px 6%; gap:0;}
.hero-bottom > .studio-disciplines {font-size:13px; line-height:1.8; letter-spacing:1.7px; gap:4px;}
.hero-bottom > .studio-disciplines > span:last-child {font-size:11px; letter-spacing:1.5px;}
.hero-bottom .hero-controls {position:absolute; bottom:0; left:50%; transform:translateX(-50%);}
@media(max-width:800px){
 .hero-presentation > .image-caption {min-height:58px; padding:0 7% 12px; font-size:9px; line-height:1.75; letter-spacing:1px;}
 .hero-bottom {padding:28px 5%;}
 .hero-bottom > .studio-disciplines {font-size:12px; line-height:1.9; letter-spacing:1.1px; gap:4px;}
 .hero-bottom > .studio-disciplines > span:last-child {font-size:10px; letter-spacing:1px;}
}

/* Quiet fades keep the photographs and their captions together. */
.gallery.fade-gallery {display:grid; overflow:hidden; scroll-snap-type:none; touch-action:pan-y pinch-zoom;}
.gallery.fade-gallery figure {grid-area:1 / 1; width:100%; min-width:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 1.1s ease-in-out;}
.gallery.fade-gallery figure.is-active {opacity:1; visibility:visible; pointer-events:auto; z-index:2;}
.gallery.fade-gallery figure.is-leaving {visibility:visible; z-index:1;}
.hero-bottom > .studio-disciplines > span:last-child {font-size:inherit; letter-spacing:inherit;}
.details-screen {min-height:0; padding:52px 6% 60px; display:block;}
.styling-guide-layout {width:100%; max-width:900px; margin:auto;}
.guide-heading {font:10px/1.6 Arial,sans-serif; letter-spacing:2px; text-align:center; margin:0 0 24px;}
.guide-image {display:block; width:100%; height:auto;}
.styling-guide-layout .styling-details {border:0; padding:0; margin:24px 0 0; max-width:none;}
.styling-guide-layout .element-list {display:grid; grid-template-columns:1fr 1fr; gap:0 40px; margin:0; align-items:start;}
.styling-guide-layout details.element {padding:16px 0;}
.styling-guide-layout details.element summary {font-size:13px;}
@media(max-width:800px){
 .hero-bottom > .studio-disciplines {font-size:11px; letter-spacing:1px;}
 .hero-bottom > .studio-disciplines > span:last-child {font-size:inherit; letter-spacing:inherit;}
 .details-screen {padding:38px 6% 44px;}
 .styling-guide-layout .element-list {display:block;}
}
@media(prefers-reduced-motion:reduce){.gallery.fade-gallery figure {transition:none;}}

/* Give both Styling Elements galleries the same heading and image stage. */
.elements-continuation .gallery button {height:max(220px,calc(100svh - 170px));}
.about-image {max-width:520px;}
@media(max-width:800px){.elements-continuation .gallery button {height:min(calc(100svh - 172px),132vw); min-height:220px;}}

/* Size Furniture slides to the photograph, then centre the complete composition. */
#furniture-styling {position:relative; padding-top:80px; padding-bottom:52px;}
#furniture-styling > .styling-label {position:absolute; top:32px; left:6%; right:6%; margin:0!important;}
#rooms.fade-gallery {display:block; position:relative; overflow:hidden;}
#rooms.fade-gallery figure {position:absolute; top:0; left:0; margin:0;}
#rooms.fade-gallery figure.is-active {position:relative;}
#rooms.fade-gallery button {height:auto; min-height:0; width:100%; display:flex; justify-content:center; align-items:center;}
#rooms.fade-gallery img {display:block; width:auto; height:auto; max-width:100%; max-height:calc(100svh - 300px); object-fit:contain; object-position:center;}
#rooms.fade-gallery figcaption {min-height:0; margin-top:12px;}
@media(max-width:800px){
 #furniture-styling {padding:76px 6% 48px;}
 #furniture-styling > .styling-label {top:28px;}
 #rooms.fade-gallery img {max-height:calc(100svh - 290px);}
}

/* A centred studio masthead, with quiet text navigation. */
.hero > header {height:154px; flex-direction:column; justify-content:center; gap:18px;}
.hero > header .brand {margin:0 auto;}
.hero > header nav {justify-content:center;}
.menu {border:0; background:transparent; color:var(--ink); font:10px/1.4 Arial,sans-serif; letter-spacing:1.5px; padding:12px 0;}
.section-rotation-controls, .luxe-section .section-rotation-controls {position:absolute; height:28px; margin:0; display:flex; justify-content:center; align-items:center;}
@media(max-width:800px){
 .hero > header {height:88px; flex-direction:row; gap:0; padding:0 6%;}
 .hero > header .brand {width:190px;}
 .hero > header .menu {position:absolute; right:6%; top:50%; transform:translateY(-50%); display:block;}
 .hero > header nav {top:88px; align-items:center; gap:10px; padding:24px 6%; border-bottom:1px solid var(--line);}
}
/* Reserve a real lower margin for the independently positioned controls. */
#elements {padding-bottom:84px;}
#furniture-styling {padding-bottom:76px;}
.luxe-section {padding-bottom:70px;}

/* Give the masthead and carousel labels a more generous editorial rhythm. */
.hero > header {height:210px; padding:20px 5% 14px; gap:14px;}
.gallery-title-button {margin-top:28px;}
.hero > .hero-controls {position:absolute; left:50%; bottom:auto; transform:translateX(-50%); height:28px; justify-content:center;}
@media(max-width:800px){
 .hero > header {height:138px; padding:28px 6% 12px; gap:0;}
 .hero > header .menu {top:calc(50% + 8px);}
 .hero > header nav {top:138px;}
 .gallery-title-button {margin-top:28px;}
}

/* Anchor the landing captions beneath the masthead, independent of image ratio. */
.hero-presentation {justify-content:flex-start; padding-top:clamp(40px,8svh,64px);}
.hero-presentation > .image-caption {height:58px; min-height:58px; align-items:flex-start;}
/* A taller, gently cropped presentation for the three wide sofa compositions. */
#rooms.fade-gallery figure[data-photo="23"] img,
#rooms.fade-gallery figure[data-photo="24"] img,
#rooms.fade-gallery figure[data-photo="25"] img {width:100%; height:auto; aspect-ratio:4 / 3; max-height:calc(100svh - 260px); object-fit:cover; object-position:center;}
@media(max-width:800px){
 .hero-presentation {padding-top:64px;}
 .hero-presentation > .image-caption {height:58px; min-height:58px;}
}

/* A little more separation below landing captions, without moving their top edge. */
.hero-presentation > .image-caption {margin-bottom:16px;}
/* Give the Furniture gallery heading a stronger, lower anchor. */
#furniture-styling > .styling-label {top:44px;}
#furniture-styling .styling-label h2 {font-size:13px; line-height:1.6; letter-spacing:2px;}
@media(max-width:800px){
 #furniture-styling > .styling-label {top:40px;}
}

/* Editorial refinement: related content stays together and photographs set the pace. */
.hero-presentation > .image-caption {height:32px; min-height:32px; margin-bottom:0; padding:0 6% 12px; font:12px/1.6 Arial,sans-serif; text-transform:none; letter-spacing:.15px; align-items:flex-start;}
.hero-bottom {padding:36px 6% 24px;}
.hero-bottom > .studio-disciplines {line-height:1.45; gap:0;}
.elements, #elements, #furniture-styling {min-height:0; padding:64px 6% 56px; display:block;}
#elements > .styling-label, #furniture-styling > .styling-label {position:static; margin:0 auto 28px!important; padding:0; display:block; border:0; width:100%; max-width:900px; text-align:center;}
.styling-label .eyebrow {font:10px/1.6 Arial,sans-serif; letter-spacing:2px; margin:0 0 16px; color:var(--muted);}
#elements .styling-label h2, #furniture-styling .styling-label h2, .guide-heading, .services-copy h2 {font:400 clamp(28px,3vw,38px)/1.18 Georgia,"Times New Roman",serif; letter-spacing:-.5px; text-transform:none; color:var(--ink); margin:0;}
.elements .gallery-block {max-width:900px; margin:0 auto;}
.elements .gallery.fade-gallery {display:block; position:relative; overflow:hidden;}
.elements .gallery.fade-gallery figure {position:absolute; top:0; left:0; margin:0;}
.elements .gallery.fade-gallery figure.is-active {position:relative;}
.elements .gallery button, #rooms.fade-gallery button {height:auto; min-height:0; aspect-ratio:auto; display:flex; justify-content:center; align-items:center;}
.elements .gallery img, #rooms.fade-gallery img {display:block; width:auto; height:auto; max-width:100%; max-height:min(640px,68svh); object-fit:contain; object-position:center; margin:auto;}
#rooms.fade-gallery figure[data-photo="23"] img,
#rooms.fade-gallery figure[data-photo="24"] img,
#rooms.fade-gallery figure[data-photo="25"] img {width:100%; max-width:800px; height:auto; max-height:none; aspect-ratio:4 / 3; object-fit:cover;}
.gallery figcaption, #rooms.fade-gallery figcaption {font:13px/1.65 Arial,sans-serif; color:#665b50; letter-spacing:0; min-height:0; max-width:620px; margin:18px auto 0; padding:0 8px; text-align:center; text-wrap:balance;}
.gallery-footer {display:flex; align-items:center; justify-content:space-between; width:100%; max-width:620px; margin:18px auto 0; padding:0 8px;}
.gallery-view-button {display:inline-flex; align-items:center; gap:16px; border:0; border-bottom:1px solid #ad9c87; background:transparent; padding:6px 0; color:var(--ink); font:12px/1.6 Arial,sans-serif; letter-spacing:.15px;}
.gallery-view-button:hover {border-color:var(--ink);}
.gallery-footer .carousel-controls, .luxe-section .gallery-footer .carousel-controls {position:static; display:flex; flex-direction:row; width:auto; height:28px; margin:0;}
.luxe-section .gallery-view-button {color:#ecdfc8; border-color:#9b8075;}
.luxe-section .gallery-footer {max-width:none;}
.details-screen {padding-top:56px; padding-bottom:64px;}
.guide-heading {margin-bottom:28px; text-align:center;}
.services-copy h2 {margin-bottom:24px;}
.about, .services {min-height:0; padding-top:72px; padding-bottom:72px;}
@media(max-width:800px){
 .hero-presentation > .image-caption {height:32px; min-height:32px; margin-bottom:0; font-size:11px; padding:0 7% 12px; letter-spacing:.1px;}
 .hero-bottom {padding:36px 5% 24px;}
 .hero-bottom > .studio-disciplines {font-size:11px; line-height:1.45; gap:0;}
 .elements, #elements, #furniture-styling {padding:48px 6% 44px;}
 #elements > .styling-label, #furniture-styling > .styling-label {margin-bottom:24px!important;}
 #elements .styling-label h2, #furniture-styling .styling-label h2, .guide-heading, .services-copy h2 {font-size:28px;}
 .gallery figcaption, #rooms.fade-gallery figcaption {font-size:12px; line-height:1.7; padding:0 2px; margin-top:16px;}
 .gallery-footer {margin-top:14px; padding:0 2px;}
 .about, .services {padding-top:52px; padding-bottom:52px;}
 .details-screen {padding:44px 6% 48px;}
}
.luxe-section {min-height:0; padding-top:72px; padding-bottom:72px;}
.contact {min-height:0; padding-top:72px; padding-bottom:72px;}
@media(max-width:800px){
 .luxe-section {padding-top:52px; padding-bottom:52px;}
 .contact {padding-top:52px; padding-bottom:52px;}
}

/* One fine serif for the studio's display titles; small capitals mark sections. */
.about-copy .about-title,
#elements .styling-label h2,
#furniture-styling .styling-label h2,
.guide-heading,
.contact h2 {font-family:"Luxe Serif","Times New Roman",serif; font-weight:400; font-synthesis:none; letter-spacing:-.25px;}
.about-copy .about-title {font-size:44px; line-height:1.1;}
#elements .styling-label h2, #furniture-styling .styling-label h2 {font-size:36px; line-height:1.15; text-wrap:balance;}
.services-copy h2 {font:400 10px/1.6 Arial,sans-serif; letter-spacing:2px; text-transform:uppercase; margin-bottom:24px;}
.about-copy p, .services-copy > p:not(.eyebrow) {max-width:39em;}
.gallery-count {font:10px/1.6 Arial,sans-serif; letter-spacing:1.2px; color:var(--muted); margin-left:auto; margin-right:18px; font-variant-numeric:tabular-nums;}
.luxe-section .gallery-count {color:#d4bea0;}
.gallery-footer {border-top:1px solid rgba(57,45,41,.1); padding-top:8px; margin-top:18px;}
.luxe-section .gallery-footer {border-color:rgba(236,223,200,.15);}
.gallery-footer .rotation-toggle {width:44px; min-width:44px; height:44px;}
.gallery-footer .carousel-controls, .luxe-section .gallery-footer .carousel-controls {height:44px;}
.hero > header nav a {transition:opacity .2s;}
.hero > header nav a:hover {color:var(--ink); opacity:.65;}
@media(max-width:800px){
 .hero > header {height:184px; padding:28px 6% 12px; flex-direction:column; justify-content:center; gap:8px;}
 .hero > header .brand {flex:none; width:190px; margin:0 auto;}
 .hero > header .menu {position:static; transform:none; display:block; flex:none; min-width:80px; min-height:44px; padding:10px 14px; font-size:9px; line-height:1.4; letter-spacing:2px; color:#665b50;}
 .hero > header nav {top:184px; padding:24px 6% 28px; gap:10px; font:11px/1.7 Arial,sans-serif; letter-spacing:.4px; box-shadow:0 12px 18px rgba(57,45,41,.035);}
 .hero-presentation {padding-top:18px;}
 .about-copy .about-title {font-size:36px; line-height:1.1;}
 #elements .styling-label h2, #furniture-styling .styling-label h2 {font-size:30px; line-height:1.15;}
 .services-copy h2 {font-size:10px;}
 .gallery-footer {padding-top:8px;}
}

/* The enlarged photograph floats above the site, keeping its warm visual context. */
#lightbox {background:transparent; color:var(--ink); padding:64px 70px 72px; overflow:auto;}
#lightbox::backdrop {background:rgba(50,39,31,.38); backdrop-filter:blur(16px) saturate(.8); -webkit-backdrop-filter:blur(16px) saturate(.8);}
#lightbox figure {height:100%; width:100%; max-width:1200px; gap:18px;}
#lightbox img {display:block; flex:0 1 auto; min-height:0; width:auto; height:auto; max-width:100%; max-height:calc(100dvh - 220px); object-fit:contain; box-shadow:0 20px 70px rgba(25,18,14,.28);}
#lightbox figcaption {flex:none; max-width:680px; margin:0; padding:12px 20px; font:12px/1.65 Arial,sans-serif; text-wrap:balance; background:rgba(238,227,211,.94); color:#392d29;}
#lightbox button {width:44px; height:44px; background:rgba(238,227,211,.92); color:#392d29; border:1px solid rgba(238,227,211,.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);}
#lightbox button:hover {background:#eee3d3;}
#lightbox .close {font-size:22px;}
@keyframes image-arrive {from {opacity:0; transform:scale(.985);} to {opacity:1; transform:scale(1);}}
#lightbox[open] figure {animation:image-arrive .24s ease-out;}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 #lightbox::backdrop {background:rgba(64,49,38,.78);}
}
@media(max-width:800px){
 #lightbox {padding:76px 18px 86px;}
 #lightbox figure {max-width:100%; gap:16px;}
 #lightbox img {max-height:calc(100dvh - 250px);}
 #lightbox figcaption {padding:12px 16px;}
}
@media(prefers-reduced-motion:reduce){#lightbox[open] figure {animation:none;}}

/* A sharper editorial serif and a higher, quieter landing composition. */
@font-face {font-family:"Libre Baskerville"; src:url("assets/libre-baskerville.woff") format("woff"); font-weight:400; font-style:normal; font-display:swap;}
.about-copy .about-title,
#elements .styling-label h2,
#furniture-styling .styling-label h2,
.guide-heading,
.contact h2 {font-family:"Luxe Serif","Times New Roman",serif; letter-spacing:0;}
.hero-presentation {padding-top:clamp(12px,2svh,20px);}
.gallery-view-button {border-bottom:0; text-decoration:none; min-height:44px; transition:opacity .2s;}
.gallery-view-button:hover {opacity:.65;}
.gallery button, .hero-images {position:relative; cursor:pointer;}
.gallery button::after, .hero-images::after {content:"›"; position:absolute; right:14px; top:50%; transform:translateY(-50%); z-index:2; display:grid; place-items:center; width:30px; height:40px; border-radius:20px; background:rgba(35,25,20,.22); color:#fff8ed; font:28px/1 Arial,sans-serif; pointer-events:none; opacity:.75; text-shadow:0 1px 5px rgba(0,0,0,.3);}
.hero-images:active {cursor:pointer;}
.hero-images:focus-visible {outline:2px solid #a17d45; outline-offset:-4px;}
.gallery button:hover img {transform:none;}
@media(max-width:800px){.hero-presentation {padding-top:0;}}
