/* ==========================================================================
   Siegfried Fotografie — design system
   Implements Design Bible v1.0 (tokens §17, type §3, layout §4, buttons §6)
   ========================================================================== */
:root{
  --color-navy:#071A2B; --color-blue:#145A91; --color-blue-light:#2D79B7;
  --color-green:#245B50; --color-red:#B83A3A; --color-red-dark:#9E3030;
  --color-slate:#526273; --color-gray:#E7EBEF; --color-offwhite:#F5F7F8;
  --color-white:#FFFFFF; --color-text:#15212B; --color-muted:#697784;
  --container:1180px; --space-section:96px; --space-card:16px;
  --button-height:48px; --border:1px; --radius:2px; --transition:200ms ease;
  --header-h:76px;
  --font-display:"Aptos Display","Aptos","Segoe UI Variable Display","Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  --font-body:"Aptos","Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--color-offwhite); color:var(--color-text);
  font-family:var(--font-body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:var(--color-blue); text-decoration:none}
a:hover{color:var(--color-blue-light)}
:focus-visible{outline:2px solid var(--color-blue-light); outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:200;background:var(--color-white);padding:10px 14px;border:1px solid var(--color-navy)}

/* ── layout ─────────────────────────────────────────────────────────────── */
.wrap{max-width:var(--container); margin:0 auto; padding:0 24px}
.section{padding:var(--space-section) 0}
.section--tight{padding:56px 0}
.section--navy{background:var(--color-navy); color:var(--color-white)}
.section--green{background:var(--color-green); color:var(--color-white)}
.section--white{background:var(--color-white)}
.section--navy a:not(.btn):not(.card),.section--green a:not(.btn):not(.card){color:var(--color-white)}
.grid{display:grid; gap:24px}
@media(max-width:1023px){ :root{--space-section:72px} }
@media(max-width:767px){ .wrap{padding:0 16px} :root{--space-section:58px; --header-h:64px} body{font-size:16px} }

/* ── typography ─────────────────────────────────────────────────────────── */
h1,h2,h3{font-family:var(--font-display); margin:0 0 .5em; line-height:1.12; letter-spacing:-.015em}
h1{font-size:clamp(42px,5.4vw,72px); font-weight:800}
h2{font-size:clamp(30px,3.4vw,46px); font-weight:700}
h3{font-size:clamp(20px,1.6vw,25px); font-weight:700; line-height:1.25}
p{margin:0 0 1em}
.eyebrow{
  font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase;
  color:var(--color-red); margin:0 0 14px; display:block
}
.section--navy .eyebrow,.section--green .eyebrow,.hero .eyebrow{color:#F0A9A9}
.lead{font-size:clamp(17px,1.3vw,20px); color:var(--color-slate); max-width:68ch}
.section--navy .lead,.section--green .lead{color:rgba(255,255,255,.82)}
.muted{color:var(--color-muted)}
.meta{font-size:12px; color:var(--color-muted); letter-spacing:.04em}
.section--navy .meta,.section--green .meta{color:rgba(255,255,255,.7)}
.section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px}
.section-head p{margin:0}
@media(max-width:767px){ .section-head{flex-direction:column; align-items:flex-start; gap:12px} }

/* ── buttons ────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; gap:9px; height:var(--button-height);
  padding:0 22px; border:1px solid transparent; border-radius:var(--radius);
  font-family:var(--font-body); font-size:13px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; cursor:pointer; transition:var(--transition);
  background:var(--color-red); color:var(--color-white)
}
.btn:hover{background:var(--color-red-dark); color:#fff; transform:translateY(-1px)}
.btn--secondary{background:var(--color-white); color:var(--color-navy)}
.btn--secondary:hover{background:var(--color-gray); color:var(--color-navy)}
.btn--outline{background:transparent; color:var(--color-white); border-color:rgba(255,255,255,.55)}
.btn--outline:hover{background:rgba(255,255,255,.12); color:#fff}
.btn--green{background:var(--color-white); color:var(--color-green)}
.btn--green:hover{background:var(--color-gray); color:var(--color-green)}
.btn--small{height:38px; padding:0 15px; font-size:11px}
.tlink{font-weight:700; font-size:14px; color:var(--color-blue); white-space:nowrap}
.tlink:hover{color:var(--color-blue-light)}
.section--navy .tlink,.section--green .tlink{color:#fff}

/* ── header ─────────────────────────────────────────────────────────────── */
.site-header{background:var(--color-navy); color:#fff; position:sticky; top:0; z-index:80}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:20px}
.brand{display:flex; align-items:center; gap:12px; color:#fff}
.brand img{height:54px; width:auto}
.brand b{font-family:var(--font-display); font-size:16px; font-weight:700; letter-spacing:.01em; line-height:1.15; display:block}
.brand span{display:block; font-size:10.5px; letter-spacing:.19em; text-transform:uppercase; color:rgba(255,255,255,.6)}
.nav{display:flex; align-items:center; gap:2px}
.nav > li{list-style:none; position:relative}
.nav a.navlink{
  display:flex; align-items:center; gap:6px; height:var(--header-h); padding:0 13px;
  color:rgba(255,255,255,.86); font-size:14px; font-weight:600; letter-spacing:.02em
}
.nav a.navlink:hover,.nav li:hover > a.navlink{color:#fff}
.nav a.navlink[aria-current]{color:#fff; box-shadow:inset 0 -3px 0 var(--color-red)}
.nav .caret{width:8px; height:8px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px); opacity:.7}
.menu-list{list-style:none; margin:0; padding:0; display:flex}
/* dropdown */
.dropdown{
  position:absolute; top:var(--header-h); left:0; min-width:300px; background:var(--color-white);
  border:1px solid var(--color-gray); box-shadow:0 18px 44px rgba(7,26,43,.18);
  padding:8px; margin:0; list-style:none; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:var(--transition)
}
.nav li:hover > .dropdown,.nav li:focus-within > .dropdown{opacity:1; visibility:visible; transform:none}
.dropdown a{display:block; padding:10px 14px; color:var(--color-navy); font-size:14.5px; font-weight:600;
  border-left:3px solid transparent; transition:var(--transition)}
.dropdown a:hover{background:var(--color-offwhite); border-left-color:var(--color-red); color:var(--color-navy)}
.dropdown .dd-group{padding:12px 14px 5px; font-size:10.5px; font-weight:800; letter-spacing:.18em;
  text-transform:uppercase; color:var(--color-muted)}
.dropdown a .dd-count{float:right; color:var(--color-muted); font-weight:600; font-size:12px}
.dropdown--wide{min-width:640px; display:grid; grid-template-columns:1fr 1fr; gap:0 8px}
.burger{display:none; width:44px; height:44px; background:none; border:1px solid rgba(255,255,255,.3);
  border-radius:var(--radius); cursor:pointer; padding:0; align-items:center; justify-content:center}
.burger i{display:block; width:19px; height:1.6px; background:#fff; position:relative}
.burger i::before,.burger i::after{content:""; position:absolute; left:0; width:19px; height:1.6px; background:#fff}
.burger i::before{top:-6px} .burger i::after{top:6px}
@media(max-width:1023px){
  .nav{display:none} .burger{display:flex}
  .nav.open{display:block; position:fixed; inset:var(--header-h) 0 0; background:var(--color-navy);
    overflow-y:auto; padding:10px 16px 60px}
  .nav.open .menu-list{flex-direction:column}
  .nav.open a.navlink{height:auto; padding:15px 4px; font-size:17px; border-bottom:1px solid rgba(255,255,255,.1)}
  .nav.open .dropdown{position:static; opacity:1; visibility:visible; transform:none; display:none;
    box-shadow:none; border:0; background:transparent; padding:4px 0 12px}
  .nav.open li.open > .dropdown{display:block}
  .nav.open .dropdown a{color:rgba(255,255,255,.8); padding:10px 14px; border-left-color:rgba(255,255,255,.16)}
  .nav.open .dropdown a:hover{background:rgba(255,255,255,.06); color:#fff}
  .nav.open .dd-group{color:rgba(255,255,255,.45)}
  .nav.open .dropdown--wide{display:none} .nav.open li.open > .dropdown--wide{display:block}
}

/* ── hero ───────────────────────────────────────────────────────────────── */
.hero{position:relative; background:var(--color-navy); color:#fff; overflow:hidden}
.hero__img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55}
.hero::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(7,26,43,.72) 0%,rgba(7,26,43,.42) 45%,rgba(7,26,43,.88) 100%)}
.hero__inner{position:relative; z-index:2; padding:118px 0 96px; max-width:760px}
.hero h1{margin-bottom:18px; text-shadow:0 2px 26px rgba(7,26,43,.5)}
.hero .lead{color:rgba(255,255,255,.9); margin-bottom:30px}
.hero__actions{display:flex; gap:12px; flex-wrap:wrap}
.hero--page .hero__inner{padding:74px 0 62px}
.hero--page h1{font-size:clamp(34px,4.2vw,56px)}
@media(max-width:767px){ .hero__inner{padding:74px 0 62px} .hero--page .hero__inner{padding:48px 0 42px} }

/* ── breadcrumbs ────────────────────────────────────────────────────────── */
.crumbs{font-size:12.5px; color:var(--color-muted); padding:16px 0; letter-spacing:.02em}
.crumbs ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:7px}
.crumbs a{color:var(--color-slate); font-weight:600}
.crumbs a:hover{color:var(--color-blue)}
.crumbs li+li::before{content:"›"; margin-right:7px; color:var(--color-gray)}
.hero .crumbs,.hero .crumbs a{color:rgba(255,255,255,.75)}
.hero .crumbs li+li::before{color:rgba(255,255,255,.4)}

/* ── cards ──────────────────────────────────────────────────────────────── */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.cards--2{grid-template-columns:repeat(2,1fr)}
.cards--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1023px){ .cards,.cards--4{grid-template-columns:repeat(2,1fr)} }
@media(max-width:600px){ .cards,.cards--2,.cards--4{grid-template-columns:1fr} }
.card{
  background:var(--color-white); border:var(--border) solid var(--color-gray); border-radius:var(--radius);
  display:flex; flex-direction:column; overflow:hidden; transition:var(--transition); color:var(--color-text)
}
.card:hover{transform:translateY(-4px); box-shadow:0 14px 32px rgba(7,26,43,.12); color:var(--color-text)}
.card__media{position:relative; aspect-ratio:4/3; background:var(--color-gray); overflow:hidden}
.card__media img{width:100%; height:100%; object-fit:cover; transition:transform 400ms ease}
.card:hover .card__media img{transform:scale(1.035)}
.card__media--tall{aspect-ratio:3/4}
.card__empty{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:var(--color-gray); color:var(--color-muted); font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase}
.card__num{position:absolute; top:0; left:0; background:var(--color-red); color:#fff;
  font-size:11px; font-weight:800; letter-spacing:.1em; padding:6px 10px}
.card__body{padding:18px 20px 22px; flex:1; display:flex; flex-direction:column; gap:7px}
.card__body h3{margin:0; font-size:21px; color:var(--color-navy)}
.card__body p{margin:0; font-size:14.5px; color:var(--color-slate); line-height:1.55}
.card__meta{margin-top:auto; padding-top:12px; font-size:11.5px; color:var(--color-muted);
  letter-spacing:.08em; text-transform:uppercase; font-weight:700;
  display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.card__meta .dot{width:3px;height:3px;background:var(--color-gray);border-radius:50%}
.card--soon{opacity:.72}
.card--soon:hover{transform:none; box-shadow:none}

/* ── photo grid + lightbox ──────────────────────────────────────────────── */
.pgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.pgrid--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:1023px){ .pgrid,.pgrid--3{grid-template-columns:repeat(3,1fr)} }
@media(max-width:767px){ .pgrid,.pgrid--3{grid-template-columns:repeat(2,1fr); gap:12px} }
.pgrid a{position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:var(--color-gray)}
.pgrid img{width:100%; height:100%; object-fit:cover; transition:transform 350ms ease}
.pgrid a:hover img{transform:scale(1.04)}
.pgrid .cap{
  position:absolute; left:0; right:0; bottom:0; padding:22px 12px 10px; color:#fff; font-size:12px;
  background:linear-gradient(180deg,transparent,rgba(7,26,43,.78)); opacity:0; transition:var(--transition)
}
.pgrid a:hover .cap,.pgrid a:focus-visible .cap{opacity:1}
.lightbox{position:fixed; inset:0; z-index:120; background:rgba(7,26,43,.97); display:none;
  align-items:center; justify-content:center; padding:64px 20px}
.lightbox.open{display:flex}
.lightbox img{max-width:100%; max-height:calc(100vh - 148px); object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-cap{position:absolute; left:0; right:0; bottom:22px; text-align:center; color:rgba(255,255,255,.82); font-size:13px}
.lb-cap b{color:#fff; font-weight:700; display:block; font-size:15px; margin-bottom:3px}
.lb-btn{position:absolute; background:none; border:1px solid rgba(255,255,255,.3); color:#fff; cursor:pointer;
  width:50px; height:50px; border-radius:var(--radius); font-size:22px; line-height:1; transition:var(--transition)}
.lb-btn:hover{background:rgba(255,255,255,.14)}
.lb-prev{left:20px; top:50%; margin-top:-25px} .lb-next{right:20px; top:50%; margin-top:-25px}
.lb-close{right:20px; top:20px}
@media(max-width:767px){ .lb-prev{left:8px} .lb-next{right:8px} .lb-btn{width:42px;height:42px} }

/* ── filter bar / chips ─────────────────────────────────────────────────── */
.filterbar{display:flex; gap:10px; flex-wrap:wrap; align-items:center; padding:18px 0; border-bottom:1px solid var(--color-gray)}
.chip{display:inline-flex; align-items:center; gap:7px; height:36px; padding:0 14px; border-radius:var(--radius);
  border:1px solid var(--color-gray); background:var(--color-white); color:var(--color-slate);
  font-size:13px; font-weight:700; transition:var(--transition)}
.chip:hover{border-color:var(--color-blue-light); color:var(--color-blue)}
.chip[aria-current]{background:var(--color-navy); border-color:var(--color-navy); color:#fff}
.chip b{color:var(--color-muted); font-weight:600}
.chip[aria-current] b{color:rgba(255,255,255,.6)}
.searchbox{display:flex; gap:8px; max-width:520px}
.searchbox input{flex:1; height:var(--button-height); padding:0 16px; border:1px solid var(--color-gray);
  border-radius:var(--radius); font-family:var(--font-body); font-size:15px; background:var(--color-white); color:var(--color-text)}
.searchbox input:focus{outline:none; border-color:var(--color-blue-light); box-shadow:0 0 0 3px rgba(45,121,183,.16)}

/* ── year / location rails ──────────────────────────────────────────────── */
.rail{display:grid; grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); gap:16px}
.rail a{background:var(--color-white); border:1px solid var(--color-gray); padding:22px 20px; transition:var(--transition)}
.rail a:hover{border-color:var(--color-navy); transform:translateY(-3px); box-shadow:0 12px 26px rgba(7,26,43,.1)}
.rail .n{font-family:var(--font-display); font-size:clamp(22px,2.1vw,32px); font-weight:800; color:var(--color-navy); line-height:1.1; overflow-wrap:anywhere}
.rail .l{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--color-muted); font-weight:700; margin-top:8px}

/* ── album header + prose ───────────────────────────────────────────────── */
.prose{max-width:72ch}
.prose h2{margin-top:1.4em}
.split{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center}
@media(max-width:900px){ .split{grid-template-columns:1fr; gap:32px} }
.factlist{list-style:none; margin:0; padding:0; border-top:1px solid var(--color-gray)}
.factlist li{display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid var(--color-gray); font-size:14.5px}
.factlist b{font-weight:700; color:var(--color-navy)}
.section--navy .factlist,.section--navy .factlist li{border-color:rgba(255,255,255,.15)}
.section--navy .factlist b{color:#fff}
.notice{border-left:3px solid var(--color-red); background:var(--color-white); border:1px solid var(--color-gray);
  border-left:3px solid var(--color-red); padding:18px 22px; font-size:14.5px; color:var(--color-slate)}
.pager{display:flex; justify-content:space-between; gap:16px; padding-top:36px; margin-top:36px; border-top:1px solid var(--color-gray)}

/* ── footer ─────────────────────────────────────────────────────────────── */
.site-footer{background:var(--color-navy); color:rgba(255,255,255,.72); padding:64px 0 30px; font-size:14px}
.site-footer h4{font-family:var(--font-display); color:#fff; font-size:13px; letter-spacing:.16em;
  text-transform:uppercase; margin:0 0 16px; font-weight:800}
.site-footer a{color:rgba(255,255,255,.72)}
.site-footer a:hover{color:#fff}
.footcols{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; padding-bottom:40px}
@media(max-width:900px){ .footcols{grid-template-columns:1fr 1fr; gap:28px} }
@media(max-width:520px){ .footcols{grid-template-columns:1fr} }
.footcols ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.footbar{border-top:1px solid rgba(255,255,255,.14); padding-top:22px; display:flex;
  justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:rgba(255,255,255,.5)}

/* ── preview ribbon (removed on launch) ─────────────────────────────────── */
.preview-flag{background:var(--color-red); color:#fff; text-align:center; padding:7px 16px;
  font-size:11.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; transition-duration:.001ms !important}
  .card:hover,.btn:hover,.rail a:hover{transform:none}
}
