/* ============================================================
   Nova Vale — Curated & Portfolio pages — shared stylesheet
   Light editorial system, matches Startseite.html / Media Kit.html
   ============================================================ */
:root{
  --paper:#f3efe6;--paper-2:#ebe5d8;--card:#fbf9f3;
  --ink:#1c1915;--ink-soft:#4a443b;--muted:#8a8170;--faint:#b3aa97;
  --line:rgba(28,25,21,0.12);--line-soft:rgba(28,25,21,0.07);
  --gold:#a9833f;--gold-soft:#c2a667;--green:#5e7d4e;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Cormorant Garamond',Georgia,serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.label{font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.24em;font-weight:400;}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,64px);}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:500;margin:0;}
em,.it{font-style:italic;color:var(--gold);font-weight:400;}

/* NAV */
.nav{position:sticky;top:0;z-index:50;background:rgba(243,239,230,0.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,5vw,64px);max-width:1200px;margin:0 auto;}
.brand .name{font-family:'Playfair Display',serif;font-style:italic;font-size:21px;line-height:1;}
.brand .sub{font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.34em;color:var(--gold);margin-top:4px;text-transform:uppercase;}
.nav-links{display:flex;gap:26px;align-items:center;}
.nav-links a{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-soft);transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-cta{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.17em;text-transform:uppercase;border:1px solid var(--gold);color:var(--gold);padding:9px 20px;transition:.25s;}
.nav-cta:hover{background:var(--gold);color:#fff;}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.burger span{width:24px;height:1.6px;background:var(--ink);}
.mobile-menu{display:none;}

/* HERO */
.chero{padding:clamp(34px,5vw,68px) 0 clamp(30px,4vw,56px);}
.chero .eyebrow{color:var(--gold);font-size:12px;margin-bottom:clamp(18px,2.4vw,26px);}
.chero h1{font-size:clamp(46px,7.5vw,104px);line-height:0.94;letter-spacing:-.015em;max-width:14ch;}
.chero .lede{font-size:clamp(18px,1.7vw,23px);line-height:1.5;color:var(--ink-soft);max-width:54ch;margin:clamp(20px,2.6vw,30px) 0 0;}
.chero .cta{display:flex;gap:14px;margin-top:clamp(24px,3vw,34px);flex-wrap:wrap;}
.btn{font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:16px 30px;border:1px solid transparent;cursor:pointer;transition:.28s;display:inline-block;}
.btn-gold{background:var(--gold);color:#fff;}
.btn-gold:hover{background:var(--ink);}
.btn-ghost{background:none;border-color:var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}
.chero-img{margin-top:clamp(30px,4vw,52px);width:100%;height:auto;background:var(--paper-2);cursor:zoom-in;}

/* LISTING */
section.block{padding:clamp(46px,6vw,92px) 0;border-top:1px solid var(--line);}
.cat-label{color:var(--gold);font-size:11px;margin-bottom:clamp(26px,3vw,38px);}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3.4vw,46px);}
.pcard .pic{position:relative;overflow:hidden;background:#e3dccc;cursor:pointer;aspect-ratio:4/3;outline:1px solid rgba(169,131,63,0);transition:outline-color .3s;}
.pcard .pic img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.pcard .pic:hover img{transform:scale(1.05);}
.pcard .pic:hover{outline-color:rgba(169,131,63,.5);}
.pcard .pic .corner{position:absolute;top:10px;right:10px;opacity:0;transition:opacity .3s;pointer-events:none;}
.pcard .pic:hover .corner{opacity:1;}
.pcard .meta{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-top:18px;}
.pcard .ref{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.16em;color:var(--gold);}
.pcard .status{font-family:'Jost',sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:5px 11px;white-space:nowrap;}
.pcard h3{font-size:clamp(22px,2.4vw,29px);margin-top:8px;}
.pcard .loc{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:8px;}
.pcard .desc{font-size:17px;line-height:1.5;color:var(--ink-soft);margin-top:12px;max-width:46ch;}
.pcard .req{display:inline-block;margin-top:16px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold-soft);padding-bottom:5px;transition:.2s;}
.pcard .req:hover{color:var(--gold);border-color:var(--gold);}

/* STATEMENT / appointment band */
.band{text-align:left;max-width:760px;}
.band .eyebrow{color:var(--gold);font-size:11px;margin-bottom:18px;}
.band h2{font-size:clamp(30px,4.4vw,54px);line-height:1.05;}
.band p{font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--ink-soft);margin:22px 0 0;}
.band .cta{margin-top:30px;}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,32px);margin-top:clamp(30px,4vw,46px);}
.cbox{background:var(--card);border:1px solid var(--line-soft);padding:clamp(26px,3vw,40px);}
.cbox .k{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.cbox .m{font-family:'Jost',sans-serif;font-size:clamp(15px,1.7vw,19px);color:var(--gold);}
.cbox .req{display:inline-block;margin-top:18px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold-soft);padding-bottom:5px;}
.cbox .req:hover{color:var(--gold);border-color:var(--gold);}
.disclaimer{margin-top:clamp(36px,5vw,60px);font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.03em;line-height:1.7;color:var(--muted);max-width:80ch;}

/* FOOTER */
footer{background:#15130f;color:var(--faint);padding:clamp(40px,5vw,64px) 0 40px;}
.foot-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;padding-bottom:32px;border-bottom:1px solid rgba(236,229,214,.1);}
.foot-brand .name{font-family:'Playfair Display',serif;font-style:italic;font-size:26px;color:var(--paper);}
.foot-brand .sub{font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.34em;color:var(--gold-soft);margin-top:6px;text-transform:uppercase;}
.foot-social{display:flex;gap:20px;flex-wrap:wrap;}
.foot-social a{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);transition:.2s;}
.foot-social a:hover{color:var(--gold-soft);}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:26px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.08em;color:var(--muted);}
.foot-bottom a{color:var(--muted);}.foot-bottom a:hover{color:var(--gold-soft);}

/* LIGHTBOX + HOVER */
.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(18,16,12,0.95);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;padding:4vh 4vw;}
.lightbox.open{opacity:1;visibility:visible;}
.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;transform:scale(.93);opacity:0;transition:transform .55s cubic-bezier(.16,.84,.28,1),opacity .45s;box-shadow:0 50px 120px -30px rgba(0,0,0,.9);}
.lightbox.open img{transform:scale(1);opacity:1;}
.lb-close{position:absolute;top:20px;right:22px;width:46px;height:46px;border:1px solid rgba(236,229,214,.3);background:rgba(0,0,0,.2);color:var(--paper);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.25s;}
.lb-close:hover{border-color:var(--gold-soft);color:var(--gold-soft);transform:rotate(90deg);}
.lb-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-family:'Jost',sans-serif;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.hovprev{position:fixed;z-index:120;pointer-events:none;opacity:0;transform:scale(.95);transition:opacity .2s,transform .26s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 26px 44px rgba(0,0,0,.45));}
.hovprev.show{opacity:1;transform:scale(1);}
.hovprev .pf{background:#fbf9f3;padding:7px;border:1px solid var(--gold-soft);}
.hovprev img{width:100%;height:auto;object-fit:cover;}
.hovprev .pt{margin-top:8px;text-align:center;font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}

/* RESPONSIVE */
@media (max-width:860px){
  .nav-links,.nav .nav-cta{display:none;}
  .burger{display:flex;}
  .cards{grid-template-columns:1fr;gap:clamp(30px,6vw,40px);}
  .contact-grid{grid-template-columns:1fr;}
  .mobile-menu{display:block;position:fixed;inset:0;z-index:60;background:var(--paper);transform:translateY(-100%);transition:transform .45s cubic-bezier(.6,.05,.2,1);padding:88px clamp(24px,8vw,48px) 40px;overflow-y:auto;}
  .mobile-menu.open{transform:translateY(0);}
  .mobile-menu a{display:block;font-family:'Playfair Display',serif;font-size:28px;padding:12px 0;border-bottom:1px solid var(--line-soft);color:var(--ink);}
  .mobile-menu .sub-link{font-size:18px;font-family:'Jost',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:9px 0 9px 16px;}
  .mm-close{position:absolute;top:20px;right:20px;width:46px;height:46px;border:1px solid var(--line);background:none;cursor:pointer;font-size:24px;color:var(--ink);display:flex;align-items:center;justify-content:center;}
  body.menu-open{overflow:hidden;}
}
@media (max-width:560px){
  .foot-top{flex-direction:column;align-items:flex-start;}
  .pcard .pic{aspect-ratio:3/4;}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;}.pcard .pic:hover img{transform:none;}}
