:root{--ink:#111;--mut:#6b6b6b;--line:#e4e2de;--bg:#fff;--alt:#f6f5f3;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font:300 16px/1.65 var(--sans);color:var(--ink);background:var(--bg)}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1}
.nav{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:20px 5vw;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font:500 13px var(--sans);letter-spacing:.28em}.logo span{font-weight:300}
.nav nav{display:flex;gap:clamp(14px,1.5vw,28px);font-size:13px;letter-spacing:.05em;white-space:nowrap}
.nav nav a:hover{opacity:.55}.nav .cta{border-bottom:1px solid var(--ink)}
.burger{display:none;background:none;border:0;width:32px;height:24px;position:relative;cursor:pointer}
.burger i{position:absolute;left:4px;right:4px;height:1px;background:var(--ink);transition:.25s}.burger i:first-child{top:8px}.burger i:last-child{top:15px}
.burger[aria-expanded=true] i:first-child{top:12px;transform:rotate(45deg)}.burger[aria-expanded=true] i:last-child{top:12px;transform:rotate(-45deg)}
.hero{padding-top:68px}
.hero-img{height:62vh;min-height:340px;background:#d9d7d3;position:relative;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-txt{display:grid;grid-template-columns:1.3fr 1fr;gap:6vw;padding:56px 5vw 96px;align-items:end}
.hero-txt h1{font-size:clamp(34px,4.6vw,66px)}.hero-txt p{color:var(--mut);margin-bottom:24px}
.links{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 26px;border:1px solid var(--ink);font:400 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;background:none;cursor:pointer;transition:.25s;color:var(--ink)}
.btn:hover,.btn.solid{background:var(--ink);color:#fff}.btn.solid:hover{background:#333}.btn.ghost{border-color:var(--line)}.btn.ghost:hover{border-color:var(--ink);background:none;color:var(--ink)}
.wrap{padding:112px 5vw}.alt{background:var(--alt)}
.head{margin-bottom:56px}.head h2{font-size:clamp(32px,3.6vw,52px)}.head p{color:var(--mut);margin-top:10px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:56px 32px}
.card{grid-column:span 6;cursor:pointer;display:block;text-align:left;background:none;border:0;font:inherit;color:inherit;padding:0}
.card:nth-child(3n+1){grid-column:span 7}.card:nth-child(3n+2){grid-column:span 5;margin-top:72px}.card:nth-child(3n){grid-column:span 6}
.thumb{aspect-ratio:4/3;overflow:hidden;background:#d9d7d3;position:relative}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}.card:hover img{transform:scale(1.03)}
.tag{position:absolute;left:14px;top:14px;background:#fff;font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;z-index:1}
.meta{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-top:16px}
.meta h3{font-size:28px}.meta span{font-size:12px;color:var(--mut);letter-spacing:.04em;text-align:right}
.list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:48px 40px}
.list article{border-top:1px solid var(--ink);padding-top:20px}.list h3{font-size:26px;margin-bottom:10px}.list p,.steps p{color:var(--mut);font-size:15px}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px}
.steps b{font:400 12px var(--sans);letter-spacing:.2em;color:var(--mut)}.steps h3{font-size:25px;margin:8px 0 8px}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:6vw}
.lead{font:400 clamp(22px,2.2vw,30px)/1.4 var(--serif)}
.people{display:grid;gap:28px;align-content:start}.people div{border-top:1px solid var(--ink);padding-top:14px}.people h3{font-size:30px}.people span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
form{display:grid;gap:22px}label{display:grid;gap:6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
input,select,textarea{font:300 16px var(--sans);color:var(--ink);border:0;border-bottom:1px solid #bbb;background:none;padding:8px 0;border-radius:0;outline:0}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}.hp{position:absolute;left:-9999px}
#status{font-size:14px;min-height:22px}.ok{color:#2d6a3e}.err{color:#a33}
.direct{align-self:start;display:grid;gap:14px}.direct a{border-bottom:1px solid var(--ink);width:fit-content}
footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:32px 5vw;border-top:1px solid var(--line);font-size:12px;color:var(--mut)}
dialog{width:min(1100px,94vw);max-height:92vh;border:0;padding:0;overflow:auto;background:#fff}dialog::backdrop{background:rgba(0,0,0,.6)}
.close{position:sticky;top:0;float:right;margin:12px;z-index:3;width:40px;height:40px;border:0;background:#fff;cursor:pointer;font-size:16px}
#sheetBody{padding:48px 5% 56px}#sheetBody h2{font-size:clamp(34px,4vw,56px)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:6%;margin:28px 0 36px}.facts dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-top:14px}.facts dd{margin:0}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.gal .thumb:first-child{grid-column:1/-1;aspect-ratio:16/9}
.note{font-size:13px;color:var(--mut);margin-top:20px}
@media(max-width:820px){
.burger{display:block}.nav nav{position:fixed;inset:68px 0 auto;background:#fff;flex-direction:column;gap:0;padding:8px 5vw 20px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:.3s;z-index:-1}
.nav nav.open{transform:none}.nav nav a{padding:14px 0;font-size:16px;border-bottom:1px solid var(--line)}.nav .cta{border-bottom:1px solid var(--line)}
.hero-img{height:46vh}.hero-txt,.two,.facts{grid-template-columns:1fr}.hero-txt{padding:36px 5vw 64px;gap:20px}
.wrap{padding:72px 5vw}.grid{grid-template-columns:minmax(0,1fr);gap:40px}.card,.card:nth-child(n){grid-column:1/-1;margin-top:0;width:100%;min-width:0}.meta{flex-direction:column;gap:4px}.meta span{text-align:left}.gal{grid-template-columns:1fr}.gal .thumb:first-child{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.filters{display:flex;gap:10px;flex-wrap:wrap;margin:-24px 0 40px}
.filters button{font:400 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:9px 18px;border:1px solid var(--line);background:none;color:var(--mut);cursor:pointer;transition:.25s}
.filters button:hover{border-color:var(--ink);color:var(--ink)}.filters button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.faq{max-width:820px}.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;font:400 24px/1.2 var(--serif);display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font:300 24px var(--sans);color:var(--mut)}
.faq details[open] summary::after{content:"–"}.faq p{color:var(--mut);margin-top:12px;font-size:15px;max-width:680px}
@media(max-width:820px){.filters{margin-top:-16px}.faq summary{font-size:21px}}

/* loader */
#loader{position:fixed;inset:0;z-index:100;background:#fff;display:grid;place-items:center;transition:opacity .6s ease,visibility .6s}
#loader img{width:84px;height:auto;animation:pulse 1.4s ease-in-out infinite}
#loader.done{opacity:0;visibility:hidden}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#loader img{animation:none}}
/* logo */
.logo{display:flex;align-items:center;gap:12px}.logo img{height:30px;width:auto}.logo b{font-weight:500}
.fl{display:inline-flex;align-items:center;gap:10px}
/* anteproyectos */
.ante{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:start}
.kicker{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin-bottom:14px}
.free h3{font-size:clamp(30px,3.4vw,46px);margin-bottom:14px}.free p{color:var(--mut);max-width:520px;margin-bottom:28px}
.prices ul{list-style:none;padding:0;border-top:1px solid var(--ink)}
.prices li{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.prices li>.pr{font-family:var(--serif);font-size:22px;white-space:nowrap}
.prices .consult{color:var(--mut);font:300 14px var(--sans)}
/* equipo */
.sub{font:400 12px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin:56px 0 24px}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,300px));gap:36px 32px}
.team.small{grid-template-columns:repeat(auto-fill,minmax(160px,200px));gap:28px 24px}
.member .thumb{aspect-ratio:1/1}.member h4{font:400 28px/1.1 var(--serif);margin:14px 0 4px}.team.small h4{font-size:21px}
.member span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
/* whatsapp */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:30;width:54px;height:54px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;transition:.25s}
.wa-float:hover{transform:scale(1.06);background:#333}.wa-float[hidden],[hidden]{display:none!important}
@media(max-width:820px){.ante{grid-template-columns:minmax(0,1fr);gap:40px}.free,.prices{min-width:0}.free h3{overflow-wrap:anywhere}.logo img{height:26px}.logo b{font-size:12px}.team{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.member h4{font-size:22px}.team.small{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* portada dinámica */
.hero-img .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);transition:opacity 1.6s ease,transform 8s ease-out}
.hero-img .slide.on{opacity:1;transform:scale(1)}
/* cifras */
.stats{padding-top:72px;padding-bottom:24px;border-top:1px solid var(--line)}.stats .head{margin-bottom:36px}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px}
.statgrid .num{font:400 clamp(44px,5vw,72px)/1 var(--serif);margin-bottom:8px}.statgrid .num b{font-weight:400}
.statgrid p:last-child{font-size:13px;letter-spacing:.06em;color:var(--mut)}
/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}.rv.in{opacity:1;transform:none}
.card{animation:up .7s ease both}.card:nth-child(2){animation-delay:.08s}.card:nth-child(3){animation-delay:.16s}
@keyframes up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.card{animation:none}.hero-img .slide{transition:none}}
/* anteproyectos interactivo */
.why{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:10px;max-width:520px}
.why li{position:relative;padding-left:22px;font-size:15px}.why li::before{content:"";position:absolute;left:0;top:.7em;width:10px;height:1px;background:var(--ink)}
.prices .hint{font-size:14px;color:var(--mut);margin:-4px 0 14px}
.prices li{position:relative;cursor:pointer;transition:background .2s}.prices li:hover{background:rgba(0,0,0,.025)}
.prices label{display:flex;align-items:center;gap:14px;cursor:pointer;flex:1}
.prices input{position:absolute;opacity:0;pointer-events:none}
.prices label i{width:18px;height:18px;border:1px solid var(--ink);flex:none;position:relative;transition:.2s}
.prices input:checked+i{background:var(--ink)}
.prices input:checked+i::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.prices input:focus-visible+i{outline:2px solid #888;outline-offset:2px}
.total{font:400 26px var(--serif);margin-top:18px}
/* ejemplo */
#exDlg{width:min(1000px,94vw)}#exBody{padding:56px 4% 36px}#exBody img{width:100%;height:auto;max-height:72vh;object-fit:contain;background:#f6f5f3}
.exnav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:13px;color:var(--mut)}
.exnav button{border:1px solid var(--line);background:none;padding:10px 20px;cursor:pointer;font:400 12px var(--sans);letter-spacing:.12em;text-transform:uppercase}.exnav button:hover{border-color:var(--ink)}

.prices label{text-transform:none;letter-spacing:0;font-size:15px;color:var(--ink)}

.bagrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.baitem{margin:0;min-width:0}.baitem figcaption{display:flex;flex-direction:column;gap:2px;margin-top:12px}.baitem figcaption b{font:400 26px/1.1 var(--serif)}.baitem figcaption span{font-size:13px;color:var(--mut);letter-spacing:.04em}
.ba{position:relative;overflow:hidden;background:#d9d7d3;width:100%;user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ba .bf{clip-path:inset(0 calc(100% - var(--p)*1%) 0 0)}
.ba .knob{position:absolute;top:0;bottom:0;left:calc(var(--p)*1%);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none;box-shadow:0 0 6px rgba(0,0,0,.35)}
.ba .knob::after{content:"↔";position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:17px;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.ba .lab{position:absolute;top:12px;padding:5px 10px;background:rgba(17,17,17,.6);color:#fff;font-size:11px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}.ba .l{left:12px}.ba .r{right:12px}
.ba input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.ba.sm{max-width:560px;margin:0 auto 28px}.babt{font:400 24px/1.2 var(--serif);margin:28px 0 14px}
.excap{text-align:center;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin:12px 0 0}
@media(max-width:820px){.bagrid{grid-template-columns:minmax(0,1fr);gap:36px}}

.tag.run{background:#111;color:#fff}.tag.done{background:#fff;color:#111}
.thumb .more{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:.4s}
.card:hover .more,.card:focus-visible .more{opacity:1;transform:none}
#filters button{transition:.25s}
#welcome{width:min(640px,94vw);max-height:92vh;padding:0;border:0;overflow:auto}
#welcome[open]{animation:wpop .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes wpop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
#welcome[open] .wlist li{animation:up .6s ease both}#welcome[open] .wlist li:nth-child(1){animation-delay:.15s}#welcome[open] .wlist li:nth-child(2){animation-delay:.22s}#welcome[open] .wlist li:nth-child(3){animation-delay:.29s}#welcome[open] .wlist li:nth-child(4){animation-delay:.36s}#welcome[open] .wlist li:nth-child(5){animation-delay:.43s}#welcome[open] .wlist li:nth-child(6){animation-delay:.5s}
.wclose{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;background:#fff;cursor:pointer;font-size:16px;z-index:2}
.wbody{padding:52px 6% 36px}
.weyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin:0 0 16px}
#welcome h2{font:400 clamp(30px,5vw,42px)/1.1 var(--serif);margin:0 0 14px}
.wlead{color:var(--mut);margin:0 0 24px;line-height:1.55}
.wlist{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wlist a{display:block;height:100%;padding:14px 16px;border:1px solid var(--line);text-decoration:none;color:inherit;transition:.25s}
.wlist a:hover{border-color:var(--ink);transform:translateY(-2px)}
.wlist b{display:block;font-weight:500;font-size:15px;margin-bottom:4px}.wlist span{font-size:13px;color:var(--mut);line-height:1.4}
.wact{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:820px){.wlist{grid-template-columns:1fr}.wbody{padding:56px 6% 28px}.wact .btn{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){#welcome[open],#welcome[open] .wlist li{animation:none}}
dialog{margin:auto}

#progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;z-index:60;pointer-events:none}
.rot{font-style:normal;color:var(--ink);display:inline-block;transition:opacity .45s,transform .45s}.rot.out{opacity:0;transform:translateY(6px)}
.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--alt);padding:16px 0}
.ticker .track{display:flex;width:max-content;animation:tick 38s linear infinite}.ticker:hover .track{animation-play-state:paused}
.ticker span{font:400 12px var(--sans);letter-spacing:.22em;text-transform:uppercase;padding:0 28px;white-space:nowrap}.ticker span::after{content:"·";margin-left:56px;color:var(--mut)}
@keyframes tick{to{transform:translateX(-50%)}}
.statgrid>div{transition:opacity .5s,transform .5s}.statgrid:has(.hot)>div:not(.hot){opacity:.45}.statgrid>div.hot{transform:translateY(-4px)}
.tag.run::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#4ade80;margin-right:8px;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25;transform:scale(1.5)}}
@media(prefers-reduced-motion:reduce){.ticker .track{animation:none}.tag.run::before{animation:none}}

.chain{list-style:none;padding:0;margin:0 0 48px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:x}
.chain li{position:relative;padding:24px 22px 24px 0;border-top:1px solid var(--ink)}
.chain li::after{content:"→";position:absolute;right:14px;top:22px;color:var(--mut)}.chain li:last-child::after{content:""}
.chain b{display:block;font:400 13px var(--sans);letter-spacing:.2em;color:var(--mut);margin-bottom:12px}
.chain h3{font:400 24px/1.15 var(--serif);margin:0 0 8px}.chain p{font-size:14px;color:var(--mut);margin:0;line-height:1.5}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:0;border-bottom:1px solid var(--line)}
.tabs [role=tab]{border:0;background:none;padding:14px 18px;font:400 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.25s}
.tabs [role=tab]:hover{color:var(--ink)}.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}
.panels{padding:36px 0 8px}.panel[hidden]{display:none}.panel{animation:up .5s ease both;max-width:860px}
.panel h3{font:400 28px/1.2 var(--serif);margin:0 0 18px}.panel ul{margin:0 0 20px;padding-left:20px;line-height:1.7}.panel li{margin-bottom:6px}
.why-line{color:var(--mut);border-left:2px solid var(--ink);padding-left:16px;margin:0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:none}.two-col h3{font-size:24px}
.todo-cta{margin:32px 0 0}
@media(max-width:820px){.chain{grid-template-columns:minmax(0,1fr)}.chain li{padding-right:0}.chain li::after{content:"↓";right:0}.two-col{grid-template-columns:1fr;gap:8px}
.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tabs [role=tab]{white-space:nowrap;padding:14px 14px}.panel h3{font-size:24px}}

.testi-empty{max-width:640px;padding:40px 0;border-top:1px solid var(--line,#ddd)}.testi-empty p{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.2vw,30px);line-height:1.35}
.testi{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:32px}.tq{margin:0;padding:32px;border:1px solid var(--line,#ddd)}.tq blockquote{margin:0 0 20px;font-family:'Cormorant Garamond',serif;font-size:22px;line-height:1.4}.tq figcaption b{display:block;font-weight:500}.tq figcaption span{color:var(--mut)}

.testi{gap:24px}.tq{display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:36px 34px;border:1px solid var(--line,#e4e0d8);border-radius:28px;background:#fff}
.tq .stars{color:#5d6657;letter-spacing:.2em;font-size:17px;margin-bottom:-6px}
.tq blockquote{font:400 19px/1.6 var(--sans,Inter,sans-serif);margin:0}
.tq figcaption{display:flex;align-items:center;gap:16px}.tq .av{width:48px;height:48px;border-radius:50%;background:#ebe3d6;color:#6b6558;display:grid;place-items:center;font:400 15px/1 var(--sans,Inter,sans-serif);font-style:normal;flex:none}
.tq figcaption span{display:block}.tq figcaption b{display:block;font-weight:600;font-size:16px}.tq figcaption em{font-style:normal;color:var(--mut);font-size:15px}
.testi{display:block;columns:3 300px;column-gap:24px}.testi .tq{break-inside:avoid;margin:0 0 24px}

/* ===== Diseño moderno: bordes curvos ===== */
:root{--r:24px;--r-s:14px}
.thumb,.ba,.baitem .ba{border-radius:var(--r)}
.member .thumb{border-radius:var(--r)}
.hero-img{border-radius:0 0 var(--r) var(--r)}
.btn,.filters button,.tag{border-radius:999px}
.btn{padding:14px 28px}
.filters button{padding:10px 20px}
.tag{padding:6px 12px}
dialog{border-radius:28px}
.close,.wclose{border-radius:999px}
.wlist a{border-radius:var(--r-s)}
#form input:not([type=checkbox]):not([type=radio]),#form select,#form textarea{border:1px solid #d6d2ca;border-radius:var(--r-s);padding:13px 16px;background:#fff;width:100%}
#form input:focus,#form select:focus,#form textarea:focus{border-color:var(--ink)}
.faq details{border:1px solid var(--line);border-radius:20px;padding:20px 26px;margin-bottom:12px}.faq details:last-child{border-bottom:1px solid var(--line)}
.chain{gap:16px}.chain li{border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.chain li::after{right:18px;top:24px}
.tabs{border-bottom:0;gap:8px}.tabs [role=tab]{border-radius:999px;border:1px solid var(--line);margin-bottom:0;padding:11px 20px}
.tabs [role=tab][aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.tabs [role=tab]:hover{border-color:var(--ink)}
.ticker{border-radius:999px;margin:0 5vw;border:1px solid var(--line)}
.statgrid>div{border-radius:var(--r)}
.tq{border-radius:var(--r)}
.testi-empty{border:1px solid var(--line);border-radius:var(--r);padding:36px 40px}
.ba .lab{border-radius:999px}
.ba .knob{border-radius:50%}
.wa-float{border-radius:50%}
@media(max-width:820px){.hero-img{border-radius:0 0 18px 18px}.ticker{margin:0 16px}}

.cta-band{padding-top:40px;padding-bottom:96px}
.cta-box{background:var(--alt);border-radius:32px;padding:clamp(48px,7vw,96px) 5vw;text-align:center}
.cta-box h2{font-size:clamp(28px,3.4vw,46px);max-width:760px;margin:0 auto 14px}
.cta-box p{color:var(--mut);margin:0 auto 32px;max-width:520px}
.btn.big{padding:18px 40px;font-size:13px}

.prices #priceWa{margin-top:10px}.prices li>.pr.consult{font-size:18px;color:var(--mut)}

/* ===== Kit de marca Porpar Estudio ===== */
:root{--ink:#111111;--mut:#5c5c59;--line:#d6d6d2;--bg:#f5f5f3;--alt:#e8e8e5;--paper-w:#ffffff;--grafito:#3a3a38;--piedra:#bdbcb8;--en-tinta:#f5f5f3;--sans:'Jost','Futura','Century Gothic',system-ui,sans-serif;--r:12px;--r-s:12px}
body{background:var(--bg);font-weight:300}
h1,h2{font-weight:300;letter-spacing:-.01em}h3{font-weight:400}
.nav{background:rgba(245,245,243,.94)}
.logo,.nav nav,.btn,.filters button,.sub,.tag{font-family:var(--sans)}
.btn{border-radius:999px;font-weight:500;letter-spacing:.2em}
.btn:hover,.btn.solid{background:var(--ink);color:var(--en-tinta)}.btn.solid:hover{background:var(--grafito)}
.filters button{border-radius:999px;font-weight:500;letter-spacing:.2em}
.filters button.on,.filters button:hover{background:var(--ink);color:var(--en-tinta);border-color:var(--ink)}
.sub,.tag{font-weight:500;letter-spacing:.22em}
.thumb,.hero-img{background:var(--alt)}
.alt{background:var(--alt)}
.card .thumb{border-radius:var(--r)}
.hstat{display:flex;align-items:baseline;gap:14px;margin:0 0 28px;color:var(--ink)}
.hstat b{font:300 clamp(48px,5.4vw,80px)/1 var(--serif)}
.hstat span{font:500 13px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
/* proceso con fotos */
.process{list-style:none;padding:0;display:grid;gap:clamp(48px,7vw,96px)}
.pstep{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
.pstep:nth-child(even) .pph{order:2}
.pph{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--alt)}
.pph img{width:100%;height:100%;object-fit:cover}
.ptx b{font:500 11px var(--sans);letter-spacing:.24em;color:var(--grafito)}
.ptx h3{font:300 clamp(30px,3.2vw,46px)/1.1 var(--serif);margin:12px 0 14px}
.ptx p{color:var(--mut);max-width:46ch;font-size:16px}
.pstep.nophoto{grid-template-columns:1fr;max-width:760px}
@media(max-width:820px){.pstep{grid-template-columns:1fr}.pstep:nth-child(even) .pph{order:0}}
/* bloques en tinta: testimonios y CTA */
.testi .tq{background:var(--ink);color:var(--en-tinta);border-color:var(--ink);border-radius:var(--r)}
.tq blockquote{font:italic 400 21px/1.5 var(--serif)}
.tq figcaption b{font-weight:500}.tq figcaption em{color:#a9a9a5}
.tq .av{background:var(--grafito);color:var(--en-tinta)}.tq .stars{color:var(--en-tinta)}
.cta-box{background:var(--ink);color:var(--en-tinta);border-radius:var(--r)}
.cta-box h2{color:var(--en-tinta)}.cta-box p{color:#a9a9a5}
.cta-box .btn.solid{background:var(--en-tinta);color:var(--ink);border-color:var(--en-tinta)}.cta-box .btn.solid:hover{background:#fff}

.tq figcaption b{color:var(--en-tinta)}.tq figcaption span{color:var(--en-tinta)}
.process:has(.pstep.nophoto){grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px}
.pstep.nophoto{max-width:none;border-top:1px solid var(--ink);padding-top:20px}

.hbadge{position:absolute;left:5vw;bottom:28px;z-index:2;margin:0;display:flex;align-items:baseline;gap:14px;background:var(--paper-w);color:var(--ink);padding:14px 26px;border-radius:var(--r)}
.hbadge b{font:300 clamp(34px,4vw,54px)/1 var(--serif)}
.hbadge span{font:500 12px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
@media(max-width:820px){.hbadge{left:16px;bottom:16px;padding:10px 18px}}

.agenda-float{position:fixed;right:84px;bottom:20px;z-index:30;height:54px;padding:0 26px;display:inline-flex;align-items:center;border-radius:999px;background:var(--ink);color:var(--en-tinta);font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;transition:.25s}
.agenda-float:hover{background:var(--grafito);transform:translateY(-2px)}
@media(max-width:520px){.agenda-float{left:16px;right:84px;justify-content:center;padding:0 14px;font-size:11px;letter-spacing:.14em}}
