/* Generated for hannover-fotobox; edit shared/ or projects/. */
/* Shared components are opt-in through .cr-site. No Joomla admin selectors. */
.cr-site { --cr-bg:#f7f4ee; --cr-paper:#fffdf9; --cr-ink:#24382f; --cr-muted:#526257; --cr-accent:#365d45; --cr-line:#d6dbd1; --cr-radius:1.25rem; background:var(--cr-bg); color:var(--cr-ink); font:400 1rem/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
.cr-site *, .cr-site *::before, .cr-site *::after { box-sizing:border-box; }
.cr-site a { color:inherit; text-underline-offset:.22em; }
.cr-site button, .cr-site input, .cr-site select, .cr-site textarea { font:inherit; }
.cr-site :focus-visible { outline:3px solid var(--cr-accent); outline-offset:5px; }
.cr-site img, .cr-site svg { max-width:100%; height:auto; }
.cr-site h1, .cr-site h2, .cr-site h3 { line-height:1.12; font-weight:500; margin:0 0 1rem; letter-spacing:-.035em; }
.cr-site h1 { font-size:clamp(2.7rem,5.7vw,5.5rem); }
.cr-site h2 { font-size:clamp(2rem,3.5vw,3.35rem); }
.cr-site h3 { font-size:1.45rem; }
.cr-site p { margin:0 0 1.25rem; }
.cr-site .cr-container { width:min(1180px,calc(100% - 3rem)); margin-inline:auto; }
.cr-site .cr-section { padding-block:5rem; scroll-margin-top:2rem; }
.cr-site .cr-eyebrow { font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin-bottom:1.25rem; }
.cr-site .cr-muted { color:var(--cr-muted); }
.cr-site .cr-button { display:inline-flex; justify-content:center; align-items:center; gap:1rem; padding:.85rem 1.35rem; border:1px solid var(--cr-accent); border-radius:3rem; background:var(--cr-accent); color:#fff; font-weight:600; text-decoration:none; cursor:pointer; min-height:48px; }
.cr-site .cr-button:hover { filter:brightness(.92); }
.cr-site .cr-button-secondary { background:transparent; color:var(--cr-ink); }
.cr-site .cr-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.cr-site .cr-header { padding-block:1.5rem; border-bottom:1px solid var(--cr-line); }
.cr-site .cr-header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.cr-site .cr-brand { text-decoration:none; font-size:1.15rem; font-weight:750; letter-spacing:-.04em; line-height:1.2; }
.cr-site .cr-brand small { display:block; font-size:.65rem; letter-spacing:.24em; font-weight:500; margin-top:.3rem; }
.cr-site .cr-nav ul { display:flex; align-items:center; list-style:none; gap:1.8rem; margin:0; padding:0; }
.cr-site .cr-nav a { text-decoration:none; font-size:.88rem; }
.cr-site .cr-nav a:hover { text-decoration:underline; }
.cr-site .cr-menu-toggle { display:none; }
.cr-site .cr-skip { position:absolute; top:-100px; left:1rem; padding:1rem; background:white; z-index:20; }
.cr-site .cr-skip:focus { top:1rem; }
.cr-site .cr-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.cr-site .cr-footer { border-top:1px solid var(--cr-line); padding-block:2rem; }
.cr-site .cr-footer-inner { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem; }
.cr-site details { border-bottom:1px solid var(--cr-line); padding:1.25rem 0; }
.cr-site summary { cursor:pointer; font-weight:600; }
.cr-site details p { margin:1rem 0 0; max-width:70ch; }
.cr-site label { display:block; font-weight:600; }
.cr-site input, .cr-site select, .cr-site textarea { width:100%; padding:.8rem; border:1px solid var(--cr-line); border-radius:.5rem; background:var(--cr-paper); color:var(--cr-ink); }
.cr-site .cr-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cr-site .cr-form-grid .cr-wide { grid-column:1/-1; }
.cr-site .cr-message { margin-block:1rem; }
.cr-site .com-content-article__body { overflow-wrap:anywhere; }
.cr-site .com-content-article__body > :first-child { margin-top:0; }
@media(max-width:760px) {
 .cr-site .cr-container { width:calc(100% - 2rem); }
 .cr-site .cr-section { padding-block:3rem; }
 .cr-site .cr-grid-3, .cr-site .cr-form-grid { grid-template-columns:1fr; }
 .cr-site .cr-header-inner { flex-wrap:wrap; gap:1rem; }
 .cr-site .cr-nav { width:100%; }
 .cr-site .cr-nav ul { flex-wrap:wrap; gap:1rem; }
 .cr-site.cr-js .cr-menu-toggle { display:block; background:transparent; color:inherit; border:1px solid var(--cr-line); padding:.5rem .8rem; border-radius:2rem; }
 .cr-site.cr-js .cr-nav[data-open="false"] { display:none; }
}
@media(prefers-reduced-motion:reduce) { .cr-site *, .cr-site *::before, .cr-site *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

/* DJ CHRIZ visual family. Local fonts; no requests to font services. */
@font-face { font-family:"HF Manrope"; font-style:normal; font-weight:200 800; font-display:swap; src:url("fonts/manrope-latin.woff2") format("woff2"); }
@font-face { font-family:"HF Montserrat"; font-style:normal; font-weight:100 900; font-display:swap; src:url("fonts/montserrat-latin.woff2") format("woff2"); }
.cr-site[data-project="hannover-fotobox"] { --cr-bg:#08090d; --cr-paper:#14151d; --cr-ink:#fff; --cr-muted:#c2c5d0; --cr-accent:#ff86c6; --cr-line:#333540; --cr-radius:6px; --hf-heading:"HF Montserrat",system-ui,sans-serif; background:var(--cr-bg); font-family:"HF Manrope",system-ui,sans-serif; }
.cr-site[data-project="hannover-fotobox"] h1, .cr-site[data-project="hannover-fotobox"] h2, .cr-site[data-project="hannover-fotobox"] h3 { font-family:var(--hf-heading); font-weight:500; letter-spacing:-.035em; }
.cr-site[data-project="hannover-fotobox"] h1 { font-size:clamp(2.6rem,5.5vw,4.8rem); }
.cr-site[data-project="hannover-fotobox"] h2 { font-size:clamp(1.8rem,3.3vw,2.8rem); }
.cr-site .cr-header { background:#08090d; padding-block:1.4rem; }
.cr-site .cr-brand { font-family:var(--hf-heading); font-size:clamp(1rem,2.2vw,1.3rem); font-weight:650; letter-spacing:-.025em; max-width:34ch; }
.cr-site .cr-brand small { color:var(--cr-muted); font-size:.6rem; }
.cr-site .cr-eyebrow { color:var(--cr-accent); letter-spacing:.14em; }
.cr-site .cr-button { font-family:var(--hf-heading); border-color:#666876; border-radius:4px; background:linear-gradient(115deg,#16374b,#342042); color:#fff; font-weight:500; transition:box-shadow .2s,border-color .2s; }
.cr-site .cr-button:hover { filter:none; border-color:var(--cr-accent); box-shadow:0 0 22px #35daff26,0 0 32px #ff39d626; }
.cr-site .cr-button-secondary { background:transparent; }
.cr-site .cr-skip { background:#fff; color:#08090d; }
.cr-site .cr-nav a:hover, .cr-site .cr-nav .current > a { color:var(--cr-accent); }
.cr-site .cr-footer { background:#111217; color:var(--cr-muted); margin-top:4rem; }
/* Empty Joomla menu headings should not use the landing page's hero scale. */
.cr-site .page-header h1 { font-size:clamp(1.6rem,3vw,2.3rem); padding-block:2rem; }
.cr-site .hf-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:center; padding-block:5rem; background:radial-gradient(ellipse at 10% 30%,#35daff0c,transparent 55%),radial-gradient(ellipse at 90% 60%,#ff39d60d,transparent 55%); }
.cr-site .hf-hero h1 { max-width:12ch; font-weight:400; text-shadow:0 0 24px #35daff24,0 0 40px #ff39d61f; }
.cr-site .hf-hero h1 em { font-style:normal; color:#fff; background:linear-gradient(100deg,#7ee7ff,#fff 46%,#ff9cea); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.cr-site .hf-lead { max-width:43ch; color:var(--cr-muted); font-size:1.05rem; }
.cr-site .hf-art { position:relative; overflow:hidden; border:1px solid #555465; border-radius:6px; background:#10131d; box-shadow:0 0 40px #35daff12,0 0 65px #ff39d612; }
.cr-site .hf-art img { display:block; width:100%; }
.cr-site .hf-art-caption { position:absolute; bottom:1rem; left:1rem; right:1rem; width:fit-content; background:#08090de6; color:#e1e4ed; border:1px solid #535564; border-radius:3px; padding:.35rem .65rem; font-size:.7rem; }
.cr-site .hf-note { margin-top:1.5rem; font-size:.8rem; color:var(--cr-muted); }
.cr-site .hf-occasions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; border-block:1px solid var(--cr-line); padding-block:1.3rem; font-size:.85rem; }
.cr-site .hf-occasions > span { color:var(--cr-muted); }
.cr-site .hf-intro { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-bottom:3rem; align-items:start; }
.cr-site .hf-step { padding-top:1.5rem; border-top:1px solid var(--cr-line); }
.cr-site .hf-step-number { display:block; font:400 2.4rem/1 var(--hf-heading); color:var(--cr-accent); margin-bottom:1.8rem; }
.cr-site .hf-dark { background:linear-gradient(125deg,#111e2c,#1e1428); border:1px solid #4a3e5c; border-radius:var(--cr-radius); padding-inline:clamp(1.5rem,4vw,3rem); }
.cr-site .hf-dark p { color:var(--cr-muted); }
.cr-site .hf-split { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.cr-site .hf-checklist { list-style:none; padding:0; margin:0; }
.cr-site .hf-checklist li { padding:1.2rem 0; border-top:1px solid #525364; }
.cr-site .hf-checklist strong { display:block; font-size:1.1rem; margin-bottom:.35rem; }
.cr-site .hf-checklist span { color:var(--cr-muted); font-size:.9rem; }
.cr-site .hf-inquiry { background:radial-gradient(ellipse at top right,#ff39d616,transparent 65%),#14151d; border:1px solid #4a3e5c; border-radius:var(--cr-radius); padding:2.5rem; }
.cr-site .hf-preview-banner { background:#1d1a2b; color:var(--cr-muted); padding:.6rem 1rem; text-align:center; font-size:.76rem; }
.cr-site .hf-draft-label { display:inline-block; padding:.25rem .65rem; border:1px solid var(--cr-line); border-radius:3px; font-size:.72rem; margin-bottom:1rem; }
@media(max-width:760px) { .cr-site .hf-hero { grid-template-columns:1fr; gap:2rem; padding-block:3rem; } .cr-site .hf-art { max-width:450px; width:100%; margin:auto; } .cr-site .hf-intro, .cr-site .hf-split { grid-template-columns:1fr; gap:1.5rem; } .cr-site .hf-inquiry { padding:1.5rem; } .cr-site .cr-header-inner { gap:1rem; } }
@media(forced-colors:active) { .cr-site .hf-hero h1 em { background:none; -webkit-text-fill-color:CanvasText; } }

/* Centered brand with independently managed menus, matching the DJ header. */
.cr-site .cr-header-inner { display:grid; grid-template-columns:minmax(0,1fr) clamp(200px,24vw,300px) minmax(0,1fr); gap:1.5rem; align-items:center; }
.cr-site .hf-brand { grid-column:2; grid-row:1; position:relative; z-index:1; width:100%; max-width:none; text-align:center; }
.cr-site .hf-logo-panel { display:block; padding:.55rem .65rem; background:#fff; border-radius:4px; }
.cr-site .hf-logo-panel img { display:block; width:100%; height:auto; }
.cr-site .hf-brand small { margin-top:.6rem; letter-spacing:.18em; }
.cr-site .hf-navigation { grid-column:1/-1; grid-row:1; display:grid; grid-template-columns:subgrid; width:auto; }
.cr-site .hf-nav-left { grid-column:1; }
.cr-site .hf-nav-right { grid-column:3; }
.cr-site .hf-nav-left ul { justify-content:flex-end; }
.cr-site .hf-nav-right ul { justify-content:flex-start; }
.cr-site .hf-navigation ul { gap:clamp(.6rem,2vw,1.8rem); flex-wrap:wrap; }
.cr-site .hf-navigation a { display:inline-block; padding:.5rem 0; font-family:var(--hf-heading); }
@supports not (grid-template-columns:subgrid) { .cr-site .hf-navigation { grid-template-columns:minmax(0,1fr) clamp(200px,24vw,300px) minmax(0,1fr); gap:1.5rem; } }
@media(max-width:1000px) {
 .cr-site .cr-header-inner { grid-template-columns:minmax(0,1fr) minmax(180px,240px) minmax(0,1fr); gap:1rem; }
 .cr-site .hf-navigation a { font-size:.8rem; }
}
@media(max-width:760px) {
 .cr-site .cr-header-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
 .cr-site .hf-brand { grid-column:2; width:min(230px,55vw); }
 .cr-site .cr-menu-toggle { grid-column:3; grid-row:1; justify-self:end; }
 .cr-site .hf-navigation { grid-column:1/-1; grid-row:2; display:block; width:100%; border-top:1px solid var(--cr-line); padding-top:1rem; }
 .cr-site .hf-navigation ul { justify-content:flex-start; }
 .cr-site .hf-nav-right { margin-top:.5rem; }
 .cr-site.cr-js .cr-menu-toggle { border-radius:4px; padding:.45rem .6rem; }
}

/* Sticky site header and Page Builder hero. Background photo stays in the backend. */
.cr-site .cr-header { position:sticky; top:0; z-index:100; box-shadow:0 8px 25px #0004; }
.cr-site .hf-logo-panel { background:transparent; padding:0; height:clamp(64px,7vw,100px); }
.cr-site .hf-logo-panel img { width:100%; height:100%; object-fit:contain; }
.cr-site .hf-logo-panel-light { background:#fff; padding:.55rem .65rem; }
.cr-site #main-content, .cr-site .sppb-section[id], .cr-site .cr-section { scroll-margin-top:190px; }
.cr-site .hf-banner { position:relative; isolation:isolate; overflow:hidden; background-position:center; background-size:cover; background-repeat:no-repeat; padding:clamp(5rem,10vw,9rem) clamp(1.5rem,4vw,4rem); text-align:center; }
.cr-site .hf-banner::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(110deg,#05060bd9,#0b0815a6 65%,#05060bc7); }
.cr-site .hf-banner > * { position:relative; z-index:1; }
.cr-site .hf-banner .hf-hero-title h1, .cr-site .hf-banner h1.hf-hero-title { margin:0 auto 1.3rem; max-width:18ch; color:#fff; font-family:var(--hf-heading); font-size:clamp(2.4rem,5.3vw,4.8rem); font-weight:600; line-height:1.08; letter-spacing:-.035em; text-wrap:balance; text-shadow:0 3px 24px #000b,0 0 28px #e0008226; }
.cr-site .hf-banner .hf-hero-subline, .cr-site .hf-banner .hf-hero-subline p { max-width:52ch; margin:0 auto; color:#f3f0f5; font-family:"HF Manrope",system-ui,sans-serif; font-size:clamp(1rem,1.5vw,1.3rem); line-height:1.6; text-wrap:pretty; text-shadow:0 2px 12px #000; }
@media(max-width:760px) {
 .cr-site .cr-header { padding-block:.7rem; }
 .cr-site .hf-brand { width:min(220px,45vw); }
 .cr-site .cr-menu-toggle { font-size:.8rem; }
 .cr-site .hf-navigation { max-height:calc(100dvh - 135px); overflow-y:auto; overscroll-behavior:contain; }
 .cr-site #main-content, .cr-site .sppb-section[id], .cr-site .cr-section { scroll-margin-top:140px; }
 .cr-site .hf-banner { padding:4.5rem 1.25rem; }
}

/* DJ-style topbar and transparent overlay navigation. Solid fallback without JS. */
.cr-site .hf-header-shell { position:sticky; top:0; z-index:100; background:#08090d; transition:background-color .3s,box-shadow .3s; }
.cr-site .hf-header-shell .cr-header { position:static; background:transparent; box-shadow:none; border:0; }
.cr-site.hf-over-hero .hf-header-shell { margin-bottom:calc(-1 * var(--hf-header-height,180px)); background:transparent; box-shadow:none; }
.cr-site.hf-header-scrolled .hf-header-shell, .cr-site.hf-header-menu-open .hf-header-shell { background:rgba(20,20,20,.72); box-shadow:0 4px 20px #0003; }
@supports ((backdrop-filter:blur(18px)) or (-webkit-backdrop-filter:blur(18px))) {
 .cr-site.hf-header-scrolled .hf-header-shell, .cr-site.hf-header-menu-open .hf-header-shell { background:rgba(20,20,20,.45); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
}
.cr-site .hf-topbar { border-bottom:1px solid #ffffff26; color:#fff; background:#08090d26; }
.cr-site .hf-topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:40px; }
.cr-site .hf-social, .cr-site .hf-contact { display:flex; align-items:center; gap:1.2rem; }
.cr-site .hf-social a { display:inline-flex; width:30px; min-height:36px; justify-content:center; align-items:center; }
.cr-site .hf-social svg { width:18px; height:18px; }
.cr-site .hf-contact a { font-size:.78rem; text-decoration:none; padding-block:.5rem; }
.cr-site .hf-topbar a:hover { color:var(--cr-accent); }
.cr-site .hf-navigation .hf-request-link { padding:.7rem 1rem; border:1px solid #ffffff66; border-radius:4px; background:linear-gradient(115deg,#16374b99,#34204299); font-weight:600; }
.cr-site :is(.cr-button,.sppb-btn,.hf-request-link) { position:relative; overflow:hidden; isolation:isolate; }
.cr-site :is(.cr-button,.sppb-btn,.hf-request-link)::before { position:absolute; inset:0; content:""; pointer-events:none; transform:translateX(-125%) skewX(-18deg); background:linear-gradient(110deg,transparent 0%,#ffffff29 42%,#ffffff61 50%,#ffffff29 58%,transparent 100%); transition:transform .65s ease; }
.cr-site :is(.cr-button,.sppb-btn,.hf-request-link):is(:hover,:focus-visible)::before { transform:translateX(125%) skewX(-18deg); }
.cr-site .hf-banner::before { background:#05060b; opacity:var(--hf-hero-shade,.22); }
.cr-site.hf-over-hero .hf-banner { width:var(--hf-viewport-width,100%); max-width:none; margin-inline-start:calc(-1 * var(--hf-banner-offset,0px)); padding-top:calc(var(--hf-header-height,180px) + clamp(4rem,8vw,7rem)); }
.cr-site #main-content, .cr-site .sppb-section[id], .cr-site .cr-section { scroll-margin-top:calc(var(--hf-header-height,180px) + 20px); }
@media(max-width:760px) {
 .cr-site .hf-contact-email { display:none; }
 .cr-site .hf-topbar-inner { gap:.5rem; }
 .cr-site .hf-social { gap:.5rem; }
 .cr-site .hf-contact a { font-size:.72rem; }
 .cr-site .hf-navigation { max-height:calc(100dvh - 180px); }
 .cr-site.hf-over-hero .hf-banner { padding-top:calc(var(--hf-header-height,150px) + 3rem); }
}
@media(prefers-reduced-motion:reduce) { .cr-site :is(.cr-button,.sppb-btn,.hf-request-link)::before { display:none; } }

