/* Dan Steele Photo + Film. System fonts, original photography, no external dependencies. */
:root {
  --surface-page:#f3f0e9;
  --surface-card:#faf7f0;
  --surface-input:#fffdf9;
  --surface-dark:#253029;
  --text-main:#232824;
  --text-muted:#536055;
  --text-on-dark:#faf7f0;
  --accent:#93462f;
  --rule:#d5d0c5;
  --control-border:#687064;
  --focus:#93462f;
  --focus-on-dark:#faf7f0;
  --error:#912f2a;
  --font-display:Georgia,'Times New Roman',serif;
  --font-body:Arial,Helvetica,sans-serif;
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-body:1rem;
  --text-lead:1.125rem;
  --text-h2:clamp(1.875rem,1.35rem + 2.5vw,3.5rem);
  --text-h1:clamp(2.5rem,2rem + 3vw,6rem);
  --gutter:clamp(1.25rem,5vw,4.5rem);
  --content-max:80rem;
  --measure-copy:38rem;
  --control-height:3rem;
  --radius-control:.125rem;
  --transition-fast:160ms;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:7rem;font-size:100%}
body {margin:0;background:var(--surface-page);color:var(--text-main);font-family:var(--font-body);font-size:var(--text-body);line-height:1.65;-webkit-font-smoothing:antialiased}
body.lock-scroll {overflow:hidden}
h1,h2,h3,p,figure {margin:0}
h1,h2,h3 {font-family:var(--font-display);font-weight:400;line-height:1.08;letter-spacing:-.035em;text-wrap:balance;max-inline-size:100%;overflow-wrap:break-word}
h1 {font-size:var(--text-h1)}
h2 {font-size:var(--text-h2)}
h3 {font-size:1.75rem}
p + p {margin-top:1rem}
p {max-width:var(--measure-copy)}
img {display:block;max-width:100%;height:auto}
a {color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
button,input,select,textarea {font:inherit;color:inherit}
button,a,input,select,textarea,summary {outline-offset:5px}
:focus-visible {outline:3px solid var(--focus)}
[tabindex="-1"]:focus {outline:none}
button {cursor:pointer}
button:disabled {cursor:wait;opacity:.65}
button {border-radius:var(--radius-control)}
::selection {color:var(--text-main);background:#dfb69c}
[hidden] {display:none!important}
.container {width:min(var(--content-max),calc(100% - var(--gutter)*2));margin-inline:auto}
.section {padding-block:clamp(3rem,6.5vw,6rem)}
.small {font-size:var(--text-sm);line-height:1.6}
.muted {color:var(--text-muted)}
.lead {font-size:var(--text-lead)}
.eyebrow {font-size:var(--text-xs);font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);line-height:1.5;margin-bottom:1.1rem}
.quiet-surface,.offers-section {background:var(--surface-card)}
.skip-link {position:fixed;z-index:200;left:1rem;top:-10rem;padding:.75rem 1.25rem;background:var(--surface-input);color:var(--text-main)}
.skip-link:focus {top:1rem}
.button,.button-dark,.button-light,.nav-contact {display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--control-height);padding:.8rem 1.25rem;background:var(--surface-dark);border:1px solid var(--surface-dark);color:var(--text-on-dark);font-size:var(--text-sm);font-weight:700;line-height:1.35;text-decoration:none;max-width:100%;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}
.button:hover,.nav-contact:hover {background:var(--accent);border-color:var(--accent)}
.button > span[aria-hidden] {font-size:1.1rem}
.button-small {padding:.6rem 1rem}
.text-link,.text-button,.back-link {display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem;padding:.55rem 0;font-size:var(--text-sm);line-height:1.4;font-weight:700;text-decoration:underline;text-underline-offset:6px}
.text-link:hover,.back-link:hover,.text-button:hover {color:var(--accent)}
.text-button {border:0;background:none;text-align:left}
.actions {display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.5rem}
.section-top {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:end;margin-bottom:2.5rem}
.section-top > p {max-width:28rem;justify-self:end;color:var(--text-muted)}
.section-end {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:1.25rem}
.section-end p {margin:0}
.section-label {font:700 var(--text-sm)/1.5 var(--font-body);letter-spacing:.04em;margin-bottom:1.25rem}
.scope-note {border-left:2px solid var(--accent);padding-left:1rem;margin-top:2rem;color:var(--text-muted);font-size:var(--text-sm)}
.photo-slot:not(:has(img)) {display:none}
.photo-slot {min-width:0}
.photo-slot img {width:100%;object-fit:cover}
figcaption,.photo-caption {font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;padding-top:.7rem}
.photo-caption {display:flex;align-items:center;justify-content:space-between}
.photo-slot a:hover {color:var(--accent)}
.photo-city-couple {object-position:52% 72%}
.photo-city-portrait {object-position:59% 67%}
.photo-city-portrait-02 {object-position:53% 62%}
.photo-city-portrait-04 {object-position:61% 58%}
.photo-portrait-raw-1 {object-position:51% 48%}
.photo-portrait-raw-2 {object-position:46% 57%}
.photo-wedding-evening {object-position:37% 64%}
.photo-wedding-table {object-position:40% 54%}
.photo-wedding-dessert {object-position:62% 61%}
.photo-coast-bay {object-position:55% 58%}
.photo-coast-rocks {object-position:50% 62%}
.photo-forest-raw {object-position:49% 43%}

/* A compact masthead. Navigation still works if enhancement never loads. */
.site-header {position:sticky;top:0;z-index:50;background:var(--surface-page);border-bottom:1px solid var(--rule)}
.header-inner {width:min(88rem,calc(100% - var(--gutter)*2));margin:auto;min-height:5.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative}
.brand {display:inline-flex;flex-direction:column;gap:.2rem;text-decoration:none;flex-shrink:0;padding:.5rem 0}
.brand-main {font:400 2.1rem/1.05 var(--font-display);letter-spacing:-.06em}
.brand-bottom {font-size:var(--text-xs);line-height:1.4;letter-spacing:.14em;color:var(--text-muted)}
.primary-nav {display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);min-width:0}
.primary-nav > a {font-size:var(--text-sm);font-weight:700;text-decoration:none;min-height:2.75rem;display:inline-flex;align-items:center;white-space:nowrap}
.primary-nav > a:not(.nav-contact):hover,.primary-nav > a[aria-current=page]:not(.nav-contact) {text-decoration:underline;text-underline-offset:7px;text-decoration-color:var(--accent)}
.primary-nav .nav-contact {padding-inline:1.1rem;gap:1rem}
.menu-button {display:none}

/* Opening offer and actual photographs. */
.home-hero,.service-hero {display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,5.5rem);align-items:center;padding-block:clamp(2rem,5.5vw,5rem)}
.hero-copy {min-width:0}
.hero-copy h1 {font-size:clamp(2.7rem,4.9vw,4.5rem);max-width:14ch}
.hero-copy .hero-summary {font-size:var(--text-lead);max-width:29rem;margin-top:1.6rem;color:var(--text-muted)}
.hero-offer {margin:1.5rem 0;font-size:1rem}
.hero-offer strong {font-weight:700}
.hero-offer span {white-space:nowrap}
.hero-footnote {margin-top:1rem;max-width:28rem}
.hero-photo img {width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.hero-photo figcaption {display:flex;justify-content:space-between;gap:1rem}
.hero-photo figcaption a {white-space:nowrap;padding:.2rem 0}
.home-hero .hero-photo {align-self:center}
.proof-grid {display:grid;grid-template-columns:1.1fr .85fr 1.05fr;gap:clamp(1rem,2.5vw,2rem);align-items:start}
.proof-photo {text-decoration:none;min-width:0}
.proof-photo img {transition:filter var(--transition-fast)}
.proof-photo:hover img {filter:brightness(1.04)}
.proof-close img {aspect-ratio:4/5}
.proof-sunset {padding-top:4rem}
.proof-sunset img {aspect-ratio:4/5}
.proof-table {padding-top:1.8rem}
.proof-table img {aspect-ratio:4/5}
.service-section {background:var(--surface-dark);color:var(--text-on-dark)}
.service-section .eyebrow,.service-section .service-number {color:#e9c7af}
.service-section :focus-visible,.site-footer :focus-visible {outline-color:var(--focus-on-dark)}
.service-paths {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;margin-top:3rem}
.service-paths article {border-top:1px solid #7a847b;padding-top:1.25rem;display:flex;flex-direction:column;align-items:start;min-width:0}
.service-number {font-size:var(--text-sm);margin-bottom:1.5rem}
.service-paths h3 {font-size:clamp(1.75rem,2.6vw,2.7rem)}
.service-paths p:not(.service-number) {margin-top:1.25rem;margin-bottom:1.5rem;font-size:var(--text-sm);max-width:25rem}
.service-paths .text-link {margin-top:auto}
.service-paths .text-link:hover {color:white}
.story-feature {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:center;gap:clamp(2rem,5vw,5rem)}
.story-feature-photos {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr);gap:1.5rem;align-items:end}
.story-feature-photos img {aspect-ratio:3/2}
.story-feature-photos .detail-photo {padding-bottom:2.5rem}
.story-feature-photos .detail-photo img {aspect-ratio:4/5}
.story-feature-copy p:not(.eyebrow) {margin:1.25rem 0}
.personal-section,.session-details,.about-process {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,8vw,8rem);align-items:start}
.personal-section > div > p:not(.eyebrow),.session-details > div > p:not(.eyebrow) {margin-top:1.5rem}
.personal-section .text-link {margin-top:1rem}
.process-list {list-style:none;padding:0;margin:0;counter-reset:steps;display:grid;gap:1.5rem}
.process-list li {position:relative;counter-increment:steps;padding-left:3rem;border-top:1px solid var(--rule);padding-top:1.25rem}
.process-list li:before {content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:1.15rem;color:var(--accent);font-size:var(--text-sm)}
.process-list h3 {font-size:1.5rem;margin-bottom:.65rem}
.process-list p {color:var(--text-muted);font-size:var(--text-sm)}
.compact-faq {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:3rem;border-top:1px solid var(--rule)}
.compact-faq .text-link {margin-top:1.25rem}

/* Interior pages have distinct proportions but share legible type and spacing. */
.page-intro {padding-block:clamp(2.5rem,5vw,4.5rem);max-width:var(--content-max)}
.page-intro > p:not(.eyebrow) {font-size:var(--text-lead);margin-top:1.25rem;max-width:43rem;color:var(--text-muted)}
.page-intro h1 {max-width:16ch}
.page-intro .actions {margin-top:1.75rem}
.portfolio-intro {padding-block:3rem 1.5rem}
.portfolio-intro > p:last-child {font-size:1rem;max-width:43rem}
.portfolio-intro h1 {font-size:clamp(2.5rem,4.5vw,4rem)}
.portfolio-intro h1,.pricing-intro h1 {max-width:none}
.service-hero .hero-copy h1 {font-size:clamp(2.5rem,1.8rem + 2vw,3.75rem);max-width:none}
.service-hero .hero-photo img {aspect-ratio:3/2}
.session-hero-photo img {object-position:53% 62%}
.wedding-hero .hero-photo img {aspect-ratio:3/2;object-position:37% 64%}
.session-proof {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.session-proof .close-portrait img {aspect-ratio:4/3;object-position:51% 48%}
.session-proof p:not(.eyebrow) {margin-top:1.25rem}
.session-proof .text-link {margin-top:1.5rem}
.display-price {font:400 2.5rem/1.3 var(--font-display);color:var(--accent)}
.session-details .button {margin-top:1.5rem}
.celebration-grid {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:2rem;align-items:center}
.celebration-grid img {aspect-ratio:3/2}
.planning-section {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,8vw,8rem)}
.planning-section .button,.planning-section .text-link {margin-top:1.5rem}
.intro-columns {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.65fr);gap:4rem;align-items:start;margin-top:2rem}
.intro-columns > p {font-size:var(--text-lead)}
.sample-note {border-left:2px solid var(--accent);padding:.3rem 0 .3rem 1.25rem;font-size:var(--text-sm);color:var(--text-muted);max-width:30rem}
.intro-columns .sample-note {font-size:var(--text-sm)}
.film-intro h1 {max-width:19ch}
.commercial-intro h1 {max-width:17ch}
.commercial-paths {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.commercial-paths article {background:var(--surface-card);padding:clamp(1.5rem,3.5vw,3.5rem);border-top:2px solid var(--accent);display:flex;flex-direction:column;align-items:start}
.commercial-paths p:not(.eyebrow) {margin:1.5rem 0 2rem}
.commercial-paths .button {margin-top:auto}
.commercial-notes {display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.commercial-notes h2 {font-size:2rem}
.commercial-notes h2 + p {margin-top:1rem}
.about-intro {padding-block:clamp(3rem,7vw,7rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem)}
.about-intro h1 {font-size:clamp(4rem,8vw,8rem)}
.about-location {color:var(--text-muted);margin-top:1.5rem}
.about-copy .lead {font-size:1.35rem;line-height:1.6}
.about-copy .actions {margin-top:2rem}
.about-process > div > p:not(.eyebrow) {margin-top:1.5rem}
.faq-page {max-width:60rem;padding-bottom:3rem}
.faq-list {min-width:0}
.faq-list details {border-top:1px solid var(--rule);padding-block:.5rem}
.faq-list details:last-child {border-bottom:1px solid var(--rule)}
.faq-list summary {cursor:pointer;position:relative;font-size:1.0625rem;font-weight:700;padding:1rem 2.5rem 1rem 0;list-style:none;line-height:1.5}
.faq-list summary::-webkit-details-marker {display:none}
.faq-list summary:after {content:"+";position:absolute;right:.25rem;top:.75rem;font:1.75rem/1.2 var(--font-display);color:var(--accent)}
.faq-list details[open] summary:after {content:"−"}
.faq-list details p {padding:0 2rem 1.25rem 0;color:var(--text-muted);font-size:var(--text-sm);max-width:none}
.faq-list details > a {display:inline-block;min-height:2.75rem;font-size:var(--text-sm);margin-bottom:.5rem}
.story-intro {padding-block:2rem 2.5rem}
.story-intro .back-link {margin-bottom:2rem}
.story-intro h1 {max-width:18ch}
.story-intro > p:last-child {font-size:var(--text-lead);color:var(--text-muted);margin-top:1.3rem;max-width:36rem}
.story-sequence {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2rem}
.story-sequence img {height:auto;aspect-ratio:auto;object-fit:contain}
.story-sequence .story-lead,.story-sequence .story-last {grid-column:1/-1}
.story-sequence .story-lead {max-width:70rem;width:100%;margin-inline:auto}
.story-sequence .story-last {max-width:56rem;width:100%;margin-inline:auto}
.story-places {grid-template-columns:1fr}
.story-places figure:last-child {max-width:62rem;width:100%;margin-inline:auto}
.reading-page {max-width:48rem;padding-bottom:5rem}
.reading-page h2 {font-size:1.7rem;margin-top:2rem;margin-bottom:1rem}
.reading-page p {max-width:none}
.page-closer {padding-block:clamp(2.5rem,4.5vw,4rem);margin-top:2rem;margin-bottom:3rem;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.page-closer h2 {font-size:clamp(1.875rem,2.8vw,2.65rem);max-width:20ch}
.page-closer p:not(.eyebrow) {font-size:var(--text-sm);color:var(--text-muted);margin-top:1rem;max-width:35rem}
.page-closer .button {flex-shrink:0}

/* Server-rendered offer data also powers the comparison and owner editor. */
.offer-table {width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-sm);line-height:1.6}
.offer-table caption {text-align:left;margin-bottom:1rem;font-weight:700;color:var(--text-muted)}
.offer-table th {font-size:var(--text-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:1rem .75rem;border-bottom:1px solid var(--control-border);vertical-align:top}
.offer-table td {padding:1.5rem .75rem;border-bottom:1px solid var(--rule);vertical-align:top}
.offer-table th:first-child,.offer-table td:first-child {padding-left:0;width:25%}
.offer-table th:last-child,.offer-table td:last-child {padding-right:0}
.offer-table tbody th {font:400 1.4rem/1.35 var(--font-display);text-transform:none;letter-spacing:-.02em;border-bottom:1px solid var(--rule);padding-block:1.5rem}
.offer-table td:nth-child(2) {white-space:nowrap}
.offer-table a {display:inline-flex;align-items:center;min-height:2.75rem;font-weight:700}
.offer-table ul {margin:0;padding-left:1.15rem}
.offer-table td p {margin:0}
.pricing-comparison {padding-bottom:1rem}
.packages-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.package-card {background:var(--surface-card);border:1px solid var(--rule);padding:clamp(1.5rem,3vw,3rem);display:flex;flex-direction:column;align-items:start;min-width:0}
.package-card:first-child {border-top:3px solid var(--accent)}
.package-name,.package-card h3 {font-size:2rem;line-height:1.15}
.package-tagline {font-size:var(--text-sm);color:var(--text-muted);margin-top:.9rem}
.package-price {font:400 2.5rem/1.3 var(--font-display);color:var(--accent);margin-top:1.25rem}
.package-deliverables,.package-details {font-size:var(--text-sm);line-height:1.7;padding-left:1.2rem;margin:1.5rem 0 2rem}
.package-deliverables li + li,.package-details li + li {margin-top:.45rem}
.package-card .button {margin-top:auto}
.package-card .package-note {font-size:var(--text-sm);color:var(--text-muted);margin-bottom:1.5rem}

/* Gallery order is DOM order, never masonry or CSS columns. */
.gallery-filters {display:flex;flex-wrap:wrap;gap:.5rem .75rem;border-block:1px solid var(--rule);padding:.8rem 0}
.filter-link {padding:.65rem .8rem;min-height:2.75rem;font-size:var(--text-sm);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:.6rem;border:1px solid transparent}
.filter-link[aria-current=true],.filter-link[aria-current=page],.filter-link.active {background:var(--surface-dark);color:var(--text-on-dark)}
.filter-link:not(.active):hover {border-color:var(--control-border)}
.filter-link span {font-size:var(--text-xs)}
.gallery-count {margin:.75rem 0;min-height:1.4rem}
.portfolio-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem;align-items:start}
.gallery-item {display:block;text-decoration:none;min-width:0}
.gallery-item figure {margin:0}
.gallery-item img {width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.gallery-item:first-child {grid-column:span 2;grid-row:span 2}
.gallery-item:first-child img {aspect-ratio:3/2}
.gallery-item figcaption {display:flex;align-items:start;justify-content:space-between;gap:.5rem}
.gallery-item figcaption strong {font:400 1.05rem/1.4 var(--font-display);color:var(--text-main)}
.gallery-item figcaption small {font-size:var(--text-xs);color:var(--text-muted)}
.gallery-item:hover figcaption strong {color:var(--accent)}
.gallery-section-heading {grid-column:1/-1;font:400 2rem/1.25 var(--font-display);margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--rule)}
.gallery-empty {grid-column:1/-1;padding-block:2rem;color:var(--text-muted)}
.collection-links {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.collection-links > a {text-decoration:none;border-top:1px solid var(--rule);padding-top:1.5rem;display:flex;flex-direction:column;align-items:start}
.collection-links .eyebrow {margin-bottom:1rem}
.collection-links p {font-size:var(--text-sm);color:var(--text-muted);margin-top:1rem;margin-bottom:1.25rem}
.collection-links .text-link {margin-top:auto}

/* Dialog uses the browser's modal focus/inert implementation. */
.lightbox {padding:1rem 1.5rem;background:#172019;color:var(--text-on-dark);border:1px solid #697269;width:min(90rem,calc(100% - 2rem));max-height:calc(100svh - 2rem);overflow:auto}
.lightbox::backdrop {background:#111b}
.lightbox :focus-visible {outline-color:var(--focus-on-dark)}
.lb-toolbar {display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:var(--text-sm);margin-bottom:.75rem}
.lb-toolbar button,.lb-controls button {background:none;color:var(--text-on-dark);border:1px solid #99a398;min-height:2.75rem;padding:.45rem 1rem;font-size:var(--text-sm)}
.lb-close span {font-size:1.4rem;margin-left:1rem}
.lb-figure img {width:100%;height:min(70svh,52rem);object-fit:contain}
.lb-figure figcaption {color:var(--text-on-dark);text-align:center}
.lb-controls {display:flex;justify-content:space-between;gap:1rem;margin-top:1rem}

/* Contact is a task page. Full native POST is visible before JavaScript starts. */
.contact-intro {padding-block:1.5rem .5rem}
.contact-intro .eyebrow {margin-bottom:.5rem}
.contact-intro h1 {font-size:clamp(2.1rem,1.8rem + 1vw,2.625rem);max-width:none}
.contact-intro > p:last-child {font-size:1rem;margin-top:.65rem;max-width:46rem;color:var(--text-muted)}
.contact-layout {display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr);gap:clamp(2rem,6vw,6rem);align-items:start;padding-bottom:5rem}
.form-area {min-width:0}
.inquiry-form {padding:1.5rem;background:var(--surface-card);border:1px solid var(--rule)}
.form-step-heading {font:400 1.5rem/1.25 var(--font-display);margin-bottom:1rem}
.form-step + .form-step {margin-top:2rem}
.inquiry-form.enhanced .form-step + .form-step {margin-top:0}
.form-progress {font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .5rem}
.form-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.field {margin-bottom:1.3rem;min-width:0}
.field label {display:block;font-size:var(--text-sm);font-weight:700;line-height:1.5;margin-bottom:.5rem}
.field label span {font-weight:400;color:var(--text-muted)}
input:not([type=checkbox]),select,textarea {display:block;width:100%;min-width:0;min-height:var(--control-height);background:var(--surface-input);border:1px solid var(--control-border);border-radius:var(--radius-control);font-size:1rem;padding:.65rem .75rem;line-height:1.5}
input[type=date] {appearance:auto;max-width:100%}
select {text-overflow:ellipsis;padding-right:1.5rem}
textarea {min-height:9rem;resize:vertical}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] {border:2px solid var(--error)}
.field-hint,.form-required {font-size:var(--text-sm);line-height:1.55;color:var(--text-muted);margin-top:.5rem}
.form-required {margin-top:-.5rem;margin-bottom:1.5rem}
.field-error {font-size:var(--text-sm);font-weight:700;color:var(--error);margin-top:.4rem}
.field-error:empty {display:none}
.check-field {display:flex;align-items:start;gap:.8rem;min-height:2.75rem;font-size:var(--text-sm);line-height:1.6}
.check-field input {flex-shrink:0;width:1.2rem;height:1.2rem;margin:.2rem 0 0;accent-color:var(--surface-dark)}
.field label.check-field {display:flex;font-weight:400}
.check-field > span {min-width:0}
.privacy-link {display:inline-flex;min-height:2.75rem;padding:.4rem 0;font-size:var(--text-sm);margin-left:2rem}
.selected-offer {display:grid;grid-template-columns:1fr auto;background:#e7e8dd;border-left:2px solid var(--surface-dark);padding:1rem;margin-bottom:1.5rem;gap:.25rem 1rem}
.selected-offer > .small,.selected-offer > strong {grid-column:1/-1}
.selected-offer strong {font:400 1.25rem/1.4 var(--font-display)}
.selected-offer > span:not(.small) {align-self:center;font-size:var(--text-sm)}
.selected-offer .text-link {font-size:var(--text-sm);padding:.3rem 0;min-height:2rem}
.date-status {font-size:var(--text-sm);margin-top:.5rem;color:var(--text-muted)}
.date-status[data-status=unavailable] {color:var(--error);font-weight:700}
.date-status[data-status=limited] {color:var(--accent);font-weight:700}
.project-prompt {padding:1rem;background:#e7e8dd;margin-bottom:1.5rem}
.project-prompt h3 {font:700 var(--text-sm)/1.4 var(--font-body);letter-spacing:0;margin-bottom:.5rem}
.project-prompt p {font-size:var(--text-sm)}
.step-one-actions {margin-top:1.5rem}
.form-actions {display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.form-message {font-size:var(--text-sm);margin-top:1rem}
.form-message:empty {display:none}
.draft-controls {border-top:1px solid var(--rule);margin-top:1.5rem;padding-top:.75rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.draft-controls p {flex-basis:100%;margin-top:0}
.draft-banner {background:#e7e8dd;padding:1.5rem;margin-bottom:1.5rem}
.draft-banner h2 {font-size:1.5rem}
.draft-banner p {font-size:var(--text-sm);margin:1rem 0}
.error-summary {border:2px solid var(--error);padding:1.25rem;margin-bottom:1.5rem}
.error-summary h2 {font:700 1rem/1.4 var(--font-body);letter-spacing:0}
.error-summary ul {margin:.75rem 0 0;padding-left:1.2rem}
.error-summary a {font-size:var(--text-sm);color:var(--error);display:inline-block;padding:.2rem 0}
.form-success {background:var(--surface-card);border:1px solid var(--rule);padding:clamp(1.5rem,4vw,3.5rem)}
.form-success h2 {font-size:2.5rem}
.form-success p:not(.eyebrow) {margin-top:1.5rem}
.form-success .button {margin-top:2rem}
.inquiry-reference {font-family:monospace;font-size:1rem;overflow-wrap:anywhere;padding-block:1rem;border-block:1px solid var(--rule)}
.contact-aside {padding-top:1rem}
.contact-aside h2 {font-size:2rem;margin-bottom:2rem}
.contact-aside > p.small {margin-top:2rem}
.contact-aside .text-link {margin-top:.75rem}
.contact-alternate {margin-top:1rem;font-size:var(--text-sm)}
.honeypot {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Footer is a useful directory, with no repeated inquiry billboard. */
.site-footer {background:var(--surface-dark);color:var(--text-on-dark);padding-top:3.5rem}
.footer-grid {display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3.5rem}
.footer-logo {font:400 2.3rem/1.1 var(--font-display);letter-spacing:-.05em;display:inline-block;text-decoration:none}
.footer-logo span {font:400 var(--text-xs)/1.5 var(--font-body);letter-spacing:.14em;display:block;margin-top:.5rem}
.footer-intro > p {font-size:var(--text-sm);margin-top:1.5rem;max-width:20rem}
.footer-intro > p.small {font-size:var(--text-sm);margin-top:.75rem}
.footer-col {display:flex;flex-direction:column;align-items:start;min-width:0}
.footer-col h2 {font:700 var(--text-xs)/1.5 var(--font-body);letter-spacing:.07em;text-transform:uppercase;margin-bottom:1rem}
.footer-col a {font-size:var(--text-sm);display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:none;overflow-wrap:anywhere}
.footer-col a:hover {text-decoration:underline}
.footer-bottom {display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;flex-wrap:wrap;border-top:1px solid #7a847b;padding-block:1.25rem;font-size:var(--text-xs)}
.footer-bottom a {min-height:2.75rem;display:inline-flex;align-items:center}
.error-header {padding-top:2rem}
.error-page {padding-block:clamp(3rem,8vw,8rem)}
.error-page h1 {max-width:13ch}
.error-page p:not(.eyebrow) {margin:1.5rem 0;max-width:34rem}
main > :last-child:not(.page-closer) {margin-bottom:0}
main > .story-sequence:last-child {margin-bottom:4rem}

@media (max-width:1100px) {
  .header-inner {gap:1rem}
  .primary-nav {gap:1rem}
  .brand-main {font-size:1.9rem}
  .primary-nav .nav-contact {padding-inline:.8rem;gap:.75rem}
  .home-hero,.service-hero {gap:2rem}
  .hero-copy h1 {font-size:clamp(2.5rem,4.8vw,4rem)}
  .hero-copy .hero-summary {font-size:1rem}
  .service-paths {gap:1.5rem}
  .footer-grid {grid-template-columns:1.2fr 1fr 1fr;gap:2rem}
  .footer-intro {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem 3rem}
  .footer-intro .footer-logo {grid-row:span 2;align-self:start}
  .footer-intro > p,.footer-intro > p.small {margin:0}
}
@media (max-width:900px) {
  .header-inner {flex-wrap:wrap;padding-block:.6rem;gap:.5rem}
  .brand {padding-block:.25rem}
  .primary-nav {flex-basis:100%;flex-wrap:wrap;gap:.25rem 1.25rem;padding-bottom:.5rem}
  .nav-enhanced .header-inner {min-height:4.5rem;padding-block:0}
  .nav-enhanced .menu-button {display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-width:5.25rem;min-height:2.75rem;padding:.5rem;background:transparent;border:1px solid var(--control-border);font-size:var(--text-sm)}
  .menu-icon {display:inline-block;width:1rem;height:.65rem;border-block:1px solid currentColor;position:relative}
  .menu-icon:after {content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid currentColor}
  .nav-enhanced .primary-nav {display:none}
  .nav-enhanced .primary-nav.open {display:flex;position:absolute;left:calc(-1*var(--gutter));right:calc(-1*var(--gutter));top:100%;background:var(--surface-page);border-bottom:1px solid var(--rule);padding:1rem var(--gutter) 1.5rem;flex-direction:column;align-items:stretch;gap:.3rem;max-height:calc(100svh - 4.5rem);overflow-y:auto}
  .nav-enhanced .primary-nav.open > a {padding:.6rem .75rem}
  .nav-enhanced .primary-nav.open .nav-contact {margin-top:.5rem;align-self:start}
  .footer-grid {gap:1.5rem}
}
@media (max-width:799px) {
  html {scroll-padding-top:5.5rem}
  .home-hero,.service-hero {grid-template-columns:minmax(0,1fr);gap:1.5rem;padding-top:2rem}
  .home-hero .hero-copy h1 {font-size:clamp(2.7rem,6vw,3.7rem);max-width:13ch}
  .hero-copy .eyebrow {margin-bottom:.8rem}
  .hero-copy .hero-summary {margin-top:1rem;max-width:34rem;font-size:1rem}
  .hero-offer {margin:1rem 0}
  .hero-copy .actions {gap:.5rem 1.25rem}
  .hero-photo img,.service-hero .hero-photo img {aspect-ratio:3/2}
  .hero-photo figcaption {font-size:var(--text-xs)}
  .service-hero .hero-copy h1 {font-size:clamp(2.5rem,5.5vw,3.75rem)}
  .home-hero {padding-bottom:1rem}
  .section-top {grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-bottom:2rem}
  .section-top > p {justify-self:start;max-width:36rem}
  .section-top h2 br.desktop-break {display:none}
  .proof-grid {grid-template-columns:1fr 1fr;gap:2rem 1rem}
  .proof-photo {padding-top:0}
  .proof-close {grid-column:span 2;max-width:100%}
  .proof-close img {aspect-ratio:4/3}
  .proof-sunset img,.proof-table img {aspect-ratio:4/5}
  .service-paths {grid-template-columns:1fr;gap:2rem;margin-top:2rem}
  .service-paths article {display:grid;grid-template-columns:2rem 1fr;column-gap:1rem}
  .service-paths article h3 {font-size:2rem}
  .service-number {grid-column:1;grid-row:1;align-self:start;padding-top:.25rem;margin:0}
  .service-paths article h3,.service-paths article p:not(.service-number),.service-paths article .text-link {grid-column:2}
  .service-paths article h3 br {display:none}
  .service-paths article p:not(.service-number) {max-width:36rem;margin-block:1rem .5rem}
  .service-paths article .text-link {justify-self:start}
  .story-feature {grid-template-columns:1fr;gap:2rem}
  .story-feature-photos {grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr)}
  .story-feature-copy {max-width:34rem}
  .personal-section,.session-details,.about-process,.session-proof,.planning-section,.compact-faq {grid-template-columns:minmax(0,1fr);gap:2.5rem}
  .session-proof > figure {max-width:36rem}
  .compact-faq .text-link {margin-top:.75rem}
  .page-intro {padding-top:2.5rem;padding-bottom:2rem}
  .page-intro > p:not(.eyebrow) {font-size:1rem}
  .portfolio-intro h1 {font-size:clamp(2.5rem,6vw,4rem)}
  .celebration-grid {gap:1rem;grid-template-columns:1fr}
  .celebration-grid figure:last-child {max-width:30rem;justify-self:end}
  .intro-columns {grid-template-columns:1fr;gap:1.5rem}
  .intro-columns > p {font-size:1rem}
  .commercial-paths {grid-template-columns:minmax(0,1fr)}
  .commercial-paths article h2 br {display:none}
  .commercial-notes {grid-template-columns:1fr;gap:2rem}
  .about-intro {grid-template-columns:1fr;gap:2.5rem}
  .about-copy .lead {font-size:1.2rem}
  .story-sequence {gap:2rem 1rem}
  .story-intro {padding-top:1rem;padding-bottom:2rem}
  .story-intro .back-link {margin-bottom:1rem}
  .story-intro > p:last-child {font-size:1rem}
  .page-closer {align-items:start;flex-direction:column;gap:1.5rem}
  .packages-grid {gap:1rem}
  .package-name,.package-card h3 {font-size:1.75rem}
  .portfolio-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}
  .gallery-item:first-child {grid-row:auto}
  .gallery-item figcaption {flex-direction:column;gap:.2rem}
  .collection-links {grid-template-columns:1fr;gap:1.5rem}
  .collection-links h3 {font-size:1.75rem}
  .contact-layout {grid-template-columns:minmax(0,1fr);gap:3rem}
  .contact-intro {padding-top:1.5rem}
  .contact-intro h1 {font-size:2.25rem;max-width:19ch}
  .contact-aside {border-top:1px solid var(--rule);padding-top:2rem}
  .contact-aside .process-list {grid-template-columns:1fr 1fr;gap:2rem}
  .contact-aside > p.small {max-width:none}
}
@media (max-width:599px) {
  .section {padding-block:3rem}
  .hero-copy .actions {align-items:start}
  .home-hero .hero-copy h1 {font-size:2.75rem;max-width:13ch}
  .hero-copy .hero-summary {font-size:.975rem;line-height:1.6}
  .hero-offer {font-size:.95rem}
  .hero-copy .button {font-size:.875rem}
  .proof-grid {grid-template-columns:1fr;gap:1.75rem}
  .proof-close {grid-column:auto}
  .proof-photo img {aspect-ratio:4/3}
  .proof-sunset img {aspect-ratio:3/2}
  .proof-table img {aspect-ratio:3/2}
  .story-feature-photos {gap:1rem}
  .story-feature-photos .detail-photo {padding-bottom:1rem}
  .story-feature-photos .detail-photo figcaption {font-size:var(--text-xs)}
  .story-feature-photos > figure:first-child img {aspect-ratio:4/3}
  .offer-table {display:block}
  .offer-table caption {display:block;width:100%;text-align:left}
  .offer-table thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .offer-table tbody {display:grid;gap:0}
  .offer-table tr {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule)}
  .offer-table td,.offer-table th,.offer-table tbody th {border:0;padding:.2rem 0!important;min-width:0;width:auto!important}
  .offer-table td:first-child,.offer-table tbody th:first-child {font:400 1.25rem/1.4 var(--font-display);width:auto}
  .offer-table td:nth-child(2) {font-weight:700}
  .offer-table td:nth-child(n+3) {grid-column:1/-1;font-size:var(--text-sm);margin-top:.4rem}
  .offer-table ul {padding-left:1rem}
  .offer-table a {min-height:2.75rem}
  .packages-grid {grid-template-columns:minmax(0,1fr)}
  .package-card {padding:1.75rem}
  .portfolio-grid {grid-template-columns:1fr}
  .gallery-item:first-child {grid-column:auto}
  .gallery-item:first-child img {aspect-ratio:4/3}
  .gallery-item figcaption {flex-direction:row;align-items:start}
  .gallery-filters {gap:.25rem .5rem}
  .filter-link {padding:.6rem .5rem;font-size:.8125rem}
  .portfolio-intro {padding-bottom:1.5rem}
  .portfolio-intro h1 {font-size:2.5rem}
  .portfolio-intro .eyebrow {margin-bottom:.75rem}
  .story-sequence {grid-template-columns:1fr;gap:2rem}
  .story-sequence .story-lead,.story-sequence .story-last {grid-column:auto}
  .story-intro h1 {font-size:2.6rem}
  .inquiry-form {padding:1.25rem}
  .contact-intro {padding-block:1.5rem 1.25rem}
  .contact-intro h1 {font-size:2.125rem}
  .contact-intro .eyebrow {font-size:.7rem}
  .contact-intro > p:last-child {font-size:.9375rem;line-height:1.6;margin-top:.8rem}
  .form-step-heading {font-size:1.5rem;margin-bottom:1.25rem}
  .form-row {grid-template-columns:minmax(0,1fr);gap:0}
  .form-actions {align-items:start;flex-direction:column}
  .form-actions .form-submit {width:100%}
  .form-actions .form-back {order:2}
  .contact-aside .process-list {grid-template-columns:1fr}
  .step-one-actions .button {width:100%}
  .selected-offer {grid-template-columns:1fr;gap:.3rem}
  .selected-offer .text-link {justify-self:start}
  .draft-banner {padding:1.25rem}
  .footer-grid {grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem}
  .footer-intro {display:block}
  .footer-intro > p {margin-top:1.25rem}
  .footer-intro > p.small {margin-top:.75rem}
  .footer-col:last-child {grid-column:1/-1}
  .footer-bottom {flex-direction:column;align-items:start;gap:.5rem;padding-block:1.25rem}
  .site-footer {padding-top:3rem}
  .lb-figure img {height:65svh}
  .lightbox {padding:1rem;width:calc(100% - 1rem);max-height:calc(100svh - 1rem)}
}
@media (max-width:359px) {
  .home-hero .hero-copy h1 {font-size:2.5rem}
  .hero-copy .actions {gap:.3rem}
  .hero-copy .actions > .button {width:100%}
  .hero-photo figcaption {flex-direction:column;gap:.2rem}
  .hero-copy .eyebrow {font-size:.6875rem}
  .contact-intro h1 {font-size:1.9rem}
  .brand-main {font-size:1.75rem}
  .inquiry-form {padding:1rem}
  .story-feature-photos {grid-template-columns:1fr}
  .story-feature-photos .detail-photo {max-width:12rem;justify-self:end}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*:before,*:after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media (forced-colors:active) {
  .button,.nav-contact,.filter-link.active {border:1px solid ButtonText}
  .check-field input {appearance:auto}
  .photo-slot img {forced-color-adjust:none}
}
@media print {
  .site-header,.site-footer,.menu-button,.lightbox,.draft-controls,.form-actions {display:none!important}
  .container {width:100%}
  body {background:#fff;color:#000}
  a {color:#000}
  .section {padding-block:1.5rem}
  .package-card {break-inside:avoid}
}
