/* Erwin Spicher — Malerei | Shared Stylesheet */
:root {
  --bg: #0b0a08;
  --bg-soft: #141210;
  --panel: #17140f;
  --fg: #f4efe3;
  --fg-dim: rgba(244,239,227,.56);
  --fg-faint: rgba(244,239,227,.32);
  --line: rgba(244,239,227,.13);
  --accent: #c1552d;
  --accent-soft: rgba(193,85,45,.16);
  --gold: #cda355;
  --shadow: rgba(0,0,0,.7);
  /* fixed light colors for overlays that always sit on dark scrims/photos */
  --on-dark: #f4efe3;
  --on-dark-dim: rgba(244,239,227,.56);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
::selection { background: var(--accent); color:#fff; }
body {
  color: var(--fg);
  font-family:'Inter', sans-serif; font-weight:300;
  overflow-x:hidden;
  background-color: var(--bg);
  background-image:
    radial-gradient(ellipse 900px 620px at 12% -10%, rgba(193,85,45,.10), transparent 60%),
    radial-gradient(ellipse 1000px 720px at 108% 4%, rgba(205,163,85,.08), transparent 60%),
    radial-gradient(ellipse 900px 700px at 50% 105%, rgba(90,100,120,.07), transparent 60%);
  background-attachment: fixed;
  background-size: cover;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.disp { font-family:'Bricolage Grotesque', sans-serif; font-weight:600; letter-spacing:-.02em; }
.accent-i { font-style:normal; color: var(--accent); }
.wrap { max-width: 1360px; margin:0 auto; padding: 0 56px; }
.eyebrow { font-size:11px; letter-spacing:.28em; text-transform:uppercase; color: var(--accent); font-weight:500; font-family:'Inter',sans-serif; }

.grain { position:fixed; inset:0; z-index:200; pointer-events:none; opacity:.05; mix-blend-mode:overlay; }

.cur {
  position:fixed; top:0; left:0; width:26px; height:26px; border-radius:50%;
  border:1px solid var(--fg); pointer-events:none; z-index:999; transform:translate(-50%,-50%);
  transition: width .25s, height .25s, background .25s, border-color .25s, opacity .2s;
  mix-blend-mode: difference;
}
.cur.big { width:64px; height:64px; background: var(--fg); }
@media (pointer:coarse) { .cur { display:none; } }

.reveal { opacity:0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1); }
.reveal.in { opacity:1; transform:none; }

/* header */
header { position:fixed; top:0; left:0; right:0; z-index:100; padding: 26px 0; transition: background .4s, padding .4s, border-color .4s; border-bottom:1px solid transparent; }
header.scrolled { background: rgba(11,10,8,.86); backdrop-filter: blur(14px); padding: 16px 0; border-color: var(--line); }
.nav { max-width:1360px; margin:0 auto; padding:0 56px; display:flex; justify-content:space-between; align-items:center; }
.brand { display:flex; align-items:center; gap:14px; border:1px solid transparent; border-radius:3px; transition: background .4s, padding .4s, border-color .4s; }
.brand img { height:40px; width:auto; filter: drop-shadow(0 2px 10px rgba(0,0,0,.35)); transition: height .4s; }
.brand .word { display:flex; flex-direction:column; line-height:1.05; }
.brand .word b { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:17px; letter-spacing:-.01em; }
.brand .word span { font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:var(--fg-dim); margin-top:4px; }
nav.links ul { list-style:none; display:flex; gap:44px; }
nav.links a { font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-dim); position:relative; padding-bottom:4px; }
nav.links a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:right; transition:transform .35s; }
nav.links a:hover, nav.links a.current { color:var(--fg); }
nav.links a:hover::after, nav.links a.current::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { font-size:11px; text-transform:uppercase; letter-spacing:.14em; border:1px solid var(--fg-dim); padding:11px 22px; border-radius:2px; transition:.3s; }
.nav-cta:hover { border-color:var(--fg); background:var(--fg); color:var(--bg); }
.burger { display:none; flex-direction:column; gap:5px; width:26px; cursor:pointer; z-index:210; }
.burger span { height:1px; background:var(--fg); width:100%; transition:.3s; }

/* index.html only: header sits over a full-bleed dark photo until scrolled */
body.has-photo-hero header:not(.scrolled) .brand .word b,
body.has-photo-hero header:not(.scrolled) nav.links a,
body.has-photo-hero header:not(.scrolled) .nav-cta { color: var(--on-dark); }
body.has-photo-hero header:not(.scrolled) .brand .word span { color: var(--on-dark-dim); }
body.has-photo-hero header:not(.scrolled) .brand { background: transparent; border-color: transparent; }
body.has-photo-hero header:not(.scrolled) .brand img { height:54px; filter: drop-shadow(0 0 3px rgba(0,0,0,.9)) drop-shadow(0 2px 14px rgba(0,0,0,.7)); }
body.has-photo-hero header:not(.scrolled) .brand .word { text-shadow: 0 1px 12px rgba(0,0,0,.75); }
body.has-photo-hero header:not(.scrolled) .nav-cta { border-color: rgba(247,242,230,.5); }
body.has-photo-hero header:not(.scrolled) .nav-cta:hover { background: var(--on-dark); color: var(--fg); }
body.has-photo-hero header:not(.scrolled) .burger span { background: var(--on-dark); }
.burger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity:0; }
.burger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mobile-nav {
  position:fixed; inset:0; background: var(--bg); z-index:150; display:flex; flex-direction:column;
  align-items:flex-start; justify-content:center; gap:26px; padding:0 56px;
  transform: translateY(-100%); transition: transform .5s cubic-bezier(.16,.8,.24,1);
}
.mobile-nav.open { transform: translateY(0); }
.mobile-nav a { font-family:'Bricolage Grotesque',sans-serif; font-size:38px; font-weight:600; color:var(--fg); }
.mobile-nav a span { color:var(--accent); font-family:'Inter',sans-serif; font-size:13px; margin-right:14px; }

/* page hero (interior pages) */
.page-hero { padding-top:190px; padding-bottom:90px; border-bottom:1px solid var(--line); }
.page-hero .eyebrow { display:block; margin-bottom:22px; }
.page-hero h1 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size: clamp(46px,7vw,96px); letter-spacing:-.03em; line-height:.98; }
.page-hero p { color:var(--fg-dim); font-size:16px; max-width:520px; margin-top:26px; line-height:1.8; }

/* home hero */
.hero { position:relative; height:100vh; min-height:720px; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg { position:absolute; inset:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; object-position: center 30%; filter: saturate(1.05) brightness(.72); transform: scale(1.06); }
.hero-bg::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(11,10,8,.66) 0%, rgba(11,10,8,.18) 24%, rgba(11,10,8,.35) 55%, rgba(11,10,8,.96) 100%); }
.hero-content { position:relative; z-index:2; width:100%; padding: 0 56px 76px; max-width:1360px; margin:0 auto; }
.hero-content, .hero-content h1 { color: var(--on-dark); }
.hero-kicker { display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.hero-kicker .ln { width:44px; height:1px; background:var(--accent); }
.hero-title { font-family:'Bricolage Grotesque', sans-serif; font-weight:700; font-size: clamp(52px, 8.6vw, 126px); line-height:.94; letter-spacing:-.03em; }
.hero-title .accent-i { font-size:1em; }
.hero-foot { display:flex; justify-content:space-between; align-items:flex-end; margin-top:36px; gap:30px; flex-wrap:wrap; }
.hero-foot p { max-width:360px; color:var(--on-dark-dim); font-size:15px; line-height:1.75; }
.scroll-cue { display:flex; flex-direction:column; align-items:center; gap:10px; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-dim); }
.scroll-cue .bar { width:1px; height:46px; background: linear-gradient(180deg, var(--accent), transparent); animation: dropcue 2.2s ease-in-out infinite; }
@keyframes dropcue { 0%{transform:scaleY(.2); opacity:.2;} 50%{transform:scaleY(1); opacity:1;} 100%{transform:scaleY(.2); opacity:.2; transform-origin:bottom;} }

/* marquee */
.marquee { border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; padding: 22px 0; background: var(--bg-soft); }
.marquee-track { display:flex; width:max-content; animation: scroll 34s linear infinite; }
.marquee-track span { font-family:'Bricolage Grotesque',sans-serif; font-weight:500; font-size:21px; color:var(--fg-faint); padding:0 34px; white-space:nowrap; }
.marquee-track span.acc { color: var(--accent); font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; }
@keyframes scroll { from { transform:translateX(0);} to { transform:translateX(-50%);} }

.statement { padding-top:150px; padding-bottom:150px; text-align:center; }
.statement .stmt { font-family:'Bricolage Grotesque',sans-serif; font-weight:500; font-size: clamp(26px, 3.4vw, 44px); line-height:1.35; max-width:940px; margin:0 auto; letter-spacing:-.01em; }

.stats { display:grid; grid-template-columns: repeat(4,1fr); border-top:1px solid var(--line); position:relative; }
.stats.anim { border-top-color: transparent; }
.stats.anim::before { content:""; position:absolute; top:-1px; left:0; right:0; height:1px; background:var(--line); transform:scaleX(0); transform-origin:left; transition: transform 1.6s cubic-bezier(.16,.8,.24,1); }
.stats.anim.in::before { transform:scaleX(1); }
.stats.anim .stat { opacity:0; transform: translateY(26px); transition: opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1); }
.stats.anim.in .stat { opacity:1; transform:none; }
.stats.anim .stat:nth-child(2) { transition-delay:.12s; }
.stats.anim .stat:nth-child(3) { transition-delay:.24s; }
.stats.anim .stat:nth-child(4) { transition-delay:.36s; }
.stat .n { font-variant-numeric: tabular-nums; display:inline-block; }
.stat .l::before { content:""; display:block; width:28px; height:1px; background:var(--accent); margin:0 auto 14px; transform:scaleX(1); transition: transform 1s cubic-bezier(.16,.8,.24,1) .7s; }
.stats.anim .stat .l::before { transform:scaleX(0); }
.stats.anim.in .stat .l::before { transform:scaleX(1); }
.stat .n .lt { display:inline-block; }
.stats.anim .stat .n .lt { opacity:0; transform: translateY(.55em) rotate(10deg); filter: blur(6px); transition: opacity .7s, transform .9s cubic-bezier(.16,.8,.24,1), filter .7s; }
.stats.anim.in .stat .n .lt { opacity:1; transform:none; filter:none; }
.stats.anim.in .stat .n .lt:nth-child(1) { transition-delay: .55s; }
.stats.anim.in .stat .n .lt:nth-child(2) { transition-delay: .75s; }
.stat .n.done { animation: statpop .6s cubic-bezier(.16,.8,.24,1); }
@keyframes statpop { 0%{ transform:scale(1);} 40%{ transform:scale(1.08);} 100%{ transform:scale(1);} }
@media (prefers-reduced-motion: reduce) {
  .stats.anim .stat, .stats.anim .stat .n .lt, .stats.anim::before, .stats.anim .stat .l::before { transition:none !important; opacity:1 !important; transform:none !important; filter:none !important; }
}
.stat { padding: 40px 0; border-left:1px solid var(--line); text-align:center; }
.stat:first-child { border-left:none; }
.stat .n { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:36px; color:var(--accent); }
.stat .l { font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--fg-dim); margin-top:14px; }

section { position:relative; }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; padding: 130px 0 60px; gap:30px; flex-wrap:wrap; border-top:1px solid var(--line); }
.section-head.notop { border-top:none; padding-top:0; }
.section-head h2 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size: clamp(36px,4.6vw,58px); letter-spacing:-.02em; }
.section-head p { color:var(--fg-dim); font-size:14px; max-width:320px; line-height:1.7; text-align:right; }

/* process */
.process { display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:150px; }
.proc { background:var(--bg); padding: 44px 40px; }
.proc .pn { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:15px; color:var(--accent); margin-bottom:22px; }
.proc h4 { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:23px; margin-bottom:14px; }
.proc p { color:var(--fg-dim); font-size:14.5px; line-height:1.75; }

/* index gallery */
.index-section { display:grid; grid-template-columns: 1.1fr .9fr; gap: 70px; padding-bottom: 140px; }
.index-list { border-top:1px solid var(--line); }
.index-row { display:flex; align-items:center; gap:26px; padding: 26px 4px; border-bottom:1px solid var(--line); cursor:pointer; transition:.3s; }
.index-row:hover, .index-row.active { background: var(--accent-soft); padding-left:20px; }
.ir-num { font-family:'Bricolage Grotesque',serif; font-weight:600; font-size:13px; color:var(--fg-faint); width:26px; }
.index-row:hover .ir-num, .index-row.active .ir-num { color:var(--accent); }
.ir-main { flex:1; display:flex; flex-direction:column; gap:4px; }
.ir-title { font-family:'Bricolage Grotesque',sans-serif; font-size:24px; font-weight:600; transition:.3s; letter-spacing:-.01em; }
.index-row:hover .ir-title, .index-row.active .ir-title { color:var(--accent); }
.ir-meta { font-size:12px; color:var(--fg-dim); }
.ir-thumb { display:none; }
.hint-touch { display:none; }
.ir-insp { font-size:12px; color:var(--fg-faint); letter-spacing:.01em; }
.index-row:hover .ir-insp, .index-row.active .ir-insp { color: var(--fg-dim); }
.ir-status { margin-left:10px; font-size:9.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-dim); border:1px solid var(--line); border-radius:20px; padding:2px 9px; white-space:nowrap; }
.ir-cat { font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-faint); width:110px; text-align:right; }
.ir-arrow { opacity:0; transform:translateX(-8px); transition:.3s; color:var(--accent); }
.index-row:hover .ir-arrow, .index-row.active .ir-arrow { opacity:1; transform:none; }
.index-preview { position:sticky; top:120px; align-self:flex-start; height: 560px; border-radius:2px; overflow:hidden; background:var(--panel); box-shadow: 0 40px 90px -30px var(--shadow); cursor: pointer; }
.prev-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; padding:26px; opacity:0; transition: opacity .7s ease; }
.prev-img.active { opacity:1; }
.index-preview::after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 1px rgba(36,31,24,.08); pointer-events:none; }
.index-preview .zoom-hint {
  position:absolute; bottom:18px; right:18px; z-index:3; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color: var(--on-dark); background:rgba(20,16,10,.55); padding:9px 16px; border-radius:20px; backdrop-filter: blur(6px);
}

/* filters (werke page) */
.filters { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.filt {
  background:transparent; border:1px solid var(--line); color:var(--fg-dim);
  padding:9px 20px; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  border-radius:20px; cursor:pointer; transition:.2s;
}
.filt:hover { border-color: var(--fg-dim); color:var(--fg); }
.filt.active { background:var(--fg); color:var(--bg); border-color:var(--fg); }
.index-row.hidden { display:none; }

/* triptych */
.triptych { display:grid; grid-template-columns: 1fr 1.3fr 1fr; column-gap:56px; row-gap:40px; padding-bottom:150px; align-items:start; }
.trip-item { position:relative; cursor:pointer; margin:0; }
.trip-item:nth-child(1), .trip-item:nth-child(3) { margin-top:70px; }
.trip-item-img { background: var(--panel); border-radius:2px; overflow:hidden; aspect-ratio:3/4; }
.trip-item:nth-child(2) .trip-item-img { aspect-ratio: 117/100; }
.trip-item:nth-child(1) .trip-item-img, .trip-item:nth-child(3) .trip-item-img { aspect-ratio: 9/10; }
.trip-item-img img { width:100%; height:100%; object-fit:contain; object-position:center; padding:26px; filter: drop-shadow(0 22px 28px rgba(0,0,0,.5)); transition: transform .9s cubic-bezier(.16,.8,.24,1); }
.trip-item:hover .trip-item-img img { transform: scale(1.04); }
.trip-cap { padding: 26px 2px 0; }
.trip-cap .t { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:21px; letter-spacing:-.01em; color: var(--fg); }
.trip-cap .m { font-size:12px; color:var(--fg-dim); margin-top:10px; line-height:1.6; }
.trip-cap .i { font-size:12px; color:var(--accent); margin-top:6px; line-height:1.6; }

/* about */
.about { padding: 140px 0; }
.about-grid { display:grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items:center; }
.about-img { position:relative; }
.about-img .fr { position:absolute; inset:-16px; border:1px solid var(--line); z-index:0; }
.about-img img {
  position:relative; z-index:1; width:100%; aspect-ratio: 4/5; object-fit:cover;
  filter: grayscale(35%) contrast(1.05) brightness(.96);
}
.about-img img.portrait { filter: none; object-position: 50% 30%; }
.portrait-placeholder {
  position:relative; z-index:1; width:100%; aspect-ratio: 4/5;
  background: radial-gradient(circle at 50% 40%, #201b14 0%, #0f0d0a 75%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  border:1px solid var(--line);
}
.portrait-placeholder img { width:120px; height:auto; opacity:.8; filter:none; aspect-ratio:auto; }
.portrait-placeholder span { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--fg-faint); text-align:center; padding:0 30px; }
.about-copy .eyebrow { margin-bottom:22px; display:block; }
.about-copy h2 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size: clamp(32px,4vw,48px); margin-bottom: 30px; letter-spacing:-.02em; }
.about-copy p { color:var(--fg-dim); font-size:16px; line-height:1.9; margin-bottom:18px; max-width:560px; }
.about-copy .pull {
  font-family:'Bricolage Grotesque',sans-serif; font-weight:500; font-size: clamp(22px,2.3vw,27px); line-height:1.4; letter-spacing:-.01em;
  color:var(--fg); margin: 36px 0 0; padding-left:26px; border-left:2px solid var(--accent); max-width:520px;
}
.facts { display:flex; gap:0; margin-top:44px; border-top:1px solid var(--line); }
.fact { flex:1; padding: 22px 0; border-right:1px solid var(--line); }
.fact:last-child { border-right:none; }
.fact .n { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:24px; color:var(--accent); }
.fact .l { font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-dim); margin-top:6px; }

/* timeline (kuenstler page) */
.timeline { border-top:1px solid var(--line); padding-bottom:150px; }
.tl-row { display:grid; grid-template-columns: 140px 1fr; gap:40px; padding:34px 0; border-bottom:1px solid var(--line); }
.tl-row .yr { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:22px; color:var(--accent); }
.tl-row h4 { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:20px; margin-bottom:8px; }
.tl-row p { color:var(--fg-dim); font-size:14.5px; line-height:1.7; max-width:560px; }

/* small work strip */
.strip { display:grid; grid-template-columns: repeat(4,1fr); gap:18px; padding-bottom:110px; align-items:start; }
.strip-item { position:relative; margin:0; cursor:pointer; }
.strip-item-img { background: var(--panel); border-radius:2px; overflow:hidden; aspect-ratio:3/4; }
.strip-item-img img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s; }
.strip-item:hover .strip-item-img img { transform:scale(1.05); }
.strip-cap { padding:16px 2px 0; }
.strip-cap .t { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:17px; color: var(--fg); }
.strip-cap .m { font-size:11.5px; color:var(--fg-dim); margin-top:6px; line-height:1.5; }
.strip-cap .i { font-size:11.5px; color:var(--accent); margin-top:4px; line-height:1.5; }

/* contact */
.contact { padding-top:60px; padding-bottom:100px; }
.contact-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.contact h2 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size: clamp(38px,4.8vw,60px); margin-bottom:24px; letter-spacing:-.02em; }
.contact p.lead { color:var(--fg-dim); font-size:16px; line-height:1.85; margin-bottom:44px; max-width:440px; }
.info-line { display:flex; gap:20px; padding: 20px 0; border-top:1px solid var(--line); }
.info-line:last-of-type { border-bottom:1px solid var(--line); }
.info-line .lbl { min-width:120px; font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-dim); padding-top:3px; }
.info-line .val { font-family:'Bricolage Grotesque',sans-serif; font-weight:500; font-size:17px; }
.info-line .val a { border-bottom:1px solid var(--line); transition: border-color .3s, color .3s; }
.info-line .val a:hover { color: var(--accent); border-color: var(--accent); }
.form-note { font-size:12px; color:var(--fg-faint); margin-top:14px; line-height:1.6; }
form { display:flex; flex-direction:column; }
.field { position:relative; border-bottom:1px solid var(--line); padding: 20px 0; transition:.3s; }
.field:focus-within { border-color: var(--accent); }
.field label { position:absolute; top:20px; left:0; font-size:15px; color:var(--fg-faint); transition:.25s; pointer-events:none; }
.field input, .field textarea, .field select {
  width:100%; background:transparent; border:none; color:var(--fg); font-family:'Inter',sans-serif; font-size:15px; padding-top:14px;
}
.field select option { background: var(--bg-soft); }
.field input:focus, .field textarea:focus { outline:none; }
.field input:focus ~ label, .field input:not(:placeholder-shown) ~ label,
.field textarea:focus ~ label, .field textarea:not(:placeholder-shown) ~ label {
  top:-2px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
}
.field textarea { resize:none; height:70px; }
.submit {
  align-self:flex-start; margin-top:34px; background:transparent; border:1px solid var(--fg);
  color:var(--fg); padding:16px 36px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:.3s;
  font-family:'Inter',sans-serif;
}
.submit:hover { background:var(--fg); color:var(--bg); }
.map-block {
  margin-top:50px; border:1px solid var(--line); padding:34px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
}
.map-block .mb-t { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:18px; margin-bottom:6px; }
.map-block .mb-s { font-size:13px; color:var(--fg-dim); }
.faq { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); padding:28px 0; }
.faq-item .q { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:19px; margin-bottom:10px; }
.faq-item .a { color:var(--fg-dim); font-size:14.5px; line-height:1.75; max-width:640px; }

/* legal pages */
.legal { padding-top:70px; padding-bottom:130px; }
.legal h2 { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:21px; margin:44px 0 12px; }
.legal h2:first-child { margin-top:0; }
.legal p { color:var(--fg-dim); font-size:15px; line-height:1.85; margin-bottom:12px; max-width:680px; }
.legal a, .form-note a { color:var(--fg); border-bottom:1px solid var(--line); }
.legal a:hover, .form-note a:hover { color:var(--accent); border-color:var(--accent); }
.legal-date { margin-top:40px; font-size:12px !important; color:var(--fg-faint) !important; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

footer { border-top:1px solid var(--line); padding: 70px 0 40px; }
.foot-grid { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:30px; margin-bottom:30px; }
.foot-grid img { height:52px; width:auto; opacity:.95; }
.foot-links { display:flex; gap:34px; list-style:none; }
.foot-links a { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--fg-dim); }
.foot-links a:hover, .foot-links a.current { color:var(--fg); }
.fine-row { display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:26px; border-top:1px solid var(--line); }
.fine { font-size:11px; color:var(--fg-faint); }
.fine-links { display:flex; gap:24px; list-style:none; }
.fine-links a { font-size:11px; color:var(--fg-faint); }
.fine-links a:hover { color:var(--fg-dim); }
.fine-links .credit { color:var(--fg-faint); font-size:11px; }
.fine-links .credit a { color:var(--fg-dim); }
.fine-links .credit a:hover { color:var(--accent); }
@media (max-width: 640px) { .fine-links { flex-wrap:wrap; gap:10px 24px; } .fine-links .credit { width:100%; order:3; } }

/* lightbox */
.lightbox {
  position:fixed; inset:0; background:rgba(6,5,4,.94); z-index:300; display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .4s; padding: 60px 40px;
}
.lightbox.open { opacity:1; pointer-events:auto; }
.lightbox-inner { max-width:1000px; width:100%; display:flex; flex-direction:column; align-items:center; gap:22px; }
.lightbox img { max-height:70vh; width:auto; max-width:100%; object-fit:contain; box-shadow:0 40px 90px -20px rgba(0,0,0,.6); }
.lightbox .lb-cap { text-align:center; }
.lightbox .lb-cap .t { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:24px; color: var(--on-dark); letter-spacing:-.01em; }
.lightbox .lb-cap .m { font-size:12px; color:var(--on-dark-dim); margin-top:8px; letter-spacing:.03em; line-height:1.6; max-width:680px; }
.lb-close {
  position:absolute; top:34px; right:44px; font-family:'Inter',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:.14em;
  color:var(--on-dark-dim); cursor:pointer; border:1px solid rgba(247,242,230,.25); padding:10px 18px; border-radius:20px; transition:.3s;
}
.lb-close:hover { color:var(--on-dark); border-color:rgba(247,242,230,.5); }

@media (max-width: 980px) {
  nav.links, header .nav-cta { display:none; }
  .burger { display:flex; }
  .wrap, .nav, .hero-content { padding-left:26px; padding-right:26px; }
  .stats { grid-template-columns: repeat(2,1fr); }
  .stat:nth-child(3) { border-left:none; }
  .process { grid-template-columns: 1fr; }
  .index-section { grid-template-columns: 1fr; gap:0; }
  .index-preview { display:none; }
  .ir-thumb { display:block; width:72px; height:72px; object-fit:cover; border-radius:2px; flex-shrink:0; background:var(--panel); }
  .index-row { gap:16px; padding:18px 4px; }
  .index-row:hover, .index-row.active { padding-left:4px; }
  .ir-num { width:20px; font-size:11px; }
  .ir-title { font-size:20px; }
  .hint-desk { display:none; }
  .hint-touch { display:inline; }
  .page-hero { padding-top:150px; padding-bottom:70px; }
  .statement { padding-top:110px; padding-bottom:110px; }
  .triptych { grid-template-columns: repeat(3,1fr); column-gap:24px; }
  .trip-item-img img { padding:14px; }
  .trip-item:nth-child(2) .trip-item-img { aspect-ratio: 9/10; }
  .trip-cap .t { font-size:17px; }
  .trip-cap .m, .trip-cap .i { font-size:11px; }
  .strip { grid-template-columns: 1fr 1fr; }
  body.has-photo-hero header:not(.scrolled) .brand img { height:44px; }
  .trip-item:nth-child(1), .trip-item:nth-child(3) { margin-top:0; }
  .about-grid, .contact-grid { grid-template-columns:1fr; }
  .section-head { flex-direction:column; align-items:flex-start; }
  .section-head p { text-align:left; }
  .foot-grid { flex-direction:column; align-items:flex-start; }
  .tl-row { grid-template-columns: 1fr; gap:10px; }
  .ir-cat { display:none; }
}
@media (max-width: 640px) {
  .triptych { grid-template-columns: 1fr; gap:34px; }
  .trip-item-img img { padding:22px; }
  .trip-cap .t { font-size:20px; }
  .trip-cap .m, .trip-cap .i { font-size:12px; }
  .ir-thumb { width:60px; height:60px; }
  .ir-num { display:none; }
}
@media (max-width: 560px) {
  .strip { grid-template-columns: 1fr; }
}
