/* ============================================================
   OnlyClass — Sistema de diseño compartido
   Editorial luxury / hospitality premium / chauffeur elite
   Paleta: oscuro + dorado + blanco (sin colores secundarios)
   ============================================================ */

:root{
  --ink:#111110;
  --ink-2:#1B1A17;
  --panel:#211F1B;
  --panel-2:#2A261E;
  --gold:#B9902E;
  --gold-light:#E9C878;
  --white:#FBF9F5;
  --muted: rgba(251,249,245,0.62);
  --muted-2: rgba(251,249,245,0.78);
  --line: rgba(233,200,120,0.28);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{
  margin:0;
  background:var(--ink);
  color:var(--muted-2);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:500;
  margin:0;
  color:var(--white);
  letter-spacing:-0.01em;
}
p{line-height:1.65; margin:0;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
img,svg{display:block; max-width:100%;}
.eyebrow{font-family:'Fraunces',serif; font-style:italic; font-size:1.02rem; color:var(--gold-light);}

/* ---------- NAV ---------- */
header.nav{
  position:fixed; top:0; left:0; right:0; z-index:60;
  padding:14px 0;
  transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
}
header.nav.scrolled{
  background:rgba(17,17,16,0.96);
  backdrop-filter:blur(6px);
  padding:10px 0;
  box-shadow:0 1px 0 var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between;}
.brand-mark{display:flex; align-items:center; gap:12px;}
.brand-mark img{height:96px; width:auto; transition:height .3s ease;}
header.nav.scrolled .brand-mark img{height:62px;}
@media (max-width:480px){ .brand-mark img{height:72px;} }
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{color:var(--white); font-size:0.9rem; opacity:.82; transition:opacity .25s;}
.nav-links a:hover, .nav-links a.active{opacity:1;}
.nav-links a.active{color:var(--gold-light);}
.nav-right{display:flex; align-items:center; gap:20px;}
.nav-toggle{
  display:none; background:none; border:1px solid var(--line); border-radius:2px;
  width:40px; height:36px; color:var(--white); cursor:pointer; font-size:1.1rem;
}
.lang-switch select{
  background:transparent; border:1px solid var(--line); color:var(--gold-light);
  padding:8px 10px; font-size:0.8rem; border-radius:2px; cursor:pointer;
}
.lang-switch select option{background:var(--ink); color:var(--white);}
[dir="rtl"] .nav-row{flex-direction:row-reverse;}
[dir="rtl"] .nav-links{gap:34px;}
[dir="rtl"] .hero-inner{text-align:right;}
[dir="rtl"] .split-card .btn{align-self:flex-end;}
[dir="rtl"] .slider-dots{left:auto; right:32px;}
@media (max-width:900px){
  .nav-links{
    position:fixed; top:0; right:0; height:100vh; width:78%; max-width:320px;
    background:var(--ink); flex-direction:column; align-items:flex-start;
    padding:100px 32px 32px; gap:26px;
    transform:translateX(100%); transition:transform .35s ease;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{display:block;}
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block; padding:13px 28px; border:1px solid var(--gold);
  color:var(--white); font-size:0.87rem; letter-spacing:.02em; border-radius:2px;
  transition:background .25s, color .25s, border-color .25s;
}
.btn:hover{background:var(--gold); color:var(--ink);}
.btn-solid{background:linear-gradient(135deg, var(--gold), var(--gold-light)); color:var(--ink); border-color:var(--gold-light); font-weight:500;}
.btn-solid:hover{filter:brightness(1.08);}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  overflow:hidden; padding-top:168px; padding-bottom:90px;
  background:
    radial-gradient(ellipse at 80% 15%, rgba(233,200,120,0.14), transparent 46%),
    linear-gradient(175deg, var(--ink) 0%, var(--ink-2) 55%, var(--panel) 100%);
}
.hero-inner{position:relative; z-index:2; max-width:660px;}
.hero .eyebrow{color:var(--gold-light);}
.hero h1{margin-top:14px; font-size:clamp(2.5rem, 5vw, 3.85rem); line-height:1.08; color:var(--white);}
.hero p.lead{margin-top:24px; font-size:1.08rem; line-height:1.65; color:rgba(251,249,245,0.8); max-width:540px;}
.hero-ctas{margin-top:36px; display:flex; gap:16px; flex-wrap:wrap;}
.hero-fade{opacity:0; transform:translateY(16px); animation:heroRise .9s ease forwards;}
.hero-fade.d1{animation-delay:.1s;} .hero-fade.d2{animation-delay:.32s;} .hero-fade.d3{animation-delay:.52s;}
@keyframes heroRise{ to{opacity:1; transform:translateY(0);} }
.flourish{position:absolute; right:-6%; bottom:-10%; width:56%; max-width:640px; opacity:.5; z-index:1;}
@media (max-width:919px){ .flourish{width:110%; right:-25%; bottom:-8%; opacity:.28;} }

/* ---------- HERO SLIDER (premium rotating backdrop) ---------- */
.hero-slider{position:absolute; inset:0; z-index:0; overflow:hidden;}
.hero-slider .slide{position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease;}
.hero-slider .slide.active{opacity:1;}
.hero-slider .slide-bg{position:absolute; inset:-6%; background-size:cover; background-position:center; animation:kenburns 10s ease-in-out infinite alternate;}
.hero-slider .slide-media{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.5; animation:kenburns 10s ease-in-out infinite alternate;}
.hero-slider .slide-art{position:absolute; right:-4%; bottom:-8%; width:60%; max-width:660px; opacity:.42;}
@media (max-width:919px){ .hero-slider .slide-art{width:115%; right:-30%; bottom:-6%; opacity:.24;} }
@keyframes kenburns{ from{transform:scale(1);} to{transform:scale(1.09);} }
.hero-overlay{position:absolute; inset:0; z-index:1; pointer-events:none;}
.hero-overlay.tone-gold{background:linear-gradient(175deg, rgba(17,17,16,.9) 0%, rgba(17,17,16,.72) 45%, rgba(33,31,27,.6) 100%);}
.slider-dots{position:absolute; left:32px; bottom:28px; z-index:3; display:flex; gap:10px;}
.slider-dots button{width:28px; height:3px; background:rgba(251,249,245,.32); border:none; cursor:pointer; padding:0; border-radius:2px; transition:background .3s;}
.slider-dots button.active{background:var(--gold-light);}
@media (prefers-reduced-motion: reduce){
  .hero-slider .slide-bg, .hero-slider .slide-media{animation:none;}
}

/* ---------- SECTIONS ---------- */
section{padding:104px 0;}
.section-head{max-width:660px; margin-bottom:58px;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);}
.section-head p{margin-top:16px; font-size:1.02rem; color:var(--muted);}

/* ---------- HOME: DIVISION SPLIT ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line);}
@media (max-width:860px){ .split{grid-template-columns:1fr;} }
.split-card{
  padding:64px 48px; display:flex; flex-direction:column; gap:18px; min-height:420px;
  color:var(--white); position:relative;
  background:linear-gradient(165deg, var(--ink), var(--panel));
}
.split-card .eyebrow{font-size:0.95rem; color:var(--gold-light);}
.split-card h3{color:var(--white); font-size:2.1rem; margin-top:2px;}
.split-card p{color:rgba(251,249,245,0.78); font-size:1rem; max-width:420px;}
.split-card .btn{margin-top:auto; align-self:flex-start;}

/* ---------- PILLARS ---------- */
.pillars{display:grid; grid-template-columns:repeat(4,1fr); gap:30px;}
@media (max-width:900px){ .pillars{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .pillars{grid-template-columns:1fr;} }
.pillar{display:flex; flex-direction:column; gap:10px; padding-top:20px; border-top:1px solid var(--line);}
.pillar h4{font-family:'Fraunces',serif; font-weight:500; font-size:1.08rem; color:var(--white);}
.pillar p{font-size:0.9rem; color:var(--muted);}

/* ---------- COVERAGE ---------- */
.coverage{background:var(--panel); color:var(--white);}
.coverage h2{color:var(--white);}
.coverage-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start;}
@media (max-width:900px){ .coverage-grid{grid-template-columns:1fr;} }
.coverage p.lead{margin-top:18px; color:rgba(251,249,245,0.78); font-size:1.02rem; max-width:480px;}
.coverage-list{margin-top:30px; display:flex; flex-wrap:wrap; gap:12px;}
.coverage-list span{border:1px solid var(--line); padding:8px 16px; border-radius:2px; font-size:0.86rem; color:rgba(251,249,245,0.85);}
.coverage-highlight{border:1px solid var(--gold); padding:28px; background:rgba(233,200,120,0.06);}
.coverage-highlight .eyebrow{color:var(--gold-light);}
.coverage-highlight h3{color:var(--white); font-size:1.3rem; margin-top:8px;}
.coverage-highlight p{color:rgba(251,249,245,0.75); font-size:0.92rem; margin-top:10px;}

/* ---------- CTA BAND ---------- */
.cta-band{background:linear-gradient(160deg, var(--panel), var(--ink-2)); color:var(--white); text-align:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cta-band h2{color:var(--white); font-size:clamp(1.8rem,3.2vw,2.4rem);}
.cta-band p{margin-top:14px; color:var(--muted-2); max-width:520px; margin-left:auto; margin-right:auto;}
.cta-band .cta-actions{margin-top:32px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ---------- EDITORIAL SERVICE ROWS (asistente / seguridad) ---------- */
.service-row{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:center;
  padding:56px 0; border-bottom:1px solid var(--line);
}
.service-row:last-child{border-bottom:none;}
.service-row.reverse .num-block{order:2;}
.service-row.reverse .copy-block{order:1;}
@media (max-width:860px){
  .service-row, .service-row.reverse{grid-template-columns:1fr; gap:24px;}
  .service-row.reverse .num-block, .service-row.reverse .copy-block{order:initial;}
}
.num-block{
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; aspect-ratio:4/3;
  background:linear-gradient(160deg, var(--panel), var(--ink-2));
  border:1px solid var(--line);
}
.num-block img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.num-block .roman{position:relative; z-index:1; font-family:'Fraunces',serif; font-size:5rem; font-style:italic; color:var(--gold-light); text-shadow:0 2px 18px rgba(0,0,0,0.6);}
.num-block.has-img{background:var(--ink-2);}
.num-block.has-img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(17,17,16,0.1), rgba(17,17,16,0.65)); z-index:0;}
.copy-block .eyebrow{color:var(--gold-light);}
.copy-block h3{font-size:1.9rem; margin-top:8px;}
.copy-block p.desc{margin-top:16px; color:var(--muted); font-size:1.02rem; max-width:520px;}

/* ---------- EXPERTISE MODULES (villas / yachts / aviation / meet&greet) ---------- */
.expertise-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line);}
@media (max-width:860px){ .expertise-grid{grid-template-columns:1fr;} }
.expertise-card{background:var(--panel); padding:46px 42px;}
.expertise-card .card-img{margin:-46px -42px 26px; aspect-ratio:16/9; overflow:hidden;}
.expertise-card .card-img img{width:100%; height:100%; object-fit:cover;}
.expertise-card .eyebrow{color:var(--gold-light);}
.expertise-card h3{font-size:1.6rem; margin-top:8px;}
.expertise-card ul{margin:20px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px;}
.expertise-card li{position:relative; padding-left:18px; font-size:0.92rem; color:var(--muted); line-height:1.55;}
.expertise-card li::before{content:""; position:absolute; left:0; top:8px; width:6px; height:6px; background:var(--gold-light); border-radius:50%;}

/* ---------- MEET & GREET STEPS ---------- */
.mg-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media (max-width:860px){ .mg-grid{grid-template-columns:1fr;} }
.mg-col h4{font-family:'Fraunces',serif; font-style:italic; font-size:1.15rem; color:var(--gold-light); margin-bottom:20px;}
.mg-step{display:flex; gap:16px; padding:14px 0; border-top:1px solid var(--line);}
.mg-step:last-child{border-bottom:1px solid var(--line);}
.mg-step .n{font-family:'Fraunces',serif; color:var(--gold-light); font-size:1.1rem; min-width:22px;}
.mg-step p{font-size:0.92rem; color:var(--muted);}

/* ---------- TRANSFERS: SERVICE CARDS ---------- */
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
@media (max-width:900px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .services-grid{grid-template-columns:1fr;} }
.service-card{background:var(--panel); padding:36px 28px; display:flex; flex-direction:column; gap:12px;}
.service-card .ic{width:28px; height:28px; stroke:var(--gold-light);}
.service-card h3{font-size:1.1rem;}
.service-card p{font-size:0.88rem; color:var(--muted);}

/* ---------- VEHICLE SPOTLIGHT ---------- */
.spotlight{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
@media (max-width:860px){ .spotlight{grid-template-columns:1fr;} }
.spotlight .art{
  background:linear-gradient(160deg, var(--panel), var(--ink-2)); border:1px solid var(--line);
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:30px; overflow:hidden;
}
.spotlight .art svg{width:100%; height:auto;}
.spotlight .art img{width:100%; height:100%; object-fit:cover;}
.spotlight .tag{color:var(--gold-light); font-family:'Fraunces',serif; font-style:italic; font-size:1.05rem;}
.spotlight h3{font-size:1.9rem; margin-top:8px;}
.spotlight p.desc{margin-top:16px; color:var(--muted); font-size:1.02rem; max-width:480px;}
.specs{margin-top:22px; display:flex; flex-wrap:wrap; gap:10px 22px; font-size:0.86rem; color:var(--gold-light);}
.specs span{position:relative; padding-left:16px;}
.specs span::before{content:""; position:absolute; left:0; top:7px; width:6px; height:6px; background:var(--gold-light); border-radius:50%;}
.gallery-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:26px;}
.gallery-strip img{width:100%; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--line); cursor:pointer;}
@media (max-width:600px){ .gallery-strip{grid-template-columns:repeat(2,1fr);} }

/* ---------- ALSO IN FLEET (secondary models) ---------- */
.also-fleet{margin-top:80px;}
.also-fleet-banner{width:100%; aspect-ratio:21/8; overflow:hidden; margin-bottom:1px;}
.also-fleet-banner img{width:100%; height:100%; object-fit:cover;}
@media (max-width:700px){ .also-fleet-banner{aspect-ratio:16/9;} }
.also-fleet-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);}
@media (max-width:700px){ .also-fleet-grid{grid-template-columns:1fr;} }
.also-fleet-card{background:var(--panel); padding:30px 28px;}
.also-fleet-card h4{font-size:1.15rem; margin-bottom:8px; color:var(--white);}
.also-fleet-card p{font-size:0.9rem; color:var(--muted); margin-bottom:14px;}
.also-fleet-card .specs{font-size:0.8rem;}

/* ---------- BENEFITS LIST ---------- */
.benefits-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 60px;}
@media (max-width:700px){ .benefits-grid{grid-template-columns:1fr;} }
.benefit-item{padding:22px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px;}
.benefit-item h4{font-family:'Fraunces',serif; font-weight:500; font-size:1.02rem; color:var(--white);}
.benefit-item p{color:var(--muted); font-size:0.9rem; margin-top:6px; max-width:340px;}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px;}
details{border-top:1px solid var(--line); padding:20px 0;}
details:last-child{border-bottom:1px solid var(--line);}
summary{cursor:pointer; font-family:'Fraunces',serif; font-size:1.06rem; color:var(--white); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+"; color:var(--gold-light); font-size:1.3rem; font-family:'Inter',sans-serif;}
details[open] summary::after{content:"–";}
details p{margin-top:14px; color:var(--muted); font-size:0.94rem; max-width:640px;}

/* ---------- CONTACT / RESERVA ---------- */
.contact{background:var(--ink); color:var(--white);}
.contact h2{color:var(--white);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info{margin-top:26px;}
.contact-info a{display:block; font-family:'Fraunces',serif; font-size:1.4rem; color:var(--gold-light); margin-bottom:10px;}
.contact-info .muted{color:rgba(251,249,245,0.6); font-size:0.9rem; margin-top:18px; max-width:380px;}
.contact-info .btn{margin-top:16px;}
form{display:flex; flex-direction:column; gap:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
label{font-size:0.8rem; color:rgba(251,249,245,0.65);}
input, select, textarea{
  background:var(--panel); border:1px solid rgba(251,249,245,0.22); color:var(--white);
  padding:12px 14px; font-family:'Inter',sans-serif; font-size:0.95rem; border-radius:2px;
}
select{color:var(--gold-light);}
select option{background:var(--ink); color:var(--white);}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--gold-light);}
textarea{min-height:90px; resize:vertical;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:520px){ .row2{grid-template-columns:1fr;} }
button[type="submit"]{margin-top:6px; cursor:pointer; font-family:'Inter',sans-serif;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); border-top:1px solid var(--line); padding:56px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr; row-gap:34px;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
.footer-grid .fbrand{display:flex; align-items:center;}
.footer-grid .fbrand img{height:96px; width:auto;}
.footer-grid .about{color:rgba(251,249,245,0.6); font-size:0.88rem; max-width:280px; margin-top:14px;}
.footer-col h4{font-family:'Fraunces',serif; font-weight:500; color:var(--gold-light); font-size:0.92rem; margin-bottom:14px;}
.footer-col a{display:block; color:rgba(251,249,245,0.72); font-size:0.88rem; margin-bottom:10px;}
.footer-bottom{margin-top:44px; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px;}
.footer-fine{color:rgba(251,249,245,0.42); font-size:0.78rem; max-width:640px;}

:focus-visible{outline:2px solid var(--gold-light); outline-offset:3px;}
