:root {
  --paper:#f2efe8;
  --ink:#111111;
  --muted:#6b655e;
  --line:rgba(17,17,17,.28);
  --dark:#111111;
  --light:#f6f2ec;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body {
  margin:0; background:var(--paper)!important; color:var(--ink)!important;
  font-family: Arial, Helvetica, sans-serif;
  -webkit-text-fill-color:currentColor;
}
a { color:inherit; }
.wrap { max-width:1180px; margin:0 auto; padding:0 28px; }
.serif { font-family: Georgia, "Times New Roman", serif; }
.kicker {
  font-size:12px; line-height:1.45; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted)!important;
}
header {
  border-bottom:1px solid var(--line);
  background:var(--paper)!important; color:var(--ink)!important;
}
.nav { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo { font-size:16px; font-weight:800; letter-spacing:.19em; }
.nav a { text-underline-offset:5px; }

.hero { padding:50px 0 76px; background:var(--paper)!important; color:var(--ink)!important; }
.hero-grid {
  display:grid;
  grid-template-columns:1.04fr .96fr;
  grid-template-areas:
    "intro photo"
    "details photo";
  column-gap:48px; row-gap:28px; align-items:stretch;
}
.hero-intro { grid-area:intro; min-width:0; }
.hero-details { grid-area:details; align-self:end; min-width:0; }
h1 {
  margin:18px 0 0; font-size:clamp(56px,7.1vw,92px); line-height:.91;
  letter-spacing:-.055em; font-weight:400; color:var(--ink)!important;
}
.hero p { max-width:620px; font-size:20px; line-height:1.55; margin:28px 0 0; }
.hero-photo {
  grid-area:photo; min-height:680px; background:#222; overflow:hidden;
}
.hero-photo img,.gallery img,.author-photo img {
  width:100%; height:100%; display:block; object-fit:cover;
}
.meta { display:flex; flex-wrap:wrap; gap:16px 34px; margin-top:36px; font-size:16px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.btn {
  min-height:52px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center;
  background:var(--ink)!important; color:white!important; text-decoration:none; font-weight:700;
  border:1px solid var(--ink);
}
.btn.secondary { background:transparent!important; color:var(--ink)!important; }
.note { margin-top:14px; font-size:13px; color:var(--muted)!important; }

.dark {
  background:var(--dark)!important; color:var(--light)!important;
  padding:82px 0;
}
.dark * { color:var(--light)!important; }
.dark .muted,.dark .kicker { color:#bdb6ae!important; }
.dark h2 { color:var(--light)!important; }
.dark p { color:var(--light)!important; }
h2 {
  margin:16px 0 0; font-size:clamp(42px,5.6vw,70px); line-height:1.02;
  letter-spacing:-.04em; font-weight:400;
}
.dark-intro { display:grid; grid-template-columns:.72fr 1.28fr; gap:50px; }
.dark-intro p { max-width:650px; font-size:19px; line-height:1.6; }

.gallery {
  margin-top:38px; display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
}
.gallery figure { margin:0; aspect-ratio:3/4; overflow:hidden; background:#222; }
.gallery figure:nth-child(2), .gallery figure:nth-child(4) { margin-top:54px; }

.section { padding:82px 0; background:var(--paper)!important; color:var(--ink)!important; }
.section-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:60px; }
.section h2,.section p,.section b { color:var(--ink)!important; }
.faq { border-top:1px solid var(--line); }
.faq-item { padding:24px 0; border-bottom:1px solid var(--line); }
.faq-item b { display:block; font-size:19px; margin-bottom:8px; }
.faq-item p { margin:0; color:var(--muted)!important; line-height:1.55; }

.price {
  background:#d8d3ca!important; color:var(--ink)!important; padding:82px 0;
}
.price-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.price-list { display:grid; grid-template-columns:1fr 1fr; gap:18px 32px; }
.price-list div { border-top:1px solid rgba(0,0,0,.32); padding-top:12px; }

.author { padding:82px 0; background:var(--paper)!important; color:var(--ink)!important; }
.author-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:62px; align-items:center; }
.author-photo { aspect-ratio:3/4; overflow:hidden; background:#222; }
.author p { font-size:18px; line-height:1.6; max-width:620px; }

.form-section {
  background:var(--dark)!important; color:var(--light)!important; padding:82px 0;
}
.form-section * { color:var(--light)!important; }
.form-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; }
.form-section p { font-size:18px; line-height:1.6; max-width:520px; }
label { display:block; margin-bottom:24px; }
label span { display:block; margin-bottom:8px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#bdb6ae!important; }
input {
  width:100%; min-height:52px; border:0; border-bottom:1px solid #777; border-radius:0;
  background:transparent!important; color:white!important; font-size:17px; outline:none;
  -webkit-text-fill-color:white!important;
}
input::placeholder { color:#9a948d!important; -webkit-text-fill-color:#9a948d!important; }
.form-section .btn { background:var(--light)!important; color:var(--ink)!important; border-color:var(--light); cursor:pointer; }
#msg { margin-top:16px; color:#cfc8c0!important; font-size:14px; min-height:20px; }

footer { padding:24px 0; color:var(--muted)!important; background:var(--paper)!important; }

@media (max-width: 760px) {
  .wrap { padding:0 18px; }
  .nav { min-height:72px; }
  .hero { padding:20px 0 54px; }
  .hero-grid { grid-template-columns:1fr; grid-template-areas:"intro" "photo" "details"; gap:28px; }
  .dark-intro,.section-grid,.price-grid,.author-grid,.form-grid { grid-template-columns:1fr; gap:32px; }
  .hero-photo { min-height:0; height:auto; aspect-ratio:4/5; }
  .hero-photo img { object-position:center 24%; }
  h1 { font-size:clamp(48px,14vw,68px); }
  .hero p { font-size:18px; }
  .gallery { grid-template-columns:1fr 1fr; gap:8px; }
  .gallery figure:nth-child(2), .gallery figure:nth-child(4) { margin-top:28px; }
  .dark,.section,.price,.author,.form-section { padding:58px 0; }
  .price-list { grid-template-columns:1fr; }
  .actions .btn { width:100%; }
}

/* Production-only additions. Core landing layout above is unchanged. */
picture { display:block; width:100%; height:100%; }
button,input { font-family:inherit; }
a,button,input { touch-action:manipulation; }
img { max-width:100%; }
section { scroll-margin-top:20px; }
input:focus { border-color:#fff; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.consent { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.45; }
.consent input { width:18px; height:18px; min-height:18px; flex:0 0 18px; margin-top:2px; accent-color:#f2efe8; }
.consent span { margin:0; letter-spacing:0!important; text-transform:none!important; color:#bdb6ae!important; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.btn:disabled { opacity:.6; cursor:wait; }
footer .wrap { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.cookie-choice { position:fixed; bottom:16px; left:16px; right:16px; max-width:500px; padding:20px; background:#f2efe8; color:#111; border:1px solid #777; box-shadow:0 5px 30px #0003; z-index:10; }
.cookie-choice p { margin:0 0 14px; font-size:14px; }
.cookie-choice div { display:flex; gap:10px; flex-wrap:wrap; }
.cookie-choice button { padding:10px 14px; background:#111; color:#fff; border:1px solid #111; cursor:pointer; font-size:14px; }
.cookie-choice button:last-child { background:#f2efe8; color:#111; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.concerns h2 { margin-top:0; }


/* v7: copy-led layout cleanup */
.portfolio-intro { display:block; }
.portfolio-intro h2 { max-width:760px; margin-top:0; }
.concerns-wrap { max-width:980px; }
.concerns h2 { max-width:820px; margin:0; }
.concerns .faq { margin-top:42px; }
.consent { margin-bottom:18px; font-size:11px; line-height:1.35; gap:8px; }
.consent input { width:16px; height:16px; min-height:16px; flex-basis:16px; }
@media (max-width:760px) {
  .concerns .faq { margin-top:32px; }
}


/* v8: final selected voice + small visual polish */
.faq-item p { font-size:17px; line-height:1.65; }
.author-copy { padding-top:18px; }
.form-section input { border-bottom-color:#a39d95; }
.form-section input::placeholder { color:#aaa39b!important; -webkit-text-fill-color:#aaa39b!important; }
.consent { align-items:flex-start; }
.consent input { margin-top:0; }
@media (max-width:760px) {
  .author-copy { padding-top:0; }
  .faq-item p { font-size:16.5px; line-height:1.62; }
}

/* v9: expanded portfolio from supplied finished-photo archives */
.gallery { grid-template-columns:repeat(4,1fr); gap:12px; }
.gallery figure,
.gallery figure:nth-child(2),
.gallery figure:nth-child(4) { margin-top:0; aspect-ratio:3/4; }
@media (max-width:760px) {
  .gallery { grid-template-columns:1fr 1fr; gap:8px; }
  .gallery figure,
  .gallery figure:nth-child(2),
  .gallery figure:nth-child(4) { margin-top:0; }
}
