:root {
        --bg-body: #ffffff;
        --bg-secondary: #f8f7f5;
        --bg-header: #454545;
        --text-primary: #111111;
        --text-secondary: #666666;
        --border-light: #e8e5e0;
        --container-padding: 8vw;
        --section-gap: 130px;
      }
*,
      *::before,
      *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
        margin: 0;
        background-color: var(--bg-body);
        color: var(--text-primary);
        font-family: "Manrope", sans-serif;
        -webkit-font-smoothing: antialiased;
        overflow-x: hidden;
        line-height: 1.6;
      }
a, a:visited, a:active {
        text-decoration: none !important;
        color: inherit;
        transition: 0.25s ease;
      }
.hero {
        height: 92vh;
        min-height: 600px;
        width: 100%;
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: flex-end;
        justify-content: flex-start;
      }
.hero-bg {
        position: absolute;
        inset: 0;
        background-image: url("https://enmassebespoke.com/wp-content/uploads/2026/04/DC4985-010-scaled.jpg");
        background-size: cover;
        background-position: center 30%;
        z-index: 1;
      }
.hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(
          to top,
          rgba(0, 0, 0, 0.72) 0%,
          rgba(0, 0, 0, 0.15) 55%,
          rgba(0, 0, 0, 0.08) 100%
        );
        z-index: 2;
      }
.hero-content {
        position: relative;
        z-index: 3;
        color: #fff;
        padding: 0 var(--container-padding) 72px;
        width: 100%;
        max-width: 1800px;
        margin: 0 auto;
      }
.commission-label {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2.5px;
        color: rgba(255, 255, 255, 0.5);
        display: block;
        margin-bottom: 18px;
        font-weight: 600;
      }
.hero-content h1 {
        font-family: "Playfair Display", serif;
        font-size: clamp(3.5rem, 7vw, 7rem);
        margin: 0 0 16px;
        font-style: italic;
        font-weight: 400;
        letter-spacing: -1px;
        line-height: 1.0;
      }
.hero-meta {
        display: flex;
        gap: 32px;
        align-items: center;
        flex-wrap: wrap;
      }
.hero-meta span {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.55);
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: 500;
      }
.hero-meta .sep {
        width: 1px;
        height: 14px;
        background: rgba(255, 255, 255, 0.25);
      }
.container {
        padding: 0 var(--container-padding);
        max-width: 1800px;
        margin: 0 auto;
      }
section { padding: var(--section-gap) 0; }
.section-label {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2.5px;
        color: var(--text-secondary);
        margin-bottom: 18px;
        display: block;
        font-weight: 600;
      }
h2 {
        font-family: "Playfair Display", serif;
        font-size: clamp(2rem, 3.8vw, 3.2rem);
        line-height: 1.15;
        color: var(--text-primary);
        margin-bottom: 28px;
        font-weight: 400;
      }
p {
        font-size: 15px;
        color: var(--text-secondary);
        font-weight: 300;
        max-width: 600px;
        line-height: 1.9;
        margin-bottom: 20px;
      }
.btn-line {
        display: inline-block;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 1.8px;
        color: var(--text-primary) !important;
        border-bottom: 1px solid currentColor;
        padding-bottom: 5px;
        margin-top: 36px;
        font-weight: 600;
        transition: opacity 0.2s;
      }
.btn-line:hover { opacity: 0.45; }
.btn-outline {
        display: inline-block;
        padding: 16px 44px;
        border: 1px solid currentColor;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: 600;
        background: transparent;
        transition: background 0.25s, color 0.25s, border-color 0.25s;
      }
.btn-outline:hover {
        background: var(--text-primary);
        color: #fff !important;
        border-color: var(--text-primary);
      }
.btn-outline--light {
        color: #fff !important;
        border-color: rgba(255, 255, 255, 0.6);
      }
.btn-outline--light:hover {
        background: #fff !important;
        color: var(--text-primary) !important;
        border-color: #fff;
      }
#intro {
        padding-top: 64px;
        padding-bottom: 90px;
      }
.intro-grid {
        display: grid;
        grid-template-columns: 1.1fr 0.9fr;
        gap: 120px;
        align-items: start;
      }
.intro-text h2 {
        font-style: italic;
        font-size: clamp(2rem, 3.2vw, 3rem);
        max-width: 520px;
      }
.intro-text p { max-width: 520px; }
.spec-panel {
        border-top: 1px solid var(--border-light);
        padding-top: 8px;
      }
.spec-row {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 18px 0;
        border-bottom: 1px solid var(--border-light);
        gap: 20px;
      }
.spec-label {
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: var(--text-secondary);
        font-weight: 600;
        flex-shrink: 0;
        min-width: 120px;
      }
.spec-value {
        font-size: 14px;
        color: var(--text-primary);
        font-weight: 400;
        text-align: right;
        font-family: "Playfair Display", serif;
      }
.feature-image-full {
        width: 100%;
        height: 75vh;
        min-height: 500px;
        overflow: hidden;
        position: relative;
        cursor: pointer;
      }
.feature-image-full img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 40%;
        transition: transform 1s ease;
        display: block;
      }
.feature-image-full:hover img { transform: scale(1.02); }
.feature-image-full .expand-hint {
        position: absolute;
        bottom: 28px;
        right: 32px;
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: rgba(255,255,255,0.7);
        font-weight: 600;
        pointer-events: none;
        display: flex;
        align-items: center;
        gap: 8px;
      }
.feature-image-full .expand-hint::before {
        content: '';
        display: block;
        width: 18px;
        height: 18px;
        border: 1px solid rgba(255,255,255,0.6);
        border-radius: 50%;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E") center / 10px no-repeat;
      }
.story-section {
        background-color: var(--bg-secondary);
      }
.story-grid {
        display: grid;
        grid-template-columns: 0.8fr 1.2fr;
        gap: 120px;
        align-items: start;
      }
.story-aside {
        position: sticky;
        top: 120px;
      }
.story-aside h2 {
        font-style: italic;
        font-size: clamp(1.8rem, 2.8vw, 2.6rem);
        line-height: 1.2;
      }
.story-body p { max-width: 100%; }
.story-body p + p { margin-top: 4px; }
.pull-quote {
        font-family: "Playfair Display", serif;
        font-size: clamp(1.3rem, 2vw, 1.7rem);
        font-style: italic;
        color: var(--text-primary);
        font-weight: 400;
        line-height: 1.55;
        border-left: 2px solid var(--text-primary);
        padding-left: 28px;
        margin: 48px 0;
        max-width: 100%;
      }
.paired-images {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px;
      }
.paired-images .img-wrap {
        overflow: hidden;
        cursor: pointer;
      }
.paired-images .img-wrap img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        aspect-ratio: 4/5;
      }
.paired-images .img-wrap:hover img { transform: scale(1.04); }
.gallery-section { padding-top: 80px; padding-bottom: 140px; }
.gallery-header {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        margin-bottom: 48px;
      }
.gallery-header h2 { margin-bottom: 0; }
.gallery-count {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: var(--text-secondary);
        font-weight: 600;
      }
.gallery-columns {
        columns: 3;
        column-gap: 12px;
      }
.gallery-thumb {
        break-inside: avoid;
        margin-bottom: 12px;
        overflow: hidden;
        cursor: pointer;
        position: relative;
        background: #ede9e3;
      }
.gallery-thumb img {
        width: 100%;
        height: auto;
        display: block;
        transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      }
.gallery-thumb:hover img { transform: scale(1.04); }
.gallery-thumb .thumb-overlay {
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0);
        transition: background 0.3s;
        display: flex;
        align-items: center;
        justify-content: center;
      }
.gallery-thumb:hover .thumb-overlay {
        background: rgba(0,0,0,0.18);
      }
.thumb-overlay svg {
        opacity: 0;
        transition: opacity 0.3s;
      }
.gallery-thumb:hover .thumb-overlay svg {
        opacity: 1;
      }
.partners-strip {
        border-top: 1px solid var(--border-light);
        border-bottom: 1px solid var(--border-light);
        padding: 64px var(--container-padding);
      }
.partners-strip .section-label {
        text-align: center;
        display: block;
        margin-bottom: 48px;
      }
.partner-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 52px 80px;
      }
.partner-logo {
        height: 20px;
        width: auto;
        filter: brightness(0);
        opacity: 0.35;
        transition: opacity 0.25s;
      }
.partner-logo:hover { opacity: 0.75; }
.next-commission {
        display: grid;
        grid-template-columns: 1fr 1fr;
      }
.next-commission .nc-image {
        overflow: hidden;
        height: 520px;
      }
.next-commission .nc-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
        transition: transform 0.8s ease;
      }
.next-commission:hover .nc-image img { transform: scale(1.04); }
.next-commission .nc-info {
        background: var(--bg-secondary);
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 80px;
      }
.next-commission .nc-info h2 {
        font-style: italic;
      }
.final-cta {
        background-color: var(--bg-header);
        color: #fff;
        text-align: center;
        padding: 140px 20px;
      }
.final-cta .section-label { color: rgba(255,255,255,0.4); }
.final-cta h2 {
        color: #fff;
        font-style: italic;
        max-width: 660px;
        margin: 0 auto 24px auto;
      }
.final-cta p {
        color: rgba(255,255,255,0.5) !important;
        margin: 0 auto 52px auto !important;
        text-align: center;
        max-width: 400px;
      }
.lightbox {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(10, 10, 10, 0.96);
        z-index: 9999;
        align-items: center;
        justify-content: center;
        flex-direction: column;
      }
.lightbox.open { display: flex; }
.lightbox-close {
        position: fixed;
        top: 28px;
        right: 32px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 8px;
        color: rgba(255,255,255,0.6);
        font-size: 28px;
        line-height: 1;
        transition: color 0.2s;
        z-index: 10001;
        font-family: "Manrope", sans-serif;
        font-weight: 300;
      }
.lightbox-close:hover { color: #fff; }
.lightbox-nav {
        position: fixed;
        top: 50%;
        transform: translateY(-50%);
        background: none;
        border: 1px solid rgba(255,255,255,0.2);
        color: rgba(255,255,255,0.7);
        width: 48px;
        height: 48px;
        border-radius: 50%;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s, color 0.2s, border-color 0.2s;
        z-index: 10001;
      }
.lightbox-nav:hover {
        background: rgba(255,255,255,0.1);
        border-color: rgba(255,255,255,0.5);
        color: #fff;
      }
.lightbox-prev { left: 28px; }
.lightbox-next { right: 28px; }
.lightbox-nav svg {
        width: 18px;
        height: 18px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.5;
      }
.lightbox-counter {
        font-size: 11px;
        color: rgba(255,255,255,0.4);
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: 600;
      }
.lightbox-caption {
        font-size: 12px;
        color: rgba(255,255,255,0.35);
        text-transform: uppercase;
        letter-spacing: 1.5px;
        font-weight: 500;
      }
.lightbox-bg {
        position: fixed;
        inset: 0;
        z-index: 9998;
        cursor: pointer;
      }
@media (max-width: 1024px) {
.intro-grid,
        .story-grid,
        .next-commission { grid-template-columns: 1fr; }
.intro-grid { gap: 60px; }
.story-grid { gap: 60px; }
.story-aside { position: static; }
.gallery-columns { columns: 2; }
.next-commission .nc-image { height: 360px; }
.next-commission .nc-info { padding: 60px var(--container-padding); }
.lightbox-prev { left: 12px; }
.lightbox-next { right: 12px; }
.paired-images { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
:root {
          --section-gap: 90px;
          --container-padding: 6vw;
        }
.gallery-columns { columns: 1; }
.hero-content h1 { letter-spacing: -0.5px; }
}

/* Fix: .container (later in file) was overriding .hero-content's bottom padding */
.hero .hero-content.container {
        padding: 0 var(--container-padding) 72px;
}

.lightbox-img-wrap {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
      }
.lightbox-img-wrap img {
        display: block;
        user-select: none;
      }
/* Desktop: landscape fills the screen; portrait runs full height */
.lightbox.is-landscape .lightbox-img-wrap img {
        width: 100vw;
        height: 100vh;
        object-fit: cover;
      }
.lightbox.is-portrait .lightbox-img-wrap img {
        height: 100vh;
        width: auto;
        max-width: 100vw;
        object-fit: contain;
      }
/* Fallback before orientation is known */
.lightbox:not(.is-landscape):not(.is-portrait) .lightbox-img-wrap img {
        max-width: 100vw;
        max-height: 100vh;
      }
/* Counter/caption float over the image */
.lightbox-footer {
        position: fixed;
        bottom: 22px;
        left: 50%;
        transform: translateX(-50%);
        margin: 0;
        z-index: 10001;
        display: flex;
        align-items: center;
        gap: 32px;
        text-shadow: 0 1px 8px rgba(0,0,0,0.7);
      }
@media (max-width: 768px) {
  /* Mobile: portrait fills the screen; landscape spans device width */
  .lightbox.is-portrait .lightbox-img-wrap img {
        width: 100vw;
        height: 100vh;
        object-fit: cover;
      }
  .lightbox.is-landscape .lightbox-img-wrap img {
        width: 100vw;
        height: auto;
        max-height: 100vh;
        object-fit: contain;
      }
}
