/* Readable labels keep the same hierarchy on large screens and phones. */
:root .eyebrow {font-size:var(--eyebrow-size,clamp(13px,.9vw,16px));line-height:var(--eyebrow-leading,1.5);letter-spacing:var(--eyebrow-tracking,.11em)}
.section-number {font-size:inherit;color:inherit;opacity:.75}
.album-topline {font-size:13px;letter-spacing:.11em;line-height:1.5}
.closing-copy {--eyebrow-size:clamp(22px,2.2vw,38px);--eyebrow-leading:1.25;--eyebrow-tracking:.045em}
.service-row div>span {font-size:12px;letter-spacing:.035em}
.service-row:nth-child(3)>img {aspect-ratio:3/2;max-height:none;width:100%;justify-self:auto}

/* The visible location label is part of the main heading. */
.landing-copy h1>.eyebrow {display:block;font-family:var(--sans);font-weight:400}

/* A real button with switch semantics, a visible state and a generous tap area. */
.footer-links {align-items:center}
.theme-controls {display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.site-footer .theme-toggle {display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:8px 13px;border:1px solid #75806b;border-radius:28px;font-size:14px;line-height:1.4;white-space:nowrap;background:transparent;color:inherit}
.site-footer .theme-auto {min-height:46px;padding:8px 13px;font-size:14px;border:1px solid transparent;border-radius:28px;background:transparent;color:inherit}
.site-footer .theme-auto[aria-pressed=true] {border-color:#75806b;background:#c8d5b612;color:#edf1e6}
.theme-status {font-size:13px;line-height:1.5;color:#b7c2aa}
.site-footer .theme-controls [hidden] {display:none}
.footer-links .theme-toggle[hidden] {display:none}
.theme-track {display:block;width:32px;height:18px;border-radius:12px;background:#6b7563;padding:3px;flex:none}
.theme-track::after {content:'';display:block;width:12px;height:12px;border-radius:50%;background:#f4f4ea}
.theme-toggle[aria-checked=true] .theme-track {background:#c8d5b6}
.theme-toggle[aria-checked=true] .theme-track::after {transform:translateX(14px);background:#202a20}
.theme-state {min-width:22px;color:#d1dac5;font-size:12px}
.footer-links .theme-toggle:hover {border-color:#d1dac5;text-decoration:none}

/* A charcoal gallery with warm text. Photographs are never color-inverted. */
:root[data-theme=dark] {--paper:#131914;--ink:#f1f0e7;--olive:#bdcfa7;--muted:#b2bbaa;--line:#414b3e;--dark:#0e140f;color-scheme:dark}
[data-theme=dark] .site-header.light {background:#131914f2;border-bottom-color:var(--line)}
[data-theme=dark] .site-header .brand img,[data-theme=dark] .intro-logo img {filter:brightness(0) invert(1)}
[data-theme=dark] .intro-glow {background:radial-gradient(ellipse at 50% 48%,#6d7d5c4a,transparent 64%);z-index:0}
[data-theme=dark] .camera {filter:drop-shadow(0 6px 24px #b6cba41c)}
[data-theme=dark] :is(.album,.services) {background:#1e271f}
[data-theme=dark] :is(.memory-sequence,.feeling,.feeling-pin,.legal-page) {background:var(--paper)}
[data-theme=dark] .memory-details {background:#18211a}
[data-theme=dark] .album-photo {box-shadow:0 18px 40px #0005}
[data-theme=dark] :is(.memory-print figcaption>span,.service-row p,.service-row div>span,.row-number,.services-heading>p:last-child,.legal-copy,.scroll-word,.intro-skip) {color:var(--muted)}
[data-theme=dark] .album-nav button {color:#b8c2ad}
[data-theme=dark] .album-nav button[aria-current=true] {color:var(--ink)}
[data-theme=dark] .little-star {color:var(--olive)}
[data-theme=dark] .scroll-line {background:linear-gradient(transparent,#bcc9ad)}
[data-theme=dark] :is(.button,.site-header.light .header-cta,.closing-cta) {background:var(--olive);color:#182016;border-color:var(--olive)}
[data-theme=dark] :is(.button,.site-header.light .header-cta,.closing-cta):is(:hover,:focus-visible) {background:#d3dfc3;color:#182016}
[data-theme=dark] .memory-controls button:hover:not(:disabled) {color:#182016}
[data-theme=dark] .photo-open {color:#242720}
[data-theme=dark] :is(.contact,.site-footer) {background:#101810;color:#edf1e6}
[data-theme=dark] .contact .section-number {color:inherit}
[data-theme=dark] :is(.field input,.field textarea,.copy-button,#lightbox,.lightbox-bar button,.lightbox-arrow) {color:#edf1e6}
[data-theme=dark] .button-light {background:#e0e9d4;color:#182016}
[data-theme=dark] :is(.field input,.field textarea)::placeholder {color:#aab69e}
[data-theme=dark] .field input:focus,[data-theme=dark] .field textarea:focus {border-color:#c9daba}
[data-theme=dark] :focus-visible {outline-color:#d0b38a}
[data-theme=dark] .feeling-window::after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,#131914c9,#1319149c 32%,transparent 68%);pointer-events:none}
[data-theme=dark] :is(.feeling-copy,.feeling-index) {color:var(--ink)}
[data-theme=dark] .closing-image::after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,#131914ed,#131914b8 33%,transparent 65%);pointer-events:none}
[data-theme=dark] :is(.closing-copy,.closing-note) {color:var(--ink)}
@media(max-width:700px){
 .closing-copy {--eyebrow-size:clamp(18px,5vw,24px)}
 .footer-links {align-items:center;gap:8px 20px}
 .footer-links .theme-toggle {min-height:48px;padding:10px 14px}
 [data-theme=dark] .closing-image::after {background:linear-gradient(0deg,#131914fa,#131914ce 35%,transparent 78%)}
 [data-theme=dark] .feeling-window::after {background:linear-gradient(0deg,#131914ed,#131914b3 35%,transparent 78%)}
}
@media print {
 :root[data-theme=dark] {--paper:#fff;--ink:#242720;--muted:#50544b;--line:#d6d6ca;color-scheme:light}
 [data-theme=dark] .legal-page {background:#fff}
}

/* Direct calls stay easy to reach on desktop and touch screens. */
.contact-phone {display:flex;align-items:center;width:fit-content;min-height:44px;gap:18px;margin-top:12px;border-bottom:1px solid #717762;font-size:16px}
.contact-phone span {font-size:23px}
.footer-links .footer-phone {display:inline-flex;align-items:center;min-height:44px;font-size:14px;white-space:nowrap}

/* Keep the recovery page as calm and readable as the legal pages. */
.error-page .legal-copy {margin-top:32px;max-width:720px}

/* Real line icons stay monochrome and identical on iOS, Android and desktop. */
.ui-icon {display:inline-block;vertical-align:middle;width:24px;height:24px;flex:none;pointer-events:none}
.header-cta .ui-icon,.intro-skip .ui-icon,.footer-links .ui-icon,.album-scroll .ui-icon {width:19px;height:19px}
.photo-open .ui-icon {width:20px;height:20px}
.lightbox-arrow .ui-icon {width:32px;height:32px}
.lightbox-bar button .ui-icon {width:20px;height:20px}
.memory-hint .ui-icon {width:17px;height:17px}
summary .ui-icon {width:18px;height:18px}
.field-help {font-size:12px;line-height:1.5;color:#bfc7b3;margin:8px 0 0}

/* A calm, clearly anchored invitation replaces the tilted circular badge. */
.closing .closing-copy {top:50%;bottom:auto;transform:translateY(-50%);max-width:calc(100% - 2 * var(--gutter))}
.closing .closing-copy h2 {margin-bottom:28px}
.closing .closing-cta {display:inline-flex;align-items:center;justify-content:space-between;flex-direction:row;gap:30px;width:auto;max-width:100%;height:auto;min-height:58px;padding:17px 22px;border-radius:0;transform:none;font-size:16px;line-height:1.4;text-align:left;transition:background .2s}
.closing .closing-cta>span:last-child {display:flex;align-self:center;font-size:inherit;line-height:inherit}
.closing .closing-cta:is(:hover,:focus-visible) {transform:none}
.closing .closing-cta .ui-icon {width:26px;height:26px;transition:transform .2s}
.closing .closing-cta:hover .ui-icon {transform:translate(2px,-2px)}
@media(max-width:700px){
 .closing {height:max(820px,100svh);min-height:0}
 .closing .closing-copy {left:24px;right:24px;top:auto;bottom:100px;max-width:none;transform:none}
 .closing .closing-copy h2 {font-size:clamp(108px,32vw,210px);margin:16px 0 26px}
 .closing .closing-cta {width:100%;min-height:58px;padding:16px 19px;gap:16px;font-size:16px}
 .closing .closing-note {left:24px;right:24px;bottom:36px;max-width:none;font-size:15px}
.field-help {font-size:13px}
}

/* Reading copy keeps its presence beside the large photographs and headlines. */
:root {--reading-size:clamp(18px,1.15vw,22px);--supporting-size:clamp(15px,.9vw,17px)}
.services .service-row p,
.services-heading>p:last-child,
.about-copy>p:not(.intro-paragraph),
.questions details>p,
.contact-heading>p:not(.eyebrow) {font-size:var(--reading-size);line-height:1.65}
.services .service-row p,.about-copy>p:not(.intro-paragraph),.questions details>p {max-width:54ch}
.services-heading>p:last-child {max-width:42ch}
.contact-heading>p:not(.eyebrow) {max-width:46ch}
.services .service-row div>span {font-size:var(--supporting-size);line-height:1.65;letter-spacing:.015em}
.questions summary {font-size:var(--reading-size);line-height:1.5}
.memory-sequence .memory-heading .memory-description {font-size:clamp(17px,1.05vw,20px);line-height:1.6}

/* Let people write without competing smooth scroll or tiny field labels. */
html:has(#enquiry-form:focus-within) {scroll-behavior:auto}
.contact .field label {font-size:clamp(18px,1.2vw,22px);line-height:1.5;margin-bottom:12px}
.contact .field label>span {font-size:.88em;color:#c1cab4}
.contact .field input,.contact .field textarea {font-size:clamp(18px,1.1vw,20px);line-height:1.6;padding:12px 0 16px;scroll-behavior:auto}
.contact .field textarea {min-height:190px;overscroll-behavior-y:contain}
.contact .field input::placeholder,.contact .field textarea::placeholder {color:#aeb8a2}
.contact .field-help {font-size:15px;line-height:1.6}
.contact .form-note,.contact .privacy-note,.contact .privacy-note a {font-size:15px;line-height:1.7}
@media(min-width:701px) and (max-width:1100px){
 .contact .field-pair {grid-template-columns:minmax(0,1fr);gap:0}
}
.site-header .header-cta {font-weight:700;white-space:nowrap}
.header-theme-toggle {width:44px;height:44px;flex:none;display:grid;place-items:center;padding:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;transition:background .2s}
.header-theme-toggle[hidden],.header-theme-toggle .theme-state {display:none}
.header-theme-toggle:hover {background:color-mix(in srgb,currentColor 8%,transparent)}
.header-theme-toggle .theme-sun,.header-theme-toggle[aria-checked=true] .theme-moon {display:none}
.header-theme-toggle[aria-checked=true] .theme-sun {display:block}
.site-header .brand + .header-theme-toggle {margin-left:auto}
.site-header .mobile-nav a[href$="#anfrage"] {font-weight:700}
.mobile-nav .menu-theme-toggle {display:flex;align-items:center;gap:12px;min-height:56px;width:100%;margin-top:12px;padding:16px 0 0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:left;font-size:18px;line-height:1.5}
.mobile-nav .menu-theme-toggle[hidden] {display:none}
.mobile-nav .menu-theme-toggle .theme-state {margin-left:auto;font-size:14px;color:var(--muted)}
@media(max-width:900px) {
  .site-header>.header-theme-toggle {display:none}
  .site-header .header-cta {margin-left:auto}
}
@media(min-width:901px) and (max-width:1100px) {
  .site-header {gap:20px}
  .desktop-nav {gap:22px}
}
@media(min-width:701px) and (max-width:900px) {
  .desktop-nav {display:none}
  .site-header {gap:16px}
  .header-theme-toggle {margin-left:auto}
  .menu-toggle {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:transparent;width:44px;min-width:44px;height:44px;padding:0}
  .menu-toggle>span {display:block;width:22px;height:1px;background:currentColor;transition:transform .2s}
  .menu-toggle[aria-expanded=true]>span:first-child {transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true]>span:last-child {transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-nav:not([hidden]) {display:flex;position:absolute;top:91px;left:0;right:0;max-height:calc(100svh - 91px);overflow-y:auto;padding:25px var(--gutter) 35px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;gap:12px}
  .mobile-nav a {font:28px/1.5 var(--serif);min-height:44px}
}
@media(max-width:700px) {
  .site-header {gap:8px}
  .header-theme-toggle {margin-left:auto}
  .site-header .header-cta {margin-left:auto;gap:8px}
}
@media(max-width:380px) {
  .site-header {gap:6px}
  .site-header .brand {width:64px}
  .site-header .header-cta {padding-inline:8px}
  .site-header .header-cta>span {display:none}
}
