:root{
  --papel:#faf6f0; --papel2:#f2ebe1; --tinta:#1c1815; --tinta2:#4a413a;
  --oro:#a8842c; --oro-cl:#c9a227; --linea:#ded3c4; --blanco:#fffdfa;
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  --sans:"Segoe UI",system-ui,-apple-system,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--papel);color:var(--tinta);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}

/* ===== reveal con failsafe: solo se oculta si hay JS ===== */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.22,.7,.3,1),transform .9s cubic-bezier(.22,.7,.3,1)}
.js .rv.ok{opacity:1;transform:none}
.js .rv.d1{transition-delay:.09s}.js .rv.d2{transition-delay:.18s}.js .rv.d3{transition-delay:.27s}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* ===== barra ===== */
.barra{position:fixed;top:0;left:0;right:0;z-index:70;transition:background .4s,border-color .4s,padding .4s;padding:20px 0;border-bottom:1px solid transparent}
.barra.pegada{background:rgba(250,246,240,.93);backdrop-filter:blur(14px);border-bottom-color:var(--linea);padding:12px 0}
.barra .wrap{display:flex;align-items:center;gap:16px}
.logo{font-family:var(--serif);font-size:19px;letter-spacing:5px;font-weight:400;color:var(--blanco);transition:color .4s;white-space:nowrap}
.barra.pegada .logo{color:var(--tinta)}
.logo i{display:block;font-style:normal;font-family:var(--sans);font-size:8.5px;letter-spacing:5.5px;opacity:.75;margin-top:2px}
.barra nav{margin-left:auto;display:flex;gap:26px;align-items:center}
.barra nav a{font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--blanco);opacity:.85;transition:color .4s,opacity .3s;position:relative}
.barra.pegada nav a{color:var(--tinta2)}
.barra nav a:hover{opacity:1;color:var(--oro-cl)}
.barra nav a.act{color:var(--oro)}
.barra nav a.act::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--oro)}
@media(max-width:860px){.barra nav{display:none}}

/* ===== portada (inicio) ===== */
.portada{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.portada .foto{position:absolute;inset:0;background:#1c1815}
.portada .foto img{width:100%;height:118%;object-fit:cover;object-position:center 38%;will-change:transform}
.portada::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,15,12,.92) 4%,rgba(18,15,12,.42) 46%,rgba(18,15,12,.55) 100%)}
.portada .wrap{position:relative;z-index:2;padding-bottom:74px;padding-top:130px;color:var(--blanco)}
.kicker{font-size:11px;letter-spacing:4.5px;text-transform:uppercase;color:var(--oro-cl);margin-bottom:20px}
.portada h1{font-family:var(--serif);font-size:clamp(40px,8.4vw,86px);line-height:1.03;font-weight:400;letter-spacing:-1.5px;max-width:15ch;margin-bottom:22px}
.portada h1 em{font-style:italic;color:var(--oro-cl)}
.portada p{font-size:clamp(15px,2.4vw,18.5px);max-width:46ch;opacity:.9;margin-bottom:30px}

/* ===== cabecera (páginas internas) ===== */
.cabecera{position:relative;min-height:52svh;display:flex;align-items:flex-end;overflow:hidden}
.cab-foto{position:absolute;inset:0;background:#1c1815}
.cab-foto img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.cabecera::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,15,12,.93) 6%,rgba(18,15,12,.44) 62%,rgba(18,15,12,.6) 100%)}
.cabecera .wrap{position:relative;z-index:2;padding-bottom:52px;padding-top:126px;color:var(--blanco)}
.cabecera h1{font-family:var(--serif);font-size:clamp(36px,7vw,68px);line-height:1.06;font-weight:400;letter-spacing:-1.2px;margin-bottom:14px}
.cabecera h1 em{font-style:italic;color:var(--oro-cl)}
.cabecera p:not(.kicker){font-size:clamp(14.5px,2.2vw,17px);max-width:48ch;opacity:.9}
.volver{display:inline-block;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:22px;transition:color .3s}
.volver:hover{color:var(--oro-cl)}

.acciones{display:flex;gap:14px;flex-wrap:wrap}
.bt{display:inline-flex;align-items:center;gap:9px;padding:15px 28px;font-size:13px;letter-spacing:1.6px;text-transform:uppercase;font-weight:600;border-radius:2px;cursor:pointer;font-family:inherit;border:1px solid transparent;transition:transform .25s,background .25s,color .25s,box-shadow .25s}
.bt-o{background:var(--oro-cl);color:#231a06;box-shadow:0 10px 30px rgba(201,162,39,.28)}
.bt-o:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(201,162,39,.4)}
.bt-l{border-color:rgba(255,255,255,.5);color:#fff}
.bt-l:hover{background:#fff;color:var(--tinta);transform:translateY(-3px)}
.bt-b{border-color:var(--linea);color:var(--tinta)}
.bt-b:hover{background:var(--tinta);color:var(--papel);border-color:var(--tinta);transform:translateY(-3px)}

.estado{position:absolute;top:0;right:24px;z-index:3;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);border-radius:0 0 4px 4px;padding:9px 16px;font-size:11.5px;letter-spacing:1.2px;color:#fff;text-transform:uppercase}
.punto{width:7px;height:7px;border-radius:50%;background:#6ee7a0;box-shadow:0 0 9px #6ee7a0}
.punto.off{background:#f0836d;box-shadow:0 0 9px #f0836d}
@media(max-width:700px){.estado{right:12px;font-size:10.5px;padding:7px 12px}}

/* ===== franja ===== */
.franja{background:var(--tinta);color:var(--papel);padding:26px 0;overflow:hidden}
.franja .rueda{display:flex;gap:56px;white-space:nowrap;animation:corre 34s linear infinite;font-family:var(--serif);font-size:16px;letter-spacing:2.5px;text-transform:uppercase;opacity:.85}
.franja span i{font-style:normal;color:var(--oro-cl);margin:0 22px}
@keyframes corre{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.franja .rueda{animation:none}}

/* ===== bloques ===== */
.bloque{padding:104px 0}
.bloque.claro{background:var(--blanco)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.duo.inv .col-txt{order:2}
@media(max-width:900px){.duo{grid-template-columns:1fr;gap:38px}.duo.inv .col-txt{order:0}}
.eti{font-size:10.5px;letter-spacing:4px;text-transform:uppercase;color:var(--oro);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.eti::after{content:"";flex:1;height:1px;background:var(--linea)}
h2{font-family:var(--serif);font-size:clamp(28px,4.6vw,46px);line-height:1.12;font-weight:400;letter-spacing:-.8px;margin-bottom:20px}
h2 em{font-style:italic;color:var(--oro)}
p.txt{font-size:16.5px;color:var(--tinta2);max-width:52ch;margin-bottom:16px}
.marco{position:relative;border-radius:3px;overflow:hidden;box-shadow:0 26px 60px rgba(28,24,21,.17);transition:transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .5s}
.marco img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.marco:hover{box-shadow:0 38px 76px rgba(28,24,21,.24)}
.marco:hover img{transform:scale(1.045)}
.marco.alto{aspect-ratio:4/5}
.marco.ancho{aspect-ratio:5/4}
.pie-foto{position:absolute;left:0;right:0;bottom:0;padding:26px 22px 18px;background:linear-gradient(transparent,rgba(18,15,12,.8));color:#fff;font-size:12px;letter-spacing:2px;text-transform:uppercase}

.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:46px}
.cifra{background:var(--papel);padding:28px 22px;text-align:center}
.cifra b{display:block;font-family:var(--serif);font-size:34px;color:var(--oro);line-height:1;margin-bottom:7px}
.cifra span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--tinta2)}

/* ===== adelanto de carta (en el inicio) ===== */
.adelanto{background:var(--papel2);padding:104px 0}
.adelanto .cab{text-align:center;margin-bottom:48px}
.adelanto .cab .eti{justify-content:center}
.adelanto .cab .eti::after{display:none}
.mosaico{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-bottom:44px}
.tarjeta-c{background:var(--blanco);border:1px solid var(--linea);padding:0;overflow:hidden;transition:transform .4s cubic-bezier(.2,.7,.3,1),box-shadow .4s}
.tarjeta-c:hover{transform:translateY(-8px);box-shadow:0 26px 54px rgba(28,24,21,.16)}
.tarjeta-c .im{aspect-ratio:3/2;overflow:hidden}
.tarjeta-c .im img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.3,1)}
.tarjeta-c:hover .im img{transform:scale(1.07)}
.tarjeta-c .cu{padding:22px}
.tarjeta-c h4{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:12px}
.mini{list-style:none}
.mini li{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px dotted var(--linea);font-size:14px}
.mini li:last-child{border:0}
.mini li .pp{flex:1;border-bottom:1px dotted #cdc0aa;transform:translateY(-4px)}
.mini li .vv{font-family:var(--serif);color:var(--oro);white-space:nowrap}
.centro{text-align:center}

/* ===== la carta (página propia) ===== */
.cinta-indice{position:sticky;top:56px;z-index:60;background:rgba(242,235,225,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--linea)}
.cinta-indice .indice{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;padding:0}
.cinta-indice .indice::-webkit-scrollbar{display:none}
.indice a{flex:0 0 auto;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--tinta2);padding:15px 18px;border-right:1px solid var(--linea);transition:color .25s,background .25s;white-space:nowrap}
.indice a:last-child{border-right:0}
.indice a:hover{color:var(--oro)}
.indice a.on{color:var(--oro);background:rgba(201,162,39,.09);box-shadow:inset 0 -2px 0 var(--oro)}
.carta-pag{padding:74px 0 96px}
.seccion{margin-bottom:64px;scroll-margin-top:120px}
.seccion h3{font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:.5px;text-align:center;margin-bottom:6px}
.seccion .aclara{text-align:center;font-size:12.5px;color:var(--tinta2);font-style:italic;margin-bottom:30px}
.dos{columns:2;column-gap:64px}
@media(max-width:820px){.dos{columns:1}}
.linea{break-inside:avoid;padding:11px 0;border-bottom:1px dotted var(--linea)}
.linea .top{display:flex;align-items:baseline;gap:8px}
.linea .n{font-size:15.5px;font-weight:600;white-space:nowrap;transition:color .25s}
.linea .puntos{flex:1;border-bottom:1px dotted #c9bda9;transform:translateY(-4px)}
.linea .v{font-family:var(--serif);font-size:16.5px;color:var(--oro);white-space:nowrap}
.linea .d{font-size:12.8px;color:var(--tinta2);margin-top:3px;max-width:58ch}
.linea:hover .n{color:var(--oro)}
.cierre-carta{text-align:center;border-top:1px solid var(--linea);padding-top:64px;margin-top:16px}

/* ===== encargo ===== */
.encargo{position:relative;padding:104px 0;background:var(--tinta);color:var(--papel);overflow:hidden}
.encargo .bruma{position:absolute;inset:0;opacity:.16}
.encargo .bruma img{width:100%;height:100%;object-fit:cover}
.encargo .wrap{position:relative;z-index:2}
.encargo h2{color:var(--papel)}
.encargo h2 em{color:var(--oro-cl)}
.encargo p.txt{color:#d8cdbe}
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:26px;margin:44px 0 40px}
.paso{border-top:1px solid rgba(201,162,39,.4);padding-top:18px}
.paso b{display:block;font-family:var(--serif);font-size:30px;color:var(--oro-cl);line-height:1;margin-bottom:9px}
.paso span{font-size:14px;color:#d8cdbe}

/* ===== visita ===== */
.visita{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
@media(max-width:900px){.visita{grid-template-columns:1fr;gap:36px}}
.horas{width:100%;border-collapse:collapse}
.horas td{padding:11px 0;border-bottom:1px dotted var(--linea);font-size:14.5px}
.horas td:last-child{text-align:right;color:var(--tinta2)}
.horas tr.hoy td{color:var(--oro);font-weight:700}
.datos-l{list-style:none;margin-top:8px}
.datos-l li{padding:11px 0;border-bottom:1px dotted var(--linea);display:flex;justify-content:space-between;gap:16px;font-size:14.5px}
.datos-l li span{color:var(--tinta2);text-align:right}

footer{background:var(--tinta);color:#b6ab9c;padding:54px 0 44px;text-align:center;font-size:13px}
footer .logo{color:var(--papel);margin-bottom:20px;display:inline-block}
.aviso{max-width:660px;margin:0 auto 24px;padding:16px 20px;border:1px solid rgba(201,162,39,.32);background:rgba(201,162,39,.07);color:#e2d3b4;font-size:12.5px;text-align:left;line-height:1.62}
.flot{position:fixed;right:20px;bottom:20px;z-index:80;background:#25d366;color:#06280f;border-radius:50px;padding:14px 22px;font-size:13.5px;font-weight:800;box-shadow:0 12px 32px rgba(37,211,102,.34);display:flex;align-items:center;gap:9px;transition:transform .3s}
.flot:hover{transform:translateY(-4px) scale(1.03)}
@media(max-width:520px){.flot{right:14px;bottom:14px;padding:13px 18px;font-size:12.5px}}
