/* Liora website — components & page sections */

/* ============== Notched corner frames (static mask, radius 16 / 14) ============== */
.lr-notched {
  position: relative;
  display: block;
  filter: drop-shadow(0 30px 50px rgba(61, 74, 87, 0.20));
}
.lr-notched > img,
.lr-notched > .frame-inner,
.lr-notched > * {
  display: block; width: 100%; height: 100%;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.lr-notched-16 {
  -webkit-mask:
    radial-gradient(circle 16px at top left, transparent 16px, #000 16.5px) no-repeat top left / 51% 51%,
    radial-gradient(circle 16px at top right, transparent 16px, #000 16.5px) no-repeat top right / 51% 51%,
    radial-gradient(circle 16px at bottom left, transparent 16px, #000 16.5px) no-repeat bottom left / 51% 51%,
    radial-gradient(circle 16px at bottom right, transparent 16px, #000 16.5px) no-repeat bottom right / 51% 51%;
  mask:
    radial-gradient(circle 16px at top left, transparent 16px, #000 16.5px) no-repeat top left / 51% 51%,
    radial-gradient(circle 16px at top right, transparent 16px, #000 16.5px) no-repeat top right / 51% 51%,
    radial-gradient(circle 16px at bottom left, transparent 16px, #000 16.5px) no-repeat bottom left / 51% 51%,
    radial-gradient(circle 16px at bottom right, transparent 16px, #000 16.5px) no-repeat bottom right / 51% 51%;
}
.lr-notched-14 {
  -webkit-mask:
    radial-gradient(circle 14px at top left, transparent 14px, #000 14.5px) no-repeat top left / 51% 51%,
    radial-gradient(circle 14px at top right, transparent 14px, #000 14.5px) no-repeat top right / 51% 51%,
    radial-gradient(circle 14px at bottom left, transparent 14px, #000 14.5px) no-repeat bottom left / 51% 51%,
    radial-gradient(circle 14px at bottom right, transparent 14px, #000 14.5px) no-repeat bottom right / 51% 51%;
  mask:
    radial-gradient(circle 14px at top left, transparent 14px, #000 14.5px) no-repeat top left / 51% 51%,
    radial-gradient(circle 14px at top right, transparent 14px, #000 14.5px) no-repeat top right / 51% 51%,
    radial-gradient(circle 14px at bottom left, transparent 14px, #000 14.5px) no-repeat bottom left / 51% 51%,
    radial-gradient(circle 14px at bottom right, transparent 14px, #000 14.5px) no-repeat bottom right / 51% 51%;
}

/* ============== Top nav — centered logo, split menu ============== */
.lr-nav {
  position: sticky; top: 0; z-index: 50;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  padding: 16px 48px;
  background: rgba(248, 244, 237, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(228, 217, 194, 0.5);
}
.lr-nav .menu-left, .lr-nav .menu-right { display: flex; gap: 44px; list-style: none; padding: 0; margin: 0; }
.lr-nav .menu-left { justify-content: flex-end; }
.lr-nav .menu-right { justify-content: flex-start; align-items: center; }
.lr-nav ul a {
  font-family: var(--font-caps);
  font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 400;
  color: var(--ink-soft); text-decoration: none;
  background: none;
  transition: color 200ms var(--ease);
}
.lr-nav ul a:hover, .lr-nav ul li.on a { color: var(--ink); }
.lr-nav .brand {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  text-decoration: none;
  background: none;
}
.lr-nav .brand img { width: 84px; height: 84px; display: block; }
.lr-nav .cta {
  font-family: var(--font-caps);
  font-size: 12px; letter-spacing: .22em; text-transform: uppercase;
  background: transparent; color: var(--ink); border: 1px solid var(--gold);
  padding: 11px 20px; border-radius: 999px; cursor: pointer;
  text-decoration: none; display: inline-block;
  transition: all 200ms var(--ease);
}
.lr-nav .cta:hover { background: var(--ink); color: var(--pearl); border-color: var(--ink); }

.lr-nav .burger {
  display: none;
  width: 44px; height: 44px;
  background: transparent; border: 0; cursor: pointer;
  align-items: center; justify-content: center;
  color: var(--ink);
}
.lr-nav .burger svg { display: block; }

/* Mobile slide-down panel */
.lr-mobilemenu {
  position: fixed; inset: 0; z-index: 100;
  background: var(--paper);
  display: flex; flex-direction: column;
  padding: 24px 28px 40px;
  transform: translateY(-100%);
  transition: transform 320ms var(--ease);
}
.lr-mobilemenu.open { transform: translateY(0); }
.lr-mobilemenu .head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 56px; }
.lr-mobilemenu .head img { width: 64px; height: 64px; }
.lr-mobilemenu .head .close { background: transparent; border: 0; padding: 10px; color: var(--ink); cursor: pointer; }
.lr-mobilemenu ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 28px; }
.lr-mobilemenu a {
  font-family: var(--font-display); font-weight: 300;
  font-size: 32px; letter-spacing: -0.005em; color: var(--ink);
  text-decoration: none; background: none;
}
.lr-mobilemenu .footer { margin-top: auto; display: flex; flex-direction: column; gap: 16px; }
.lr-mobilemenu .footer .btn { width: 100%; justify-content: center; }

@media (max-width: 980px) {
  .lr-nav {
    grid-template-columns: auto 1fr auto;
    padding: 12px 20px;
  }
  .lr-nav .menu-left, .lr-nav .menu-right { display: none; }
  .lr-nav .brand img { width: 64px; height: 64px; }
  .lr-nav .burger { display: inline-flex; }
}

/* ============== Hero — full-bleed image, content over ============== */
.lr-hero {
  position: relative;
  height: calc(100vh - 100px); min-height: 640px; max-height: 900px;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  overflow: hidden;
}
.lr-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(120deg, rgba(30, 38, 47, 0.55) 0%, rgba(30, 38, 47, 0.18) 38%, rgba(30, 38, 47, 0) 60%),
    linear-gradient(180deg, rgba(30, 38, 47, 0) 50%, rgba(30, 38, 47, 0.35) 100%);
}
.lr-hero .inner {
  position: relative; z-index: 1;
  height: 100%; max-width: 1240px; margin: 0 auto;
  padding: 0 48px 96px;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.lr-hero .frame-rule {
  position: absolute; inset: 28px;
  border: 1px solid rgba(253, 250, 244, 0.32);
  pointer-events: none;
}
.lr-hero .eyebrow {
  font-family: var(--font-caps);
  color: var(--pearl); opacity: 0.85;
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  margin: 0 0 24px;
}
.lr-hero h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(44px, 6vw, 88px); line-height: 1.0; letter-spacing: -0.012em;
  color: var(--pearl); margin: 0 0 24px; max-width: 18ch;
}
.lr-hero h1 em { font-style: italic; font-weight: 400; }
.lr-hero p {
  color: rgba(253, 250, 244, 0.88);
  font-size: 17px; max-width: 48ch; margin: 0 0 36px; line-height: 1.7;
}
.lr-hero .actions { display: flex; gap: 14px; flex-wrap: wrap; }
.lr-hero .btn-onhero { background: var(--pearl); color: var(--ink); border-color: transparent; }
.lr-hero .btn-onhero:hover { background: var(--blush); }
.lr-hero .btn-onhero-secondary { background: transparent; color: var(--pearl); border-color: rgba(253,250,244,0.5); box-shadow: none; }
.lr-hero .btn-onhero-secondary:hover { background: rgba(253,250,244,0.10); border-color: var(--pearl); }

/* ============== Buttons ============== */
.btn {
  font-family: var(--font-caps);
  font-weight: 400; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  padding: 16px 30px; border-radius: 999px; border: 1px solid transparent; cursor: pointer;
  transition: all 200ms var(--ease); text-decoration: none; background-image: none; background-size: auto;
  display: inline-flex; align-items: center; gap: 10px;
}
.btn-primary { background: var(--ink); color: var(--pearl); }
.btn-primary:hover { background: var(--ink-soft); }
.btn-secondary { background: transparent; color: var(--ink); border-color: var(--gold); }
.btn-secondary:hover { background: var(--ink); color: var(--pearl); border-color: var(--ink); }
.btn-ghost { background: transparent; color: var(--gold-deep); padding-inline: 0; border-radius: 0; }
.btn-ghost:hover { color: var(--ink); }

/* ============== Section header ============== */
.lr-section-head { text-align: center; max-width: 760px; margin: 0 auto 72px; }
.lr-section-head .eyebrow {
  font-family: var(--font-caps);
  color: var(--ink-soft);
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  font-weight: 400;
  margin-bottom: 18px;
}
.lr-section-head h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(34px, 4vw, 56px); line-height: 1.08; letter-spacing: -0.005em;
  margin: 0 0 18px; color: var(--ink);
}
.lr-section-head h2 em { font-style: italic; font-weight: 400; }
.lr-section-head p { color: var(--ink-soft); font-style: italic; font-family: var(--font-display); font-size: 19px; line-height: 1.7; max-width: 56ch; margin: 0 auto; }
.lr-divider {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin: 0 auto 28px; color: var(--gold);
}
.lr-divider .line { width: 56px; height: 1px; background: var(--gold); opacity: 0.55; }

/* ============== Project gallery — single feature + thumbs ============== */
.lr-gallery {
  padding: 140px 48px;
  background: var(--ivory);
}
.lr-gallery .container { max-width: 1240px; margin: 0 auto; }
.lr-feature {
  position: relative;
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 64px;
  align-items: center;
  margin-bottom: 56px;
}
.lr-feature .photo-stage {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background-color: var(--linen);
  background-image: linear-gradient(135deg, var(--powder-soft), var(--blush-soft));
  box-shadow: 0 2px 4px rgba(61,74,87,0.04), 0 36px 80px -36px rgba(61,74,87,0.28);
}
.lr-feature .photo-stage .img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 1; transition: opacity 500ms var(--ease);
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px;
  font-family: var(--font-display); font-style: italic; font-size: 20px; color: rgba(61, 74, 87, 0.45);
}
.lr-feature .photo-stage .img.fading { opacity: 0; }
.lr-feature .meta-side .index {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 18px;
}
.lr-feature .meta-side .tag {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-deep); margin-bottom: 14px;
}
.lr-feature .meta-side h3 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(34px, 3.5vw, 52px); line-height: 1.05; letter-spacing: -0.005em;
  margin: 0 0 22px; color: var(--ink);
}
.lr-feature .meta-side p {
  font-family: var(--font-display);
  font-size: 18px; line-height: 1.7; color: var(--ink-soft); margin: 0 0 28px; max-width: 38ch;
}
.lr-feature .meta-side .open { display: inline-flex; align-items: center; gap: 10px; }

.lr-thumbs-row {
  display: flex; align-items: center; gap: 18px;
}
.lr-thumbs-row .arrow {
  flex: 0 0 auto;
  width: 48px; height: 48px; border-radius: 999px;
  border: 1px solid var(--gold); background: transparent;
  color: var(--ink); display: flex; align-items: center; justify-content: center;
  transition: all 200ms var(--ease); cursor: pointer;
}
.lr-thumbs-row .arrow:hover { background: var(--ink); color: var(--pearl); border-color: var(--ink); }
.lr-thumbs {
  flex: 1;
  display: flex; gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.lr-thumbs::-webkit-scrollbar { display: none; }
.lr-thumb {
  flex: 0 0 calc(20% - 13px);
  min-width: 140px;
  aspect-ratio: 4/3;
  border-radius: var(--radius);
  overflow: hidden;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  background-image: linear-gradient(135deg, var(--powder-soft), var(--blush-soft));
  cursor: pointer; scroll-snap-align: start;
  position: relative; border: 0; padding: 0;
  transition: transform 300ms var(--ease), box-shadow 300ms var(--ease);
  box-shadow: 0 0 0 1px transparent;
}
.lr-thumb::after {
  content: ""; position: absolute; inset: 0;
  border-radius: var(--radius);
  background: rgba(248, 244, 237, 0.45);
  transition: opacity 200ms var(--ease);
}
.lr-thumb.active::after { opacity: 0; }
.lr-thumb.active {
  box-shadow: 0 0 0 1.5px var(--gold), 0 12px 28px -16px rgba(61,74,87,0.3);
  transform: translateY(-2px);
}
.lr-thumb:not(.active):hover { transform: translateY(-2px); }
.lr-thumb:not(.active):hover::after { opacity: 0.15; }

@media (max-width: 980px) {
  .lr-gallery { padding: 80px 20px; }
  .lr-feature { grid-template-columns: 1fr; gap: 32px; margin-bottom: 32px; }
  .lr-thumb { flex: 0 0 calc(33% - 11px); min-width: 110px; }
  .lr-thumbs-row .arrow { width: 40px; height: 40px; }
}

/* ============== Vorteile / Advantages ============== */
.lr-adv {
  padding: 160px 48px;
  background:
    radial-gradient(50% 50% at 100% 0%, rgba(191, 208, 170, 0.28), transparent 70%),
    radial-gradient(50% 50% at 0% 100%, rgba(236, 207, 200, 0.28), transparent 70%),
    var(--paper);
}
.lr-adv .wrap { max-width: 1200px; margin: 0 auto; }
.lr-adv .head { text-align: center; max-width: 760px; margin: 0 auto 72px; }
.lr-adv .head .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 18px;
  display: inline-flex; align-items: center; gap: 14px;
}
.lr-adv .head .eyebrow::before,
.lr-adv .head .eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-adv .head h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(34px, 4vw, 56px); line-height: 1.05; letter-spacing: -0.01em;
  margin: 0 0 22px; color: var(--ink);
}
.lr-adv .head h2 em { font-style: italic; font-weight: 400; }
.lr-adv .head p {
  font-family: var(--font-body); font-size: 16px; line-height: 1.75; color: var(--ink-soft); margin: 0 auto;
}
.lr-adv .grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
}
.lr-adv .tile {
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  padding: 0 32px;
  border-left: 1px solid var(--sand);
}
.lr-adv .tile:first-child { padding-left: 0; border-left: 0; }
.lr-adv .tile:last-child { padding-right: 0; }
.lr-adv .tile .icon {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-deep);
}
.lr-adv .tile .roman {
  font-family: var(--font-caps); font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-mute);
}
.lr-adv .tile h4 {
  font-family: var(--font-display); font-weight: 400;
  font-size: 23px; line-height: 1.12; color: var(--ink); margin: -6px 0 0;
}
.lr-adv .tile p {
  font-family: var(--font-body); font-size: 13.5px; line-height: 1.65; color: var(--ink-soft); margin: 0;
}
.lr-adv .cta-wrap { text-align: center; margin-top: 72px; }
@media (max-width: 1100px) {
  .lr-adv .grid { grid-template-columns: repeat(2, 1fr); gap: 48px 40px; }
  .lr-adv .tile { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--sand); }
  .lr-adv .tile:first-child { padding-top: 28px; border-top: 1px solid var(--sand); }
}
@media (max-width: 980px) { .lr-adv { padding: 80px 20px; } }
@media (max-width: 560px) { .lr-adv .grid { grid-template-columns: 1fr; } }

/* ============== Process steps ============== */
.lr-process { padding: 140px 48px; background: var(--ivory); }
.lr-process .step {
  max-width: 1100px; margin: 0 auto 112px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 88px; align-items: center;
}
.lr-process .step:last-child { margin-bottom: 0; }
.lr-process .step.alt > .copy { order: 2; }
.lr-process .step.alt > .photo-wrap { order: 1; }
.lr-process .photo-wrap { border-radius: 0; overflow: visible; box-shadow: none; }
.lr-process .photo {
  aspect-ratio: 4/5;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  background-image: linear-gradient(135deg, var(--powder-soft), var(--blush-soft));
  box-shadow: var(--shadow-floating);
}
.lr-process .num {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em;
  color: var(--gold-deep); margin-bottom: 14px;
}
.lr-process h3 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(30px, 3.5vw, 44px); line-height: 1.08; letter-spacing: -0.005em;
  margin: 0 0 24px;
}
.lr-process h3 em { font-style: italic; font-weight: 400; }
.lr-process p { color: var(--ink-soft); font-size: 16px; line-height: 1.75; max-width: 50ch; margin: 0 0 28px; }

/* ============== Contact — split editorial ============== */
.lr-contact {
  padding: 140px 48px;
  background:
    radial-gradient(40% 40% at 0% 0%, rgba(236, 207, 200, 0.22), transparent 70%),
    radial-gradient(40% 40% at 100% 100%, rgba(191, 208, 170, 0.22), transparent 70%),
    var(--paper);
}
.lr-contact .container { max-width: 1200px; margin: 0 auto; }
.lr-contact .split {
  display: grid; grid-template-columns: 5fr 7fr; gap: 96px;
  align-items: start;
}
.lr-contact .left-side .eyebrow {
  font-family: var(--font-caps);
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--ink-soft);
  margin-bottom: 18px;
}
.lr-contact .left-side h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(40px, 4.2vw, 64px); line-height: 1.0; letter-spacing: -0.01em;
  margin: 0 0 28px;
}
.lr-contact .left-side h2 em { font-style: italic; font-weight: 400; }
.lr-contact .left-side .lede {
  font-family: var(--font-display);
  font-size: 19px; line-height: 1.7; color: var(--ink-soft);
  margin: 0 0 40px; max-width: 38ch;
}
.lr-contact .channels { display: flex; flex-direction: column; gap: 24px; margin-top: 36px; }
.lr-contact .channel {
  display: flex; align-items: flex-start; gap: 18px;
  padding: 24px 0; border-top: 1px solid var(--gold);
}
.lr-contact .channel:last-child { border-bottom: 1px solid var(--gold); }
.lr-contact .channel .icon {
  flex: 0 0 36px; width: 36px; height: 36px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-deep);
}
.lr-contact .channel .info { display: flex; flex-direction: column; gap: 2px; }
.lr-contact .channel .label {
  font-family: var(--font-caps); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--ink-soft);
}
.lr-contact .channel .value {
  font-family: var(--font-display);
  font-size: 22px; color: var(--ink); text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%;
  transition: background-size 400ms var(--ease);
}
.lr-contact .channel a.value:hover { background-size: 100% 1px; }

.lr-contact .form-card {
  background: var(--ivory);
  border: 1px solid rgba(228, 217, 194, 0.6);
  border-radius: var(--radius-xl);
  padding: 56px 56px 48px;
  box-shadow: 0 30px 80px -40px rgba(61, 74, 87, 0.15);
}
.lr-contact .form-card h3 {
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: 28px; line-height: 1.1; margin: 0 0 28px; color: var(--ink);
}
.lr-contact form { display: grid; gap: 22px; }
.lr-contact .row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.lr-contact .field { display: flex; flex-direction: column; gap: 8px; }
.lr-contact label {
  font-family: var(--font-caps);
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--ink-soft); font-weight: 400;
}
.lr-contact input, .lr-contact textarea {
  font-family: var(--font-body); font-size: 16px; color: var(--ink);
  background: transparent; border: 0; border-bottom: 1px solid var(--sand);
  padding: 10px 0; outline: none;
  transition: all 200ms var(--ease);
}
.lr-contact textarea { min-height: 100px; resize: vertical; }
.lr-contact input:focus, .lr-contact textarea:focus { border-bottom-color: var(--ink); }
.lr-contact .submit { display: flex; justify-content: flex-start; margin-top: 12px; }
.lr-contact .sent-msg {
  font-family: var(--font-script); font-size: 44px; color: var(--gold-deep); line-height: 1.15; margin: 24px 0 0;
}
.lr-contact .form-error {
  font-family: var(--font-display); font-style: italic; font-size: 15px;
  color: var(--error); margin: -8px 0 0;
}
.lr-contact .hp-field {
  position: absolute; left: -9999px; top: -9999px;
  width: 1px; height: 1px; overflow: hidden;
}
.lr-contact button[disabled] { opacity: 0.6; cursor: default; }

@media (max-width: 980px) {
  .lr-contact { padding: 80px 20px; }
  .lr-contact .split { grid-template-columns: 1fr; gap: 48px; }
  .lr-contact .form-card { padding: 32px 24px; }
  .lr-contact .row { grid-template-columns: 1fr; }
}

/* ============== Footer ============== */
.lr-footer { background: var(--ink); color: var(--pearl); padding: 96px 48px 40px; }
.lr-footer .top {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 64px; align-items: start;
}
.lr-footer .brand {
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  text-align: center;
}
.lr-footer .brand img { width: 168px; height: 168px; filter: brightness(1.05); }
.lr-footer .tag {
  font-family: var(--font-script); font-size: 38px; color: var(--blush);
  display: block; line-height: 1; max-width: 18ch;
}
.lr-footer h5 {
  font-family: var(--font-caps);
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-soft); margin: 0 0 22px; font-weight: 400;
}
.lr-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.lr-footer a { color: rgba(253,250,244,0.78); text-decoration: none; background: none; font-size: 14px; }
.lr-footer a:hover { color: var(--pearl); }
.lr-footer .legal {
  border-top: 1px solid rgba(228,217,194,0.15); margin-top: 80px; padding-top: 28px;
  max-width: 1200px; margin-left: auto; margin-right: auto;
  display: flex; justify-content: space-between; font-size: 12px; color: rgba(253,250,244,0.5);
}

/* ============================================================
   LOADING SPLASH & PAGE HEROES
   ============================================================ */
.lr-splash {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 28px;
  background: var(--paper);
  opacity: 1;
  transition: opacity 600ms var(--ease);
}
.lr-splash.fading { opacity: 0; pointer-events: none; }
.lr-splash.gone { display: none; }
.lr-splash .mark {
  width: 140px; height: 140px;
  opacity: 0;
  animation: lr-splash-mark 900ms var(--ease) 120ms forwards;
}
.lr-splash .wordmark {
  font-family: var(--font-caps);
  font-size: 14px; letter-spacing: .42em; text-transform: uppercase;
  color: var(--ink); padding-left: .42em;
  opacity: 0;
  animation: lr-splash-wm 700ms var(--ease) 480ms forwards;
}
.lr-splash .line {
  position: relative; width: 0; height: 1px; background: var(--gold);
  animation: lr-splash-line 900ms var(--ease) 600ms forwards;
}
.lr-splash .meta {
  font-family: var(--font-caps);
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase; color: var(--ink-soft);
  opacity: 0;
  animation: lr-splash-meta 700ms var(--ease) 900ms forwards;
}
@keyframes lr-splash-mark { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
@keyframes lr-splash-wm { from { opacity: 0; } to { opacity: 1; } }
@keyframes lr-splash-line { from { width: 0; } to { width: 140px; } }
@keyframes lr-splash-meta { from { opacity: 0; } to { opacity: 0.85; } }

/* Reusable page hero — full-bleed photo + text overlay */
.lr-page-hero {
  position: relative;
  height: 72vh; min-height: 540px; max-height: 760px;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  overflow: hidden;
}
.lr-page-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(120deg, rgba(30, 38, 47, 0.55) 0%, rgba(30, 38, 47, 0.18) 38%, rgba(30, 38, 47, 0) 60%),
    linear-gradient(180deg, rgba(30, 38, 47, 0) 50%, rgba(30, 38, 47, 0.32) 100%);
}
.lr-page-hero .frame-rule {
  position: absolute; inset: 28px;
  border: 1px solid rgba(253, 250, 244, 0.32);
  pointer-events: none;
}
.lr-page-hero .inner {
  position: relative; z-index: 1;
  height: 100%; max-width: 1240px; margin: 0 auto;
  padding: 0 48px 96px;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.lr-page-hero .eyebrow {
  font-family: var(--font-caps); color: var(--pearl); opacity: 0.85;
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  margin: 0 0 24px;
}
.lr-page-hero h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(44px, 6vw, 88px); line-height: 1.0; letter-spacing: -0.012em;
  color: var(--pearl); margin: 0 0 18px; max-width: 18ch;
}
.lr-page-hero h1 em { font-style: italic; font-weight: 400; }
.lr-page-hero p {
  color: rgba(253, 250, 244, 0.88);
  font-size: 17px; max-width: 50ch; margin: 0; line-height: 1.7;
}
@media (max-width: 980px) {
  .lr-page-hero { height: auto; min-height: 480px; }
  .lr-page-hero .inner { padding: 88px 24px 56px; }
  .lr-page-hero .frame-rule { inset: 14px; }
}

/* Full-bleed quote break — image band with overlaid line */
.lr-quote-break {
  position: relative;
  min-height: 60vh;
  display: flex; align-items: center; justify-content: center;
  padding: 120px 48px;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  text-align: center;
}
.lr-quote-break::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,38,47,0.40), rgba(30,38,47,0.30));
}
.lr-quote-break .frame-rule {
  position: absolute; inset: 28px;
  border: 1px solid rgba(253, 250, 244, 0.32);
  pointer-events: none;
}
.lr-quote-break .inner { position: relative; z-index: 1; max-width: 24ch; margin: 0 auto; }
.lr-quote-break .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: rgba(253,250,244,0.85); margin-bottom: 24px;
}
.lr-quote-break p {
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: clamp(30px, 4vw, 52px); line-height: 1.15; letter-spacing: -0.01em;
  color: var(--pearl); margin: 0 auto;
}
@media (max-width: 980px) {
  .lr-quote-break { padding: 80px 24px; min-height: 50vh; }
  .lr-quote-break .frame-rule { inset: 14px; }
}

/* ============================================================
   ABOUT page — Meet Pauline (shared with home intro block)
   ============================================================ */
.lr-meet {
  padding: 130px 48px;
  background:
    radial-gradient(55% 50% at 8% 12%, rgba(236, 207, 200, 0.34), transparent 70%),
    radial-gradient(50% 50% at 100% 100%, rgba(191, 208, 170, 0.24), transparent 72%),
    var(--paper);
}
.lr-meet .wrap {
  max-width: 1140px; margin: 0 auto;
  display: grid; grid-template-columns: 5fr 7fr; gap: 88px; align-items: center;
}
.lr-meet .portrait-col { position: relative; }
.lr-meet .portrait {
  width: 100%; aspect-ratio: 4/5;
  background-size: cover; background-position: center top;
  background-color: var(--linen);
}
.lr-meet .portrait-col .badge {
  position: absolute; right: -22px; bottom: 28px;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  background: var(--pearl);
  border-radius: var(--radius-lg);
  padding: 16px 22px;
  box-shadow: 0 24px 48px -28px rgba(61, 74, 87, 0.4);
}
.lr-meet .portrait-col .badge .script {
  font-family: var(--font-script); font-size: 38px; color: var(--gold-deep); line-height: 0.9;
}
.lr-meet .portrait-col .badge .role {
  font-family: var(--font-caps); font-size: 9px; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-soft);
}
.lr-meet .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 20px;
  display: flex; align-items: center; gap: 14px;
}
.lr-meet .eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-meet h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(34px, 4vw, 56px); line-height: 1.05; letter-spacing: -0.008em;
  color: var(--ink); margin: 0 0 26px;
}
.lr-meet h2 em { font-style: italic; font-weight: 400; color: var(--gold-deep); }
.lr-meet .lede {
  font-family: var(--font-display); font-style: italic; font-weight: 300;
  font-size: clamp(20px, 2.1vw, 26px); line-height: 1.4; color: var(--ink);
  margin: 0 0 24px;
}
.lr-meet p {
  font-family: var(--font-body); font-size: 16.5px; line-height: 1.8; color: var(--ink-soft);
  margin: 0 0 16px; max-width: 54ch;
}
.lr-meet p strong { color: var(--ink); font-weight: 600; }
.lr-meet .closing { margin-top: 28px; }
.lr-meet .closing .farewell {
  font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--ink-soft); margin-bottom: 2px;
}
.lr-meet .closing .sig {
  font-family: var(--font-script); font-size: 52px; color: var(--gold-deep); line-height: 1; display: block;
}
.lr-meet .closing .credentials {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-top: 6px;
}
@media (max-width: 980px) {
  .lr-meet { padding: 72px 20px; }
  .lr-meet .wrap { grid-template-columns: 1fr; gap: 48px; }
  .lr-meet .portrait-col { max-width: 420px; margin: 0 auto; width: 100%; }
  .lr-meet .portrait-col .badge { right: 16px; }
}

/* ============================================================
   LEGAL pages (Impressum / Datenschutz) — prose
   ============================================================ */
.lr-legal { padding: 80px 48px 140px; background: var(--paper); }
.lr-legal .wrap { max-width: 760px; margin: 0 auto; }
.lr-legal .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 18px;
  display: flex; align-items: center; gap: 14px;
}
.lr-legal .eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-legal h1 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(40px, 5vw, 68px); line-height: 1.0; letter-spacing: -0.012em;
  color: var(--ink); margin: 0 0 16px;
}
.lr-legal .intro {
  font-family: var(--font-display); font-style: italic; font-weight: 300;
  font-size: clamp(19px, 2vw, 24px); line-height: 1.5; color: var(--ink-soft);
  margin: 0 0 48px; max-width: 56ch;
}
.lr-legal hr { border: 0; height: 1px; width: 100%; background: var(--sand); margin: 40px 0; }
.lr-legal h2 {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; color: var(--ink);
  margin: 44px 0 16px;
}
.lr-legal h3 {
  font-family: var(--font-body); font-weight: 600;
  font-size: 16px; letter-spacing: .01em; color: var(--ink); margin: 32px 0 10px;
}
.lr-legal p {
  font-family: var(--font-body); font-size: 15.5px; line-height: 1.8; color: var(--ink-soft);
  margin: 0 0 16px; max-width: none;
}
.lr-legal p strong, .lr-legal address strong { color: var(--ink); font-weight: 600; }
.lr-legal address {
  font-style: normal;
  font-family: var(--font-body); font-size: 16px; line-height: 1.9; color: var(--ink);
  margin: 0 0 24px;
}
.lr-legal address .label { color: var(--ink-soft); }
.lr-legal a { color: var(--gold-deep); }
.lr-legal ul { list-style: none; padding: 0; margin: 0 0 20px; }
.lr-legal ul li {
  position: relative; padding-left: 24px; margin-bottom: 10px;
  font-family: var(--font-body); font-size: 15.5px; line-height: 1.7; color: var(--ink-soft);
}
.lr-legal ul li::before {
  content: ""; position: absolute; left: 4px; top: 11px;
  width: 5px; height: 5px; border-radius: 999px; background: var(--gold);
}
.lr-legal .stand { font-size: 13px; color: var(--ink-mute); margin-top: 40px; }
@media (max-width: 980px) { .lr-legal { padding: 56px 20px 80px; } }

/* ============================================================
   DESIGN PROJEKTE page
   ============================================================ */
.lr-proj-intro { padding: 140px 48px 64px; background: var(--paper); text-align: center; }
.lr-proj-intro .wrap { max-width: 820px; margin: 0 auto; }
.lr-proj-intro .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 24px;
  display: inline-flex; align-items: center; gap: 14px;
}
.lr-proj-intro .eyebrow::before, .lr-proj-intro .eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-proj-intro .lead {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(28px, 3.4vw, 44px); line-height: 1.18; letter-spacing: -0.005em;
  color: var(--ink); margin: 0 auto 24px;
}
.lr-proj-intro .lead em { font-style: italic; color: var(--gold-deep); }
.lr-proj-intro p {
  font-family: var(--font-body); font-size: 17px; line-height: 1.8; color: var(--ink-soft);
  margin: 0 auto; max-width: 60ch;
}

.lr-proj-grid { padding: 40px 48px 140px; background: var(--paper); }
.lr-proj-grid .grid {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 32px;
}
.lr-proj-card { cursor: pointer; background: none; border: 0; padding: 0; text-align: left; font: inherit; color: inherit; display: block; width: 100%; }
.lr-proj-card .cover { position: relative; }
.lr-proj-card .photo {
  aspect-ratio: 4/3;
  background-size: cover; background-position: center;
  background-color: var(--linen);
  background-image: linear-gradient(135deg, var(--powder-soft), var(--blush-soft));
  transition: filter 500ms var(--ease);
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 16px;
}
.lr-proj-card .photo .ph-label {
  font-family: var(--font-display); font-style: italic; font-size: 17px; color: rgba(61, 74, 87, 0.45);
}
.lr-proj-card:hover .photo { filter: brightness(1.04); }
.lr-proj-card .count {
  position: absolute; bottom: 14px; right: 14px; z-index: 3;
  background: rgba(248,244,237,0.92); backdrop-filter: blur(6px);
  font-family: var(--font-caps); font-size: 10px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--ink); padding: 6px 12px; border-radius: 999px;
}
.lr-proj-card .meta {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 18px; gap: 16px;
}
.lr-proj-card h3 {
  font-family: var(--font-display); font-weight: 400;
  font-size: 26px; line-height: 1.1; color: var(--ink); margin: 0;
  transition: color 200ms var(--ease);
}
.lr-proj-card:hover h3 { color: var(--gold-deep); }
.lr-proj-card .view {
  flex: 0 0 auto;
  font-family: var(--font-caps); font-size: 10px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--ink-soft); display: inline-flex; align-items: center; gap: 8px;
  transition: color 200ms var(--ease);
}
.lr-proj-card:hover .view { color: var(--gold-deep); }
@media (max-width: 980px) {
  .lr-proj-intro { padding: 80px 20px 40px; }
  .lr-proj-grid { padding: 24px 20px 80px; }
  .lr-proj-grid .grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
}
@media (max-width: 600px) { .lr-proj-grid .grid { grid-template-columns: 1fr; } }

/* Lightbox */
.lr-lightbox {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 40px;
  background: rgba(30, 38, 47, 0.86);
  backdrop-filter: blur(8px);
  opacity: 0; pointer-events: none;
  transition: opacity 300ms var(--ease);
}
.lr-lightbox.open { opacity: 1; pointer-events: auto; }
.lr-lightbox .frame {
  position: relative; width: min(960px, 92vw); max-height: 86vh;
  background: var(--paper);
  display: flex; flex-direction: column;
}
.lr-lightbox .stage {
  position: relative;
  aspect-ratio: 16/9; background-color: var(--linen);
  background-image: linear-gradient(135deg, var(--powder-soft), var(--blush-soft));
  background-size: cover; background-position: center;
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px;
  font-family: var(--font-display); font-style: italic; font-size: 20px; color: rgba(61, 74, 87, 0.5);
}
.lr-lightbox .bar { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; }
.lr-lightbox .bar .name { font-family: var(--font-display); font-style: italic; font-size: 24px; color: var(--ink); }
.lr-lightbox .bar .idx { font-family: var(--font-caps); font-size: 11px; letter-spacing: .26em; color: var(--ink-soft); }
.lr-lightbox .nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; border-radius: 999px;
  border: 1px solid rgba(253,250,244,0.5); background: rgba(30,38,47,0.4);
  color: var(--pearl); display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all 200ms var(--ease);
}
.lr-lightbox .nav:hover { background: var(--pearl); color: var(--ink); border-color: var(--pearl); }
.lr-lightbox .nav.prev { left: -26px; }
.lr-lightbox .nav.next { right: -26px; }
.lr-lightbox .close {
  position: absolute; top: -52px; right: 0;
  width: 44px; height: 44px; border-radius: 999px;
  border: 1px solid rgba(253,250,244,0.5); background: transparent;
  color: var(--pearl); display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all 200ms var(--ease);
}
.lr-lightbox .close:hover { background: var(--pearl); color: var(--ink); }
.lr-lightbox .thumbs { display: flex; gap: 10px; padding: 0 24px 22px; overflow-x: auto; scrollbar-width: none; }
.lr-lightbox .thumbs::-webkit-scrollbar { display: none; }
.lr-lightbox .thumbs .t {
  flex: 0 0 84px; aspect-ratio: 16/10; border-radius: 4px;
  background-size: cover; background-position: center;
  cursor: pointer; opacity: 0.55; border: 0; padding: 0;
  transition: opacity 200ms var(--ease), box-shadow 200ms var(--ease);
}
.lr-lightbox .thumbs .t.on { opacity: 1; box-shadow: 0 0 0 1.5px var(--gold); }
@media (max-width: 700px) {
  .lr-lightbox { padding: 20px; }
  .lr-lightbox .nav.prev { left: 8px; } .lr-lightbox .nav.next { right: 8px; }
  .lr-lightbox .nav { background: rgba(30,38,47,0.55); }
}

/* ============================================================
   LEISTUNGEN page
   ============================================================ */
.lr-srv-intro { padding: 140px 48px 40px; background: var(--paper); text-align: center; }
.lr-srv-intro .wrap { max-width: 820px; margin: 0 auto; }
.lr-srv-intro .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 24px;
  display: inline-flex; align-items: center; gap: 14px;
}
.lr-srv-intro .eyebrow::before, .lr-srv-intro .eyebrow::after { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-srv-intro .lead {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(28px, 3.4vw, 44px); line-height: 1.18; letter-spacing: -0.005em;
  color: var(--ink); margin: 0 auto 24px;
}
.lr-srv-intro .lead em { font-style: italic; color: var(--gold-deep); }
.lr-srv-intro p {
  font-family: var(--font-body); font-size: 17px; line-height: 1.8; color: var(--ink-soft);
  margin: 0 auto; max-width: 60ch;
}

.lr-srv-block { padding: 100px 48px; background: var(--paper); }
.lr-srv-block.on-ivory { background: var(--ivory); }
.lr-srv-block .wrap {
  max-width: 1140px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
}
.lr-srv-block.alt .copy { order: 2; }
.lr-srv-block.alt .media { order: 1; }
.lr-srv-block .num {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-deep); margin-bottom: 18px;
}
.lr-srv-block h3 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; letter-spacing: -0.008em;
  margin: 0 0 24px; color: var(--ink);
}
.lr-srv-block h3 em { font-style: italic; font-weight: 400; }
.lr-srv-block .copy p {
  font-family: var(--font-body); font-size: 16px; line-height: 1.8; color: var(--ink-soft);
  margin: 0 0 16px; max-width: 52ch;
}
.lr-srv-block .media .photo {
  aspect-ratio: 4/5; background-size: cover; background-position: center;
  background-color: var(--linen); box-shadow: var(--shadow-floating);
}

.lr-srv-list { padding: 120px 48px; background: var(--ivory); }
.lr-srv-list .wrap {
  max-width: 1140px; margin: 0 auto;
  display: grid; grid-template-columns: 4fr 7fr; gap: 80px; align-items: start;
}
.lr-srv-list .title-col { position: sticky; top: 120px; }
.lr-srv-list .eyebrow {
  font-family: var(--font-caps); font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 20px;
  display: flex; align-items: center; gap: 14px;
}
.lr-srv-list .eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lr-srv-list h3 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; letter-spacing: -0.008em;
  margin: 0 0 16px; color: var(--ink); max-width: 14ch;
}
.lr-srv-list h3 em { font-style: italic; font-weight: 400; }
.lr-srv-list .sub { font-family: var(--font-body); font-size: 15px; line-height: 1.7; color: var(--ink-soft); margin: 0; max-width: 34ch; }
.lr-srv-list ul { list-style: none; padding: 0; margin: 0; }
.lr-srv-list li {
  display: grid; grid-template-columns: 28px 1fr; gap: 16px; align-items: start;
  padding: 24px 0; border-top: 1px solid var(--sand);
}
.lr-srv-list li:last-child { border-bottom: 1px solid var(--sand); }
.lr-srv-list li .mk { font-family: var(--font-caps); font-size: 11px; letter-spacing: .1em; color: var(--gold-deep); padding-top: 4px; }
.lr-srv-list li .txt { font-family: var(--font-body); font-size: 16px; line-height: 1.65; color: var(--ink); }
.lr-srv-list li .txt strong { font-weight: 600; }
.lr-srv-list li .txt span { color: var(--ink-soft); }
@media (max-width: 980px) {
  .lr-srv-intro { padding: 80px 20px 24px; }
  .lr-srv-block { padding: 56px 20px; }
  .lr-srv-block .wrap { grid-template-columns: 1fr; gap: 32px; }
  .lr-srv-block.alt .copy { order: 1; } .lr-srv-block.alt .media { order: 2; }
  .lr-srv-list { padding: 72px 20px; }
  .lr-srv-list .wrap { grid-template-columns: 1fr; gap: 32px; }
  .lr-srv-list .title-col { position: static; }
}

/* Short CTA band */
.lr-cta-band {
  padding: 120px 48px 140px;
  background:
    radial-gradient(50% 50% at 50% 0%, rgba(236, 207, 200, 0.32), transparent 70%),
    var(--paper);
  position: relative;
  text-align: center;
}
.lr-cta-band::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 80px; height: 1px; background: var(--gold);
}
.lr-cta-band .wrap { max-width: 720px; margin: 0 auto; }
.lr-cta-band .ornament { color: var(--gold); display: flex; justify-content: center; margin-bottom: 28px; }
.lr-cta-band h2 {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(38px, 5vw, 64px); line-height: 1.02; letter-spacing: -0.01em;
  margin: 0 0 22px; color: var(--ink);
}
.lr-cta-band h2 em { font-style: italic; font-weight: 400; }
.lr-cta-band p {
  font-family: var(--font-display); font-size: 19px; line-height: 1.65;
  color: var(--ink-soft); max-width: 50ch; margin: 0 auto 36px;
}
@media (max-width: 980px) { .lr-cta-band { padding: 72px 20px; } }

@media (max-width: 980px) {
  .lr-hero { height: auto; min-height: 600px; padding-bottom: 64px; }
  .lr-hero .inner { padding: 88px 24px 56px; }
  .lr-hero .frame-rule { inset: 14px; }
  .lr-process { padding: 80px 20px; }
  .lr-process .step { grid-template-columns: 1fr; gap: 32px; margin-bottom: 64px; }
  .lr-process .step.alt > .copy { order: 1; }
  .lr-process .step.alt > .photo-wrap { order: 2; }
  .lr-footer { padding: 64px 24px 32px; }
  .lr-footer .top { grid-template-columns: 1fr; gap: 48px; }
  .lr-footer .brand img { width: 140px; height: 140px; }
  .lr-footer .legal { flex-direction: column; gap: 8px; }
}
