:root{
  color-scheme:dark;
  --bg:#0a0a0a; --surface:#141414; --ink:#ffffff; --muted:#e0e0e0; --line:#2b2b2b;
  --carbon:#000000; --on-carbon:#ffffff; --gold:#c9a45c; --gold-text:#d4b673; --wa:#187a41; --wa-ink:#fff;
  --serif:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  box-sizing:border-box;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
body{margin:0;background:#0a0a0a;color:var(--ink);font:400 1.0625rem/1.65 var(--sans);-webkit-text-size-adjust:100%}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,9vw,4.6rem)}
h2{font-size:clamp(1.9rem,5.5vw,2.8rem)}
h3{font-size:1.35rem}
.hook{font:500 1.05rem/1.4 var(--sans);color:var(--gold-text);margin:0 0 .7em}
.tagline{font:500 1.35rem/1.2 var(--serif);margin:0 0 .7em}
p{margin:0 0 1em;max-width:62ch}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.wrap{width:min(1100px,100% - 2.5rem);margin-inline:auto}
section{padding:3.5rem 0}
.lead{font-size:1.15rem;color:var(--muted)}
.lead-strong{font-size:clamp(1.2rem,2.4vw,1.4rem);line-height:1.5;color:var(--ink);font-weight:500;border-left:3px solid var(--gold);padding-left:1rem;max-width:62ch}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;padding:.9rem 1.6rem;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font:600 1.05rem/1.2 var(--sans);text-decoration:none;cursor:pointer;text-align:center}
.btn-wa{background:var(--wa);border-color:var(--wa);color:var(--wa-ink)}
.btn-wa:hover{filter:brightness(1.08)}
.btn-block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
svg.ic{width:22px;height:22px;flex:none;fill:currentColor}

/* Cabecera */
header.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
/* LOGO: logotipo en texto (cabecera). Para cambiar el nombre o el año, edita el bloque .logotipo del HTML. */
.logotipo{display:flex;flex-direction:column;align-items:stretch;line-height:1;flex:none}
.logotipo b{font:500 1.6rem/1 var(--serif);letter-spacing:-.01em;color:var(--ink);text-align:center;white-space:nowrap}
.logotipo small{display:flex;align-items:center;gap:.55rem;margin-top:.4rem;font:500 .72rem/1 var(--sans);letter-spacing:.2em;color:var(--gold-text);white-space:nowrap}
.logotipo small::before,.logotipo small::after{content:"";flex:1;height:1px;background:var(--gold)}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.6rem}
nav a{text-decoration:none;font-weight:500;color:var(--muted)}
nav a:hover{color:var(--ink)}
.burger{display:none;width:52px;height:52px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer}
.burger svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
@media (max-width:820px){
  .burger{display:grid;place-items:center}
  nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);display:none}
  nav.open{display:block}
  nav ul{flex-direction:column;gap:0;padding:.5rem 1.25rem 1rem}
  nav a{display:block;padding:1rem 0;font-size:1.15rem;border-bottom:1px solid var(--line);color:var(--ink)}
}

/* Inicio */
.hero{padding:3rem 0 4rem}
.hero .grid{display:grid;gap:2.5rem}
.place{font:500 .95rem var(--sans);color:var(--gold-text);margin:0 0 1rem}
.hero-cta{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start;margin-top:1.8rem}
@media (min-width:860px){
  .hero .grid{grid-template-columns:1.05fr .95fr;align-items:center}
  .hero-cta{flex-direction:row;align-items:center}
}

.hero-photo{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line);background:var(--surface)}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* Confianza */
.trust{background:var(--carbon);color:var(--on-carbon);padding:1.6rem 0}
.trust .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1.2rem;text-align:center}
.trust .stars{color:var(--gold);letter-spacing:.2em}
.trust strong{font:500 1.35rem var(--serif)}
.trust span.sub{opacity:.75;font-size:.95rem}
.trust a{color:inherit}

/* Servicios */
.services{display:grid;gap:1rem;margin:2rem 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem}
.card p{color:var(--muted);margin:.8rem 0 1rem}
.card a.more{font-weight:600;color:var(--gold-text);text-decoration:underline;text-underline-offset:4px;display:inline-block;padding:.6rem 0}
.note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:1.1rem 1.3rem;color:var(--muted)}
.note strong{color:var(--ink);font-weight:600}
.cat{font:500 clamp(1.6rem,4.5vw,2.1rem)/1.15 var(--serif);letter-spacing:-.01em;margin:2.8rem 0 0;max-width:none}
.cat-note{margin:.4rem 0 0}
.services.cat-grid{margin:1.2rem 0 0}
.card.svc{display:flex;flex-direction:column}
.svc-photo{aspect-ratio:16/9;border-radius:12px;overflow:hidden;margin-bottom:1.1rem}
.svc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.svc-photo.real{aspect-ratio:4/3;border:1px solid var(--line)}
.fname{display:block;font-size:.78rem;margin-top:.2rem;opacity:.85}
.card h3{font:500 1.35rem/1.15 var(--serif);letter-spacing:-.01em;margin:0 0 .5em;padding-bottom:.6rem;border-bottom:2px solid var(--gold);align-self:flex-start}
.card .price{font:500 1.9rem/1.15 var(--serif);color:var(--ink);margin:.2rem 0 0}
.svc-group .price.alt{margin:.5rem 0 1.2rem}
.card .price.alt{font:600 1rem/1.3 var(--sans);color:var(--gold-text);margin-top:.5rem}
.card .price{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.6rem}
.card .price .iva{font:500 .8rem/1.3 var(--sans);color:var(--muted)}
.card.svc p.small{margin:0 0 1rem;font-size:.92rem}
.svc .btn{margin-top:auto}
.card .svc-opts{list-style:none;margin:0 0 .8rem;padding:0;display:grid;gap:.35rem;font-size:.95rem}
.svc-opts strong{color:var(--ink)}
.ig-link{display:grid;place-items:center;width:44px;height:44px;margin:0 0 1.1rem;border:1px solid var(--line);border-radius:50%;color:var(--gold-text);transition:color .2s,border-color .2s}
.ig-link svg{width:22px;height:22px}
.ig-link:hover{color:var(--ink);border-color:var(--gold)}
.card p.stay-tag,.stay-tag{display:block;font:600 1rem/1.4 var(--sans);color:var(--gold-text);margin:0 0 1.2rem;padding:.7rem .9rem;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;background:color-mix(in srgb,var(--gold) 8%,transparent)}
.supertop{margin-top:2.8rem;padding:1.6rem 1.2rem 1.2rem;background:var(--carbon);color:var(--on-carbon);border:1px solid var(--gold);border-radius:22px}
.supertop .cat{margin-top:0}
.supertop .cat-note{color:color-mix(in srgb,var(--on-carbon) 78%,transparent)}
.supertop .card{color:var(--ink)}
.price-note{margin:1.2rem 0 0;max-width:70ch}
.datebtn{width:100%;min-height:52px;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.cal{margin-top:.5rem;padding:1rem;border:1.5px solid var(--line);border-radius:14px;background:var(--surface)}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.cal-h strong{display:inline-block}.cal-h strong::first-letter{text-transform:uppercase}
.cal-h button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer}
.cal-h button:disabled{opacity:.35;cursor:not-allowed}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}
.cal-g span{font-size:.8rem;color:var(--muted);padding:.2rem 0}
.cal-g button{min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.cal-g button:hover:not(:disabled){background:var(--line)}
.cal-g button:disabled{color:var(--muted);opacity:.4;text-decoration:line-through;cursor:not-allowed}
.cal-g button.sel{background:var(--carbon);color:var(--on-carbon)}
.cal-clear{margin-top:.6rem;background:none;border:0;color:var(--gold-text);font:inherit;text-decoration:underline;cursor:pointer;padding:.5rem 0}
#servicios .price-note{margin-top:1rem}
@media (min-width:700px){.services{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.services{grid-template-columns:repeat(3,1fr)}}

/* Banner especial */
.special{background:var(--carbon);color:var(--on-carbon);border-radius:22px;padding:2.5rem 1.6rem;border:1px solid var(--gold)}
.special h2{margin-bottom:.4em}
.special p{color:color-mix(in srgb,var(--on-carbon) 78%,transparent)}
.band{padding:3rem 0 0}
#servicios{padding-bottom:2.5rem}
.venta{padding:3rem 0}
#trabajos{padding:3rem 0 3rem}
.venta-photo{margin:2rem auto 0;max-width:340px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.venta-photo img{display:block;width:100%;height:auto}
@media (min-width:800px){.venta-grid{display:grid;grid-template-columns:1fr minmax(240px,340px);gap:3rem;align-items:center}.venta-photo{margin:0;max-width:none}}
.special-photo{margin:2rem auto 0;max-width:340px;border-radius:14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent)}
.special-photo img{display:block;width:100%;height:auto}
@media (min-width:800px){.special{padding:3.5rem;display:grid;grid-template-columns:1fr minmax(240px,340px);gap:3rem;align-items:center}.special-photo{margin:0;max-width:none}}

/* Trabajos */
.work-photo{margin:0;aspect-ratio:4/3;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.work-photo img{display:block;width:100%;height:100%;object-fit:cover}

/* Sobre */
.about{display:grid;gap:2.5rem}
.creds{list-style:none;margin:1.2rem 0;padding:0;display:grid;gap:.7rem}
.creds li{display:flex;align-items:center;gap:1rem;position:relative}
.cred-logo{flex:none;display:grid;place-items:center;width:112px;height:64px;padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:12px}
.cred-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto}
.cred-item{display:flex;align-items:center;gap:1rem}
.inc{list-style:none;padding:0;margin:.2rem 0 1rem}
.inc li{padding:.2rem 0;color:var(--muted)}
.inc li::before{content:"";display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--gold);margin-right:.65rem;vertical-align:middle}
.inc strong{color:var(--ink)}
.small{font-size:.97rem;color:var(--muted)}
.autograph{display:block;margin-top:1.2rem}
.autograph figure{margin:1rem 0 0;width:100%;max-width:340px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.autograph img{display:block;width:100%;height:auto}
.autograph p{margin:0}
@media (min-width:860px){.about{grid-template-columns:1.1fr .9fr}}

/* FAQ */
details{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:1.2rem 2.5rem 1.2rem 0;font:500 1.2rem/1.35 var(--serif);position:relative;min-height:56px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:.3rem;top:1rem;font:400 1.6rem var(--sans);color:var(--gold-text)}
details[open] summary::after{content:"–"}
details p{color:var(--muted);padding-bottom:1.2rem}
.faq{max-width:780px}

/* Contacto */
.contact{display:grid;gap:2.5rem}
#contacto .contact{grid-template-columns:1fr;max-width:760px}
.cta{position:relative;overflow:hidden;background:var(--carbon);color:var(--on-carbon);padding:4.5rem 0}
.cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}
.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,14,13,.6),rgba(15,14,13,.82))}
.cta-in{position:relative;z-index:1;max-width:680px}
.cta form{color:var(--ink)}
.data{list-style:none;margin:1.2rem 0;padding:0;display:grid;gap:1rem}
.data b{display:block;font:500 .95rem var(--sans);color:var(--gold-text)}
.data a{text-underline-offset:3px}
form{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.5rem}
label{display:block;font-weight:600;margin:1rem 0 .4rem;font-size:.97rem}
input,select,textarea{width:100%;min-height:52px;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:inherit}
textarea{min-height:110px;resize:vertical}
.row{display:grid;gap:0 1rem}
@media (min-width:560px){.row{grid-template-columns:1fr 1fr}}
@media (min-width:900px){.contact{grid-template-columns:1fr 1fr}}
form .btn{margin-top:1.4rem}


/* WhatsApp flotante */
.fab{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:60;box-shadow:0 8px 24px rgba(0,0,0,.28);min-height:60px;padding:.9rem 1.5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.social{display:flex;gap:.7rem;margin-top:.35rem}
.social-ic{width:48px;height:48px;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);transition:border-color .15s,color .15s}
.social-ic:hover{border-color:var(--gold);color:var(--gold-text)}
.social-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.social-ic svg .dot,.social-ic svg .fill{fill:currentColor;stroke:none}
.svc-photo.mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:3px;background:var(--line)}
.svc-photo.mosaic img{width:100%;height:100%;object-fit:cover;display:block}
.svc-group .svc-opts li::before{content:"";display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--gold);margin-right:.65rem;vertical-align:middle}

/* Hero */
.hero{padding:2.2rem 0 0;background:radial-gradient(110% 70% at 90% 0%,color-mix(in srgb,var(--gold) 24%,transparent),transparent 62%),var(--bg)}
.place{display:flex;align-items:center;gap:.7rem;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
.place::before{content:"";width:2.2rem;height:2px;background:var(--gold)}
.hero h1{font-size:clamp(2.2rem,7.5vw,3.7rem);line-height:1.08}
.h1-brand{display:block;font-style:italic;color:var(--gold-text);font-size:.62em;margin-top:.3em}
.hero .tagline{font-size:1.5rem;color:var(--ink)}
.hero-photo{border:0;border-radius:0;box-shadow:none;margin-inline:-1.25rem;aspect-ratio:5/4}
@media (min-width:800px){.hero{padding-bottom:3.5rem}.hero-photo{margin-inline:0;border-radius:18px;aspect-ratio:4/3;border:1px solid color-mix(in srgb,var(--gold) 60%,transparent);box-shadow:0 30px 60px -28px rgba(0,0,0,.55)}}
@media (prefers-reduced-motion:no-preference){.hero .grid>div>*{animation:up .7s both}.hero .grid>div>*:nth-child(2){animation-delay:.08s}.hero .grid>div>*:nth-child(3){animation-delay:.16s}.hero .grid>div>*:nth-child(4){animation-delay:.24s}.hero .grid>div>*:nth-child(5){animation-delay:.32s}.hero .grid>div>*:nth-child(6){animation-delay:.4s}.hero-photo{animation:up .9s .3s both}}
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media (max-width:820px){
  section{padding:2.6rem 0}
  .hero{padding:2rem 0 2.5rem}
}
@media (max-width:600px){.fab .fab-t{display:none}.fab{padding:.9rem;min-width:60px;border-radius:50%}}

.about-photo{margin:1.2rem 0}.about-photo img{display:block;width:100%;height:auto;border-radius:14px}
.trust .sub{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* Navegación: página activa */
nav a[aria-current="page"]{color:var(--ink);box-shadow:0 2px 0 var(--gold)}

/* Escaparate de trabajos (home) y galería (trabajos.html) */
.intro-trabajos{max-width:70ch;color:var(--muted)}
.showcase,.gallery{display:grid;gap:1rem;margin:2rem 0;grid-template-columns:1fr}
@media (min-width:600px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (min-width:760px){.showcase{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.gallery{grid-template-columns:repeat(3,1fr);gap:1.25rem}}
.showcase .work-photo,.gallery .work-photo{aspect-ratio:4/3;margin:0;position:relative}
.showcase .work-photo img,.gallery .work-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.showcase .work-photo:hover img,.gallery .work-photo:hover img{transform:scale(1.04)}}
.work-photo figcaption{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.btn-galeria{background:var(--gold);border-color:var(--gold);color:#1b1a18;padding-inline:2rem}
.btn-galeria:hover{filter:brightness(1.07)}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}

/* Cabecera de la galería */
.page-hero{padding:3rem 0 1rem;background:radial-gradient(110% 80% at 90% 0%,color-mix(in srgb,var(--gold) 24%,transparent),transparent 62%),var(--bg)}
.page-hero h1{font-size:clamp(2.2rem,7vw,3.5rem);line-height:1.08;max-width:20ch}
.page-hero p.lead{max-width:70ch}
.gallery-wrap{padding-top:1.5rem}
.cta-gal{padding:3rem 0}
.cta-gal .special{display:block}
.cta-title{font:500 clamp(1.6rem,4.5vw,2.2rem)/1.15 var(--serif);margin:0 0 .5em;max-width:none}

/* Formulario */
.form-title{font:500 1.35rem/1.15 var(--serif);margin:0 0 .5em}

/* Datos de contacto */
.data li{line-height:1.5}
.data b{display:inline;font:600 1rem var(--sans);color:var(--gold-text)}
.data .social{margin-top:.5rem}

/* Pie de página */
footer{background:var(--carbon);color:var(--on-carbon);padding:2.5rem 0 6.5rem;font-size:.95rem}
.foot{display:grid;gap:2rem}
@media (min-width:800px){.foot{grid-template-columns:1.1fr 1fr;align-items:start}}
.foot-brand{font:500 1.6rem/1.1 var(--serif);margin:0 0 .3rem}
footer p{margin:.3rem 0;opacity:.85;max-width:none}
footer ul{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.45rem}
footer a{color:inherit;text-underline-offset:3px}
footer .social-ic{background:transparent;color:var(--on-carbon);border-color:color-mix(in srgb,var(--on-carbon) 35%,transparent)}
.foot-legal{grid-column:1/-1;border-top:1px solid color-mix(in srgb,var(--on-carbon) 18%,transparent);padding-top:1.2rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}
.foot-legal p{margin:0;font-size:.88rem}

/* ===== Tipografía premium ===== */
h1,h2,h3,.cat,.cta-title,.form-title,.foot-brand,.logotipo b,summary,.tagline,.card .price{font-family:var(--serif)}
h2{font-weight:700;letter-spacing:-.015em}
h3{font-weight:600;letter-spacing:-.01em}
h1{font-weight:900;letter-spacing:-.02em;color:#fff}
p,.btn,input,select,textarea,label,nav a,.small,.lead{font-family:var(--sans)}
.lead,.hero .lead,.intro-trabajos{color:#e0e0e0}
.logotipo b{font-weight:700;letter-spacing:-.02em;font-size:1.35rem}
summary{font-weight:600}

/* ===== Hero boutique invertido ===== */
.hero{position:relative;isolation:isolate;overflow:hidden;background:#000;padding:0;min-height:clamp(560px,84vh,780px);display:flex;align-items:center}
.hero .hero-photo{position:absolute;top:0;bottom:0;left:0;width:66%;height:100%;margin:0;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none;animation:none;z-index:-1;background:#000}
.hero .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:left center;display:block}
.hero .hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.1) 35%,rgba(0,0,0,.65) 72%,#000 100%)}
.hero .grid{display:flex;justify-content:flex-end;width:min(1180px,100% - 2.5rem);margin-inline:auto;padding:3.5rem 0}
.hero .grid>div{width:min(46%,540px)}
.hero h1{font-size:clamp(2.4rem,4.6vw,4.2rem);line-height:1.04;color:#fff;font-weight:900;letter-spacing:-.025em;text-transform:none;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.h1-brand{display:block;font-style:normal;font-weight:700;color:var(--gold-text);font-size:.5em;letter-spacing:.02em;margin-top:.5em}
.hero .tagline{color:#fff;font:600 1.25rem/1.3 var(--serif)}
.hero .lead{color:#e0e0e0;font-size:1.08rem}
.hero .place{color:var(--gold-text)}
.page-hero{background:#000}
.page-hero h1{font-weight:900;letter-spacing:-.025em;font-size:clamp(2.2rem,5vw,3.6rem);max-width:22ch}
@media (max-width:820px){
  .hero{min-height:0;justify-content:center;text-align:center}
  .hero .hero-photo{width:100%}
  .hero .hero-photo img{object-position:center;opacity:.3}
  .hero .hero-photo::after{background:linear-gradient(180deg,rgba(0,0,0,.55),#000 85%)}
  .hero .grid{justify-content:center;padding:3rem 0}
  .hero .grid>div{width:100%;max-width:560px;text-align:center}
  .hero .place{justify-content:center}
  .hero .place::before{display:none}
  .hero .ig-link{margin-inline:auto}
  .hero .hero-cta{align-items:center;justify-content:center}
  .hero h1{font-size:clamp(2.1rem,9vw,3rem)}
  .page-hero{text-align:center}
  .page-hero .place{justify-content:center}
  .page-hero .place::before{display:none}
  .page-hero h1,.page-hero p.lead{margin-inline:auto}
}

/* ===== Ajustes v12 ===== */
/* Bloque "coche especial": pregunta arriba, respuesta debajo */
.special h2 .h2-q{display:block}
.special h2 .h2-a{display:block;margin-top:.35em;font-size:.72em;font-weight:600;letter-spacing:0;color:var(--gold-text);line-height:1.25}

/* Cartas de servicio: estancia estimada siempre abajo, justo encima del boton */
.card.svc p.stay-tag{margin-top:auto}
.card.svc p.stay-tag + .btn{margin-top:0}
.card.svc p:not(.stay-tag):not(.price):last-of-type{margin-bottom:1.2rem}

/* Una carta suelta en la ultima fila (p. ej. PPF) va al centro */
@media (min-width:1000px){.services.cat-grid > .card:not(.svc-group):last-child:nth-child(3n+1){grid-column:2}}

/* Servicios a la carta: centrado y con mas impacto visual */
.services.cat-grid > .card.svc-group{grid-column:1/-1;max-width:1020px;width:100%;margin-inline:auto;padding:2rem;text-align:center;border-color:var(--gold);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 35%,transparent),0 18px 50px rgba(0,0,0,.45)}
.svc-group .svc-photo.mosaic{aspect-ratio:auto;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:none;gap:.7rem;background:transparent;border:0;border-radius:0;overflow:visible;margin-bottom:1.6rem}
@media (min-width:700px){.svc-group .svc-photo.mosaic{grid-template-columns:repeat(3,1fr)}}
.svc-group .svc-photo.mosaic img{aspect-ratio:4/3;height:auto;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);transition:transform .5s ease,filter .5s ease;filter:saturate(1.08) contrast(1.04)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.svc-group .svc-photo.mosaic img:hover{transform:scale(1.04);filter:saturate(1.15) contrast(1.06)}}
.svc-group h3{align-self:center;font-size:clamp(1.4rem,3vw,1.9rem)}
.svc-group > p{max-width:62ch;margin-inline:auto;font-size:1.05rem}
.svc-group .price.alt{justify-content:center}
.svc-group .btn{align-self:center;margin-top:1.2rem}

/* Galeria: fotos completas y centradas (sin recortes) */
.gallery{display:block;column-count:1;column-gap:1rem;margin:2rem 0}
@media (min-width:600px){.gallery{column-count:2}}
@media (min-width:1000px){.gallery{column-count:3;column-gap:1.25rem}}
.gallery .work-photo{display:inline-block;width:100%;break-inside:avoid;margin:0 0 1rem;aspect-ratio:auto;border-radius:16px;overflow:hidden;position:relative;vertical-align:top}
.gallery .work-photo img{width:100%;height:auto;display:block}

/* Antes y despues */
.ba-wrap{margin:3.5rem 0 1rem}
.ba-title{font-size:clamp(1.5rem,3.6vw,2.2rem);margin:0 0 1.2rem}
.ba{display:grid;gap:1rem;padding:1.4rem;margin:0 0 3.2rem;background:var(--surface);border:1px solid var(--gold);border-radius:22px}
.ba-chip{justify-self:start;display:inline-block;font:600 .8rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:.6rem 1rem;border-radius:999px;border:1px solid var(--gold);color:var(--gold-text)}
.ba-chip.ba-after{background:var(--gold);color:#1b1a18;border-color:var(--gold)}
.ba-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.ba .work-photo{aspect-ratio:auto;margin:0;border-radius:12px;overflow:hidden;position:relative}
.ba .work-photo img{width:100%;height:auto;display:block}
.ba-pair{grid-template-columns:repeat(2,1fr);align-items:start}
.ba-col{display:grid;gap:1rem;align-content:start}
@media (min-width:800px){.ba-three{grid-template-columns:repeat(3,1fr)}.ba-two{grid-template-columns:repeat(2,1fr);width:calc((100% - 2rem)/3*2 + 1rem);margin-inline:auto}}

/* Aviso legal: texto abierto al final de la pagina */
.legal-full{grid-column:1/-1;border-top:1px solid color-mix(in srgb,var(--on-carbon) 18%,transparent);padding-top:1.4rem;font-size:.86rem;line-height:1.6;color:#e0e0e0}
.legal-full .legal-title{font:600 1rem/1.3 var(--serif);color:#fff;margin:0 0 .8rem}
.legal-full p{max-width:none;margin:.55rem 0;opacity:.9}
.special h2{font-size:clamp(1.6rem,6.2vw,2.2rem)}
@media (min-width:800px){.special h2 .h2-q{white-space:nowrap;font-size:clamp(1.6rem,2.35vw,2.15rem)}}

.card.svc .btn{min-height:68px;text-align:center}

.svc-group .price.alt{margin-inline:auto;text-align:center}
.legal-full p.small{font-size:.86rem}

/* ===== Ajustes v13 ===== */
#servicios .price-note{margin-inline:auto;text-align:center}
.about.about-v2{display:block}
.about-main{max-width:680px;margin-inline:auto}
.about-creds{max-width:960px;margin:3rem auto 0;text-align:center}
.about-creds h3{margin:0 0 1.2rem}
.creds.creds-row{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.6rem}
.creds-row li{flex-direction:column;justify-content:flex-start;gap:.8rem;text-align:center}
.creds-row .cred-logo{width:150px;height:84px}
.creds-row li > span:last-child{font-weight:600;max-width:24ch}
.legal-toggle{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.legal-toggle:hover,.legal-toggle[aria-expanded="true"]{color:var(--gold-text)}

/* ===== Ajustes v14: galeria en columnas equilibradas ===== */
.gallery{display:flex;flex-direction:column;gap:1rem;column-count:auto;max-width:620px;margin-inline:auto}
.gcol{display:contents}
.gallery .work-photo{display:block;width:100%;margin:0;break-inside:auto}
@media (min-width:1000px){
  .gallery{flex-direction:row;align-items:flex-start;gap:1.25rem;max-width:none}
  .gcol{display:flex;flex-direction:column;gap:1.25rem;flex:1 1 0;min-width:0}
}

/* ===== Separación etiqueta / valor (contacto y pie) ===== */
.data b{display:block;font:600 .8rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);margin:0 0 .25rem}
.data li > .val,.data li > a{display:block}
.data li > .val-link{margin-top:.35rem}
.data li > .social{display:flex}
footer ul li > strong{display:block;font:600 .78rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin:0 0 .15rem}
footer ul li > .val,footer ul li > a{display:block}

/* ===== Precios, estancia y botones: texto destacado, nunca encabezados ===== */
.card .price{font-weight:600;letter-spacing:-.01em}
.card .price .iva{font-weight:500}
