:root {
  --ink: #111;
  --paper: #fff;
  --muted: #6e6e6e;
  --soft: #f4f2ee;
  --line: #dedbd5;
  --accent: #9a7b4f;
  --max: 1180px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.site-header {
  position: sticky; top: 0; z-index: 20; min-height: 86px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px max(22px, calc((100vw - var(--max))/2));
  background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px);
}
.brand img { width: 145px; height: 62px; object-fit: contain; display: block; }
.main-nav { display: flex; gap: 28px; align-items: center; }
.main-nav a { text-decoration: none; font-weight: 650; letter-spacing: .02em; }
.main-nav a:hover { color: var(--accent); }
.admin-link { border: 1px solid var(--ink); padding: 10px 14px; }
.nav-toggle { display: none; border: 0; background: transparent; font-size: 1.7rem; }
.hero {
  min-height: 68vh; display: grid; place-items: center; text-align: center; padding: 70px 22px;
  background: linear-gradient(135deg, rgba(0,0,0,.68), rgba(0,0,0,.28)),
              radial-gradient(circle at 50% 30%, #777, #202020 75%);
  color: white;
}
.hero-inner { max-width: 850px; }
.eyebrow { text-transform: uppercase; letter-spacing: .24em; font-size: .78rem; font-weight: 800; color: var(--accent); }
.hero h1, .page-hero h1 { font-family: Georgia, serif; font-weight: 500; line-height: 1.04; margin: 16px 0; }
.hero h1 { font-size: clamp(3rem, 7vw, 6.6rem); }
.hero p { font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.7; max-width: 680px; margin: 0 auto 30px; }
.actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 12px 18px; border: 1px solid var(--ink); background: var(--ink); color: white; text-decoration: none; font-weight: 750; }
.btn.secondary { background: transparent; color: var(--ink); }
.hero .btn.secondary { border-color: white; color: white; }
.btn.gold { background: var(--accent); border-color: var(--accent); }
.section { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; padding: 72px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.section h2, .page-hero h1 { font-size: clamp(2rem, 4vw, 3.5rem); }
.section h2 { font-family: Georgia, serif; font-weight: 500; margin: 0; }
.lead { color: var(--muted); font-size: 1.1rem; line-height: 1.8; max-width: 760px; }
.feature-grid, .horse-grid, .contact-grid, .stats { display: grid; gap: 22px; }
.feature-grid { grid-template-columns: repeat(3, 1fr); }
.feature { background: var(--soft); padding: 28px; border-top: 3px solid var(--accent); }
.feature h3 { margin-top: 0; font-family: Georgia, serif; font-size: 1.5rem; }
.page-hero { background: var(--soft); padding: 64px max(22px, calc((100vw - var(--max))/2)); }
.page-hero p { max-width: 760px; color: var(--muted); line-height: 1.7; }
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.toolbar input, .toolbar select { min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); background: white; }
.toolbar input { min-width: 260px; flex: 1; }
.horse-grid { grid-template-columns: repeat(3, 1fr); }
.horse-card { border: 1px solid var(--line); background: white; overflow: hidden; display: flex; flex-direction: column; }
.horse-card img, .media-placeholder { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #e5e2dc; }
.media-placeholder { display: grid; place-items: center; font-size: 3rem; color: #777; }
.card-body { padding: 20px; display: grid; gap: 10px; }
.card-body h3 { margin: 0; font-family: Georgia, serif; font-size: 1.65rem; }
.meta { color: var(--muted); }
.status { width: fit-content; padding: 6px 10px; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; background: #eaf6ec; color: #256133; }
.status.gereserveerd { background: #fff4d6; color: #7a5600; }
.status.verkocht { background: #eee; color: #555; }
.card-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.empty { border: 1px dashed var(--line); padding: 42px; text-align: center; color: var(--muted); }
.detail { display: grid; grid-template-columns: 1.2fr .8fr; gap: 38px; }
.gallery-main img, .gallery-main video { width: 100%; max-height: 610px; object-fit: cover; background: #111; }
.thumb-row { display: flex; gap: 10px; overflow-x: auto; margin-top: 10px; }
.thumb-row button { border: 2px solid transparent; padding: 0; background: transparent; }
.thumb-row img { width: 92px; height: 72px; object-fit: cover; }
.detail-panel h1 { font-family: Georgia, serif; font-size: clamp(2.4rem, 5vw, 4.8rem); margin: 10px 0; }
.specs { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin: 26px 0; }
.spec { padding: 14px; background: var(--soft); }
.spec strong { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 5px; }
.copy { white-space: pre-line; line-height: 1.8; color: #363636; }
.contact-grid { grid-template-columns: 1fr 1fr; }
.contact-card { border: 1px solid var(--line); padding: 30px; }
.contact-card h3 { font-family: Georgia, serif; font-size: 1.7rem; margin-top: 0; }
.contact-card p { line-height: 1.8; }
.map { min-height: 380px; border: 0; width: 100%; }
.admin-wrap { width: min(980px, calc(100% - 40px)); margin: 0 auto; padding: 55px 0; }
.admin-banner { background: #fff8e7; border: 1px solid #ead49f; padding: 16px; margin-bottom: 25px; line-height: 1.6; }
form { display: grid; gap: 18px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label { display: grid; gap: 7px; font-weight: 700; }
input, textarea, select { width: 100%; padding: 12px; border: 1px solid #bbb; }
textarea { min-height: 130px; resize: vertical; }
.upload-preview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.upload-preview img, .upload-preview video { width: 100%; aspect-ratio: 1; object-fit: cover; background: #111; }
.admin-list { margin-top: 42px; display: grid; gap: 12px; }
.admin-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px; border: 1px solid var(--line); }
.admin-row .actions { justify-content: flex-end; }
.site-footer { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 24px; padding: 42px max(22px, calc((100vw - var(--max))/2)); background: #111; color: white; line-height: 1.7; }
.site-footer a { color: white; }
.toast { position: fixed; right: 20px; bottom: 20px; background: #111; color: white; padding: 14px 18px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s; z-index: 50; }
.toast.show { opacity: 1; transform: translateY(0); }
@media (max-width: 850px) {
  .nav-toggle { display: block; }
  .main-nav { display: none; position: absolute; top: 86px; left: 0; right: 0; padding: 20px; background: white; border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; }
  .main-nav.open { display: flex; }
  .feature-grid, .horse-grid, .contact-grid, .detail, .site-footer { grid-template-columns: 1fr; }
  .horse-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-panel { order: -1; }
}
@media (max-width: 560px) {
  .horse-grid, .form-grid, .upload-preview { grid-template-columns: 1fr; }
  .section { width: min(100% - 26px, var(--max)); padding: 50px 0; }
  .site-header { min-height: 76px; }
  .brand img { width: 120px; height: 54px; }
  .main-nav { top: 76px; }
  .admin-row { align-items: flex-start; flex-direction: column; }
}
.left { justify-content: flex-start; }
fieldset { border: 1px solid var(--line); padding: 18px; }
legend { padding: 0 8px; font-weight: 800; }
.pedigree-section { border-top: 1px solid var(--line); }
.pedigree-tree { display: grid; gap: 18px; margin-top: 28px; }
.pedigree-generation { display: grid; gap: 14px; position: relative; }
.pedigree-generation.parents { grid-template-columns: repeat(2, 1fr); }
.pedigree-generation.grandparents { grid-template-columns: repeat(4, 1fr); }
.pedigree-cell { min-height: 96px; padding: 18px; border: 1px solid var(--line); background: var(--soft); display: flex; flex-direction: column; justify-content: center; text-align: center; }
.pedigree-cell small { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; }
.pedigree-cell strong { font-family: Georgia, serif; font-size: 1.18rem; }
.pedigree-cell.horse-node { background: var(--ink); color: white; max-width: 360px; width: 100%; justify-self: center; }
.pedigree-cell.horse-node small { color: #ddd; }
.video-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.video-embed { width: 100%; aspect-ratio: 16/9; border: 0; background: #111; }
.external-video { display: grid; place-items: center; aspect-ratio: 16/9; background: var(--soft); border: 1px solid var(--line); padding: 20px; font-weight: 750; }
.mini { width:92px; height:72px; font-size:1.4rem; aspect-ratio:auto; }
.preview-item { position: relative; }
.preview-item button { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: rgba(0,0,0,.78); color: white; font-size: 1.2rem; }
.admin-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 25px; }
.admin-tabs a { padding: 11px 15px; border: 1px solid var(--line); text-decoration: none; font-weight: 750; }
.admin-tabs a.active { background: var(--ink); color: white; border-color: var(--ink); }
.social-links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.social-btn { display: inline-flex; padding: 10px 13px; border: 1px solid var(--ink); text-decoration: none; font-weight: 750; }
.reference-card p { color: var(--muted); line-height: 1.6; }
@media (max-width: 850px) {
  .pedigree-generation.grandparents { grid-template-columns: repeat(2, 1fr); }
  .video-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .pedigree-generation.parents, .pedigree-generation.grandparents { grid-template-columns: 1fr; }
}

/* v3 visual redesign */
.site-header{background:rgba(255,255,255,.94);transition:.25s}.main-nav a{font-size:.9rem;text-transform:uppercase;letter-spacing:.12em}.brand img{width:132px}
.hero-slider{position:relative;min-height:calc(100vh - 86px);overflow:hidden;background:#111;text-align:left;place-items:end start;padding:90px max(24px,calc((100vw - var(--max))/2))}.hero-slides,.hero-slide,.hero-shade{position:absolute;inset:0}.hero-slide{background-position:center;background-size:cover;opacity:0;transform:scale(1.035);transition:opacity 1.1s ease,transform 7s ease}.hero-slide.active{opacity:1;transform:scale(1)}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.38) 52%,rgba(0,0,0,.1) 100%),linear-gradient(0deg,rgba(0,0,0,.52),transparent 45%)}.hero-slider .hero-inner{position:relative;z-index:2;max-width:900px;margin:0}.hero-slider h1{font-size:clamp(3.2rem,6.7vw,7.3rem);letter-spacing:-.035em}.hero-slider p{margin:0 0 30px;max-width:670px}.hero-outline{background:transparent;border-color:#fff;color:#fff}.hero-dots{position:absolute;z-index:3;right:max(24px,calc((100vw - var(--max))/2));bottom:40px;display:flex;gap:9px}.hero-dots button{width:34px;height:3px;min-height:0;border:0;padding:0;background:rgba(255,255,255,.38)}.hero-dots button.active{background:#fff}.intro-band{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end;padding:85px max(24px,calc((100vw - var(--max))/2));background:#111;color:#fff}.intro-band h2{font:500 clamp(2.1rem,4.4vw,4.2rem)/1.1 Georgia,serif;margin:15px 0 0}.intro-band p{font-size:1.08rem;line-height:1.9;color:#cfcfcf;margin:0}.text-link{text-decoration:none;font-weight:750;border-bottom:1px solid}.horse-card{border:0;background:#f5f3ef;transition:transform .3s ease,box-shadow .3s ease}.horse-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(0,0,0,.11)}.horse-card img{aspect-ratio:1.22/1}.card-body{padding:24px}.image-statement{min-height:680px;position:relative;display:grid;align-items:end;color:white;overflow:hidden}.image-statement>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.image-statement:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.08)),linear-gradient(0deg,rgba(0,0,0,.55),transparent)}.image-statement>div{position:relative;z-index:2;width:min(620px,calc(100% - 48px));margin:0 max(24px,calc((100vw - var(--max))/2)) 75px}.image-statement h2{font:500 clamp(2.5rem,5vw,5rem)/1.05 Georgia,serif;margin:12px 0}.image-statement p{font-size:1.1rem;line-height:1.8}.reference-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.reference-showcase .reference-card:first-child{grid-column:span 2}.reference-showcase .reference-card:first-child img{aspect-ratio:2.05/1}.reference-showcase .reference-card:not(:first-child) img{aspect-ratio:1/1}.reference-card p{line-height:1.65}.compact{padding-top:30px}.feature{background:#111;color:#fff;border-top:0;min-height:250px}.feature>span{font:500 2rem Georgia,serif;color:var(--accent)}.feature p{color:#bbb;line-height:1.7}.editorial{min-height:430px;display:flex;align-items:end;background:#111;color:white}.editorial h1{max-width:900px}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-image{width:100%;min-height:590px;object-fit:cover}.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);height:430px}.photo-strip img{width:100%;height:100%;object-fit:cover}.social-btn{border-radius:0}
@media(max-width:850px){.intro-band,.about-layout{grid-template-columns:1fr;gap:30px}.reference-showcase{grid-template-columns:1fr 1fr}.reference-showcase .reference-card:first-child{grid-column:span 2}.photo-strip{height:auto;grid-template-columns:1fr}.photo-strip img{aspect-ratio:16/10}.hero-slider{min-height:82vh}.image-statement{min-height:570px}}
@media(max-width:560px){.hero-slider{padding-bottom:85px}.hero-slider h1{font-size:3.15rem}.hero-dots{left:24px;right:auto;bottom:28px}.intro-band{padding-top:60px;padding-bottom:60px}.reference-showcase{grid-template-columns:1fr}.reference-showcase .reference-card:first-child{grid-column:auto}.image-statement>div{margin-bottom:45px}.about-image{min-height:420px}}
.lang-switch{display:flex;gap:.35rem;align-items:center;margin-left:.5rem}.lang-switch button{border:1px solid #bbb;background:#fff;padding:.35rem .5rem;font-size:.72rem;cursor:pointer}.lang-switch button.active{background:#111;color:#fff}.pedigree-cell a{color:inherit;text-decoration:none;border-bottom:1px dotted #9b7a41}.pedigree-cell a:hover{color:#9b7a41}.result-list{display:grid;gap:.75rem;margin-top:1rem}.result-item{border-left:3px solid #b08b4f;padding:.65rem 1rem;background:#f7f5f1}.result-item strong{display:block}.reference-detail-link{margin-top:1rem;display:inline-flex}.translation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.translation-note{font-size:.85rem;color:#666}.ancestor-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.ancestor-links label{font-size:.78rem}.reference-hero{max-width:1100px;margin:auto}.reference-hero img{width:100%;max-height:620px;object-fit:cover}.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.tabs a{padding:.55rem .8rem;border:1px solid #ccc;text-decoration:none;color:inherit}@media(max-width:760px){.lang-switch{width:100%;justify-content:center;padding:.5rem}.translation-grid,.ancestor-links{grid-template-columns:1fr}}

/* JVX v4.1 — horizontal pedigree inspired by international sport-horse profiles */
.pedigree-chart{
  --ped-line:#b8b1a5;
  display:grid;
  grid-template-columns:minmax(190px,.82fr) minmax(220px,1fr) minmax(240px,1.15fr);
  gap:46px;
  align-items:stretch;
  margin-top:30px;
  padding:10px 0;
}
.pedigree-column{display:grid;position:relative;gap:12px;}
.pedigree-subject{grid-template-rows:1fr;align-items:center;}
.pedigree-parents{grid-template-rows:repeat(2,1fr);}
.pedigree-grandparents{grid-template-rows:repeat(4,1fr);}
.pedigree-box{
  position:relative;
  min-height:78px;
  padding:15px 18px;
  border:1px solid var(--line);
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  box-shadow:0 8px 24px rgba(25,22,18,.035);
}
.pedigree-box small{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.65rem;
  margin-bottom:6px;
}
.pedigree-box strong{font-family:Georgia,serif;font-size:1.05rem;line-height:1.25;}
.pedigree-box.subject{background:var(--ink);color:#fff;border-color:var(--ink);min-height:104px;}
.pedigree-box.subject small{color:#d8d3cb;}
.pedigree-box a{color:inherit;text-decoration:none;border-bottom:1px dotted #9b7a41;}
.pedigree-box a:hover{color:#9b7a41;}
/* horizontal branches */
.pedigree-subject .pedigree-box::after,
.pedigree-parents .pedigree-box::after{
  content:"";position:absolute;left:100%;top:50%;width:23px;border-top:1px solid var(--ped-line);
}
.pedigree-parents::before,
.pedigree-grandparents::before{
  content:"";position:absolute;left:-23px;top:12.5%;bottom:12.5%;border-left:1px solid var(--ped-line);
}
.pedigree-parents .pedigree-box::before,
.pedigree-grandparents .pedigree-box::before{
  content:"";position:absolute;right:100%;top:50%;width:23px;border-top:1px solid var(--ped-line);
}
.pedigree-subject::after{
  content:"";position:absolute;left:calc(100% + 23px);top:25%;bottom:25%;border-left:1px solid var(--ped-line);
}
.pedigree-parents::after{
  content:"";position:absolute;left:calc(100% + 23px);top:12.5%;bottom:12.5%;border-left:1px solid var(--ped-line);
}
@media(max-width:820px){
  .pedigree-chart{grid-template-columns:1fr;gap:18px;padding-left:18px;}
  .pedigree-column{gap:10px;}
  .pedigree-subject,.pedigree-parents,.pedigree-grandparents{grid-template-rows:auto;}
  .pedigree-box{min-height:0;}
  .pedigree-box.subject{min-height:84px;}
  .pedigree-subject .pedigree-box::after,.pedigree-parents .pedigree-box::after,
  .pedigree-parents::before,.pedigree-grandparents::before,
  .pedigree-parents .pedigree-box::before,.pedigree-grandparents .pedigree-box::before,
  .pedigree-subject::after,.pedigree-parents::after{display:none;}
  .pedigree-parents,.pedigree-grandparents{border-left:1px solid var(--ped-line);padding-left:18px;}
}


/* Downloads / information */
.download-toolbar{display:flex;justify-content:flex-end;margin-bottom:2rem}.download-toolbar label{min-width:min(100%,320px)}
.document-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.25rem}
.document-card{display:flex;gap:1.25rem;align-items:flex-start;background:#fff;border:1px solid rgba(17,17,17,.12);padding:1.4rem;box-shadow:0 15px 40px rgba(0,0,0,.05)}
.document-icon{flex:0 0 64px;height:76px;display:grid;place-items:center;background:#111;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.08em;position:relative}
.document-icon:after{content:'';position:absolute;right:0;top:0;border-style:solid;border-width:0 0 15px 15px;border-color:transparent transparent #c9a35b transparent}
.document-content h2{font-size:1.35rem;margin:.25rem 0 .55rem}.document-content p{color:#555;margin:0 0 .8rem}.document-meta{font-size:.82rem;color:#777;margin-bottom:1rem;word-break:break-word}.current-file{padding:1rem;background:#f5f2eb;border-left:3px solid #c9a35b}
@media(max-width:560px){.document-card{display:block}.document-icon{margin-bottom:1rem}.download-toolbar{justify-content:stretch}.download-toolbar label{width:100%}}

/* v5.1: downloads in all available languages */
.document-language-group{margin:0 0 3rem}.document-language-heading{display:flex;align-items:center;gap:.75rem;margin:0 0 1.1rem;padding-bottom:.7rem;border-bottom:1px solid rgba(30,30,30,.14);font-family:Georgia,serif;font-size:1.55rem}.document-language-heading small{display:inline-grid;place-items:center;min-width:1.8rem;height:1.8rem;padding:0 .5rem;border-radius:999px;background:#171717;color:#fff;font:600 .78rem/1 system-ui,sans-serif}.document-language-group .document-grid{margin-top:0}

/* Production v6 media library */
.media-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:24px}.media-library-card{border:1px solid #ddd;background:#fff}.media-library-card img,.media-library-card video{width:100%;height:220px;object-fit:cover;display:block}.media-library-card>div{padding:14px}.media-library-card small{display:block;color:#777;margin:5px 0 10px}
/* Definitieve productie-uitbreidingen */
.footer-cookie-btn{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.cookie-layer{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.56);display:grid;place-items:end center;padding:20px}.cookie-card{width:min(760px,100%);background:#fff;padding:28px;box-shadow:0 18px 70px rgba(0,0,0,.28)}.cookie-card h2{margin:.25rem 0 .75rem}.cookie-options{display:grid;gap:12px;padding:16px 0}.cookie-options label{display:flex;align-items:center;gap:10px}.map-consent{min-height:430px;background:#eee;display:grid;place-items:center;text-align:center;padding:32px}.map-consent>div{max-width:500px}.exact-map{width:100%;min-height:430px;border:0}.map-route{margin-top:12px}.external-consent-placeholder{min-height:260px;background:#eee;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:28px}.admin-login{min-height:72vh;display:grid;place-items:center;padding:40px 20px;background:#f4f2ee}.login-card{width:min(480px,100%);background:#fff;padding:34px;border:1px solid #ddd}.login-card img{display:block;width:150px;max-height:100px;object-fit:contain;margin:0 auto 24px}.form-error{color:#9d2424;margin-top:12px}.admin-signout{margin-left:auto;border:1px solid currentColor;background:transparent;padding:8px 12px;cursor:pointer}.legal-copy{max-width:850px}.legal-copy p{font-size:1.08rem;line-height:1.8}@media(max-width:720px){.cookie-card{padding:22px}.cookie-layer{padding:10px}.map-consent,.exact-map{min-height:360px}}


/* Clickable cards and photo lightbox */
.clickable-card{cursor:pointer}.card-image-link{position:relative;display:block;overflow:hidden;text-decoration:none}.card-image-link img,.card-image-link .media-placeholder{transition:transform .45s ease}.clickable-card:hover .card-image-link img,.clickable-card:hover .card-image-link .media-placeholder{transform:scale(1.035)}.card-image-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.34);color:#fff;text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:800;opacity:0;transition:opacity .3s ease}.clickable-card:hover .card-image-overlay,.clickable-card:focus-within .card-image-overlay{opacity:1}.card-title-link{color:inherit;text-decoration:none}.gallery-main img,.reference-hero img{cursor:zoom-in}.lightbox-open{overflow:hidden}.jvx-lightbox{position:fixed;z-index:10000;inset:0;background:rgba(0,0,0,.94);display:grid;grid-template-columns:70px 1fr 70px;align-items:center}.jvx-lightbox figure{margin:0;height:100%;display:grid;place-items:center;grid-template-rows:1fr auto;padding:35px 15px 20px}.jvx-lightbox img{max-width:100%;max-height:calc(100vh - 90px);object-fit:contain}.jvx-lightbox button{border:0;background:transparent;color:#fff;font-size:3.4rem;cursor:pointer;min-height:70px}.jvx-lightbox-close{position:absolute;right:18px;top:8px;z-index:2}.jvx-lightbox-count{color:#fff;padding-top:12px;font-size:.85rem;letter-spacing:.08em}@media(max-width:700px){.jvx-lightbox{grid-template-columns:42px 1fr 42px}.jvx-lightbox button{font-size:2.5rem}.card-image-overlay{display:none}}

/* Stable live build: login icon + admin login */
.admin-icon-link{display:inline-flex!important;align-items:center;justify-content:center;width:38px;height:38px;padding:8px!important;border:1px solid rgba(255,255,255,.22);border-radius:50%;margin-left:8px}.admin-icon-link svg{width:18px;height:18px;fill:currentColor}.admin-icon-link:hover{background:rgba(255,255,255,.1)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-section{min-height:65vh;display:grid;place-items:center;padding:70px 20px}.login-card{width:min(480px,100%);padding:34px;background:#fff;border:1px solid #ddd;box-shadow:0 18px 60px rgba(0,0,0,.08)}.login-card form{display:grid;gap:16px}.login-message{min-height:1.4em;color:#9b2c2c}.admin-signout{background:none;border:0;padding:10px 14px;cursor:pointer;color:inherit;margin-left:auto}.legal-copy{max-width:900px}.legal-copy h2{margin-top:28px}
@media(max-width:900px){.admin-icon-link{margin:8px auto}.main-nav.open .admin-icon-link{display:flex!important}}
