h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}
h1{font-size:clamp(2.4rem,6vw,4.4rem);margin:.35em 0}
h2{font-size:clamp(1.9rem,4vw,3rem);margin:.3em 0 .5em}
h3{font-size:1.35rem;margin-bottom:.4em}
em{color:var(--gold);font-style:italic}
.kicker,.mono{font:.7rem var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.hero h1,.hero .lead,.hero .meta{text-shadow:0 2px 28px var(--bg),0 0 8px var(--bg)}
.lead{font-size:1.1rem;color:var(--muted);max-width:36em;margin-bottom:1em}
p+p{margin-top:1em}
.badge{display:inline-block;border:1px solid var(--line-s);padding:6px 14px;border-radius:var(--r);font:.68rem var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-l);background:var(--surface-2)}
.btn,button{display:inline-block;background:var(--gold);color:var(--ink);border:0;border-radius:var(--r);padding:13px 24px;font:700 .75rem var(--mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s}
.btn:hover,button:hover{background:var(--gold-l);transform:translateY(-2px);box-shadow:var(--glow)}
.btn.ghost,button.s{background:transparent;color:var(--gold);border:1px solid var(--line-s)}
.btn.ghost:hover,button.s:hover{background:var(--surface-2)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 18px}
.meta{font:.68rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.stat b{display:block;font:500 2.1rem var(--serif);color:var(--gold-l)}
.stat span{font:.66rem var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:28px;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s}
.hover:hover{transform:translateY(-6px);border-color:var(--line-s);box-shadow:var(--glow)}
.card .n,.n{font-size:.82rem;color:var(--muted)}
.num{font:italic 500 2.6rem var(--serif);color:var(--gold);line-height:1;display:block;margin-bottom:12px}
.list li{padding:9px 0 9px 28px;position:relative;border-bottom:1px solid var(--line);color:var(--muted)}
.list li::before{content:"\25C6";position:absolute;left:0;color:var(--gold);font-size:.7rem;top:14px}
.list li.no::before{content:"\2014"}.list li.no{opacity:.5}.list li.ok::before{content:"\2713"}
.plan.pop{border-color:var(--line-s);box-shadow:var(--glow)}
.plan .price{font:500 2rem var(--serif);color:var(--gold-l);margin:8px 0 14px}
.ph{background-size:cover;background-position:center;background-color:var(--scene-dark)}
.photo{margin:0}
.photo .ph{aspect-ratio:4/3;border:1px solid var(--line-s);border-radius:var(--r);box-shadow:var(--shadow);filter:saturate(.85) sepia(.12)}
.photo figcaption{margin-top:10px;font:.64rem/1.6 var(--mono);letter-spacing:.08em;color:var(--muted)}
.photo figcaption a{color:var(--gold-l)}
.tile{position:relative;display:flex;align-items:flex-end;height:150px;padding:14px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;font:500 1.05rem var(--serif);transition:transform .45s var(--ease),border-color .45s,box-shadow .45s}
.credit{margin-top:16px;font:.64rem/1.6 var(--mono);letter-spacing:.08em;color:var(--muted);max-width:46em}
.credit a{color:var(--gold-l)}
.tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,var(--veil))}
.tile span{position:relative}
.tile:hover{transform:translateY(-6px);border-color:var(--line-s);box-shadow:var(--glow)}
label{display:block;font:.66rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
input,select{width:100%;padding:11px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);transition:border-color .3s}
input:focus,select:focus{border-color:var(--gold);outline:0}
input[type=checkbox]{width:auto;accent-color:var(--gold)}
select option{background:var(--bg)}
.g{display:grid;grid-template-columns:1fr 1fr;gap:14px}.f{grid-column:1/-1}.h{display:none}
form .f label:has(input[type=checkbox]){text-transform:none;letter-spacing:0;font:.85rem var(--sans)}
#map{height:260px;border:1px solid var(--line);border-radius:var(--r);margin:10px 0;filter:sepia(.35) brightness(.92)}
#res{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.v{font:500 2.4rem var(--serif);color:var(--gold-l)}
.faq-item{border-bottom:1px solid var(--line)}
button.faq-q{display:flex;justify-content:space-between;gap:18px;width:100%;padding:22px 0;background:none;color:var(--cream);text-align:left;text-transform:none;letter-spacing:0;font:500 1.2rem var(--serif);box-shadow:none;transform:none}
button.faq-q:hover{color:var(--gold-l);background:none}
.faq-q span{color:var(--gold);transition:transform .4s var(--ease)}
.faq-q[aria-expanded=true] span{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.faq-a p{padding:0 0 22px;color:var(--muted);max-width:44em}
.fcol h4{font:.68rem var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.fcol a{display:block;padding:4px 0;color:var(--muted);text-decoration:none;font-size:.9rem}
.fcol a:hover{color:var(--gold-l)}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;pointer-events:none;z-index:120;background:var(--surface);border:1px solid var(--line-s);border-radius:var(--r);padding:14px 22px;box-shadow:var(--glow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .4s,transform .4s var(--ease)}
#toast.show{opacity:1;transform:translate(-50%,0)}
.d{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px}.d.muy{background:#e53935}.d.algo{background:#fb8c00}.d.poco{background:#1e88e5}
.fl button{margin:0 6px 6px 0}.fl button.on{background:var(--gold);color:var(--ink)}
.ld{border-top:1px solid var(--line);padding:14px 0}.ld select{width:auto}
#pmap{height:420px;margin-bottom:16px}
.price-map-controls{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:14px;margin:26px 0 18px}
.price-map-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px;align-items:stretch}
#price-map{height:560px;border:1px solid var(--line-s);border-radius:var(--r);overflow:hidden;background:#e7e1d6;filter:saturate(.86) sepia(.12)}
.pm-side{display:flex;flex-direction:column;gap:12px;min-height:560px}
.pm-summary{padding:20px;border:1px solid var(--line-s);border-radius:var(--r);background:var(--surface)}
.pm-summary span,.pm-summary small{display:block}
.pm-summary strong{display:block;color:var(--gold-l);font:500 2.15rem var(--serif);margin:8px 0 6px}
.pm-summary small{color:var(--muted);line-height:1.55}.pm-summary small a{color:var(--gold-l)}
.pm-list{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:390px;padding-right:4px}
button.pm-area{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--cream);text-align:left;text-transform:none;letter-spacing:0;box-shadow:none;transform:none;font:400 .83rem var(--sans)}
button.pm-area:hover{background:var(--surface-2);border-color:var(--line-s);transform:none;box-shadow:none}
.pm-area span{min-width:0}.pm-area b,.pm-area small{display:block}.pm-area b{white-space:normal}.pm-area small{color:var(--muted);margin-top:3px}.pm-area strong{color:var(--gold-l);white-space:nowrap}
.pm-empty{padding:18px;border:1px dashed var(--line-s);border-radius:var(--r);color:var(--muted);font-size:.84rem;line-height:1.6}
.pm-note{font-size:.76rem;color:var(--muted);line-height:1.55;margin-top:auto}.pm-note b{color:var(--cream)}
.pm-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pm-legend span{font-size:.69rem;color:var(--muted)}.pm-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.pm-div-icon{background:transparent;border:0}.pm-div-icon span{display:grid;place-items:center;width:82px;height:34px;border:2px solid rgba(255,255,255,.92);border-radius:18px;background:var(--pm-color);color:#fff;font:800 12px var(--sans);box-shadow:0 5px 18px rgba(0,0,0,.28);white-space:nowrap}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#17130e;color:#f4eadc}.leaflet-popup-content b{color:#e2b76c}.leaflet-control-attribution{font-size:9px}
@media(max-width:860px){.price-map-grid{grid-template-columns:1fr}#price-map{height:440px}.pm-side{min-height:0}.pm-list{max-height:none}}
@media(max-width:560px){.price-map-controls{grid-template-columns:1fr}#price-map{height:390px}.pm-summary strong{font-size:1.8rem}}
.ph-sanlucar-de-barrameda{background-image:url(../img/sanlucar-de-barrameda.jpg),url(../img/sanlucar-de-barrameda.svg);background-position:center 78%}
.ph-chipiona{background-image:url(../img/chipiona.jpg),url(../img/chipiona.svg);background-position:center 20%}
.ph-rota{background-image:url(../img/rota.jpg),url(../img/rota.svg);background-position:center}
.ph-jerez-de-la-frontera{background-image:url(../img/jerez-de-la-frontera.jpg),url(../img/jerez-de-la-frontera.svg);background-position:center}
.ph-trebujena{background-image:url(../img/trebujena.jpg),url(../img/trebujena.svg);background-position:center}
.ph-lebrija{background-image:url(../img/lebrija.jpg),url(../img/lebrija.svg);background-position:center}
.ph-utrera{background-image:url(../img/utrera.jpg),url(../img/utrera.svg);background-position:center 65%}
.ph-las-cabezas-de-san-juan{background-image:url(../img/las-cabezas-de-san-juan.jpg),url(../img/las-cabezas-de-san-juan.svg);background-position:center}
.ph-los-palacios-y-villafranca{background-image:url(../img/los-palacios-y-villafranca.jpg),url(../img/los-palacios-y-villafranca.svg);background-position:center}
.ph-el-cuervo-de-sevilla{background-image:url(../img/el-cuervo-de-sevilla.jpg),url(../img/el-cuervo-de-sevilla.svg);background-position:center}
.ph-inicio{background-image:url(../img/inicio.jpg),url(../img/inicio.svg);background-position:center}

section.light{--cream:var(--paper-ink);--muted:rgba(42,34,24,.78);--gold:var(--gold-d);--gold-l:var(--gold-dd);--ink:var(--paper);--bg:var(--paper);--line:rgba(122,92,37,.3);--line-s:rgba(122,92,37,.65);--surface:#fffdf7;--surface-2:#fffdf7;--glow:0 10px 30px rgba(90,65,25,.18);--shadow:0 14px 40px rgba(90,65,25,.18);background:var(--paper);color:var(--cream);border-block:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}
section.light.p2{background:var(--paper-2)}
.steps{display:flex;gap:10px;margin:0 0 24px;padding:0;list-style:none}
.steps li{flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);font:.72rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.steps li b{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-s);color:var(--gold);font:700 .75rem var(--mono)}
.steps li.on{color:var(--cream);border-color:var(--line-s)}
.steps li.on b,.steps li.done b{background:var(--gold);color:var(--ink)}
#s2{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
#s2 h3{margin-bottom:.3em}
.portrait{max-width:230px;margin:0}
.portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line-s);border-radius:var(--r);box-shadow:var(--shadow)}
.portrait figcaption{margin-top:10px;font:.7rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.btn.wa-btn{background:var(--wa);color:#fff}
.btn.wa-btn:hover{background:var(--wa-d);color:#fff}
.wa{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:10px;background:var(--wa);color:#fff;padding:12px 20px 12px 14px;border-radius:40px;font:700 .9rem var(--sans);text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .35s var(--ease),background .3s}
.wa:hover{transform:translateY(-3px);background:var(--wa-d)}
.wa svg{width:26px;height:26px;flex:none}
.wa .bub{fill:#fff}.wa .tel{fill:var(--wa)}
.legal-note{margin-top:12px}
@media(max-width:500px){.steps li{font-size:.62rem;letter-spacing:.08em;padding:8px}.wa{padding:13px}.wa span{display:none}}
#s2>.n{margin-bottom:16px}
@media(max-width:500px){.g{grid-template-columns:1fr}}

.btn,button{font:700 .95rem var(--sans);letter-spacing:.02em;text-transform:none;padding:14px 26px}
.kicker,.mono{font-size:.8rem;letter-spacing:.2em}
.badge{font-size:.78rem}
.meta{font:.82rem var(--sans);letter-spacing:.03em;text-transform:none}
label{font:600 .88rem var(--sans);letter-spacing:.01em;text-transform:none;margin-bottom:6px}
.credit,.photo figcaption,.portrait figcaption{font:.8rem/1.6 var(--sans);letter-spacing:0;text-transform:none}
.fbar{font:.8rem/1.9 var(--sans);letter-spacing:0}
.stat span{font-size:.78rem}
.steps li{font:600 .88rem var(--sans);letter-spacing:.01em;text-transform:none}
.fcol h4{font-size:.78rem}
.links a:not(.btn){font-size:.78rem}
@media(max-width:500px){.steps li{font-size:.8rem;padding:8px}}

/* logo */
.brand img{display:block;height:46px;width:auto;background:#fff;padding:5px 12px;border-radius:8px}
@media(max-width:500px){.brand img{height:36px;padding:4px 9px}}

fieldset.extras{border:0;padding:0;margin:0;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
fieldset.extras legend{font:600 .88rem var(--sans);margin-bottom:8px;padding:0}
fieldset.extras label{display:inline-flex;align-items:center;gap:7px;margin:0;padding:8px 14px;border:1px solid var(--line,rgba(201,169,97,.35));border-radius:999px;cursor:pointer;font:600 .88rem var(--sans);text-transform:none;letter-spacing:0}
fieldset.extras label:has(input:checked){background:var(--gold);color:var(--ink);border-color:var(--gold)}
.portrait img{aspect-ratio:4/5;object-position:center 20%}
@media(max-width:900px){.portrait{max-width:180px;margin:0 auto}.portrait figcaption{text-align:center}}
.portrait img{height:auto}
.split.agent{align-items:center}
/* foto agente discreta */
.portrait{max-width:150px}
.portrait img{aspect-ratio:1/1;border-radius:50%;object-position:center 18%;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.portrait figcaption{font-size:.78rem}
@media(min-width:901px){.split.agent{grid-template-columns:minmax(0,150px) 1fr;gap:40px}}
@media(max-width:900px){.portrait{max-width:120px}}
/* paginas nuevas */
.pg{padding-top:130px}
.pg h1{font:500 clamp(2rem,4.6vw,3.2rem) var(--serif);line-height:1.1;margin:.3em 0 .4em}
.pg h1 em{font-style:italic;color:var(--gold-d)}
.art{max-width:760px}
.art h2{font:500 1.5rem var(--serif);margin:1.8em 0 .5em}
.art p,.art li{font-size:1.05rem;line-height:1.75}
.bcard{display:block;text-decoration:none;color:inherit}
.bcard h3{margin:.5em 0}
.cta-row.mid{margin-top:2em}
.call{display:none}
@media(max-width:700px){.call{display:flex;position:fixed;left:18px;bottom:18px;z-index:90;align-items:center;gap:8px;background:var(--gold);color:var(--ink);padding:13px 18px 13px 14px;border-radius:40px;font:700 .9rem var(--sans);text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.4)}.call svg{width:22px;height:22px;fill:currentColor}.pg{padding-top:100px}}

.pm-legend i.c1{background:var(--pm1)}.pm-legend i.c2{background:var(--pm2)}.pm-legend i.c3{background:var(--pm3)}.pm-legend i.c4{background:var(--pm4)}.pm-legend i.c5{background:var(--pm5)}

/* botones flotantes por encima del distintivo de Netlify */
.wa{bottom:78px}
@media(max-width:700px){.call{bottom:78px}}
