/* Artbyflopy — hoja de estilos
   Paleta tomada del brochure. Editar los valores de :root cambia todo el sitio. */

:root{
  --crema:#F6F1EA;
  --crema-2:#EFE7DD;
  --beige:#DFCDBE;
  --taupe:#C4AD9A;
  --cafe:#8C6F58;
  --cafe-osc:#3A2E25;
  --tinta:#2A211B;
  --gris:#6B5A4C;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--crema);color:var(--cafe-osc);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--cafe-osc);text-decoration:none;transition:color .3s}
a:hover{color:var(--cafe)}
::selection{background:var(--beige);color:var(--tinta)}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:300;color:var(--tinta)}
.eyebrow{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--cafe)}
.pad{padding-left:44px;padding-right:44px}
.wrap{max-width:1500px;margin:0 auto}
.btn{display:inline-block;background:var(--cafe-osc);color:var(--crema);border:0;border-radius:999px;padding:14px 26px;font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;transition:background .3s}
.btn:hover{background:var(--cafe);color:var(--crema)}
.btn-ghost{display:inline-block;border:1px solid rgba(58,46,37,.3);border-radius:999px;padding:14px 26px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;transition:background .3s,color .3s}
.btn-ghost:hover{background:var(--cafe-osc);color:var(--crema)}

/* cursor */
#abf-cursor{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid var(--cafe);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-100px,-100px);transition:width .25s,height .25s,margin .25s,background-color .25s,opacity .3s;mix-blend-mode:multiply;opacity:0}
@media (hover:hover) and (pointer:fine){body,a,button,input,textarea,summary,.hgal{cursor:none}}
@media (hover:none){#abf-cursor{display:none}}

/* nav */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:900;display:flex;align-items:center;justify-content:space-between;gap:36px;padding:18px 44px;backdrop-filter:blur(14px);background:rgba(246,241,234,.72);border-bottom:1px solid rgba(58,46,37,.08)}
.site-nav .brand{display:flex;align-items:center;gap:12px}
.site-nav .brand img{width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}
.site-nav .brand span{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--cafe)}
.navlinks{display:flex;align-items:center;gap:34px;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:400}
.nav-actions{display:flex;align-items:center;gap:16px}
.langsw{display:flex;align-items:center;gap:7px}
.langsw button{width:30px;height:20px;padding:0;border:1px solid rgba(58,46,37,.28);border-radius:2px;background:none;overflow:hidden;line-height:0;opacity:.4;filter:saturate(.75);transition:opacity .3s,filter .3s,border-color .3s}
.langsw button svg{display:block;width:100%;height:100%}
.langsw button:hover{opacity:.8;filter:saturate(1)}
.langsw button.is-on{opacity:1;filter:saturate(1);border-color:var(--cafe-osc)}
.nav-actions .btn{padding:11px 22px}
.mobilelinks{display:none}

/* hero */
.hero{position:relative;height:100vh;min-height:620px;overflow:hidden;display:flex;align-items:flex-end}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06)}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(246,241,234,.92) 0%,rgba(246,241,234,.30) 45%,rgba(246,241,234,.10) 100%)}
.hero .inner{position:relative;width:100%;padding:0 44px 72px;display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:end}
.hero h1{font-size:clamp(56px,7.4vw,132px);line-height:.94;letter-spacing:-.02em;text-wrap:balance}
.hero h1 em{font-style:italic;color:var(--cafe)}
.hero .lede{font-family:var(--serif);font-size:21px;line-height:1.5;color:#4A3B31;margin:0 0 26px}
.hero .eyebrow{display:block;margin-bottom:26px}
.link-line{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid rgba(58,46,37,.3);padding-bottom:8px}

/* secciones */
section.block{padding:130px 44px}
.cols{display:grid;gap:70px}
.cols-2a{grid-template-columns:.9fr 1.1fr}
.cols-2b{grid-template-columns:.75fr 1.25fr}
.statement{font-family:var(--serif);font-size:clamp(26px,3vw,46px);line-height:1.28;margin:0 0 48px;color:var(--tinta);text-wrap:pretty}
.section-title{font-size:clamp(38px,5vw,78px);line-height:1}

/* servicios */
.grid-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px;background:rgba(58,46,37,.12)}
.grid-lines>div{background:var(--crema);padding:32px 26px 38px}
.grid-lines .num{font-size:10px;letter-spacing:.28em;color:var(--taupe);margin-bottom:18px}
.grid-lines h3{font-size:24px;font-weight:400;margin-bottom:10px}
.grid-lines p{font-size:14.5px;line-height:1.65;color:var(--gris);margin:0}

/* imagen lateral de servicios */
.side-shot{overflow:hidden;aspect-ratio:3/4;background:#E0D3C6;position:sticky;top:120px}
.side-shot img{width:100%;height:100%;object-fit:cover}

/* colecciones */
.coll{padding:110px 0 130px;background:var(--crema-2)}
.coll-head{padding:0 44px 52px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap}
.coll-head p{max-width:340px;font-size:14.5px;line-height:1.7;color:var(--gris);margin:0}
.hgal{display:flex;gap:26px;overflow-x:auto;padding:0 44px 10px;scroll-snap-type:x mandatory;scrollbar-width:none}
.hgal::-webkit-scrollbar{height:0}
.hgal figure{flex:0 0 min(72vw,860px);margin:0;scroll-snap-align:center}
.hgal .shot{overflow:hidden;aspect-ratio:16/9;background:#E0D3C6}
.hgal .shot img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.hgal figure:hover .shot img{transform:scale(1.05)}
.hgal figcaption{display:flex;justify-content:space-between;align-items:baseline;padding-top:16px;gap:20px}
.hgal figcaption .name{font-family:var(--serif);font-size:27px}
.hgal figcaption .tag{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cafe)}
.hgal .cta-card{flex:0 0 min(60vw,520px);display:flex;flex-direction:column;justify-content:center;gap:22px;padding-right:44px}
.hgal .cta-card p{font-family:var(--serif);font-size:30px;line-height:1.35;margin:0;color:var(--tinta)}
.hgal .cta-card a{align-self:flex-start}

/* proceso */
.etapas{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(58,46,37,.14)}
.etapas>div{background:var(--crema);padding:38px 30px 46px}
.etapas .head{display:flex;align-items:baseline;gap:14px;margin-bottom:26px}
.etapas .n{font-family:var(--serif);font-size:62px;line-height:1;color:var(--beige)}
.etapas .lbl{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--cafe)}
.etapas ul{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:15px;line-height:1.6;color:var(--gris)}

/* sobre */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.split .ph{overflow:hidden;min-height:520px}
.split .ph img{width:100%;height:100%;object-fit:cover}
.sobre-txt{background:var(--cafe-osc);color:var(--crema-2);padding:110px 70px;display:flex;flex-direction:column;justify-content:center}
.sobre-txt .eyebrow{color:var(--taupe);margin-bottom:26px}
.sobre-txt .big{font-family:var(--serif);font-size:clamp(24px,2.4vw,38px);line-height:1.38;margin:0 0 28px;text-wrap:pretty}
.sobre-txt .body{font-size:15.5px;line-height:1.8;color:#CBBBAA;margin:0 0 40px;max-width:52ch}
.facts{display:flex;gap:38px;flex-wrap:wrap;border-top:1px solid rgba(239,231,221,.2);padding-top:30px}
.facts .v{font-family:var(--serif);font-size:36px;line-height:1}
.facts .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin-top:6px}

/* faq */
.faq-list{border-top:1px solid rgba(58,46,37,.16)}
.faq-list details{border-bottom:1px solid rgba(58,46,37,.16);padding:24px 0}
.faq-list summary{list-style:none;font-family:var(--serif);font-size:25px;color:var(--tinta)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list p{font-size:15px;line-height:1.75;color:var(--gris);margin:16px 0 4px;max-width:62ch}

/* contacto */
.contacto{background:var(--crema-2)}
.contacto .form-side{padding:120px 70px}
.contacto h2{margin-bottom:22px}
.contacto .intro{font-size:15.5px;line-height:1.8;color:var(--gris);margin:0 0 44px;max-width:46ch}
.abf-form{display:grid;max-width:520px}
.abf-form input,.abf-form textarea{background:none;border:0;border-bottom:1px solid rgba(58,46,37,.25);padding:16px 0;font-family:var(--sans);font-size:15px;color:var(--tinta);outline:none}
.abf-form textarea{resize:vertical}
.abf-form input:focus,.abf-form textarea:focus{border-bottom-color:var(--cafe)}
.abf-form button{margin-top:34px;justify-self:start;border:0}
.form-msg{min-height:22px;margin-top:14px;font-size:13px;color:var(--cafe)}
.contacto .ph{position:relative;overflow:hidden;min-height:520px}
.contacto .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.social-bar{position:absolute;inset:auto 0 0 0;padding:38px;background:linear-gradient(to top,rgba(58,46,37,.85),rgba(58,46,37,0));display:flex;gap:14px;flex-wrap:wrap}
.social-bar .wa{background:var(--crema);color:var(--tinta);border-radius:999px;padding:13px 24px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase}
.social-bar .wa:hover{background:var(--beige)}
.social-bar .ig{border:1px solid rgba(246,241,234,.6);color:var(--crema);border-radius:999px;padding:13px 24px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase}
.social-bar .ig:hover{color:var(--beige);border-color:var(--beige)}

/* footer */
.site-footer{padding:70px 44px 44px;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;border-top:1px solid rgba(58,46,37,.12)}
.site-footer .brand{display:flex;align-items:center;gap:16px}
.site-footer .brand img{width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply}
.site-footer .meta{font-size:12.5px;line-height:1.7;color:var(--gris)}
.site-footer nav{display:flex;gap:26px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cafe)}

/* reveals */
[data-reveal].is-hidden{opacity:0;transform:translateY(26px)}
[data-reveal]{transition:opacity .9s cubic-bezier(.19,1,.22,1),transform 1s cubic-bezier(.19,1,.22,1)}

@media (max-width:1160px){
  .navlinks{gap:20px;font-size:11.5px}
  .langsw{gap:5px}
  .langsw button{width:26px;height:17.5px}
  .site-nav{padding-left:24px;padding-right:24px}
}
@media (max-width:1060px){
  .navlinks{display:none}
  .mobilelinks{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:899;background:rgba(246,241,234,.94);backdrop-filter:blur(14px);border-top:1px solid rgba(58,46,37,.12)}
  .mobilelinks a{flex:1;text-align:center;padding:15px 6px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border-left:1px solid rgba(58,46,37,.08)}
  .mobilelinks a:first-child{border-left:0}
  body{padding-bottom:50px}
}
@media (max-width:1024px){
  .sobre-txt{padding:90px 44px}
  .contacto .form-side{padding:90px 44px}
  .etapas{grid-template-columns:1fr}
}
@media (max-width:860px){
  .pad,section.block,.coll-head,.hgal,.site-nav,.site-footer{padding-left:22px;padding-right:22px}
  section.block{padding-top:90px;padding-bottom:90px}
  .cols,.cols-2a,.cols-2b,.split{grid-template-columns:1fr!important;gap:40px}
  .hero .inner{grid-template-columns:1fr;padding:0 22px 48px}
  .hero h1{font-size:clamp(44px,12vw,80px)}
  .split .ph,.contacto .ph{min-height:340px}
  .side-shot{position:static;aspect-ratio:16/10}
}

/* retrato de Flopy */
.split .ph.retrato img{object-position:center 22%}

/* imagen de "cómo nace": encuadra el muro con patrón */
#sobre .ph img{object-position:center 24%}
