/* ── CARSO SHARED DESIGN SYSTEM ── */
:root{
  --ink:#0A0909;--warm-white:#F6F4F0;--smoke:#EEEBE5;
  --silver:#C2BBB2;--grey:#857F78;--mid:#3A3632;
  --serif:'Cormorant Garamond',serif;--sans:'Outfit',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body {font-family:var(--sans);background:var(--warm-white);color:var(--ink);overflow-x:hidden;}
a,button{cursor:pointer;}
a{text-decoration:none;color:inherit;}img{display:block;max-width:100%;}
/* (Cursor personalizado removido a petición del cliente — jul 2026) */
nav#nav{position:fixed;top:0;left:0;width:100%;z-index:800;padding:0 48px;height:84px;display:flex;align-items:center;justify-content:space-between;transition:background .5s,box-shadow .5s,height .4s;}
nav#nav.s{background:rgba(245,243,239,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 1px 0 var(--smoke);height:74px;}
.nav-logo{font-family:var(--serif);font-size:20px;font-weight:300;letter-spacing:.1em;color:var(--ink);}
.nav-logo em{font-style:italic;}
/* Logo: en páginas internas se muestra siempre tenue, sin animación. El efecto color→tenue solo va en el home. Tenue suave (gris oscuro, cambio sutil respecto al negro). */
.nav-logo img{filter:brightness(0) invert(.3);}
.nav-links{display:flex;align-items:center;gap:36px;}
.nav-links a{font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--mid);padding-bottom:2px;position:relative;transition:color .25s;}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;height:1px;width:0;background:var(--ink);transition:width .3s;}
.nav-links a:hover,.nav-links a.act{color:var(--ink);}
.nav-links a:hover::after,.nav-links a.act::after{width:100%;}
/* Contacto link — same style as other nav links, no button/border */
.nav-ham{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.nav-ham span{display:block;width:22px;height:1px;background:var(--ink);transition:all .35s;}
#mob-nav{position:fixed;inset:0;background:var(--ink);z-index:700;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .45s;}
#mob-nav.open{opacity:1;pointer-events:all;}
#mob-nav a{font-family:var(--serif);font-style:italic;font-size:clamp(36px,8vw,68px);color:var(--warm-white);display:block;margin:8px 0;opacity:.75;transition:opacity .2s;text-align:center;}
.mob-close{position:absolute!important;top:18px!important;right:20px!important;background:none!important;border:none!important;cursor:pointer!important;width:52px!important;height:52px!important;z-index:9999!important;opacity:1!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important;}
.mob-close::before,.mob-close::after{content:''!important;position:absolute!important;top:50%!important;left:50%!important;width:28px!important;height:3px!important;background:#ffffff!important;border-radius:2px!important;display:block!important;}
.mob-close::before{transform:translate(-50%,-50%) rotate(45deg)!important;}
.mob-close::after{transform:translate(-50%,-50%) rotate(-45deg)!important;}
/* PAGE HERO */
.page-hero{margin-top:84px;position:relative;min-height:400px;display:flex;align-items:flex-end;overflow:hidden;}
.page-hero-img{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,9,9,.7) 0%,rgba(10,9,9,.15) 60%,transparent 100%);}
.page-hero-content{position:relative;z-index:2;padding:48px 52px;width:100%;}
.page-kicker{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:rgba(194,187,178,.8);margin-bottom:12px;display:block;}
.page-h1{font-family:var(--serif);font-style:italic;font-size:clamp(52px,8vw,96px);font-weight:300;color:var(--warm-white);line-height:.92;}
.page-sub{font-family:var(--sans);font-size:14px;font-weight:300;color:rgba(246,244,240,.6);margin-top:16px;max-width:480px;line-height:1.8;}
/* SHARED BTNS */
.btn-primary{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;background:var(--ink);color:var(--warm-white);padding:15px 34px;border:none;cursor:pointer;display:inline-block;transition:background .25s;}
.btn-primary:hover{background:var(--mid);}
.btn-ghost{font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.25em;text-transform:uppercase;border:1px solid rgba(10,9,9,.35);color:var(--ink);padding:15px 34px;display:inline-block;cursor:pointer;transition:border-color .25s,background .25s;}
.btn-ghost:hover{border-color:var(--ink);background:rgba(10,9,9,.05);}
.link-arrow{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:gap .3s,opacity .2s;}
.link-arrow:hover{gap:18px;opacity:.6;}
.section-label{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:var(--grey);display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.section-label::before{content:'';display:block;width:20px;height:1px;background:var(--grey);}
/* FOOTER */
footer{background:var(--ink);padding:80px 52px 36px;position:relative;overflow:hidden;}
.footer-bg-text{position:absolute;bottom:-40px;left:-10px;font-family:var(--serif);font-size:clamp(120px,20vw,240px);font-weight:300;color:rgba(255,255,255,.03);line-height:1;pointer-events:none;white-space:nowrap;user-select:none;}
.footer-top{display:grid;grid-template-columns:2fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.06);position:relative;z-index:1;}
.footer-brand-name{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--warm-white);margin-bottom:16px;}
.footer-brand-name span{font-style:italic;}
.footer-brand-desc{font-family:var(--sans);font-size:13px;font-weight:300;color:var(--grey);line-height:1.9;max-width:260px;}
.footer-col h4{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--grey);margin-bottom:24px;opacity:.7;}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:12px;}
.footer-col ul li a,.footer-col address{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,.35);font-style:normal;transition:color .2s;line-height:2;}
.footer-col ul li a:hover{color:rgba(255,255,255,.8);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;position:relative;z-index:1;}
.footer-copy{font-family:var(--sans);font-size:13px;font-weight:300;color:rgba(255,255,255,.2);letter-spacing:.06em;}
.footer-socials{display:flex;gap:18px;}
.footer-socials a{width:30px;height:30px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);font-size:14px;transition:border-color .2s,color .2s;}
.footer-socials a:hover{border-color:rgba(255,255,255,.5);color:rgba(255,255,255,.8);}
.modal-fade{display:none;}
@media(max-width:1024px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){
  nav#nav{padding:0 20px;height:72px;}
  nav#nav.s{height:66px;}
  .nav-links{display:none;}
  .nav-ham{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;}
  .page-hero{margin-top:72px;min-height:280px;}
  .page-hero-content{padding:32px 20px;}
  .page-hero-content,.footer-top{padding-left:20px;padding-right:20px;}
  footer{padding:60px 20px 28px;}
  .footer-top{grid-template-columns:1fr;gap:28px;}
  .footer-bottom{flex-direction:column;gap:16px;text-align:center;}
  .footer-bg-text{display:none;}
  #mob-nav a{padding:8px 0;}
  /* Espacios section mobile */
  .espacios-section{padding:48px 20px;}
  .espacios-inner{flex-direction:column;align-items:flex-start;}
}


/* Espacios section — Globalized */
.espacios-section { background: var(--ink); padding: 80px 52px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.espacios-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 40px; flex-wrap: wrap; }
.espac-text h3 { font-family: var(--serif); font-style: italic; font-size: clamp(30px, 3.5vw, 46px); font-weight: 300; color: var(--warm-white); }
.espac-text p { font-family: var(--sans); font-size: 13px; font-weight: 300; color: var(--grey); margin-top: 10px; line-height: 1.8; max-width: 400px; }
.espac-contacts { display: flex; flex-direction: column; gap: 16px; flex-shrink: 0; }
.espac-link { display: flex; align-items: center; gap: 10px; font-family: var(--sans); font-size: 12px; font-weight: 400; letter-spacing: .1em; color: var(--silver); transition: color .2s; }
.espac-link:hover { color: var(--warm-white); }
.espac-link-ico { width: 28px; height: 28px; border: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ── ACCESSIBILITY ── */
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
footer :focus-visible { outline-color: var(--warm-white); }
.espacios-section :focus-visible, #mob-menu :focus-visible { outline-color: var(--warm-white); }

/* ── SKIP TO CONTENT ── */
.skip-link { position: absolute; top: -100%; left: 16px; z-index: 9999; background: var(--ink); color: var(--warm-white); padding: 12px 24px; font-family: var(--sans); font-size: 14px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; transition: top .2s; }
.skip-link:focus { top: 16px; }

/* ── REDUCED MOTION ── */
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── MOBILE GLOBAL FIXES ── */
@media(max-width:768px) {
  /* Fix cursor:none that breaks tapping on mobile */
  *, *::before, *::after { cursor: auto !important; }
  a, button, input, select, textarea, [role="button"] { cursor: pointer !important; }
  /* Remove tap highlight flash */
  a, button, input, select, textarea { -webkit-tap-highlight-color: rgba(0,0,0,0.05); }
  /* Minimum tap target sizes */
  a, button { min-height: 44px; }
  /* Prevent horizontal overflow */
  html, body { overflow-x: hidden; }
}
