/* Nilab Fotografie – shared design system
   One source of truth for typography, colors, spacing, controls and media behaviour.
   Loaded last on public pages and in the Mini admin so legacy component CSS can keep
   its layout while inheriting the same visual tokens. */

@font-face{font-family:"Playfair Display";src:url("fonts/PlayfairDisplay-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("fonts/PlayfairDisplay-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("fonts/PlayfairDisplay-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  --font-body:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:"Playfair Display",Georgia,"Times New Roman",serif;

  --paper:#f8f4ed;
  --paper-soft:#fbf8f3;
  --cream:#efe6d8;
  --ink:#2b2723;
  --muted:#746b61;
  --gold:#ad8250;
  --gold-hover:#927049;
  --gold-soft:#c6a16f;
  --line:rgba(43,39,35,.13);
  --line-soft:rgba(43,39,35,.075);
  --surface:rgba(255,255,255,.72);
  --surface-strong:#fffdf9;
  --danger:#a54b45;
  --success:#57775e;
  --warning:#9a7135;

  --maxwidth:1200px;
  --header-h:78px;
  --gutter:clamp(18px,4vw,32px);

  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:18px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --section-y:clamp(88px,8.2vw,126px);
  --section-y-compact:clamp(72px,6.6vw,100px);

  --radius-sm:8px;
  --radius-md:14px;
  --radius-control:8px;
  --radius-button:999px;
  --button-height:48px;
  --shadow-soft:0 18px 55px rgba(43,39,35,.07);
  --focus:0 0 0 3px rgba(173,130,80,.18);
  --transition-fast:.2s ease;
  --transition-ui:.25s ease;

  /* aliases used by older components */
  --gold2:var(--gold-soft);
  --accent:var(--gold);
  --accent-dark:var(--gold-hover);
  --accent-light:var(--gold-soft);
  --primary:var(--paper);
  --border:var(--line);
  --text:var(--ink);
  --text-lighter:var(--muted);
}

html{font-synthesis:none}
body{font-family:var(--font-body)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}
button,input,textarea,select{font-family:inherit}

/* Shared privacy/consent control – identical on homepage and Mini-Shootings. */
.privacy-consent{margin-top:var(--space-4)}
.privacy-consent .check{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:start!important;column-gap:10px!important;width:100%;margin:0;font-family:var(--font-body)!important;font-size:.82rem!important;font-weight:400!important;line-height:1.5!important;letter-spacing:0!important;text-transform:none!important;color:var(--muted);cursor:pointer}
.privacy-consent .check input[type=checkbox]{
  -webkit-appearance:none!important;appearance:none!important;
  box-sizing:border-box!important;display:block!important;
  width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;
  margin:2px 0 0!important;padding:0!important;border:1px solid rgba(43,39,35,.34)!important;border-radius:3px!important;
  background:#fff!important;background-position:center!important;background-repeat:no-repeat!important;background-size:12px 12px!important;
  box-shadow:none!important;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease
}
.privacy-consent .check input[type=checkbox]:hover{border-color:var(--gold)!important}
.privacy-consent .check input[type=checkbox]:checked{
  border-color:var(--gold)!important;background-color:var(--gold)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.2 6.4 11.2 12.9 4.9'/%3E%3C/svg%3E")!important
}
.privacy-consent .check input[type=checkbox]:focus-visible{outline:2px solid var(--gold)!important;outline-offset:3px!important}
.privacy-consent .check span{display:block;min-width:0;overflow-wrap:anywhere}
.privacy-consent .check a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.privacy-consent .check a:hover,.privacy-consent .check a:focus-visible{color:var(--gold-hover)}

/* Public media protection. It discourages normal drag/save/long-press behaviour,
   but no browser can make a publicly delivered image technically impossible to copy. */
body:not(.admin-body) img,
body:not(.admin-body) picture,
body:not(.admin-body) .hero-media,
body:not(.admin-body) .contact-backdrop,
body:not(.admin-body) .mini-lightbox-image,
body:not(.admin-body) .protected-image,
body:not(.admin-body) .mini-action-media,
body:not(.admin-body) .mini-detail-image,
body:not(.admin-body) .mini-gallery-item,
body:not(.admin-body) [data-protected-media="true"],
body:not(.admin-body) [style*="background-image"]{
  -webkit-user-drag:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

/* Stable mobile viewport: browser chrome may expand/collapse without resizing public heroes.
   Keep the existing visual size, but avoid dynamic-dvh reflow while scrolling. */
body.public-home .hero{height:100svh!important}

/* Header control state – identical behaviour on homepage and Mini homepage. */
body.public-home .site-header:not(.scrolled) .nav-toggle,
body.public-home .site-header:not(.scrolled) .nav-toggle i{color:#fff!important}
body.public-home .site-header.scrolled .nav-toggle,
body.public-home .site-header.scrolled .nav-toggle i,
body.public-inner .site-header .nav-toggle,
body.public-inner .site-header .nav-toggle i{color:var(--ink)!important}

@supports selector(a:has(img)){
  body:not(.admin-body) a:has(img),
  body:not(.admin-body) a:has(.protected-image),
  body:not(.admin-body) a:has([style*="background-image"]){-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
}

/* Keep the admin's functional light surfaces while sharing brand typography/accent. */
body.admin-body{
  --paper:#fffdf9;
  --cream:#f8f4ed;
  --ink:#292521;
  --muted:#756e66;
  --line:rgba(41,37,33,.12);
  --gold:#ad8250;
  --gold-hover:#927049;
  --danger:#a54b45;
  --success:#57775e;
  --admin-accent:var(--gold);
}
