:root{
  --bg: #0b0a0a;
  --bg-alt: #121010;
  --panel: #080707;
  --cream: #ece4d6;
  --cream-dim: #b9b0a2;
  --red: #e0000b;
  --red-deep: #8f0007;
  --grey: #8a8580;
  --line: rgba(236,228,214,0.13);
  --maxw: 1280px;
  --ff-display: 'Bebas Neue', 'Archivo', sans-serif;
  --ff-body: 'Archivo', sans-serif;
  --ease: cubic-bezier(.16,.8,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--cream);
  font-family:var(--ff-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--ff-display);font-weight:400;text-transform:uppercase;letter-spacing:0.02em;line-height:0.95;}
em{font-style:normal;color:var(--red);}

/* ---------- Scroll progress ---------- */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;pointer-events:none;}
.scroll-progress > span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red-deep),var(--red));}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in-view{opacity:1;transform:none;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;white-space:nowrap;align-items:center;gap:10px;
  background:var(--red);color:#fff;
  font-size:0.8rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;
  padding:15px 26px;border:1px solid var(--red);border-radius:2px;
  transition:background .25s ease,color .25s ease,transform .25s var(--ease);
}
.btn:hover{background:transparent;color:var(--cream);transform:translateY(-2px);}
.btn-ghost{background:transparent;border-color:rgba(236,228,214,0.4);color:var(--cream);}
.btn-ghost:hover{border-color:var(--red);}
.btn-small{padding:10px 16px;font-size:0.7rem;}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:linear-gradient(to bottom,rgba(8,7,7,0.85),rgba(8,7,7,0));
  transition:background .3s ease;
}
.site-header.scrolled{background:rgba(8,7,7,0.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.header-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;}
.logo-link{display:inline-flex;align-items:flex-start;height:84px;position:relative;z-index:2;transition:height .3s var(--ease);}
.logo-img{height:168px;width:auto;transform-origin:top center;filter:drop-shadow(0 10px 22px rgba(0,0,0,0.65));transition:height .3s var(--ease),transform .3s var(--ease),filter .3s ease;}
.site-header.scrolled .logo-link{height:62px;}
.site-header.scrolled .logo-img{height:62px;}
.logo-link:hover .logo-img{transform:scale(1.04);filter:drop-shadow(0 0 16px rgba(224,0,11,0.55));}
.main-nav{display:flex;align-items:center;gap:30px;}
.main-nav a{
  position:relative;white-space:nowrap;font-size:0.78rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--cream-dim);padding:6px 0;transition:color .25s ease;
}
.main-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--red);transition:right .3s var(--ease);}
.main-nav a:hover{color:var(--cream);}
.main-nav a:hover::after{right:0;}
.header-actions{display:flex;align-items:center;gap:16px;}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;cursor:pointer;}
.nav-toggle span{width:100%;height:2px;background:var(--cream);display:block;transition:transform .3s ease,opacity .3s ease;}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--panel);padding-top:224px;}
.hero-photo{position:absolute;top:-6%;right:0;bottom:0;left:24%;height:112%;will-change:transform;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 22%);mask-image:linear-gradient(90deg,transparent 0%,#000 22%);}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;filter:saturate(0.85) contrast(1.08) brightness(0.9);}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,7,7,1) 0%,rgba(8,7,7,0.92) 26%,rgba(8,7,7,0.45) 48%,rgba(8,7,7,0.05) 75%),
    linear-gradient(to top,rgba(8,7,7,1) 0%,rgba(8,7,7,0) 35%);
}
.hero-content{
  position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px clamp(64px,12vh,130px);
  opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease) .2s,transform 1s var(--ease) .2s;
}
.hero-content.loaded{opacity:1;transform:none;}
.eyebrow{font-size:0.78rem;font-weight:600;letter-spacing:0.35em;text-transform:uppercase;color:#ff2a33;margin-bottom:16px;text-shadow:0 1px 12px rgba(0,0,0,0.8);}
.hero-title{font-size:clamp(3.2rem,min(10vw,15svh),8.4rem);max-width:9.5em;margin-bottom:22px;}
.hero-sub{max-width:520px;font-size:clamp(0.95rem,1.3vw,1.08rem);color:var(--cream-dim);margin-bottom:32px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;}
.hero-motto{
  position:absolute;right:32px;bottom:40px;z-index:2;
  font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--cream-dim);opacity:0.75;
}
.scroll-cue{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;
  width:26px;height:42px;border:1px solid var(--cream-dim);border-radius:20px;
  display:flex;justify-content:center;padding-top:8px;
}
.scroll-cue span{width:4px;height:8px;border-radius:2px;background:var(--red);animation:scrollcue 1.8s infinite;}
@keyframes scrollcue{0%{transform:translateY(0);opacity:1;}70%{transform:translateY(12px);opacity:0;}100%{opacity:0;}}

/* ---------- Credits marquee ---------- */
.credits{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);overflow:hidden;padding:18px 0;}
.credits-track{display:flex;width:max-content;animation:marquee var(--marquee-dur,30s) linear infinite;}
.credits:hover .credits-track{animation-play-state:paused;}
.credits-group{display:flex;align-items:center;flex-shrink:0;list-style:none;margin:0;padding:0;}
.credits-group li{
  display:flex;align-items:center;gap:40px;padding-right:40px;
  font-family:var(--ff-display);font-size:1.6rem;letter-spacing:0.06em;color:var(--cream-dim);white-space:nowrap;
}
.credits-group li::after{content:"";width:7px;height:7px;background:var(--red);transform:rotate(45deg);flex-shrink:0;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ---------- Sections ---------- */
.section{max-width:var(--maxw);margin:0 auto;padding:clamp(80px,14vh,150px) 24px clamp(64px,10vh,120px);}
.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:44px;}
.section-head h2{font-size:clamp(3rem,7vw,5.6rem);}
.section-head p{max-width:560px;color:var(--cream-dim);margin-top:4px;}
.sec-index{font-family:var(--ff-display);font-size:1.25rem;letter-spacing:0.14em;color:var(--red);}

/* ---------- Category grid ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.cat-card{position:relative;aspect-ratio:4/5;overflow:hidden;background:#000;border-radius:2px;}
.cat-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(0.35) brightness(0.62);
  transform:scale(1.02);transition:transform 1.2s var(--ease),filter .6s ease;
}
.cat-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,7,7,0.95) 0%,rgba(8,7,7,0.2) 55%,rgba(8,7,7,0) 100%);
}
.cat-card:hover img{transform:scale(1.08);filter:grayscale(0) brightness(0.8);}
.cat-info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px;}
.cat-num{font-family:var(--ff-display);font-size:1rem;letter-spacing:0.14em;color:var(--red);}
.cat-info h3{font-size:clamp(2.2rem,3.6vw,3.2rem);margin:4px 0 8px;}
.cat-info p{font-size:0.9rem;color:var(--cream-dim);max-width:380px;
  max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s ease,margin .4s ease;}
.cat-card:hover .cat-info p,.cat-card:focus-visible .cat-info p{max-height:6em;opacity:1;margin-bottom:12px;}
.cat-count{display:inline-block;font-size:0.68rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;
  border:1px solid var(--line);padding:5px 10px;color:var(--cream-dim);}
.cat-card:hover .cat-count{border-color:var(--red);color:var(--cream);}

/* ---------- Split sections ---------- */
.split{display:grid;grid-template-columns:1.1fr 0.9fr;min-height:90vh;background:var(--panel);}
.split.reverse{grid-template-columns:0.9fr 1.1fr;}
.split.reverse .split-media{order:2;}
.split-media{position:relative;overflow:hidden;background:#000;min-height:360px;}
.split-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.05) brightness(0.85);}
.split-media.portrait img{filter:grayscale(1) contrast(1.1);object-position:center 25%;}
.split-text{padding:10vh 6vw;display:flex;flex-direction:column;justify-content:center;gap:18px;}
.split-text h2{font-size:clamp(2.8rem,5.5vw,4.6rem);}
.split-text p{color:var(--cream-dim);max-width:540px;}
.split-text .lead{color:var(--cream);font-size:1.08rem;}
.split-text strong{color:var(--cream);font-weight:600;}
.features{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:8px;max-width:540px;}
.features li{position:relative;padding-left:24px;color:var(--cream-dim);}
.features li::before{content:"";position:absolute;left:0;top:0.6em;width:8px;height:8px;background:var(--red);transform:rotate(45deg);}
.text-links{display:flex;flex-wrap:wrap;gap:26px;margin-top:10px;}
.text-links a{font-size:0.78rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;border-bottom:1px solid var(--red);padding-bottom:4px;transition:color .2s ease;}
.text-links a:hover{color:var(--red);}

/* ---------- Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;grid-auto-flow:dense;gap:10px;}
.gallery figure{position:relative;overflow:hidden;background:#000;border-radius:2px;}
.gallery figure.g-wide{grid-column:span 2;}
.gallery figure.g-tall{grid-row:span 2;}
.gallery img{width:100%;height:100%;object-fit:cover;filter:brightness(0.82);transition:transform 1s var(--ease),filter .5s ease;}
.gallery figure:hover img{transform:scale(1.06);filter:brightness(1);}

/* ---------- Contact ---------- */
.contact{
  position:relative;padding:clamp(80px,13vh,150px) 24px;text-align:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 120%,rgba(224,0,11,0.28),rgba(8,7,7,0) 60%),var(--panel);
  border-top:1px solid var(--line);
}
.contact-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px;}
.contact h2{font-size:clamp(3rem,8vw,6.4rem);}
.contact .lead{color:var(--cream-dim);max-width:none;text-wrap:balance;}
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);width:100%;margin-top:24px;}
.contact-item{display:flex;flex-direction:column;gap:6px;padding:26px 18px;background:var(--panel);font-size:0.95rem;transition:background .25s ease;}
.contact-item span{font-size:0.66rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--red);}
.contact-item:hover{background:#1a0d0d;}

/* ---------- Footer ---------- */
.site-footer{display:flex;flex-direction:column;align-items:center;gap:18px;padding:56px 24px 40px;border-top:1px solid var(--line);}
.footer-logo{width:auto;height:240px;}
.site-footer p{font-size:0.75rem;color:var(--grey);letter-spacing:0.05em;text-align:center;}

/* ---------- Responsive ---------- */
@media (max-width: 1240px){
  .main-nav{gap:22px;}
  .main-nav a{font-size:0.74rem;letter-spacing:0.08em;}
}
@media (max-width: 1180px){
  .header-actions .btn-small{display:none;}
}
@media (max-width: 900px){
  .main-nav{
    position:fixed;inset:0;flex-direction:column;justify-content:center;gap:28px;
    background:rgba(8,7,7,0.97);opacity:0;pointer-events:none;transition:opacity .3s ease;
  }
  .main-nav a{font-size:1.1rem;}
  .main-nav.open{opacity:1;pointer-events:auto;}
  .nav-toggle{display:flex;position:relative;z-index:101;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
@media (max-width: 960px){
  .hero-motto{display:none;}
  .hero-photo{left:0;-webkit-mask-image:none;mask-image:none;}
  .hero-scrim{background:linear-gradient(to top,rgba(8,7,7,1) 0%,rgba(8,7,7,0.85) 45%,rgba(8,7,7,0.2) 100%);}
  .split,.split.reverse{grid-template-columns:1fr;min-height:0;}
  .split.reverse .split-media{order:0;}
  .split-media{min-height:58vh;}
  .cat-grid{grid-template-columns:1fr;}
  .cat-card{aspect-ratio:16/9;}
  .cat-info p{max-height:none;opacity:1;margin-bottom:10px;}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;}
  .contact-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .logo-link{height:64px;}
  .logo-img{height:128px;}
  .site-header.scrolled .logo-link,.site-header.scrolled .logo-img{height:52px;}
  .hero{padding-top:160px;}
  .hero-photo{left:0;}
  .hero-photo img{object-position:58% 30%;}
  .hero-scrim{background:linear-gradient(to top,rgba(8,7,7,1) 0%,rgba(8,7,7,0.9) 50%,rgba(8,7,7,0.25) 100%);}
  .hero-content{padding-bottom:9vh;}
  .eyebrow{font-size:0.7rem;letter-spacing:0.22em;}
  .hero-motto,.scroll-cue{display:none;}
  .section{padding:12vh 16px 10vh;}
  .cat-grid{grid-template-columns:1fr;}
  .cat-card{aspect-ratio:4/3;}
  .cat-info{padding:20px;}
  .gallery{grid-auto-rows:150px;}
  .split-text{padding:9vh 16px;}
  .contact{padding:14vh 16px;}
  .contact-grid{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal,.hero-content{opacity:1;transform:none;transition:none;}
  .credits-track{animation:none;}
  .hero-photo{will-change:auto;}
}

/* =========================================================
   Páginas de línea (sangres / bonzos / protecciones)
   ========================================================= */
.main-nav a.active{color:var(--cream);}
.main-nav a.active::after{right:0;}
body.modal-open{overflow:hidden;}

.line-hero{display:grid;grid-template-columns:1fr 1fr;min-height:78vh;background:var(--panel);border-bottom:1px solid var(--line);}
.line-hero-text{padding:210px 6vw 70px max(24px,calc((100vw - var(--maxw))/2 + 24px));display:flex;flex-direction:column;justify-content:flex-end;gap:16px;}
.line-hero-text h1{font-size:clamp(3.6rem,9vw,7.4rem);}
.line-hero-text .lead{color:var(--cream);font-size:1.08rem;max-width:520px;}
.line-note{font-size:0.85rem;color:var(--cream-dim);max-width:520px;padding-left:14px;border-left:2px solid var(--red);}
.crumbs{font-size:0.72rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--grey);}
.crumbs a{color:var(--cream-dim);transition:color .2s ease;}
.crumbs a:hover{color:var(--red);}
.crumbs span{margin:0 6px;color:var(--red);}
.group-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.group-links a{font-size:0.7rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--line);color:var(--cream-dim);transition:border-color .2s ease,color .2s ease;}
.group-links a:hover{border-color:var(--red);color:var(--cream);}
.line-hero-media{position:relative;overflow:hidden;background:#000;}
.line-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.8) contrast(1.05);}
.line-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--panel) 0%,rgba(8,7,7,0) 30%);}

.line-groups{max-width:var(--maxw);margin:0 auto;padding:40px 24px 0;}
.pgroup{padding:70px 0 20px;scroll-margin-top:90px;}
.pgroup-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:26px;}
.pgroup-head h2{font-size:clamp(2.2rem,4.5vw,3.4rem);}
.pgroup-head span{font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--grey);white-space:nowrap;}
.noscript{padding:60px 0;color:var(--cream-dim);}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.pcard{
  display:flex;flex-direction:column;text-align:left;cursor:pointer;
  background:var(--bg-alt);border:1px solid var(--line);border-radius:2px;color:inherit;font:inherit;padding:0;
  transition:border-color .3s ease,transform .4s var(--ease);
}
.pcard:hover,.pcard:focus-visible{border-color:rgba(224,0,11,0.6);transform:translateY(-4px);outline:none;}
.pcard-img{display:block;aspect-ratio:4/5;overflow:hidden;background:#000;}
.pcard-img img{width:100%;height:100%;object-fit:cover;filter:brightness(0.88);transition:transform 1s var(--ease),filter .4s ease;}
.pcard:hover .pcard-img img{transform:scale(1.05);filter:brightness(1);}
.pcard-body{display:flex;flex-direction:column;gap:6px;padding:20px 20px 18px;flex:1;}
.pcard-marca{font-size:0.64rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--red);}
.pcard-name{font-family:var(--ff-display);font-size:1.9rem;line-height:1;letter-spacing:0.02em;text-transform:uppercase;}
.pcard-resumen{font-size:0.88rem;color:var(--cream-dim);line-height:1.5;}
.pcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);}
.pcard-price{font-size:0.72rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--cream-dim);}
.pcard-price.is-price{font-family:var(--ff-display);font-size:1.5rem;letter-spacing:0.03em;color:var(--cream);}
.pcard-more{font-size:0.68rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--grey);transition:color .2s ease;}
.pcard:hover .pcard-more{color:var(--red);}

.other-lines{padding-top:12vh;}
.cat-grid-2{grid-template-columns:repeat(2,1fr);}
.cat-grid-2 .cat-card{aspect-ratio:16/10;}

/* ---------- Ficha (modal) ---------- */
.ficha{
  margin:auto;padding:0;border:1px solid var(--line);border-radius:2px;
  width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 48px);
  background:var(--bg-alt);color:var(--cream);
  display:none;grid-template-columns:1.05fr 0.95fr;overflow:hidden;
}
.ficha[open]{display:grid;animation:fichaIn .45s var(--ease);}
.ficha::backdrop{background:rgba(5,4,4,0.82);backdrop-filter:blur(4px);}
@keyframes fichaIn{from{opacity:0;transform:translateY(18px) scale(.98);}to{opacity:1;transform:none;}}
.ficha-close{
  position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;border-radius:50%;
  background:rgba(8,7,7,0.6);border:1px solid var(--line);color:var(--cream);font-size:1.5rem;line-height:1;cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.ficha-close:hover{border-color:var(--red);background:rgba(8,7,7,0.9);}
.ficha-media{display:flex;flex-direction:column;background:#000;min-height:0;}
.ficha-main{flex:1;min-height:0;position:relative;}
.ficha-main img{width:100%;height:100%;max-height:calc(100vh - 140px);object-fit:cover;}
.ficha-thumbs{display:flex;gap:4px;padding:4px;background:var(--panel);overflow-x:auto;}
.ficha-thumbs:empty{display:none;}
.ficha-thumbs button{flex-shrink:0;width:72px;height:72px;padding:0;border:0;background:none;cursor:pointer;opacity:0.55;transition:opacity .2s ease;outline-offset:-2px;}
.ficha-thumbs button img{width:100%;height:100%;object-fit:cover;}
.ficha-thumbs button.on{opacity:1;outline:2px solid var(--red);}
.ficha-thumbs button:hover{opacity:1;}
.ficha-info{padding:44px 40px 34px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 48px);}
.ficha-marca{font-size:0.68rem;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--red);}
.ficha-info h2{font-size:clamp(2.4rem,4vw,3.4rem);margin-top:-4px;}
.ficha-precio{font-size:0.78rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--cream-dim);}
.ficha-precio.is-price{font-family:var(--ff-display);font-size:2rem;letter-spacing:0.03em;color:var(--cream);}
.ficha-resumen{font-size:1.02rem;color:var(--cream);}
.ficha-desc{color:var(--cream-dim);font-size:0.94rem;}
.ficha-aviso{font-size:0.82rem;color:var(--cream-dim);background:rgba(224,0,11,0.08);border-left:2px solid var(--red);padding:12px 14px;}
.ficha-specs{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:0.85rem;border-top:1px solid var(--line);padding-top:14px;}
.ficha-specs dt{font-size:0.66rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--grey);padding-top:3px;}
.ficha-specs dd{color:var(--cream-dim);}
.ficha-opciones p{font-size:0.66rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--grey);margin-bottom:8px;}
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip{
  font:inherit;font-size:0.8rem;padding:8px 14px;border:1px solid var(--line);background:transparent;color:var(--cream-dim);
  cursor:pointer;border-radius:2px;transition:border-color .2s ease,color .2s ease,background .2s ease;
}
.chip:hover{border-color:var(--cream-dim);color:var(--cream);}
.chip.on{border-color:var(--red);background:rgba(224,0,11,0.14);color:var(--cream);}
.ficha-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.ficha-help{font-size:0.78rem;color:var(--grey);}

@media (max-width: 960px){
  .line-hero{grid-template-columns:1fr;min-height:0;}
  .line-hero-media{order:-1;height:46vh;}
  .line-hero-media::after{background:linear-gradient(to top,var(--panel) 0%,rgba(8,7,7,0) 50%);}
  .line-hero-text{padding:0 24px 56px;margin-top:-60px;position:relative;z-index:1;}
  .pgrid{grid-template-columns:repeat(2,1fr);}
  .ficha{grid-template-columns:1fr;overflow-y:auto;}
  .ficha-main img{max-height:52vh;}
  .ficha-info{max-height:none;overflow:visible;padding:28px 22px 30px;}
}
@media (max-width: 600px){
  .line-hero-text{padding:0 16px 44px;}
  .line-groups{padding:10px 16px 0;}
  .pgroup{padding-top:50px;}
  .pgrid{grid-template-columns:1fr 1fr;gap:10px;}
  .pcard-body{padding:14px 12px 12px;}
  .pcard-name{font-size:1.35rem;}
  .pcard-resumen{display:none;}
  .pcard-foot{flex-direction:column;align-items:flex-start;gap:4px;padding-top:10px;}
  .pcard-price.is-price{font-size:1.2rem;}
  .pcard-more{display:none;}
  .cat-grid-2{grid-template-columns:1fr;}
  .ficha{width:100vw;max-height:100dvh;height:100dvh;max-width:none;border:0;}
  .ficha-ctas .btn{flex:1;justify-content:center;}
}
[hidden]{display:none!important;}
.ficha-close:focus-visible,.chip:focus-visible,.pcard:focus-visible,.btn:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.ficha-close:focus:not(:focus-visible){outline:none;}
.pgrid-4{grid-template-columns:repeat(4,1fr);}
.pgrid-4 .pcard-name{font-size:1.6rem;}
@media (max-width: 960px){ .pgrid-4{grid-template-columns:repeat(2,1fr);} }
#fichaNombre:focus{outline:none;}
@media (max-width: 960px){
  .ficha[open]{display:block;}
  .ficha-media{min-height:auto;}
  .ficha-main{flex:none;}
  .ficha-main img{height:48vh;max-height:none;}
}
@media (max-width: 600px){
  .ficha-ctas .btn{padding:14px 10px;letter-spacing:0.08em;font-size:0.74rem;}
}

/* Ventanas bajas (portátiles pequeños, navegador no maximizado) */
@media (max-height: 720px) and (min-width: 601px){
  .scroll-cue{display:none;}
  .hero-sub{margin-bottom:24px;}
  .hero-title{margin-bottom:16px;}
}

.split-text em,.section-head em{color:var(--cream);font-style:italic;}

/* B. Pie de tarjeta siempre a la misma altura */
.pcard-foot{min-height:50px;}

/* F. Pie de página */
.footer-motto{font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--cream-dim);}

/* C. Tablet: 3 columnas para no dejar tarjetas sueltas */
@media (min-width: 601px) and (max-width: 960px){
  .pgrid{grid-template-columns:repeat(3,1fr);gap:12px;}
  .pgrid-4{grid-template-columns:repeat(2,1fr);}
  .pcard-body{padding:16px 14px 14px;}
  .pcard-name{font-size:1.5rem;}
  .pcard-foot{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;}
}

/* C/D. Móvil: tarjetas en fila (foto + texto), una por línea */
@media (max-width: 600px){
  .pgrid,.pgrid-4{grid-template-columns:1fr;gap:10px;}
  .pcard{flex-direction:row;}
  .pcard:hover,.pcard:focus-visible{transform:none;}
  .pcard-img{flex:0 0 38%;aspect-ratio:auto;min-height:150px;}
  .pcard-body{padding:14px;gap:4px;justify-content:center;}
  .pcard-name{font-size:1.4rem;}
  .pcard-resumen{display:block;font-size:0.82rem;}
  .pcard-foot{flex-direction:row;align-items:center;min-height:0;padding-top:10px;margin-top:8px;}
  .pcard-price.is-price{font-size:1.25rem;}

  /* E. Contacto compacto: etiqueta a la izquierda, dato a la derecha */
  .contact-item{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;text-align:right;}
  .contact-item span{text-align:left;}
}
@media (max-width: 600px){
  .pgroup-head{flex-direction:column;align-items:flex-start;gap:4px;}
}

/* ---------- Carrusel de fotos (laboratorio) ---------- */
.slideshow{position:absolute;inset:0;overflow:hidden;}
.slideshow .slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.08);
  transition:opacity 1.1s ease,transform 6s cubic-bezier(.2,.6,.3,1);
  filter:contrast(1.05) brightness(0.82);
}
.slideshow .slide.active{opacity:1;transform:scale(1);}
.slide-progress{position:absolute;bottom:18px;left:18px;right:18px;z-index:3;display:flex;gap:5px;}
.slide-progress span{flex:1;height:2px;background:rgba(236,228,214,0.25);border-radius:2px;overflow:hidden;}
.slide-progress span i{display:block;height:100%;width:0;background:var(--red);}
.slide-progress span.done i{width:100%;}
.slide-progress span.run i{width:100%;transition:width var(--slide-ms,5000ms) linear;}
.slide-arrow{
  position:absolute;top:50%;z-index:3;transform:translateY(-50%);
  width:40px;height:40px;border-radius:50%;cursor:pointer;
  background:rgba(8,7,7,0.5);border:1px solid rgba(236,228,214,0.3);color:var(--cream);font-size:0.85rem;
  opacity:0;transition:opacity .25s ease,border-color .2s ease,background .2s ease;
}
.slide-arrow.prev{left:16px;} .slide-arrow.next{right:16px;}
.slideshow:hover .slide-arrow,.slide-arrow:focus-visible{opacity:1;}
.slide-arrow:hover{border-color:var(--red);background:rgba(8,7,7,0.8);}
@media (hover: none){ .slide-arrow{opacity:0.75;} }
@media (prefers-reduced-motion: reduce){ .slideshow .slide{transform:none;transition:opacity .4s ease;} }
.line-hero-text h1.h1-long{font-size:clamp(3rem,5.6vw,6.4rem);white-space:nowrap;}
