/* SHARED CSS — Estudi Roca · Editorial */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --black:#1A1A1A;--ink:#0A0A0A;--charcoal:#3A3A3A;--gray:#7A7A7A;--gray-light:#B5B5B5;
  --paper:#F4F1EA;--cream:#F8F6F1;--white:#FFFFFF;--off-white:#FAF8F4;
  --accent:#C19660;--accent-dark:#A47844;--accent-light:#E8D9C2;
  --border:#D9D2C5;--border-light:#E8E2D3;
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'Inter',-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',Menlo,monospace;
  --max:1240px;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--charcoal);background:var(--cream);line-height:1.75;font-size:15px;-webkit-font-smoothing:antialiased;padding-top:38px}

/* RIBBON */
.demo-ribbon{position:fixed;top:0;left:0;right:0;z-index:200;background:#141414;color:rgba(255,255,255,.78);padding:9px 20px;display:flex;align-items:center;justify-content:center;gap:14px;font-size:.78rem;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.08)}
.demo-ribbon .dr-tag{background:#F46404;color:#fff;padding:3px 10px;border-radius:20px;font-weight:700;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.demo-ribbon .dr-brands{display:inline-flex;align-items:center;gap:10px}
.demo-ribbon .dr-brands img{height:16px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.demo-ribbon .dr-brands .dr-isern{height:14px}
.demo-ribbon .dr-brands .dr-sep{opacity:.4}
.demo-ribbon a{color:#fff;text-decoration:none;font-weight:600;border-bottom:1px solid rgba(255,255,255,.3)}
.demo-ribbon a:hover{border-bottom-color:#fff}

/* NAV — dark, minimal editorial */
.nav{position:fixed;top:38px;left:0;right:0;z-index:100;background:rgba(10,10,10,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06);transition:all .3s}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 32px;height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.nav-logo{text-decoration:none;display:flex;flex-direction:column;line-height:1.05}
.nav-logo strong{font-family:var(--font-display);font-size:1.6rem;color:#fff;font-weight:500;letter-spacing:-.5px;font-style:italic}
.nav-logo span{font-family:var(--font-mono);font-size:.62rem;color:var(--accent);letter-spacing:4px;text-transform:uppercase;margin-top:2px;font-weight:500}
.nav-links{display:flex;gap:36px;list-style:none}
.nav-links a{font-family:var(--font-body);text-decoration:none;color:rgba(255,255,255,.7);font-size:.78rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;transition:color .25s;position:relative;padding:6px 0}
.nav-links a:hover{color:#fff}
.nav-links a.active{color:var(--accent)}
.nav-links a.active::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--accent)}
.nav-meta{display:flex;align-items:center;gap:20px;font-family:var(--font-mono);font-size:.7rem;color:rgba(255,255,255,.55);letter-spacing:1.5px}
.nav-meta a{color:#fff;text-decoration:none;font-weight:600}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:22px;height:1px;background:#fff;margin:6px 0;transition:.3s}

/* PAGE HEADER editorial */
.page-header{padding:180px 0 90px;background:var(--ink);color:#fff;position:relative;overflow:hidden}
.page-header::before{content:'';position:absolute;top:-200px;right:-100px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(193,150,96,.08) 0%,transparent 70%)}
.page-header-inner{max-width:var(--max);margin:0 auto;padding:0 32px;position:relative;z-index:1}
.page-meta{font-family:var(--font-mono);font-size:.74rem;color:var(--accent);letter-spacing:4px;text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:14px}
.page-meta::before{content:'—';opacity:.5}
.page-title{font-family:var(--font-display);font-size:clamp(2.6rem,5.5vw,4.8rem);color:#fff;font-weight:500;font-style:italic;letter-spacing:-1.5px;line-height:1.05;margin-bottom:24px;max-width:980px}
.page-title em{font-style:italic;color:var(--accent);font-weight:500}
.page-lead{font-size:1.05rem;color:rgba(255,255,255,.7);line-height:1.85;max-width:680px;font-weight:400}
.page-breadcrumb{display:flex;gap:12px;font-family:var(--font-mono);font-size:.7rem;color:rgba(255,255,255,.4);letter-spacing:2px;text-transform:uppercase;margin-bottom:32px}
.page-breadcrumb a{color:rgba(255,255,255,.7);text-decoration:none}
.page-breadcrumb a:hover{color:var(--accent)}

/* SECTION */
.section{padding:120px 0;background:var(--cream)}
.section-inner{max-width:var(--max);margin:0 auto;padding:0 32px}
.section.dark{background:var(--ink);color:rgba(255,255,255,.8)}
.section.paper{background:var(--paper)}
.eyebrow{font-family:var(--font-mono);font-size:.72rem;color:var(--accent-dark);letter-spacing:4px;text-transform:uppercase;font-weight:600;margin-bottom:18px;display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:'';width:32px;height:1px;background:var(--accent-dark)}
.section.dark .eyebrow{color:var(--accent)}
.section.dark .eyebrow::before{background:var(--accent)}
.title{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.4rem);color:var(--ink);font-weight:500;letter-spacing:-1px;line-height:1.1;font-style:italic;margin-bottom:20px}
.title em{font-style:italic;color:var(--accent-dark)}
.section.dark .title{color:#fff}
.section.dark .title em{color:var(--accent)}
.lead{font-size:1.04rem;color:var(--charcoal);line-height:1.85;max-width:640px}
.section.dark .lead{color:rgba(255,255,255,.7)}

/* FOOTER */
.footer{background:var(--ink);color:rgba(255,255,255,.55);padding:80px 0 28px}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;margin-bottom:60px}
.footer-col h5{font-family:var(--font-mono);color:var(--accent);font-size:.7rem;font-weight:600;margin-bottom:22px;letter-spacing:3px;text-transform:uppercase}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.footer-col a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.88rem;transition:color .25s}
.footer-col a:hover{color:#fff}
.footer-brand strong{font-family:var(--font-display);color:#fff;font-size:1.4rem;font-weight:500;font-style:italic;display:block;margin-bottom:18px;letter-spacing:-.3px}
.footer-brand p{font-size:.88rem;color:rgba(255,255,255,.55);line-height:1.8;max-width:340px}
.footer-bot{max-width:var(--max);margin:0 auto;padding:30px 32px 0;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;font-size:.78rem;color:rgba(255,255,255,.4);font-family:var(--font-mono);letter-spacing:1px}

/* COOKIE */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink);color:rgba(255,255,255,.78);border-top:1px solid var(--accent);padding:18px 24px;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;transition:transform .4s;box-shadow:0 -4px 30px rgba(0,0,0,.18)}
.cookie-banner.hidden{transform:translateY(100%)}
.cookie-banner p{font-size:.85rem;max-width:520px;line-height:1.7}
.cookie-banner a{color:var(--accent);font-weight:600}
.cookie-btn{background:var(--accent);color:var(--ink);border:none;padding:11px 30px;font-weight:700;font-size:.78rem;cursor:pointer;letter-spacing:3px;text-transform:uppercase;transition:background .2s}
.cookie-btn:hover{background:#fff}

/* FADE */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE */
@media (max-width:980px){
  .nav-inner{padding:0 18px;gap:10px}
  .nav-links,.nav-meta{display:none}
  .nav-toggle{display:block;margin-left:auto}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:74px;left:0;right:0;background:var(--ink);padding:32px;gap:20px;border-top:1px solid rgba(255,255,255,.05)}
  .footer-inner{grid-template-columns:1fr 1fr;gap:40px}
  .footer-bot{flex-direction:column;gap:10px;text-align:center}
}
@media (max-width:640px){
  .demo-ribbon{flex-wrap:wrap;gap:8px;padding:7px 14px;font-size:.7rem}
  body{padding-top:64px}
  .nav{top:64px}
  .nav-logo span{display:none}
  .page-header{padding:160px 0 60px}
  .section{padding:80px 0}
  .footer-inner{grid-template-columns:1fr;gap:32px}
}
