@font-face {
    font-family: "Instrument Serif";
    src: url("../fonts/instrument-serif-regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Instrument Serif";
    src: url("../fonts/instrument-serif-italic.woff2") format("woff2");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

:root {
    --ink: #171715;
    --obsidian: #0d0d0d;
    --ivory: #f4f0e8;
    --paper: #fbfaf7;
    --champagne: #b99b72;
    --muted: #6b665f;
    --line: rgba(23, 23, 21, 0.2);
    --line-light: rgba(244, 240, 232, 0.26);
    --display: "Instrument Serif", Georgia, serif;
    --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
    --content: min(1440px, calc(100vw - 80px));
    --pad: clamp(6rem, 10vw, 11rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body {
    margin: 0;
    overflow-x: clip;
    background: var(--ivory);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { display: block; width: 100%; height: auto; }
figure { margin: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--champagne); color: var(--obsidian); }
:focus-visible { outline: 1px solid var(--champagne); outline-offset: 5px; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
    font-family: var(--display);
    font-weight: 400;
    line-height: 0.96;
    letter-spacing: -0.025em;
}
h1 { font-size: clamp(3.7rem, 6vw, 6.3rem); }
h2 { font-size: clamp(2.9rem, 4.2vw, 4.6rem); }
h3 { font-size: clamp(2rem, 3vw, 3.5rem); }

.skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 9999;
    padding: 10px 16px;
    background: var(--paper);
    color: var(--ink);
    transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
    position: absolute;
    inset: 0 0 auto;
    z-index: 100;
    display: grid;
    grid-template-columns: minmax(250px, 1fr) auto 48px;
    align-items: center;
    gap: 30px;
    width: 100%;
    padding: 28px 40px;
    border-bottom: 1px solid var(--line);
}
.yy-home .site-header,
.yy-landing .site-header,
.yy-photobooks .site-header {
    background: rgba(13, 13, 13, .74);
    color: #fff;
    border-color: rgba(255,255,255,.3);
}
.wordmark {
    display: inline-flex;
    flex-direction: column;
    justify-self: start;
    text-decoration: none;
    line-height: 1;
}
.wordmark span { font-size: 18px; letter-spacing: .23em; }
.wordmark small { margin-top: 8px; font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(17px, 1.9vw, 36px); }
.site-nav a, .header-inquire, .language-switch {
    position: relative;
    font-size: 11px;
    letter-spacing: .15em;
    text-decoration: none;
    text-transform: uppercase;
}
.site-nav a::after, .header-inquire::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -7px;
    height: 1px;
    background: currentColor;
    transition: right .35s ease;
}
.site-nav a:hover::after, .header-inquire:hover::after { right: 0; }
.site-nav__inquire { margin-left: 20px; }
.language-switch { justify-self: end; }
.header-inquire { justify-self: end; }
.nav-toggle { display: none; }

.eyebrow {
    margin-bottom: 24px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .18em;
    line-height: 1.35;
    text-transform: uppercase;
}
.section-dark .eyebrow, .photobooks-hero .eyebrow, .landing-hero .eyebrow, .hero .eyebrow { color: rgba(244,240,232,.66); }
.section-pad { padding: var(--pad) max(40px, calc((100vw - 1440px) / 2)); }
.section-dark { background: var(--obsidian); color: var(--ivory); }
.narrow { width: min(780px, calc(100% - 40px)); margin: 0 auto; }
.lead-copy { font-family: var(--display); font-size: clamp(1.9rem, 3.2vw, 3.75rem); line-height: 1.12; }
.display-lead { font-family: var(--display); font-size: clamp(2rem, 3.6vw, 4.25rem); line-height: 1.08; }
.text-link {
    display: inline-flex;
    align-items: center;
    padding: 0 0 10px;
    border: 0;
    border-bottom: 1px solid var(--ink);
    background: none;
    color: var(--ink);
    cursor: pointer;
    font-size: 10px;
    letter-spacing: .17em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .25s ease, border-color .25s ease;
}
.text-link:hover { color: var(--champagne); border-color: var(--champagne); }
.text-link--light { color: var(--ivory); border-color: rgba(244,240,232,.7); }
.reveal { opacity: 1; transform: none; }

.hero {
    position: relative;
    display: grid;
    grid-template-columns: 42% 58%;
    height: 100svh;
    min-height: 100svh;
    overflow: hidden;
    background: var(--obsidian);
    color: var(--ivory);
}
.hero__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 150px 5vw 7.5vh 40px;
}
.hero__copy h1 { max-width: 11ch; margin-bottom: 42px; font-size: clamp(4.2rem, 5.4vw, 6.4rem); }
.hero__image { height: 100svh; min-height: 0; }
.hero__image img { height: 100%; object-fit: cover; object-position: center; }
.hero__index {
    position: absolute;
    right: 28px;
    bottom: 28px;
    color: rgba(255,255,255,.7);
    font-size: 9px;
    letter-spacing: .18em;
}

.manifesto {
    display: grid;
    grid-template-columns: minmax(110px, .44fr) minmax(280px, 1.14fr) minmax(0, 1.42fr);
    gap: clamp(30px, 4.4vw, 72px);
    align-items: start;
}
.manifesto h2 { max-width: 11ch; }
.manifesto .lead-copy { max-width: 20ch; margin: 56px 0; color: #312f2b; }
.manifesto__image { margin-top: 70px; overflow: hidden; }
.manifesto__image img { aspect-ratio: 2 / 3; object-fit: cover; object-position: center; }

.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.15fr); gap: 7vw; margin-bottom: 80px; }
.section-heading h2 { max-width: 9ch; }
.section-heading--light h2 { color: var(--ivory); }
.google-reviews-section {
    display: grid;
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
    gap: clamp(72px, 6vw, 110px);
    align-items: center;
    padding-block: clamp(64px, 6vw, 92px);
}
.google-reviews-intro {
    grid-column: 1;
    min-width: 0;
    width: 100%;
    align-self: center;
}
.google-reviews-intro .eyebrow { margin: 0 0 24px; }
.google-reviews-intro h2 {
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(2.75rem, 3.2vw, 3.8rem);
    text-align: left;
    transform: none !important;
}
.google-reviews-widget {
    grid-column: 2;
    min-width: 0;
    overflow: hidden;
    align-self: center;
}
@media (max-width: 900px) {
    .google-reviews-section { grid-template-columns: 1fr; gap: 38px; padding-block: 64px; }
    .google-reviews-intro h2 { max-width: 12ch; }
    .google-reviews-widget { overflow: visible; }
}
.story-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto auto;
    gap: 22px;
    align-items: start;
    margin-bottom: 76px;
}
.story-grid a { display: block; overflow: hidden; }
.story-grid a img { transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.story-grid a:hover img { transform: scale(1.025); }
.story-grid__wide { grid-column: 1 / 8; grid-row: 1; }
.story-grid__wide img { aspect-ratio: 3 / 2; object-fit: cover; }
.story-grid__portrait { grid-column: 9 / 13; grid-row: 1 / 3; margin-top: 9vw; }
.story-grid__portrait img { aspect-ratio: 2 / 3; object-fit: cover; }
.story-grid__small { grid-column: 2 / 6; grid-row: 2; margin-top: 6vw; }
.story-grid__small img { aspect-ratio: 4 / 3; object-fit: cover; }
.story-grid blockquote {
    grid-column: 6 / 9;
    grid-row: 2;
    align-self: center;
    margin: 9vw 0 0;
    color: rgba(244,240,232,.82);
    font-family: var(--display);
    font-size: clamp(1.7rem, 2.6vw, 3rem);
    font-style: italic;
    line-height: 1.1;
}

.about-preview {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
    gap: 9vw;
    align-items: center;
}
.about-preview__image img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 25%; }
.about-preview__copy { max-width: 600px; }
.about-preview__copy h2 { margin-bottom: 48px; }
.about-preview__copy > p:not(.eyebrow) { max-width: 52ch; margin-bottom: 40px; }

.collections-preview { border-top: 1px solid var(--line); }
.collections-preview__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 48px;
    border-top: 1px solid var(--line);
}
.collections-preview__grid article { min-height: 330px; padding: 40px 34px; border-right: 1px solid var(--line); }
.collections-preview__grid article:last-child { border-right: 0; }
.collections-preview__grid h3 {
    min-height: 2.4em;
    margin-bottom: 42px;
    font-family: var(--sans);
    font-size: clamp(1.55rem, 2.25vw, 2.35rem);
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.collections-preview__grid p { margin-bottom: 28px; color: var(--muted); }
.collections-preview__grid .collection-card__selection {
    min-height: 2.8em;
    margin-bottom: 42px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .11em;
    line-height: 1.45;
    text-transform: uppercase;
}
.collections-preview__grid .collection-card__price { margin-bottom: 68px; }
.collections-preview__grid strong {
    display: block;
    color: var(--ink);
    font-family: var(--sans);
    font-size: clamp(2rem, 2.3vw, 2.4rem);
    font-variant-numeric: lining-nums tabular-nums;
    font-weight: 500;
    letter-spacing: -.025em;
    line-height: 1.15;
    white-space: nowrap;
}
.collections-preview__note { max-width: 66ch; margin: -12px 0 42px; color: var(--muted); font-size: 13px; }

.photobook-feature {
    position: relative;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 8vw;
    align-items: center;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 15% 18%, rgba(255,255,255,.045) 0 1px, transparent 1.5px) 0 0 / 11px 11px,
        radial-gradient(circle at 78% 68%, rgba(255,255,255,.028) 0 1px, transparent 1.4px) 0 0 / 17px 17px,
        var(--obsidian);
}
.photobook-feature__copy { max-width: 580px; }
.photobook-feature h2 { max-width: 9ch; margin-bottom: 40px; font-size: clamp(3rem, 4.2vw, 4.8rem); }
.photobook-feature__copy > p:not(.eyebrow) { max-width: 50ch; }
.photobook-feature__note { margin: 42px 0; padding-top: 24px; border-top: 1px solid var(--line-light); color: rgba(244,240,232,.68); font-size: 13px; }
.album-product {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #111;
    box-shadow: 0 36px 90px rgba(0,0,0,.34);
}
.album-product::after {
    content: "";
    position: absolute;
    inset: 14px;
    pointer-events: none;
    border: 1px solid rgba(244,240,232,.16);
}
.album-product img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}
.album-product figcaption {
    position: absolute;
    left: 26px;
    bottom: 24px;
    z-index: 1;
    max-width: calc(100% - 52px);
    padding: 10px 14px;
    color: rgba(244,240,232,.82);
    background: rgba(8,8,8,.68);
    backdrop-filter: blur(10px);
    font-size: 9px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.contact-strip {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    align-items: stretch;
    min-height: 660px;
}
.contact-strip figure img { height: 100%; object-fit: cover; }
.contact-strip > div { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 8vw; background: var(--paper); }
.contact-strip h2 { max-width: 8ch; margin-bottom: 50px; }

.page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 7vw;
    padding: clamp(190px, 22vw, 300px) max(40px, calc((100vw - 1440px) / 2)) clamp(90px, 12vw, 160px);
    border-bottom: 1px solid var(--line);
}
.page-hero h1 { grid-column: 2; max-width: 10ch; margin: 0; font-size: clamp(3.7rem, 5.2vw, 5.5rem); }
.page-hero > p:last-child { grid-column: 2; max-width: 56ch; margin: 36px 0 0; color: var(--muted); font-size: 18px; }
.page-hero > .eyebrow { grid-column: 1; grid-row: 1; }

/* Portfolio hero: desktop-only editorial split. */
@media (min-width: 901px) {
    .page-hero--portfolio {
        grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
        grid-template-rows: auto auto;
        column-gap: clamp(72px, 8vw, 132px);
        row-gap: 18px;
        align-items: start;
    }
    .page-hero--portfolio > .eyebrow { grid-column: 1; grid-row: 1; margin: 0; }
    .page-hero--portfolio > h1 { grid-column: 1; grid-row: 2; max-width: 8ch; margin: 0; }
    .page-hero--portfolio > p:last-child {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
        max-width: 48ch;
        margin: 0;
    }
}
.collections-page .page-hero {
    padding-top: clamp(160px, 15vw, 220px);
    padding-bottom: clamp(64px, 7vw, 96px);
}
.collections-page .page-hero h1 { max-width: 12ch; font-size: clamp(3.6rem, 5vw, 5.8rem); }

.portfolio-grid {
    width: var(--content);
    margin: 0 auto;
    padding: 50px 0 110px;
    column-count: 3;
    column-gap: 18px;
}
.portfolio-item {
    display: block;
    width: 100%;
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    background: none;
    break-inside: avoid;
    cursor: zoom-in;
    overflow: hidden;
}
.portfolio-item span { display: block; overflow: hidden; }
.portfolio-item img { transition: transform .8s cubic-bezier(.2,.7,.2,1), opacity .4s ease; }
.portfolio-item:hover img { transform: scale(1.018); }
.portfolio-more { padding: 0 20px 130px; text-align: center; }
.portfolio-status { min-height: 1.5em; margin-top: 18px; color: var(--muted); font-size: 12px; }

/* Portfolio 2.0 — real story first, curated work second, archive last. */
.portfolio-featured {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
    gap: clamp(54px, 7vw, 110px);
    align-items: center;
}
.portfolio-featured__copy { max-width: 520px; }
.portfolio-featured__copy h2 { max-width: 8ch; margin-bottom: 20px; }
.portfolio-featured__meta {
    margin-bottom: 34px;
    color: rgba(244,240,232,.58);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.portfolio-featured__intro { max-width: 46ch; margin-bottom: 42px; color: rgba(244,240,232,.78); }
.portfolio-featured__media {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    align-items: end;
    min-height: clamp(520px, 52vw, 780px);
}
.portfolio-featured__wide { grid-column: 1 / 10; grid-row: 1; align-self: start; overflow: hidden; }
.portfolio-featured__wide img { aspect-ratio: 3 / 2; object-fit: cover; }
.portfolio-featured__portrait { grid-column: 8 / 13; grid-row: 1; align-self: end; margin-bottom: 0; overflow: hidden; box-shadow: -24px 24px 60px rgba(0,0,0,.2); }
.portfolio-featured__portrait img { aspect-ratio: 2 / 3; object-fit: cover; }

.portfolio-selected .section-heading h2 { max-width: 11ch; }
.portfolio-selected__grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto auto;
    gap: 18px;
    align-items: start;
}
.portfolio-selected__grid figure { overflow: hidden; }
.portfolio-selected__grid img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-selected__landscape { grid-column: 1 / 8; grid-row: 1; }
.portfolio-selected__landscape img { aspect-ratio: 3 / 2; }
.portfolio-selected__portrait { grid-column: 9 / 13; grid-row: 1 / 3; margin-top: 7vw; }
.portfolio-selected__portrait img { aspect-ratio: 2 / 3; }
.portfolio-selected__square { grid-column: 2 / 6; grid-row: 2; margin-top: 5vw; }
.portfolio-selected__square img { aspect-ratio: 4 / 3; }
.portfolio-selected__portrait--low { grid-column: 6 / 9; grid-row: 2; margin-top: 11vw; }
.portfolio-selected__landscape--low { grid-column: 9 / 13; grid-row: 3; margin-top: -1vw; }
.portfolio-selected__landscape--low img { aspect-ratio: 4 / 3; }

.portfolio-archive-heading {
    width: var(--content);
    margin: 0 auto;
    padding: clamp(30px, 4vw, 64px) 0 0;
    border-top: 1px solid var(--line);
}
.portfolio-archive-heading h2 { max-width: 9ch; margin-bottom: 0; }

@media (max-width: 900px) {
    .portfolio-featured { grid-template-columns: 1fr; gap: 48px; }
    .portfolio-featured__copy { max-width: 620px; }
    .portfolio-featured__media { min-height: 0; }
    .portfolio-featured__wide { grid-column: 1 / 11; }
    .portfolio-featured__portrait { grid-column: 8 / 13; margin-top: 28vw; }

    .portfolio-selected__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .portfolio-selected__landscape { grid-column: 1 / -1; grid-row: 1; }
    .portfolio-selected__portrait { grid-column: 2; grid-row: 2 / 4; margin-top: 36px; }
    .portfolio-selected__square { grid-column: 1; grid-row: 2; margin-top: 0; }
    .portfolio-selected__portrait--low { grid-column: 1; grid-row: 3; margin-top: 12px; }
    .portfolio-selected__landscape--low { grid-column: 1 / -1; grid-row: 4; margin-top: 12px; }
    .portfolio-archive-heading { width: min(100% - 40px, 1440px); padding-top: 52px; }
}

@media (max-width: 520px) {
    .portfolio-featured__media { display: block; }
    .portfolio-featured__wide { width: 100%; }
    .portfolio-featured__portrait { width: 58%; margin: -18vw 0 0 auto; }
    .portfolio-featured__intro { margin-bottom: 34px; }
    .portfolio-selected__grid { display: block; }
    .portfolio-selected__grid figure { margin: 0 0 12px; }
    .portfolio-selected__portrait,
    .portfolio-selected__portrait--low { width: 72%; margin-left: auto; }
    .portfolio-archive-heading { width: calc(100% - 32px); }
}

.lightbox {
    width: 100vw;
    max-width: none;
    height: 100svh;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(8,8,8,.98);
    color: white;
}
.lightbox[open] { display: grid; grid-template-columns: 70px 1fr 70px; align-items: center; }
.lightbox::backdrop { background: rgba(0,0,0,.95); }
.lightbox figure { display: flex; align-items: center; justify-content: center; height: 100%; padding: 34px; touch-action: pan-y; user-select: none; }
.lightbox img { width: auto; max-width: 100%; height: auto; max-height: calc(100svh - 68px); object-fit: contain; opacity: 1; transform: scale(1); transition: opacity .18s ease, transform .18s ease; }
.lightbox img.is-changing { opacity: .55; transform: scale(.992); }
.lightbox button { z-index: 2; border: 0; background: none; color: white; cursor: pointer; font-size: 28px; }
.lightbox__close { position: absolute; top: 22px; right: 28px; width: 48px; height: 48px; }
.lightbox__prev { grid-column: 1; }
.lightbox figure { grid-column: 2; grid-row: 1; }
.lightbox__next { grid-column: 3; }

.about-hero {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 8vw;
    align-items: end;
    padding-top: clamp(180px, 18vw, 250px);
}
.about-hero h1 { margin-bottom: 54px; }
.about-hero .display-lead { max-width: 14ch; }
.about-hero figure img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 25%; }
.about-statement, .about-team { display: grid; grid-template-columns: 1.05fr .95fr; gap: 8vw; align-items: center; }
.about-statement figure img { aspect-ratio: 3 / 4; object-fit: cover; }
.about-statement h2, .about-team h2 { max-width: 10ch; margin-bottom: 46px; font-size: clamp(3rem, 4.1vw, 4.7rem); }
.about-statement__copy > p:not(.eyebrow), .about-team__copy > p:not(.eyebrow) { max-width: 52ch; margin-bottom: 24px; }
.about-copy-block { max-width: 52ch; margin-top: 54px; padding-top: 34px; border-top: 1px solid var(--line); }
.about-copy-block .eyebrow { margin-bottom: 18px; }
.about-copy-block h3 { max-width: 15ch; margin-bottom: 24px; font-size: clamp(2rem, 2.6vw, 3rem); }
.about-copy-block p:last-child { margin-bottom: 0; }
.about-team {
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
    gap: 7vw;
    align-items: start;
    padding-bottom: clamp(72px, 8vw, 118px);
}
.about-team__copy { padding-top: clamp(22px, 3vw, 48px); }
.about-team__visual {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(210px, .72fr);
    gap: clamp(24px, 3vw, 44px);
    align-items: end;
}
.about-team__portrait img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 86%;
}
.about-team__client { padding: 28px 0 8px; border-top: 1px solid var(--line-light); }
.about-team__client .eyebrow { margin-bottom: 18px; }
.about-team__client h3 { max-width: 12ch; margin-bottom: 22px; font-size: clamp(2rem, 2.6vw, 3rem); }
.about-team__client p:last-child { max-width: 36ch; margin-bottom: 0; color: rgba(244,240,232,.76); }
.about-credentials { padding-top: 0; }
.about-credentials__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.about-credential,
.about-credential--wide {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 1fr;
    align-content: start;
    min-height: 300px;
    padding: clamp(38px, 3.6vw, 54px);
    border-right: 1px solid var(--line-light);
    border-bottom: 1px solid var(--line-light);
}
@media (min-width: 901px) {
    .about-credentials__grid > .about-credential:nth-child(even) { border-right: 0; }
    .about-credentials__grid > .about-credential:nth-last-child(-n+2) { border-bottom: 0; }
}
.about-credential .eyebrow,
.about-credential--wide .eyebrow {
    grid-column: 1;
    grid-row: auto;
    margin-bottom: 28px;
    align-self: start;
}
.about-credential h3,
.about-credential--wide h3 {
    grid-column: 1;
    grid-row: auto;
    max-width: 14ch;
    margin-bottom: 20px;
    font-size: clamp(2rem, 2.55vw, 2.9rem);
}
.about-community-title__latin {
    display: inline-block;
    letter-spacing: .045em;
    font-kerning: none;
}
.about-credential p:last-child,
.about-credential--wide p:last-child {
    grid-column: 1;
    grid-row: auto;
    max-width: 48ch;
    margin-bottom: 0;
    color: rgba(244,240,232,.74);
}

.collection-list { border-top: 1px solid var(--line); }
.collection {
    display: grid;
    grid-template-columns: .9fr 1.35fr .75fr;
    gap: 5vw;
    width: var(--content);
    margin: 0 auto;
    padding: 78px 0 90px;
    border-bottom: 1px solid var(--line);
}
.collection__number { color: var(--muted); font-size: 10px; letter-spacing: .18em; }
.collection h2 {
    margin: 0 0 20px;
    font-family: var(--sans);
    font-size: clamp(1.75rem, 2.7vw, 2.8rem);
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.18;
    overflow-wrap: anywhere;
}
.collection__preferred { color: var(--champagne); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.collection__selection {
    max-width: 32ch;
    margin: 26px 0 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.45;
    text-transform: uppercase;
}
.collection__selection--limit { color: var(--ink); }
.collection__price {
    margin-top: 50px;
    font-family: var(--sans);
    font-size: clamp(2.15rem, 2.8vw, 2.8rem);
    font-variant-numeric: lining-nums tabular-nums;
    font-weight: 500;
    letter-spacing: -.03em;
    line-height: 1.15;
    white-space: nowrap;
}
.collection__price small { display: block; margin-top: 12px; color: var(--muted); font-family: var(--sans); font-size: 12px; }
.collection ul { margin: 34px 0 0; padding: 0; list-style: none; }
.collection li { padding: 12px 0; border-bottom: 1px solid rgba(23,23,21,.1); font-size: 14px; line-height: 1.5; }
.collection footer { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; }
.collection footer p { color: var(--muted); font-size: 12px; }
.extras { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 9vw; overflow: hidden; }
.extras > * { min-width: 0; }
.extras h2 {
    max-width: none;
    width: 100%;
    font-size: clamp(2.7rem, 10vw, 3.8rem);
    line-height: 0.98;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.extras ol { margin: 20px 0 0; padding: 0; list-style: none; counter-reset: extras; }
.extras li { position: relative; padding: 22px 0 22px 54px; border-bottom: 1px solid var(--line); counter-increment: extras; }
.extras li::before { content: "0" counter(extras); position: absolute; left: 0; color: var(--muted); font-size: 10px; letter-spacing: .12em; }

.faq-section {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: 9vw;
    border-top: 1px solid var(--line);
}
.faq-section header { align-self: start; }
.faq-section h2 { max-width: 8ch; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 28px 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--display);
    font-size: clamp(1.55rem, 2.3vw, 2.6rem);
    line-height: 1.12;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary svg { flex: 0 0 24px; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.faq-list summary svg path:last-child { transform-origin: center; transition: transform .25s ease; }
.faq-list details[open] summary svg path:last-child { transform: rotate(90deg); }
.faq-list details p { max-width: 64ch; margin: -2px 60px 30px 0; color: var(--muted); }

.photobooks-hero {
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    gap: 8vw;
    align-items: center;
    min-height: 100svh;
    padding-top: clamp(180px, 18vw, 230px);
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 24%, rgba(255,255,255,.045) 0 1px, transparent 1.6px) 0 0 / 13px 13px,
        var(--obsidian);
}
.photobooks-hero h1 { max-width: 8ch; font-size: clamp(3.5rem, 4.6vw, 5.2rem); overflow-wrap: normal; }
.photobooks-hero .display-lead { max-width: 14ch; color: rgba(244,240,232,.76); }
.album-product--hero { width: min(100%, 920px); }
.photobooks-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; }
.photobooks-details > div:first-child > p:last-child { margin-top: 54px; padding-top: 30px; border-top: 1px solid var(--line); color: var(--muted); }
.album-sizes { border-top: 1px solid var(--line); }
.album-sizes article { display: flex; justify-content: space-between; gap: 40px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.album-sizes h2 { margin: 0; font-size: clamp(1.9rem, 3vw, 3.2rem); }
.album-sizes p { flex: 0 0 auto; margin: 0; font-size: clamp(1.9rem, 3vw, 3.2rem); line-height: 1; }
.album-mosaic { display: grid; grid-template-columns: .8fr 1.25fr .75fr; gap: 22px; align-items: center; padding-top: 20px; }
.album-mosaic figure:nth-child(2) { margin-top: 10vw; }
.album-mosaic img { aspect-ratio: 3 / 4; object-fit: cover; }
.album-mosaic figure:nth-child(2) img { aspect-ratio: 4 / 3; }
.center-cta { padding: 40px 20px 130px; text-align: center; }

.contact-layout {
    display: grid;
    grid-template-columns: minmax(340px, .88fr) minmax(0, 1.12fr);
    gap: 7vw;
    padding-top: clamp(150px, 12vw, 190px);
}
.contact-layout__intro h1 { max-width: 8ch; margin-bottom: 38px; font-size: clamp(3.7rem, 4.7vw, 5.25rem); }
.contact-layout__intro > p:not(.eyebrow) { max-width: 45ch; color: var(--muted); }
.contact-layout__intro figure { position: relative; margin-top: 54px; overflow: hidden; }
.contact-layout__intro figure::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); pointer-events: none; }
.contact-layout__intro figure img { aspect-ratio: 4 / 5; object-fit: cover; }
.direct-contact { display: flex; flex-direction: column; align-items: flex-start; margin-top: 36px; }
.direct-contact a { padding: 7px 0; text-decoration: none; border-bottom: 1px solid var(--line); }
.contact-layout__form { padding-top: 38px; }

.enquiry-form label { display: block; }
.enquiry-form label > span:not(.screen-reader-text) { display: block; margin-bottom: 9px; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.enquiry-form input:not([type="checkbox"]), .enquiry-form select, .enquiry-form textarea {
    width: 100%;
    margin-bottom: 30px;
    padding: 14px 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    outline: 0;
    transition: border-color .2s ease;
}
.enquiry-form input:focus, .enquiry-form select:focus, .enquiry-form textarea:focus { border-color: var(--champagne); }
.enquiry-form textarea { resize: vertical; }
.cf-turnstile { width: 100%; margin: 24px 0 8px; }
.check { display: flex !important; align-items: flex-start; gap: 12px; margin: 5px 0 30px; }
.check input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--ink); }
.check span { margin: 0 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; }
.check--consent span { color: var(--ink); }
.check--consent a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.honey { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.form-submit {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-top: 38px;
    padding: 24px 0;
    border: 0;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
    background: transparent;
    cursor: pointer;
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.form-submit b { font-size: 18px; font-weight: 400; }
.form-error { margin-top: 20px; color: #8a2929; font-size: 13px; }

.landing-hero { display: grid; grid-template-columns: 44% 56%; min-height: 100svh; background: var(--obsidian); color: var(--ivory); }
.landing-hero__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 160px 5vw 80px 40px; }
.landing-hero h1 { max-width: 6.5ch; margin-bottom: 42px; font-size: clamp(4.7rem, 8.5vw, 9.5rem); }
.landing-hero__copy > p:not(.eyebrow) { max-width: 46ch; margin-bottom: 44px; color: rgba(244,240,232,.72); }
.landing-hero figure img { height: 100svh; object-fit: cover; }
.trust-line { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 28px 40px; border-bottom: 1px solid var(--line); list-style: none; text-align: center; }
.trust-line li { border-right: 1px solid var(--line); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.trust-line li:last-child { border-right: 0; }
.landing-collections { display: grid; grid-template-columns: repeat(3, 1fr); width: var(--content); margin: 0 auto; padding: 90px 0; }
.landing-collections article { padding: 0 40px; border-right: 1px solid var(--line); text-align: center; }
.landing-collections article:last-child { border-right: 0; }
.landing-collections h2 { margin-bottom: 20px; font-family: var(--sans); font-size: clamp(1.65rem, 2.5vw, 2.7rem); font-weight: 500; letter-spacing: .1em; line-height: 1.18; }
.landing-form { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; }
.landing-form h2 { max-width: 8ch; }
.landing-form > div:first-child > p:last-child { max-width: 42ch; color: var(--muted); }

.thanks-page { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 100svh; }
.thanks-page figure img { height: 100svh; object-fit: cover; }
.thanks-page > div { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 150px 8vw 80px; }
.thanks-page h1 { max-width: 7ch; font-size: clamp(4.2rem, 7vw, 8rem); }
.thanks-page > div > p:not(.eyebrow) { max-width: 44ch; margin: 35px 0 50px; color: var(--muted); }

.generic-page { min-height: 70svh; padding: 190px 0 120px; }
.generic-page h1 { font-size: clamp(3.5rem, 7vw, 7rem); }
.generic-page h2 { font-size: clamp(2.5rem, 5vw, 4.5rem); }
.generic-page a { text-underline-offset: 4px; }
.legal-page { padding-top: 150px; }
.legal-hero {
    display: grid;
    grid-template-columns: 1fr;
    gap: 26px;
    width: var(--content);
    margin: 0 auto;
    padding: clamp(80px, 9vw, 135px) 0 clamp(58px, 7vw, 96px);
    border-bottom: 1px solid var(--line);
    text-align: center;
}
.legal-hero .eyebrow { margin-left: auto; margin-right: auto; }
.legal-hero h1 { max-width: 15ch; margin: 0 auto; font-size: clamp(3.4rem, 5.2vw, 6rem); overflow-wrap: normal; word-break: normal; hyphens: none; text-align: center; text-wrap: balance; }
.legal-content {
    width: min(820px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(70px, 8vw, 120px) 0 clamp(100px, 12vw, 170px);
    font-size: 16px;
    line-height: 1.75;
}
.legal-content > .wp-block-cover:first-child,
.legal-content > .wp-block-stackable-columns:first-child,
.legal-content > h1:first-child,
.legal-content > .wp-block-heading:first-child { display: none; }
.legal-content h1:first-of-type { display: none; }
.legal-content h1 { font-size: clamp(2.8rem, 5vw, 4.7rem); }
.legal-content h2 { margin: 70px 0 24px; font-size: clamp(2.1rem, 3.5vw, 3.35rem); line-height: 1.04; }
.legal-content h3 { margin: 48px 0 18px; font-size: clamp(1.65rem, 2.6vw, 2.35rem); line-height: 1.08; }
.legal-content p, .legal-content li { max-width: 72ch; }
.legal-content ul, .legal-content ol { padding-left: 1.3em; }
.legal-content img { max-width: 100%; height: auto; }
.legal-content > * { max-width: 100%; }
.error-page { min-height: 80svh; padding: 230px 40px 120px; text-align: center; }
.error-page h1 { margin-bottom: 50px; }

.site-footer { padding: 72px 40px 38px; background: var(--obsidian); color: var(--ivory); }
.site-footer__lead { width: min(1000px, 100%); margin: 0 auto 14vw; text-align: center; }
.site-footer__lead h2 { max-width: 8ch; margin: 0 auto 60px; }
.site-footer__bottom { display: grid; grid-template-columns: 1fr auto 1fr; gap: 60px; align-items: end; padding-top: 34px; border-top: 1px solid var(--line-light); }
.wordmark--footer { color: var(--ivory); }
.footer-contact { display: flex; flex-direction: column; text-align: center; }
.footer-contact a, .footer-legal a { color: rgba(244,240,232,.8); text-decoration: none; }
.footer-contact a { margin: 4px 0; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 20px; color: rgba(244,240,232,.5); font-size: 10px; }
.footer-legal button {
    padding: 0;
    border: 0;
    background: none;
    color: rgba(244,240,232,.8);
    cursor: pointer;
    font-size: inherit;
}

.cookie-banner {
    position: fixed;
    z-index: 1000;
    right: 24px;
    bottom: 24px;
    left: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 42px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px;
    border: 1px solid rgba(244,240,232,.18);
    background: rgba(13,13,13,.97);
    box-shadow: 0 24px 80px rgba(0,0,0,.3);
    color: var(--ivory);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner h2 { margin-bottom: 7px; font-family: var(--sans); font-size: 14px; font-weight: 500; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
.cookie-banner p { max-width: 70ch; margin-bottom: 0; color: rgba(244,240,232,.68); font-size: 12px; line-height: 1.55; }
.cookie-banner p a { text-underline-offset: 3px; }
.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; justify-content: flex-end; }
.cookie-action {
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid rgba(244,240,232,.42);
    background: transparent;
    color: var(--ivory);
    cursor: pointer;
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.cookie-action--primary { border-color: var(--ivory); background: var(--ivory); color: var(--obsidian); }
.cookie-link { padding: 8px 3px; border: 0; border-bottom: 1px solid rgba(244,240,232,.4); background: none; color: rgba(244,240,232,.8); cursor: pointer; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.cookie-dialog {
    width: min(620px, calc(100vw - 32px));
    max-height: min(760px, calc(100svh - 32px));
    padding: 0;
    border: 0;
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 30px 100px rgba(0,0,0,.38);
}
.cookie-dialog:not([open]) { display: none; }
.cookie-dialog::backdrop { background: rgba(7,7,7,.72); backdrop-filter: blur(5px); }
.cookie-dialog form { padding: clamp(26px, 5vw, 52px); }
.cookie-dialog header { position: relative; padding-right: 48px; }
.cookie-dialog h2 { margin-bottom: 38px; font-size: clamp(2.5rem, 6vw, 4.4rem); }
.cookie-dialog__close { position: absolute; top: -8px; right: 0; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; font-size: 24px; line-height: 1; }
.cookie-choice { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; padding: 22px 0; border-top: 1px solid var(--line); }
.cookie-choice strong { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.cookie-choice p { max-width: 50ch; margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.cookie-choice span { color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.cookie-choice input { width: 38px; height: 21px; accent-color: var(--obsidian); cursor: pointer; }
.cookie-save { width: 100%; margin-top: 24px; border-color: var(--obsidian); background: var(--obsidian); color: var(--ivory); }

.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 120;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 50%;
    background: rgba(15,15,15,.68);
    box-shadow: 0 12px 38px rgba(0,0,0,.18);
    color: #fff;
    cursor: pointer;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: opacity .25s ease, transform .25s ease, background .25s ease;
}
.back-to-top[hidden] { display: none; }
.back-to-top:hover { background: rgba(15,15,15,.88); transform: translateY(-2px); }
.back-to-top span { font-size: 18px; line-height: 1; }

@media (max-width: 1050px) {
    :root { --content: calc(100vw - 48px); }
    .site-header { padding-inline: 24px; grid-template-columns: minmax(215px, 1fr) auto 40px; }
    .site-nav { gap: 14px; }
    .site-nav a { font-size: 10px; letter-spacing: .12em; }
    .site-nav__inquire { margin-left: 0; }
    .collection { grid-template-columns: .85fr 1.15fr; }
    .collection footer { grid-column: 1 / -1; flex-direction: row; align-items: end; }
}

@media (max-width: 900px) {
    :root { --content: calc(100vw - 40px); --pad: 6.5rem; }
    h1 { font-size: clamp(3.25rem, 14vw, 5.8rem); }
    h2 { font-size: clamp(2.75rem, 11.5vw, 4.8rem); }
    .section-pad { padding-inline: 20px; }
    .site-header { position: absolute; grid-template-columns: minmax(0, 1fr) 48px 38px; gap: 8px; padding: 18px 20px; }
    .wordmark span { font-size: 15px; }
    .wordmark small { margin-top: 7px; font-size: 7px; }
    .nav-toggle { display: inline-flex; position: relative; z-index: 104; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 0; background: none; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
    .nav-toggle span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .nav-toggle i { display: block; position: absolute; left: 50%; width: 20px; height: 1px; margin-left: -10px; background: currentColor; transition: transform .3s ease; }
    .nav-toggle i:first-of-type { transform: translateY(-4px); }
    .nav-toggle i + i { transform: translateY(4px); }
    .nav-open .nav-toggle i:first-of-type { transform: rotate(45deg); }
    .nav-open .nav-toggle i:last-child { transform: rotate(-45deg); }
    .site-nav {
        position: fixed;
        inset: 0;
        z-index: 103;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 18px;
        padding: 90px 30px;
        background: var(--obsidian);
        color: var(--ivory);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-10px);
        transition: opacity .3s ease, transform .3s ease;
    }
    .nav-open .site-nav { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .site-nav a { font-family: var(--display); font-size: clamp(2.7rem, 12vw, 5rem); letter-spacing: -.02em; line-height: 1; text-transform: none; }
    .language-switch { position: relative; z-index: 104; display: grid; place-items: center; min-width: 38px; min-height: 44px; }
    .yy-home .site-header, .yy-landing .site-header, .yy-photobooks .site-header { mix-blend-mode: normal; }
    .header-inquire { display: none; }

    .hero, .landing-hero { display: block; min-height: 100svh; }
    .hero__image, .landing-hero figure { position: absolute; inset: 0; min-height: 100svh; }
    .hero__image::after, .landing-hero figure::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.38); }
    .hero__image img, .landing-hero figure img { height: 100svh; object-fit: cover; }
    .hero__copy, .landing-hero__copy { position: relative; z-index: 2; min-height: 100svh; justify-content: flex-end; padding: 140px 20px 54px; }
    .hero__copy h1, .landing-hero h1 { max-width: 9ch; margin-bottom: 32px; font-size: clamp(3.6rem, 15vw, 4.6rem); }
    .hero__index { z-index: 2; right: 20px; bottom: 24px; }

    .manifesto, .section-heading, .about-preview, .photobook-feature, .contact-strip, .about-hero, .about-statement, .about-team, .photobooks-hero, .photobooks-details, .contact-layout, .landing-form, .thanks-page, .page-hero, .extras, .faq-section { grid-template-columns: 1fr; }
    .manifesto, .section-heading { gap: 30px; }
    .manifesto__image { width: min(78vw, 480px); margin: 12px 0 16px auto; }
    .manifesto .lead-copy { margin: 40px 0; }
    .section-heading h2, .page-hero h1, .page-hero > p:last-child { grid-column: 1; }
    .story-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .story-grid__wide { grid-column: 1 / -1; grid-row: 1; }
    .story-grid__portrait { grid-column: 2; grid-row: 2; margin-top: 40px; }
    .story-grid__small { grid-column: 1; grid-row: 2; margin-top: 0; }
    .story-grid blockquote { grid-column: 1 / -1; grid-row: 3; margin: 45px 0 15px; }
    .about-preview { gap: 64px; }
    .about-preview__copy { order: -1; }
    .collections-preview__grid { grid-template-columns: 1fr; }
    .collections-preview__grid article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
    .collections-preview__grid h3 { min-height: 0; font-size: 1.75rem; }
    .photobook-feature { gap: 70px; }
    .album-product { width: min(100%, 760px); }
    .contact-strip { min-height: 0; }
    .contact-strip figure img { height: auto; aspect-ratio: 4 / 5; }
    .contact-strip > div { min-height: 480px; padding: 70px 20px; }

    .page-hero { padding: 155px 20px 78px; gap: 12px; }
    .page-hero h1 { margin-top: 20px; }
    .collections-page .page-hero { padding: 150px 20px 72px; }
    .collections-page .page-hero h1 { font-size: clamp(3.6rem, 14vw, 4.2rem); }
    .portfolio-grid { column-count: 2; column-gap: 10px; padding-top: 20px; }
    .portfolio-item { margin-bottom: 10px; }
    .lightbox[open] { grid-template-columns: 44px 1fr 44px; }
    .lightbox figure { padding: 10px; }
    .lightbox__close { top: 8px; right: 8px; }

    .about-hero, .photobooks-hero { padding-top: 150px; gap: 58px; }
    .about-statement, .about-team { gap: 60px; }
    .about-team__copy { padding-top: 0; }
    .about-team__visual { grid-template-columns: minmax(0, 1fr) minmax(190px, .72fr); }
    .about-credentials__grid { grid-template-columns: 1fr; }
    .about-credential, .about-credential--wide { display: block; min-height: 0; border-right: 0; }
    .about-credentials__grid > .about-credential:last-child { border-bottom: 0; }
    .about-credential--wide .eyebrow, .about-credential--wide h3, .about-credential--wide p:last-child { grid-column: auto; grid-row: auto; }
    .about-copy-block { margin-top: 40px; padding-top: 28px; }
    .collection { grid-template-columns: 1fr; gap: 20px; width: var(--content); }
    .collection footer { flex-direction: column; align-items: flex-start; gap: 30px; }
    .extras { gap: 30px; }
    .extras h2 {
        max-width: 12ch;
        font-size: clamp(2.8rem, 12vw, 4.2rem);
    }
    .faq-section { gap: 50px; }
    .faq-section h2 { max-width: 10ch; }
    .faq-list summary { padding: 24px 0; font-size: 1.65rem; }
    .faq-list details p { margin-right: 0; }
    .photobooks-hero { min-height: 0; }
    .photobooks-hero h1 { font-size: clamp(3.25rem, 13vw, 4.6rem); }
    .photobooks-details { gap: 70px; }
    .album-mosaic { grid-template-columns: 1fr 1fr; }
    .album-mosaic figure:nth-child(3) { grid-column: 1 / -1; width: 65%; margin: 20px auto 0; }
    .contact-layout { padding-top: 170px; gap: 50px; }
    .contact-layout__intro figure { margin-top: 55px; }
    .form-row { grid-template-columns: 1fr; gap: 0; }
    .trust-line { grid-template-columns: 1fr; gap: 14px; padding-inline: 20px; }
    .trust-line li { border-right: 0; }
    .landing-collections { grid-template-columns: 1fr; padding: 65px 0; }
    .landing-collections article { padding: 30px 0; border-right: 0; border-bottom: 1px solid var(--line); }
    .thanks-page figure img { height: 55svh; }
    .thanks-page > div { padding: 80px 20px 110px; }

    .legal-page { padding-top: 100px; }
    .legal-hero { grid-template-columns: 1fr; gap: 26px; padding: 65px 0 58px; text-align: center; }
    .legal-hero .eyebrow { margin-left: auto; margin-right: auto; }
    .legal-hero h1 { width: 100%; max-width: 100%; margin-inline: auto; font-size: clamp(3.05rem, 11.5vw, 4.4rem); text-align: center; text-wrap: balance; }
    .legal-content { padding-top: 72px; font-size: 15px; line-height: 1.72; }
    .legal-content > .wp-block-stackable-columns:not(:first-child) { position: static !important; top: auto !important; bottom: auto !important; margin: 0 !important; padding: 0 !important; }
    .legal-content > .wp-block-stackable-columns:not(:first-child) .stk-block-column { position: static !important; top: auto !important; bottom: auto !important; }

    .site-footer { padding: 64px 20px 30px; }
    .site-footer__bottom { grid-template-columns: 1fr; gap: 45px; text-align: left; }
    .footer-contact { align-items: flex-start; text-align: left; }
    .footer-legal { justify-content: flex-start; }
    .cookie-banner { right: 10px; bottom: 10px; left: 10px; grid-template-columns: 1fr; gap: 18px; padding: 19px; }
    .cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; }
    .cookie-link { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 520px) {
    .wordmark span { font-size: 14px; }
    .wordmark small { font-size: 7px; }
    .portfolio-grid { width: 100%; column-count: 1; column-gap: 0; }
    .portfolio-item { margin-bottom: 4px; }
    .collections-preview__grid article { padding-inline: 0; }
    .collections-preview__note { margin-top: 8px; }
    .album-sizes article { display: block; }
    .album-sizes p { margin-top: 14px; }
    .photobook-feature h2 { font-size: clamp(2.9rem, 13vw, 3.9rem); }
    .album-product figcaption { left: 14px; bottom: 14px; max-width: calc(100% - 28px); }
    .back-to-top { right: 14px; bottom: 14px; width: 48px; height: 48px; }
    .contact-layout__intro h1 { font-size: clamp(3.25rem, 13vw, 4rem); }
    .about-statement h2, .about-team h2 {
        font-size: clamp(2.75rem, 11.5vw, 3.8rem);
    }
    .about-team__visual { grid-template-columns: 1fr; gap: 26px; }
    .about-team__portrait { width: min(82vw, 440px); margin-left: auto; }
    .about-team__client { padding-top: 24px; }
    .about-credential { padding: 34px 0; border-right: 0; }
    .about-credentials__grid { border-left: 0; }
}

.about-preview__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
}
.instagram-link {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 10px 14px;
    border: 1px solid currentColor;
    color: var(--ink);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .15em;
    line-height: 1;
    text-transform: uppercase;
    transition: color .25s ease, background-color .25s ease;
}
.instagram-link:hover,
.instagram-link:focus-visible { background: var(--ink); color: var(--paper); }
.about-hero .instagram-link { margin-top: 30px; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
}


.site-footer__image {
    position: relative;
    width: 100%;
    height: clamp(300px, 38vw, 620px);
    overflow: hidden;
    margin-bottom: 64px;
}

.site-footer__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.site-footer__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.04),
        rgba(0,0,0,0.28)
    );
    pointer-events: none;
}

/* Contact form clarity — 2026-09-07 */
.enquiry-form input:not([type="checkbox"]),
.enquiry-form select,
.enquiry-form textarea {
    padding: 14px 15px;
    border: 1px solid rgba(23, 23, 21, .28);
    background: rgba(251, 250, 247, .5);
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.enquiry-form textarea {
    min-height: 170px;
    padding-top: 16px;
}
.enquiry-form input:not([type="checkbox"]):hover,
.enquiry-form select:hover,
.enquiry-form textarea:hover {
    border-color: rgba(23, 23, 21, .48);
}
.enquiry-form input:not([type="checkbox"]):focus,
.enquiry-form select:focus,
.enquiry-form textarea:focus {
    border-color: var(--champagne);
    background: var(--paper);
    box-shadow: 0 0 0 3px rgba(185, 155, 114, .14);
}


/* Pricing collection bands — 2026-09-07 */
.collections-page .collection {
    position: relative;
    isolation: isolate;
}
.collections-page .collection:nth-child(2) {
    color: var(--ivory);
    border-color: rgba(244, 240, 232, .24);
}
.collections-page .collection:nth-child(2) .collection__number,
.collections-page .collection:nth-child(2) .collection__selection,
.collections-page .collection:nth-child(2) footer p {
    color: rgba(244, 240, 232, .72);
}
.collections-page .collection:nth-child(2) .collection__preferred {
    display: inline-block;
    padding: 7px 10px;
    border: 1px solid rgba(199, 169, 130, .58);
    color: #d4b98f;
}
.collections-page .collection:nth-child(2) li {
    border-color: rgba(244, 240, 232, .16);
}
.collections-page .collection:nth-child(2) .text-link {
    color: var(--ivory);
    border-color: rgba(244, 240, 232, .72);
}
.collections-page .collection:nth-child(2) .text-link:hover {
    color: #d4b98f;
    border-color: #d4b98f;
}
/* Full-bleed pricing backgrounds — 2026-09-07 */
.collections-page .collection:nth-child(2)::before,
.collections-page .collection:nth-child(3)::before {
    content: "";
    position: absolute;
    inset-block: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    z-index: -1;
    pointer-events: none;
}
.collections-page .collection:nth-child(2)::before {
    background:
        radial-gradient(circle at 14% 18%, rgba(185, 155, 114, .22), transparent 34%),
        repeating-linear-gradient(118deg, rgba(244, 240, 232, .025) 0 1px, transparent 1px 7px),
        #181714;
}
.collections-page .collection:nth-child(3)::before {
    background:
        radial-gradient(circle at 88% 16%, rgba(185, 155, 114, .2), transparent 35%),
        linear-gradient(112deg, rgba(255, 255, 255, .34), transparent 52%),
        #ebe3d7;
}

.collections-page .collection-list {
    overflow-x: clip;
}


/* Homepage pricing cards — 2026-09-07 */
.home .collections-preview {
    overflow-x: clip;
}
.home .collections-preview__grid {
    position: relative;
    overflow: visible;
}
.home .collections-preview__grid article {
    position: relative;
    isolation: isolate;
}
.home .collections-preview__grid article:first-child {
    background:
        radial-gradient(circle at 12% 16%, rgba(255,255,255,.58), transparent 42%),
        linear-gradient(135deg, #ece8e2 0%, #ddd6cd 100%);
    box-shadow: inset 0 0 0 1px rgba(86, 76, 65, .10);
}
.home .collections-preview__grid article:nth-child(2) {
    color: var(--ivory);
    border-color: rgba(244, 240, 232, .2);
    background:
        radial-gradient(circle at 14% 18%, rgba(185, 155, 114, .22), transparent 36%),
        repeating-linear-gradient(118deg, rgba(244, 240, 232, .025) 0 1px, transparent 1px 7px),
        #181714;
}
.home .collections-preview__grid article:nth-child(2) p,
.home .collections-preview__grid article:nth-child(2) .collection-card__selection {
    color: rgba(244, 240, 232, .76);
}
.home .collections-preview__grid article:nth-child(2) strong,
.home .collections-preview__grid article:nth-child(2) .text-link {
    color: var(--ivory);
}
.home .collections-preview__grid article:nth-child(2) .text-link {
    border-color: rgba(244, 240, 232, .72);
}
.home .collections-preview__grid article:nth-child(2) .text-link:hover {
    color: #d4b98f;
    border-color: #d4b98f;
}
.home .collections-preview__grid article:nth-child(3) {
    background:
        radial-gradient(circle at 84% 14%, rgba(255,255,255,.6), transparent 34%),
        linear-gradient(125deg, rgba(187,143,82,.3) 0%, rgba(238,225,204,.92) 46%, rgba(204,166,111,.28) 100%),
        #dfc8a8;
    box-shadow: inset 0 0 0 1px rgba(122, 87, 46, .2);
}
.home .collections-preview__grid article:nth-child(3) h3,
.home .collections-preview__grid article:nth-child(3) strong {
    color: #72502b;
}
.home .collections-preview__grid article:nth-child(3)::after {
    content: "";
    position: absolute;
    inset-block: 0;
    left: 100%;
    width: 100vw;
    z-index: -1;
    background: #dfc8a8;
    pointer-events: none;
}
@media (max-width: 900px) {
    .home .collections-preview__grid {
        width: 100vw;
        margin-left: calc(50% - 50vw);
    }
    .home .collections-preview__grid article {
        padding-inline: 20px;
    }
    .home .collections-preview__grid article:nth-child(3)::after {
        display: none;
    }
}

/* Desktop: continuous homepage Luxury background through the outer gutter. */
@media (min-width: 901px) {
    .home .collections-preview__grid article:nth-child(3) {
        background: transparent;
    }
    .home .collections-preview__grid article:nth-child(3)::after {
        left: 0;
        right: calc(-1 * max(40px, calc((100vw - 1440px) / 2)));
        width: auto;
        background:
            radial-gradient(circle at 88% 16%, rgba(185,155,114,.2), transparent 38%),
            linear-gradient(112deg, rgba(255,255,255,.34), transparent 54%),
            #ebe3d7;
    }
}

/* Remove the inset rule above the homepage packages. */
.home .collections-preview__grid { border-top: 0; }

/* Responsive hardening for very narrow phones, foldables and short landscape viewports. */
main, section, header, footer, nav, form, figure { min-width: 0; }

@supports (padding: max(0px)) {
    .site-header {
        padding-left: max(20px, env(safe-area-inset-left));
        padding-right: max(20px, env(safe-area-inset-right));
    }
    .site-footer {
        padding-left: max(20px, env(safe-area-inset-left));
        padding-right: max(20px, env(safe-area-inset-right));
        padding-bottom: max(30px, env(safe-area-inset-bottom));
    }
    .cookie-banner {
        bottom: max(10px, env(safe-area-inset-bottom));
        left: max(10px, env(safe-area-inset-left));
        right: max(10px, env(safe-area-inset-right));
    }
    .back-to-top {
        right: max(14px, env(safe-area-inset-right));
        bottom: max(14px, env(safe-area-inset-bottom));
    }
}

@media (max-width: 380px) {
    :root {
        --content: calc(100vw - 28px);
        --pad: 5.25rem;
    }
    .site-header {
        grid-template-columns: minmax(0, 1fr) 42px 32px;
        gap: 4px;
        padding-top: 14px;
        padding-bottom: 14px;
    }
    .wordmark span { font-size: 13px; letter-spacing: .18em; }
    .wordmark small { margin-top: 6px; font-size: 6px; letter-spacing: .12em; }
    .nav-toggle { width: 42px; height: 44px; }
    .language-switch { min-width: 32px; min-height: 44px; }
    .hero__copy, .landing-hero__copy { padding-left: 14px; padding-right: 14px; }
    .hero__copy h1, .landing-hero h1 { font-size: clamp(3rem, 15vw, 4rem); }
    .page-hero, .collections-page .page-hero { padding-left: 14px; padding-right: 14px; }
    .section-pad { padding-left: 14px; padding-right: 14px; }
    .cookie-banner__actions { grid-template-columns: 1fr; }
    .cookie-action, .cookie-link { width: 100%; }
    .cookie-link { grid-column: auto; justify-self: stretch; text-align: left; }
    .site-footer { padding-left: 14px; padding-right: 14px; }
}

@media (max-width: 900px) and (max-height: 620px) and (orientation: landscape) {
    .hero, .landing-hero { height: auto; min-height: 100svh; overflow: visible; }
    .hero__copy, .landing-hero__copy {
        min-height: max(100svh, 540px);
        padding-top: 105px;
        padding-bottom: 36px;
    }
    .hero__copy h1, .landing-hero h1 {
        max-width: 11ch;
        margin-bottom: 24px;
        font-size: clamp(2.65rem, 8vw, 4rem);
    }
    .site-nav {
        justify-content: flex-start;
        overflow-y: auto;
        padding-top: 86px;
        padding-bottom: 36px;
    }
    .site-nav a { font-size: clamp(2rem, 8vw, 3.2rem); }
}

/* Contact conversion flow: date check first on mobile, while desktop keeps the editorial two-column layout. */
.contact-availability-card {
    margin-bottom: 42px;
    padding: 28px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.2);
}
.contact-availability-card .eyebrow { margin-bottom: 14px; }
.contact-availability-card h2 {
    margin: 0 0 8px;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1;
}
.contact-availability-card > p:not(.eyebrow):not(.contact-availability-card__result) {
    margin-bottom: 22px;
    color: var(--muted);
}
.contact-availability-card__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: stretch;
}
.contact-availability-card__controls input {
    min-width: 0;
    min-height: 52px;
    padding: 13px 15px;
    border: 1px solid rgba(23,23,21,.28);
    border-radius: 0;
    background: rgba(255,255,255,.34);
    color: var(--ink);
}
.contact-availability-card__button {
    min-height: 52px;
    padding: 0 20px;
    border: 1px solid var(--ink);
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    font-size: 11px;
    letter-spacing: .04em;
    white-space: nowrap;
}
.contact-availability-card__button:disabled { opacity: .55; cursor: wait; }
.contact-availability-card__result {
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    font-size: 14px;
    line-height: 1.55;
}
.contact-availability-card__result[data-status="available"] { color: #355f49; }
.contact-availability-card__result[data-status="unavailable"],
.contact-availability-card__result[data-status="unknown"] { color: #7b433b; }
.contact-availability-card__result[data-status="checking"] { color: var(--muted); }

@media (max-width: 900px) {
    .contact-layout {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding-top: 132px;
    }
    .contact-layout__intro { display: contents; }
    .contact-layout__intro > .eyebrow { order: 1; }
    .contact-layout__intro > h1 { order: 2; }
    .contact-layout__intro > p:not(.eyebrow) { order: 3; margin-bottom: 32px; }
    .contact-layout__form { order: 4; padding-top: 0; }
    .contact-layout__intro > .direct-contact { order: 5; margin-top: 54px; }
    .contact-layout__intro > figure { order: 6; margin-top: 34px; }
    .contact-availability-card { margin-bottom: 34px; padding: 22px 18px; }
    .contact-availability-card__controls { grid-template-columns: 1fr; gap: 10px; }
    .contact-availability-card__button { width: 100%; }
}

/* Availability calendar: preliminary holds are no longer part of the booking flow. */
.yani-calendar-legend span:has(i.hold) {
    display: none !important;
}

/* Human-facing wedding-date checker. Machine discovery stays in schema/OpenAPI/llms.txt. */
.availability-page .section-pad {
    padding-top: clamp(150px, 15vw, 210px);
    padding-bottom: clamp(90px, 10vw, 150px);
}
.availability-page .narrow {
    width: min(760px, calc(100% - 40px));
}
.availability-page h1 {
    max-width: 12ch;
    margin-bottom: 26px;
    font-size: clamp(3.1rem, 5vw, 5.25rem);
    line-height: .96;
}
.availability-page .lead-copy {
    max-width: 34em;
    margin-bottom: 46px;
    color: var(--muted);
    font-family: var(--sans);
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    line-height: 1.7;
}
.availability-check-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 14px;
    padding: 28px 0 34px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.availability-date-field {
    display: block;
}
.availability-date-field > span {
    display: block;
    margin-bottom: 9px;
    font-size: 10px;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.availability-date-field input {
    width: 100%;
    min-height: 52px;
    padding: 13px 15px;
    border: 1px solid rgba(23, 23, 21, .28);
    border-radius: 0;
    background: rgba(255,255,255,.32);
    color: var(--ink);
    cursor: pointer;
    appearance: auto;
}
.availability-date-field input:hover {
    border-color: rgba(23, 23, 21, .48);
}
.availability-date-field input:focus {
    border-color: var(--champagne);
    outline: none;
}
.availability-check-button {
    min-height: 52px;
    margin: 0;
    white-space: nowrap;
}
.availability-machine-access {
    margin-top: 18px;
    padding: 14px 16px;
    border-left: 2px solid var(--line);
    color: var(--muted);
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}
.availability-machine-access p { margin: 0; }
.availability-machine-access p + p { margin-top: 5px; }
.availability-machine-access strong {
    color: var(--ink);
    font-weight: 600;
    letter-spacing: .04em;
}
.availability-result {
    margin-top: 34px;
    padding: 30px 0 6px;
    border-top: 1px solid var(--line);
}
.availability-result h2 {
    max-width: 16ch;
    margin: 0 0 14px;
    font-size: clamp(2.35rem, 4vw, 3.8rem);
    line-height: 1;
}
.availability-result > p:not(.availability-status-label):not(.availability-note) {
    max-width: 45ch;
    margin-bottom: 16px;
    color: var(--muted);
}
.availability-status-label {
    margin-bottom: 13px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .16em;
}
.availability-result[data-availability-status="available"] .availability-status-label {
    color: #355f49;
}
.availability-result[data-availability-status="unavailable"] .availability-status-label,
.availability-result[data-availability-status="unknown"] .availability-status-label {
    color: #7b433b;
}
.availability-note {
    max-width: 58ch;
    margin: 24px 0 26px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
}

@media (max-width: 640px) {
    .availability-page .section-pad {
        padding-top: 122px;
        padding-bottom: 88px;
    }
    .availability-page h1 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }
    .availability-page .lead-copy {
        margin-bottom: 34px;
    }
    .availability-check-form {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 24px 0 30px;
    }
    .availability-check-button {
        width: 100%;
    }
    .availability-result {
        margin-top: 28px;
        padding-top: 26px;
    }
}


/* Homepage premium trust layer — 2026-09-22 */
.testimonial-feature {
    display: grid;
    grid-template-columns: minmax(120px, .45fr) minmax(0, 1.55fr);
    gap: clamp(40px, 8vw, 120px);
    align-items: start;
    border-top: 1px solid var(--line);
    background: var(--paper);
}
.testimonial-feature blockquote {
    max-width: 980px;
    margin: 0;
}
.testimonial-feature blockquote p {
    margin: 0;
    font-family: var(--display);
    font-size: clamp(2.35rem, 4vw, 4.9rem);
    line-height: 1.02;
    letter-spacing: -.025em;
}
.testimonial-feature blockquote footer {
    margin-top: 34px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
}
@media (max-width: 900px) {
    .testimonial-feature {
        grid-template-columns: 1fr;
        gap: 26px;
    }
    .testimonial-feature blockquote p {
        font-size: clamp(2.2rem, 10vw, 3.8rem);
    }
}

/* Pricing funnel 2.0 — clearer choice, stronger Signature, quieter concierge. */
.collection-guide {
    width: var(--content);
    margin: 0 auto;
    padding: clamp(36px, 4vw, 58px) 0 clamp(48px, 6vw, 82px);
}
.collection-guide p {
    max-width: 72ch;
    margin: 0 0 0 auto;
    color: #34312c;
    font-family: var(--display);
    font-size: clamp(1.45rem, 2vw, 2.15rem);
    line-height: 1.2;
}
.collection--preferred .collection__preferred {
    display: inline-block;
    margin-bottom: 8px;
    padding: 7px 10px 6px;
    border: 1px solid rgba(185,155,114,.62);
}
.collection__cta--preferred {
    padding: 14px 17px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: var(--ivory);
}
.collection__cta--preferred:hover {
    border-color: var(--champagne);
    background: var(--champagne);
    color: var(--obsidian);
}
.collection--luxury .collection__price {
    color: #3f372d;
}
.pricing-concierge {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) auto;
    gap: clamp(42px, 8vw, 120px);
    align-items: end;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}
.pricing-concierge > div { max-width: 760px; }
.pricing-concierge h2 { max-width: 10ch; margin-bottom: 34px; }
.pricing-concierge > div > p:last-child { max-width: 64ch; margin-bottom: 0; color: var(--muted); }
.pricing-concierge > .text-link { margin-bottom: 4px; white-space: nowrap; }

@media (max-width: 900px) {
    .collection-guide { width: calc(100% - 40px); }
    .collection-guide p { margin-left: 0; }
    .pricing-concierge { grid-template-columns: 1fr; align-items: start; }
    .pricing-concierge > .text-link { justify-self: start; }
}

@media (max-width: 520px) {
    .collection-guide { width: calc(100% - 32px); padding-top: 30px; padding-bottom: 48px; }
    .collection-guide p { font-size: 1.35rem; }
    .collection__cta--preferred { width: 100%; justify-content: center; text-align: center; }
    .pricing-concierge h2 { margin-bottom: 26px; }
}

/* Stage 4 — premium enquiry reassurance without adding form friction. */
.contact-response-note {
    max-width: 48ch;
    margin: 28px 0 0;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
    line-height: 1.65;
}
.enquiry-form textarea::placeholder {
    color: rgba(107, 102, 95, .72);
}

/* Wedding Stories + SEO content engine — 2026-09-22 */
.wedding-story-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: clamp(48px, 9vw, 140px);
    align-items: end;
    padding-top: clamp(180px, 18vw, 250px);
    padding-bottom: clamp(72px, 8vw, 110px);
    border-bottom: 1px solid var(--line);
}
.wedding-story-hero h1 { max-width: 12ch; margin-bottom: 0; }
.wedding-story-hero__aside { max-width: 520px; }
.wedding-story-hero__aside p { margin-bottom: 36px; color: var(--muted); font-size: 17px; }
.wedding-story-content { padding: clamp(72px, 8vw, 120px) 0; }
.wedding-story-content .yy-wedding-story { width: min(1240px, calc(100vw - 80px)); margin: 0 auto; }
.wedding-story-content .yy-wedding-story > .wp-block-group__inner-container > p { width: min(720px, 100%); margin: 0 auto clamp(48px, 6vw, 86px); }
.wedding-story-content .yy-story-lead { font-family: var(--display); font-size: clamp(2rem, 3.2vw, 3.7rem); line-height: 1.08; }
.wedding-story-content figure { margin: clamp(36px, 5vw, 76px) 0; }
.wedding-story-content .yy-story-pair { gap: 18px; margin: clamp(36px, 5vw, 76px) 0; }
.wedding-story-content .yy-story-pair figure { margin: 0; }
.wedding-story-content hr { margin: clamp(70px, 9vw, 130px) 0 60px; border: 0; border-top: 1px solid var(--line); }
.wedding-story-content h2 { max-width: 11ch; margin-bottom: 34px; }
.wedding-story-next {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr);
    gap: 9vw;
    border-top: 1px solid var(--line);
}
.wedding-story-next h2 { max-width: 10ch; margin-bottom: 34px; }
.wedding-story-next > div > p:last-child { max-width: 56ch; color: var(--muted); }
.wedding-story-next__links { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 28px; }
@media (max-width: 820px) {
    .wedding-story-hero, .wedding-story-next { grid-template-columns: 1fr; gap: 42px; }
    .wedding-story-content .yy-wedding-story { width: calc(100vw - 40px); }
    .wedding-story-content .yy-story-pair { gap: 10px; }
}
@media (max-width: 560px) {
    .wedding-story-content .yy-story-pair { display: block; }
    .wedding-story-content .yy-story-pair .wp-block-column + .wp-block-column { margin-top: 10px; }
}

/* About page balance pass — 2026-10-02 */
.about-team {
    padding-top: clamp(68px, 7vw, 104px);
    padding-bottom: clamp(68px, 7vw, 104px);
}
.about-team__copy { padding-top: 0; }
.about-team__copy > p:not(.eyebrow) { max-width: 44ch; margin-bottom: 0; }
.about-team__portrait img { aspect-ratio: 4 / 5; object-position: center 82%; }
.about-team__client { padding-top: 22px; }
.about-team__client h3 { margin-bottom: 16px; }
.about-team__client p:last-child { max-width: 32ch; }

.trusted-partners {
    display: block;
    background: #eee8df;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.trusted-partners > div {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    column-gap: clamp(54px, 8vw, 130px);
    align-items: end;
    margin-bottom: clamp(52px, 6vw, 88px);
}
.trusted-partners > div .eyebrow { grid-column: 1; grid-row: 1; }
.trusted-partners > div h2 { grid-column: 1; grid-row: 2; max-width: 11ch; margin-bottom: 0; }
.trusted-partners > div > p:last-child {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
    max-width: 56ch;
    margin: 0 0 6px;
}
.trusted-partners > ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 clamp(48px, 6vw, 96px);
    margin: 0;
    border-top: 1px solid var(--line);
}
.trusted-partners > ol > li {
    min-height: 0;
    padding-top: 30px;
    padding-bottom: 34px;
}
.trusted-partners > ol > li h3 {
    max-width: 15ch;
    margin-bottom: 18px;
    font-size: clamp(2rem, 2.8vw, 3.25rem);
}
.trusted-partners > ol > li > p:not(.eyebrow) { max-width: 46ch; }

@media (max-width: 900px) {
    .trusted-partners > div,
    .trusted-partners > ol { grid-template-columns: 1fr; }
    .trusted-partners > div { gap: 18px; margin-bottom: 42px; }
    .trusted-partners > div .eyebrow,
    .trusted-partners > div h2,
    .trusted-partners > div > p:last-child {
        grid-column: 1;
        grid-row: auto;
    }
    .trusted-partners > div > p:last-child { margin-top: 16px; }
    .about-team { padding-top: 64px; padding-bottom: 72px; }
}

@media (max-width: 520px) {
    .about-team__portrait img { aspect-ratio: 3 / 4; object-position: center; }
}



/* Fold / compact-tablet composition pass — 2026-10-02 */
/* Keep medium foldable/tablet screens editorial instead of forcing a phone stack. */
@media (min-width: 600px) and (max-width: 900px) {
    .section-pad { padding-inline: 28px; }

    .manifesto {
        grid-template-columns: minmax(0, .92fr) minmax(270px, 1.08fr);
        grid-template-rows: auto 1fr;
        column-gap: clamp(34px, 5vw, 54px);
        row-gap: 16px;
        align-items: start;
    }
    .manifesto > .eyebrow { grid-column: 1; grid-row: 1; margin-bottom: 0; }
    .manifesto > div { grid-column: 1; grid-row: 2; }
    .manifesto__image { grid-column: 2; grid-row: 1 / span 2; width: 100%; margin: 0; align-self: start; }
    .manifesto h2 { max-width: 8.5ch; margin-bottom: 30px; font-size: clamp(3rem, 7vw, 4.35rem); }
    .manifesto .lead-copy { max-width: 18ch; margin: 30px 0; font-size: clamp(1.65rem, 3.5vw, 2.4rem); line-height: 1.12; }

    .about-hero {
        grid-template-columns: minmax(0, .92fr) minmax(280px, 1.08fr);
        gap: clamp(34px, 5vw, 52px);
        align-items: center;
        padding-top: 140px;
    }
    .about-hero h1 { margin-bottom: 30px; font-size: clamp(4rem, 8vw, 5.4rem); }
    .about-hero .display-lead { max-width: 18ch; font-size: clamp(1.65rem, 3.5vw, 2.35rem); line-height: 1.1; }

    .photobooks-hero {
        grid-template-columns: minmax(0, .9fr) minmax(280px, 1.1fr);
        gap: clamp(32px, 5vw, 48px);
        align-items: center;
        min-height: 0;
        padding-top: 140px;
    }
    .photobooks-hero h1 { max-width: 8ch; font-size: clamp(3.35rem, 7vw, 4.25rem); }
    .photobooks-hero .display-lead { max-width: 16ch; font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.12; }
    .album-product--hero { width: 100%; }

    /* Pricing: separate the intro from the first light package. */
    .collections-page .page-hero {
        padding: 142px 28px 54px;
        border-bottom: 1px solid rgba(23,23,21,.14);
        background: #eee8df;
    }
    .collections-page .page-hero h1 { max-width: 10ch; }
    .collections-page .collection:first-child { padding-top: 60px; padding-bottom: 72px; }
    .collections-page .collection:first-child::before {
        content: "";
        position: absolute;
        inset-block: 0;
        left: 50%;
        z-index: -1;
        width: 100vw;
        transform: translateX(-50%);
        background: #faf8f4;
        pointer-events: none;
    }

    /* Keep the enquiry strip compact and avoid stretching the source image. */
    .contact-strip {
        grid-template-columns: minmax(0, 1.04fr) minmax(300px, .96fr);
        height: clamp(500px, 66svh, 610px);
        min-height: 0;
        max-height: 610px;
    }
    .contact-strip figure { height: 100%; min-height: 0; overflow: hidden; }
    .contact-strip figure img { width: 100%; height: 100% !important; aspect-ratio: auto; object-fit: cover; object-position: center 44%; }
    .contact-strip > div { min-height: 0; padding: clamp(40px, 5.5vw, 56px); }
    .contact-strip h2 { max-width: 8ch; margin-bottom: 32px; font-size: clamp(3.05rem, 6.6vw, 4.15rem); }
    .contact-strip .text-link { font-size: 12px; letter-spacing: .14em; }

    /* About: use more of the available Fold width without going edge-to-edge. */
    .about-statement__copy,
    .about-team__copy { width: 100%; }
    .about-statement__copy > p:not(.eyebrow),
    .about-team__copy > p:not(.eyebrow),
    .about-copy-block { max-width: 68ch; }
    .about-team__copy > p:not(.eyebrow) { margin-bottom: 0; }
    .about-team__client p:last-child { max-width: 42ch; }

    .about-credential,
    .about-credential--wide { padding: 40px 28px; }
    .about-credential h3,
    .about-credential--wide h3 { max-width: 18ch; }
    .about-credential p:last-child,
    .about-credential--wide p:last-child { max-width: 68ch; }

    .trusted-partners > div > p:last-child { width: 100%; max-width: 68ch; }
    .trusted-partners > ol > li > p:not(.eyebrow) { max-width: 64ch; }

    .google-reviews-section { display: block; padding-block: 64px; }
    .google-reviews-intro { width: 100%; max-width: 620px; margin-bottom: 42px; }
    .google-reviews-intro h2 { width: auto; max-width: 13ch; font-size: clamp(3rem, 6.4vw, 4.15rem); }
    .google-reviews-widget { width: 100%; max-width: 100%; overflow: hidden; }

    /* Legal pages: true optical centering on Fold / Duo widths. */
    .legal-hero { text-align: center; }
    .legal-hero .eyebrow,
    .legal-hero h1 { margin-left: auto !important; margin-right: auto !important; text-align: center; }
    .legal-content { width: min(720px, calc(100% - 56px)); margin-left: auto; margin-right: auto; }
    .legal-content .stk-row,
    .legal-content .stk-block-content,
    .legal-content .wp-block-group__inner-container { width: 100%; text-align: center; }
    .legal-content p,
    .legal-content h2,
    .legal-content h3 { margin-left: auto !important; margin-right: auto !important; text-align: center; }
    .legal-content ul,
    .legal-content ol { width: fit-content; max-width: 72ch; margin-left: auto !important; margin-right: auto !important; text-align: left; }
}

/* Explicitly collapse both review items into the same column on all phone widths. */
@media (max-width: 900px) {
    .google-reviews-intro,
    .google-reviews-widget { grid-column: 1 !important; }
}

.availability-season-calendar {
    margin-top: clamp(36px, 5vw, 64px);
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid var(--line);
    background: var(--paper);
}
.home .availability-season-calendar--compact,
.yy-home .availability-season-calendar--compact {
    width: min(1240px, calc(100vw - 80px));
    margin: clamp(40px, 6vw, 80px) auto;
}
.availability-season-calendar h2 {
    font-size: clamp(1.45rem, 2.2vw, 2.1rem);
    margin-bottom: 14px;
}
.availability-season-calendar__lead {
    color: var(--muted);
    max-width: 68ch;
    margin-bottom: 24px;
}
.availability-year-block {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.availability-year-block h3 {
    font-size: 1.15rem;
    margin-bottom: 8px;
}
.availability-year-summary {
    font-size: 15px;
    line-height: 1.65;
    margin-bottom: 14px;
}
.availability-month-grid {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 10px 18px;
    font-size: 13.5px;
    color: var(--muted);
}
.availability-daily-index {
    margin-top: 14px;
    font-size: 13px;
    color: var(--muted);
}
.availability-daily-index summary {
    cursor: pointer;
    font-weight: 500;
    color: var(--obsidian);
}
.availability-daily-index__text {
    margin-top: 10px;
    line-height: 1.7;
    font-size: 12.5px;
}
.availability-ai-instructions {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--muted);
}
@media (max-width: 820px) {
    .home .availability-season-calendar--compact,
    .yy-home .availability-season-calendar--compact {
        width: calc(100vw - 40px);
    }
}


