/* Duchamp Suites component layer (.dhs-*), Mark's new Lovable suites design,
   mapped to the classic duchamp theme using its own tokens (--ivory/--bark/--clay,
   --font-serif/--font-sans). Deliberately NOT Tailwind arbitrary values: the
   compiled app.css does not carry them, so the look lives here as semantic CSS.
   Loaded once (enqueued) and shared by the hub, building and suite pages. */
.dhs{background:var(--ivory);color:var(--bark)}
.dhs a{color:inherit;text-decoration:none}
.dhs-wrap{margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}
@media(min-width:768px){.dhs-wrap{padding-left:2.5rem;padding-right:2.5rem}}
.dhs-wrap--1200{max-width:1200px}
.dhs-wrap--1400{max-width:1400px}
.dhs-wrap--1000{max-width:1000px}
.dhs-wrap--reading{max-width:42rem}

.dhs-sec{padding-top:3rem;padding-bottom:3rem}
.dhs-sec--title{padding-top:5rem;padding-bottom:2rem}
.dhs-sec--bordered{border-top:1px solid color-mix(in srgb,var(--bark) 10%,transparent);padding-top:4rem;padding-bottom:4rem}
@media(min-width:768px){.dhs-sec--title{padding-top:7rem}.dhs-sec--bordered{padding-top:5rem;padding-bottom:5rem}}

.dhs-h1{font-family:var(--font-serif,"Cormorant Garamond",Georgia,serif);font-weight:400;font-size:2.25rem;line-height:1.1;text-align:center;margin:0}
@media(min-width:768px){.dhs-h1{font-size:3rem}}
.dhs-lead-h2{font-family:var(--font-serif,"Cormorant Garamond",Georgia,serif);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.375rem);line-height:1.15;text-align:center;margin:0}
.dhs-lead-p{font-family:var(--font-serif,"Cormorant Garamond",Georgia,serif);font-size:1.0625rem;line-height:1.75;color:color-mix(in srgb,var(--bark) 85%,transparent);margin:2rem 0 0}
@media(min-width:768px){.dhs-lead-p{text-align:center}}

.dhs-rule{height:1px;width:4rem;background:color-mix(in srgb,var(--clay) 70%,transparent);border:0;margin:1.5rem auto 0}
.dhs-rule--sm{width:3rem;margin:0.75rem 0 0}

.dhs-center{text-align:center}

/* Tile grid (hub + other-suites) */
.dhs-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:start}
@media(min-width:640px){.dhs-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.dhs-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}
.dhs-grid--4 .dhs-tile{}
@media(min-width:1024px){.dhs-grid--4{grid-template-columns:repeat(4,1fr)}}
.dhs-tile{display:block}
.dhs-tile-img,.dhs-tile-ph{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--bark);display:block}
.dhs-tile-ph{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bark) 5%,var(--ivory));border:1px dashed color-mix(in srgb,var(--clay) 90%,transparent)}
.dhs-ph-inner{text-align:center;padding:1rem}
.dhs-ph-label{font-family:var(--font-sans);font-size:0.625rem;letter-spacing:0.25em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 85%,transparent)}
.dhs-ph-subject{font-family:var(--font-serif,serif);font-size:1.125rem;margin-top:0.35rem;color:color-mix(in srgb,var(--bark) 80%,transparent)}
.dhs-ph-tag{font-family:var(--font-sans);font-size:0.625rem;letter-spacing:0.15em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 75%,transparent);margin-top:0.5rem}
.dhs-tile-name{font-family:var(--font-serif,serif);font-weight:400;font-size:1.125rem;margin:1.25rem 0 0;color:var(--bark)}
.dhs-tile-desc{font-size:0.875rem;line-height:1.6;color:color-mix(in srgb,var(--bark) 75%,transparent);margin:0.75rem 0 0}
.dhs-tile-note{font-family:var(--font-sans);font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 72%,transparent);margin-top:1rem}
.dhs-tile:hover .dhs-tile-name{color:color-mix(in srgb,var(--clay) 90%,var(--bark))}

/* Includes / amenities two-column list */
.dhs-eyebrow{font-family:var(--font-sans);font-size:0.72rem;letter-spacing:0.35em;text-transform:uppercase;color:var(--bark);margin:0;text-align:center}
@media(min-width:768px){.dhs-eyebrow{text-align:left}}
.dhs-rule--eyebrow{margin-left:auto;margin-right:auto}
@media(min-width:768px){.dhs-rule--eyebrow{margin-left:0}}
.dhs-list{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:1fr;column-gap:3rem;row-gap:0.75rem}
@media(min-width:768px){.dhs-list{grid-template-columns:repeat(2,1fr)}}
.dhs-list li{font-size:0.9375rem;line-height:1.6;color:color-mix(in srgb,var(--bark) 85%,transparent);border-top:1px solid color-mix(in srgb,var(--bark) 10%,transparent);padding-top:0.75rem}

/* Back link (detail + building pages) */
.dhs-back{display:inline-block;margin-top:1.5rem;font-family:var(--font-sans);font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 60%,transparent)}
.dhs-back:hover{color:var(--clay)}

/* Gallery: accessible static scroll-snap row (no JS; all photos in the DOM) */
.dhs-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0.5rem;background:var(--bark)}
.dhs-gallery img{flex:0 0 100%;width:100%;aspect-ratio:16/9;object-fit:cover;scroll-snap-align:center}
.dhs-gallery-note{font-family:var(--font-sans);font-size:0.6875rem;letter-spacing:0.15em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 45%,transparent);text-align:center;margin-top:0.75rem}

/* Two-up */
.dhs-twoup{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:768px){.dhs-twoup{grid-template-columns:repeat(2,1fr);gap:2rem}}
.dhs-twoup img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bark)}

/* Description prose */
.dhs-desc p{font-family:var(--font-serif,serif);font-size:1.0625rem;line-height:1.75;color:color-mix(in srgb,var(--bark) 85%,transparent);margin:1.5rem 0 0}
@media(min-width:768px){.dhs-desc{text-align:center}}

/* Level pair (building pages) */
.dhs-levelpair{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:768px){.dhs-levelpair{grid-template-columns:repeat(2,1fr);gap:3.5rem}}
.dhs-levelcol img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--bark)}
.dhs-levelcol h3{font-family:var(--font-serif,serif);font-weight:400;font-size:1.5rem;margin:1.5rem 0 0;color:var(--bark)}
.dhs-levelcol p{font-size:0.9375rem;line-height:1.6;color:color-mix(in srgb,var(--bark) 85%,transparent);margin:1.25rem 0 0}
.dhs-levelcol .dhs-more{display:inline-block;margin-top:1.25rem;font-family:var(--font-sans);font-size:0.6875rem;letter-spacing:0.28em;text-transform:uppercase;color:color-mix(in srgb,var(--bark) 70%,transparent)}
.dhs-levelcol:hover .dhs-more{color:var(--clay)}

/* Gallery / two-up "Photo to come" placeholder (unshot pages, e.g. Chef's Suite) */
.dhs-gph{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bark) 5%,var(--ivory));border:1px dashed color-mix(in srgb,var(--clay) 90%,transparent)}
.dhs-gallery .dhs-gph{flex:0 0 100%;width:100%;aspect-ratio:16/9;scroll-snap-align:center}
.dhs-twoup .dhs-gph{aspect-ratio:4/3}
.dhs-gallery:focus-visible{outline:2px solid var(--bark);outline-offset:2px}
