:root {
    --client-ink: #28231f;
    --client-paper: #f5f0e9;
    --client-line: #d8cec2;
    --client-accent: #866f57;
    --client-muted: #766d65;
}

body {
    margin: 0;
    background: var(--client-paper);
    color: var(--client-ink);
    font: 16px/1.5 Arial, sans-serif;
}

.client-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px max(24px, calc((100% - 1280px) / 2));
    background: var(--client-ink);
    color: #fff;
}

.client-bar a { color: #fff; }
.client-bar span { font-size:.95rem; letter-spacing:.02em; }
.client-user { display:flex; align-items:center; gap:12px; font:1.05rem Georgia,serif; }
.client-user-icon { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border:1px solid rgba(255,255,255,.75); border-radius:50%; color:#fff; font-size:.7rem !important; line-height:1; }
.client-bar a { padding:6px 0; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.45); }
.client-bar a:hover { border-color:#fff; }
.client-bar-actions { display:flex; align-items:center; gap:12px; }
.client-bar-actions > span { color:rgba(255,255,255,.45); }

.client-page {
    width: 100%;
    margin: 0 auto;
    min-height: 55vh;
}

.client-content {
    width: min(1100px, calc(100% - 48px));
    margin: 0 auto 56px;
}

.client-panel {
    padding: 32px;
    background: #fff;
    border: 1px solid var(--client-line);
    border-radius: 6px;
}

.client-login { width:min(100% - 48px, 620px); margin:72px auto 96px; }
.client-login h1 { margin:8px 0 4px; font:clamp(2rem,4vw,3rem) Georgia,serif; }
.client-login > p { margin:0 0 28px; color:var(--client-muted); }
.client-form { display:grid; gap:18px; }
.client-form label { display:grid; gap:8px; color:var(--client-ink); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.client-form input { width:100%; box-sizing:border-box; padding:13px 14px; border:1px solid var(--client-line); background:#fff; color:var(--client-ink); font:1rem Arial,sans-serif; }
.client-form input:focus { outline:2px solid rgba(134,111,87,.28); outline-offset:1px; }
.client-button { display:inline-block; padding:13px 22px; border:1px solid var(--client-ink); border-radius:2px; background:var(--client-ink); color:#fff; text-decoration:none; font:700 .72rem Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:background .2s ease,border-color .2s ease; }
.client-button:hover { background:var(--client-accent); border-color:var(--client-accent); }
.client-alert { margin:0 0 20px; padding:12px 14px; border:1px solid #cda7a2; background:#f8ecea; color:#7a3028; }
.client-grid { display:grid; grid-template-columns:1fr; gap:24px; width:min(100% - 48px,1100px); margin:30px auto 96px; }
.client-page > .eyebrow,
.client-page > h1 { width:min(100% - 48px,1100px); margin-left:auto; margin-right:auto; }
.client-page > h1 { margin-top:8px; font:clamp(2rem,4vw,3rem) Georgia,serif; }
.client-page > h1 { margin-top:74px; text-align:center; }
.client-heading-rule { display:flex; align-items:center; justify-content:center; gap:12px; width:min(100% - 48px,1100px); margin:18px auto 12px; }
.client-heading-rule span { width:55px; height:1px; background:var(--client-line); }
.client-heading-rule i { color:var(--client-accent); font-style:normal; font-size:.9rem; }
.client-heading-tagline { margin:0 auto 34px; color:var(--client-accent); font-size:.74rem; font-weight:700; letter-spacing:.2em; text-align:center; text-transform:uppercase; }
.gallery-card-link { display:block; color:inherit; text-decoration:none; }
.gallery-card-link:hover .gallery-card { box-shadow:0 12px 28px rgba(40,35,31,.16); transform:translateY(-2px); }
.gallery-card { min-height:360px; display:flex; align-items:stretch; margin:0; padding:0; overflow:hidden; border:1px solid rgba(40,35,31,.16); border-radius:8px; background:#756b62 center/cover no-repeat; color:#fff; }
.gallery-card { transition:transform .25s ease, box-shadow .25s ease; }
.gallery-card-content { width:min(100%,620px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:52px 58px; background:linear-gradient(90deg,rgba(40,35,31,.34),transparent); }
.gallery-card h2 { margin:10px 0 20px; color:#fff; font:clamp(2rem,4vw,3.6rem) Georgia,serif; }
.gallery-card-details { display:flex; flex-direction:column; gap:6px; margin:0 0 28px; color:rgba(255,255,255,.92); font:1.05rem/1.45 Georgia,serif; }
.gallery-card .client-button { border-color:#fff; background:#28231f; }
.gallery-card .client-button:hover { background:#b08d68; border-color:#b08d68; }
.gallery-card-no-image { background:linear-gradient(110deg,#554c45,#9c9288); }

.eyebrow {
    color: var(--client-accent);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.client-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    margin-bottom: 28px;
    padding: 48px;
    color: #fff;
    text-align: center;
    background: linear-gradient(90deg, rgba(40,35,31,.72), rgba(40,35,31,.15)), url('/images/hero/maternity.jpg') center/cover;
}

.client-hero { min-height: 500px; }

.client-hero .eyebrow { color: #fff; }

.client-hero h1 {
    margin: .4rem 0;
    font: clamp(2.2rem, 5vw, 4.5rem) Georgia, serif;
}

.client-hero-title {
    margin: 0;
    color: #fff;
    font: clamp(2.8rem, 7vw, 6rem) Georgia, serif;
}

.client-hero-subtitle {
    margin-top: 10px;
    color: #fff;
    font: clamp(1.2rem, 2.4vw, 2rem) Arial, sans-serif;
    letter-spacing: .04em;
}

@media (max-width: 600px) {
    .client-content { width: min(100% - 32px, 1100px); margin-bottom: 32px; }
    .client-panel { padding: 22px; }
    .client-bar { padding: 12px 16px; }
    .client-hero { min-height: 260px; padding: 28px; }
    .gallery-card { min-height:420px; }
    .gallery-card-content { padding:34px 26px; }
}

.client-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.client-gallery-image {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: #e5ddd4;
}

.client-gallery-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.client-selection-info { margin:0 0 16px; padding:20px 28px; background:#fff; border:1px solid var(--client-line); text-align:center; }
.client-selection-info p { margin:0; color:var(--client-muted); line-height:1.65; }
.client-selection-info strong { color:var(--client-ink); font-weight:700; }
.client-selection-summary { display:flex; flex-direction:column; gap:16px; align-items:center; justify-content:center; margin:0 0 20px; padding:20px; background:#fff; border:1px solid var(--client-line); text-align:center; }
.client-selection-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:18px; }
.client-selection-heading span { color:var(--client-accent); }
.client-selection-heading .selection-count { color:var(--client-ink); font-weight:700; }
.client-selection-heading .selection-number { color:#b64949; font-weight:700; }
.client-selection-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.client-selection-form input[type="checkbox"] { position:absolute; margin:12px; z-index:2; width:20px; height:20px; }
.client-selection-form > .client-button { margin-top:20px; }
.client-selection-bottom-actions { display:flex; justify-content:center; margin:28px 0 10px; padding-top:22px; border-top:1px solid var(--client-line); }

.client-gallery-image:hover img { transform: scale(1.03); }
.client-gallery-image:has(input:checked) img { filter: grayscale(1); opacity: .42; }
.client-gallery-image:has(input:checked) { background: #b8b0a8; }

.client-image-card { min-width: 0; }
.client-download-link { display: block; margin-top: 10px; padding: 12px 14px; background: var(--client-ink); color: #fff; text-align: center; text-decoration: none; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-radius: 3px; box-shadow: 0 2px 5px rgba(40,35,31,.15); transition: background .2s ease, transform .2s ease; }
.client-download-link:hover { background: var(--client-accent); }
.client-downloads-panel { margin-top:48px; text-align:center; }
.client-downloads-panel > p { max-width:620px; margin:0 auto 28px; color:var(--client-muted); }
.client-download-stats { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; width:100%; box-sizing:border-box; margin:0 auto 16px; padding:14px 18px; border:1px solid #ddd2c6; background:#faf7f2; color:var(--client-ink); font-family:var(--client-serif); font-size:1.05rem; white-space:nowrap; }
.client-download-stats span + span { position:relative; }
.client-download-stats span + span:before { content:""; position:absolute; left:-15px; top:50%; width:1px; height:18px; background:#cfc2b4; transform:translateY(-50%); }
.client-download-note, .client-download-expiry { width:100%; box-sizing:border-box; margin:0 auto 10px !important; font-size:.95rem; white-space:nowrap; color:#1f1b18 !important; }
.client-download-expiry { margin-bottom:22px !important; color:var(--client-ink) !important; font-family:var(--client-serif); }
.client-download-expiry strong { color:#1f1b18; font-weight:700; }
.client-download-alert { max-width:760px; margin:0 auto 18px; padding:12px 16px; border:1px solid #c98b8b; background:#fbefef; color:#8c3030; font-weight:700; }
.client-download-expired { max-width:760px; margin:0 auto 22px; padding:16px 18px; border:1px solid #c98b8b; background:#fbefef; color:#8c3030; font-weight:700; }
.client-downloads-panel.is-expired .client-download-expired { max-width:none; margin:28px 0; padding:28px 20px; border:2px solid #b33e3e; background:#fff0f0; color:#a12626; font-size:1.2rem; font-weight:700; }
.client-downloads-panel.is-expired .client-download-expired a { color:#8b1f1f; text-decoration:underline; }
.client-downloads-panel.is-expired .client-download-intro,
.client-downloads-panel.is-expired .client-download-stats,
.client-downloads-panel.is-expired .client-download-note,
.client-downloads-panel.is-expired .client-download-expiry,
.client-downloads-panel.is-expired .client-download-alert,
.client-downloads-panel.is-expired .client-download-grid,
.client-downloads-panel.is-expired .client-remove-all-form,
.client-downloads-panel.is-expired .client-download-grid + .client-download-back-button { display:none; }
.client-download-actions { display:flex; justify-content:center; align-items:center; gap:12px; margin:0 auto 22px; }
.client-download-back-button { margin:0; }
.client-remove-all-form { display:inline-flex; margin:0; text-align:center; }
.client-remove-image-form { margin:8px 0 0; }
.client-remove-image-button { display:block; width:100%; padding:10px 14px; border:1px solid #b8aa9b; border-radius:2px; background:transparent; color:var(--client-ink); font:700 .68rem Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:all .2s ease; }
.client-remove-image-button:hover { border-color:#8f3d36; background:#fbefef; color:#8f3d36; }
.client-download-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px 18px; text-align:left; }
.client-download-card { margin:0; }
.client-download-paid-notice { display:flex; align-items:center; justify-content:center; width:100%; height:34px; box-sizing:border-box; margin-top:5px; padding:0 8px; border:1px solid #d7aaa8; background:#f6dddd; color:#7e3e3e; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.client-download-card img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.client-download-card .client-download-link { margin-top:10px; }
.client-download-card.is-limit-reached img { filter:grayscale(1); opacity:.42; }
.client-download-limit { background:#a13f3f; cursor:default; }
.client-download-limit:hover { background:#a13f3f; }
.client-download-back { display:inline-block; margin-top:30px; color:var(--client-ink); font-family:var(--client-serif); font-size:1.05rem; text-decoration:underline; text-underline-offset:4px; }
.client-download-grid + .client-download-back-button { margin-top:32px; margin-bottom:0; }
.client-download-empty { grid-column:1/-1; text-align:center; color:var(--client-muted); }
.client-saved-notice { margin:0 0 20px; padding:24px; border:1px solid var(--client-line); background:#fff; text-align:center; }
.client-saved-notice p { margin:0 0 16px; color:var(--client-muted); }
.selection-locked .client-selection-form { display:none; }
.client-button-small { padding: 12px 20px; }
.client-button-secondary,
.client-button-ghost,
.client-button-small { min-height:44px; border-radius:2px; font-family:inherit; font-size:.72rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; transition:all .2s ease; }
.client-button-secondary { background:#28231f; color:#fff; border:1px solid #28231f; }
.client-button-secondary:hover { background:#b08d68; border-color:#b08d68; }
.client-button-ghost { background:transparent; color:var(--client-ink); border:1px solid #b8aa9b; }
.client-button-ghost:hover { background:#f1e9df; border-color:#866f57; }
.client-button-small { background:#b08d68; color:#fff; border:1px solid #b08d68; }
.client-button-small:hover { background:#8f6d4d; border-color:#8f6d4d; }
.additional-order { margin-top:56px; }
.additional-order > h1,
.additional-order > p,
.additional-order > .eyebrow { text-align:center; }
.gallery-test-payment { margin:8px 0 12px; text-align:center; }
.gallery-test-payment button { padding:8px 14px; border:1px solid #a13f3f; background:#fff0f0; color:#8c3030; font-size:.65rem; font-weight:700; text-transform:uppercase; cursor:pointer; }
.client-additional-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin:30px 0; }
.client-additional-grid figure { margin:0; padding:0 0 12px; background:#fff; border:1px solid var(--client-line); }
.client-additional-thumb { display:block; aspect-ratio:1; overflow:hidden; background:#eee7df; }
.client-additional-grid figure img { display:block; width:100%; height:100%; object-fit:cover; }
.client-additional-grid figure form { margin:0; }
.client-additional-meta { display:flex; flex-direction:column; align-items:stretch; gap:7px; padding:10px 10px 0; text-align:center; }
.client-selection-badge { color:var(--client-muted); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.client-remove-button { display:block; width:100%; padding:10px; border:0; border-radius:2px; background:#28231f; color:#fff; font:inherit; font-size:.65rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.client-remove-button:hover { background:#8f3d36; }
.additional-total { margin:28px 0 0; text-align:center; }
.additional-order > .client-button { display:block; margin:14px auto 0; }
.client-payment-status { margin:14px auto 10px !important; color:var(--client-ink) !important; text-align:center; }
.gallery-card-fields { max-width:100%; margin:18px auto 20px; }
.gallery-card-fields > div { margin-bottom:10px; padding:14px; min-height:20px; border:1px solid var(--client-line); background:#fff; }
.gallery-card-fields > div:first-child { display:inline-block; width:50%; box-sizing:border-box; vertical-align:top; }
.gallery-card-fields > div:nth-child(2), .gallery-card-fields > div:nth-child(3) { display:inline-block; width:24%; box-sizing:border-box; vertical-align:top; margin-left:1%; }
.gallery-card-fields button { display:block; width:50%; margin:0 auto; padding:14px; }
.gallery-paypal-button { max-width:100%; margin:24px auto 0; padding-top:22px; border-top:1px solid var(--client-line); }
.gallery-paypal-button:before { content:'Already have a PayPal account? Click the button below to pay securely with PayPal.'; display:block; width:100%; margin:0 auto 14px; color:var(--client-ink); text-align:center; font-size:.95rem; }
.gallery-paypal-button { text-align:center; }
.gallery-paypal-button > div { display:block !important; width:50% !important; max-width:50% !important; margin-left:auto !important; margin-right:auto !important; }
.client-cancel-form { margin:18px 0 0; text-align:center; }
.client-cancel-form-bottom { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--client-line); }
.client-cancel-button { padding:10px 22px; border:1px solid #b8aa9b; border-radius:2px; background:transparent; color:var(--client-ink); font:inherit; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.client-cancel-button:hover { background:#f1e9df; border-color:#866f57; }
.client-lightbox { display:none; position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:30px; background:rgba(25,21,18,.9); }
.client-lightbox.is-open { display:flex; }
.client-lightbox img { max-width:92vw; max-height:88vh; object-fit:contain; }
.client-lightbox-close { position:absolute; top:18px; right:24px; border:0; background:none; color:#fff; font-size:2.2rem; cursor:pointer; }
.client-lightbox-arrow { position:absolute; top:50%; transform:translateY(-50%); border:0; background:rgba(255,255,255,.14); color:#fff; width:46px; height:62px; font-size:2rem; cursor:pointer; }
.client-lightbox-arrow:hover { background:rgba(255,255,255,.3); }
.client-lightbox-prev { left:22px; }
.client-lightbox-next { right:22px; }
.client-additional-grid img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.client-additional-grid figcaption { padding-top:6px; font-size:.8rem; color:var(--client-muted); }
@media (max-width:800px) { .client-additional-grid { grid-template-columns:repeat(2,1fr); } }
.client-selection-summary button { box-shadow:0 2px 6px rgba(40,35,31,.12); }
.selection-not-required .client-selection-summary { display: none; }
.selection-not-required .client-selection-form input[type="checkbox"] { display: none; }
.selection-not-required .client-selection-bottom-actions { display: none; }

@media (max-width: 800px) {
    .client-gallery-grid { grid-template-columns: repeat(3, 1fr); }
    .client-additional-grid { grid-template-columns:repeat(2,1fr); }
    .client-download-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 560px) {
    .client-download-stats { display:block; }
    .client-download-stats span { display:block; margin:4px 0; }
    .client-download-stats span + span:before { display:none; }
    .client-download-note, .client-download-expiry { white-space:normal; }
    .client-download-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 520px) {
    .client-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
