/* ============================================================
   ARQUITHEL — page sections
   ============================================================ */

/* ---------- HOME hero ---------- */
.home-hero{min-height:78vh;display:flex;align-items:center;}
.home-hero .hero-img{filter:grayscale(.1);}
.home-hero .hero-shade{background:linear-gradient(90deg,rgba(244,241,234,.55),rgba(244,241,234,.1));}
.home-hero .wrap{position:relative;z-index:2;width:100%;}
.home-hero .h-row{display:flex;align-items:center;justify-content:space-between;gap:30px;}
.home-hero h1{font-size:34px;font-weight:400;color:#2c3138;line-height:1.25;margin:0 0 26px;}
.home-hero h1 b{font-weight:800;}
.home-hero h1 .big{display:block;font-weight:800;font-size:38px;}
.home-hero .h-btns{display:flex;gap:16px;flex-wrap:wrap;}
.home-hero .h-aside{display:flex;flex-direction:column;align-items:center;gap:22px;}
.chevrons{display:flex;flex-direction:column;gap:0;color:var(--teal);}
.chevrons svg{width:64px;height:34px;margin-top:-12px;animation:chevFlow 1.4s cubic-bezier(.45,0,.25,1) infinite;}
.chevrons svg:nth-child(1){animation-delay:0s;}
.chevrons svg:nth-child(2){animation-delay:.2s;}
.chevrons svg:nth-child(3){animation-delay:.4s;}
@keyframes chevFlow{
  0%{opacity:.15;transform:translateY(-14px);}
  45%{opacity:1;transform:translateY(0);}
  100%{opacity:.15;transform:translateY(14px);}
}
@media(prefers-reduced-motion:reduce){.chevrons svg{animation:none;opacity:1;}}

/* ---------- stats ---------- */
.stats{background:transparent;padding:40px 0;}
.stats .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.stat{display:flex;align-items:center;gap:14px;}
.stat .num{font-size:52px;font-weight:800;color:var(--teal);line-height:1;letter-spacing:-.02em;}
.stat .lbl{font-size:15px;color:#8b9096;line-height:1.2;max-width:120px;}

/* ---------- intro logos block ---------- */
.intro{background:transparent;padding:30px 0 60px;text-align:center;}
.intro-logos{display:flex;align-items:center;justify-content:center;gap:60px;margin-bottom:34px;flex-wrap:wrap;}
.intro-logos .brothel{font-size:20px;}
.intro-logos .arquithel{font-size:46px;}
.intro p{font-size:21px;color:#3b414c;max-width:720px;margin:0 auto 26px;line-height:1.4;}

/* ---------- valores zigzag timeline ---------- */
.valores{background:transparent;padding:30px 0 70px;}
.vline{position:relative;max-width:980px;margin:0 auto;}
.vline::before{content:"";position:absolute;left:50%;top:10px;bottom:10px;width:2px;background:rgba(58,139,154,.18);transform:translateX(-50%);}
.vfill{position:absolute;left:50%;top:10px;width:2px;background:var(--teal);transform:translateX(-50%);height:0;will-change:height;}
.vitem{position:relative;width:46%;padding:16px 0 40px;opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;}
.vitem.in{opacity:1;transform:none;}
.vitem.left{margin-right:auto;text-align:left;padding-right:40px;}
.vitem.right{margin-left:auto;text-align:left;padding-left:40px;}
.vitem h3{font-size:25px;font-weight:800;color:#2c3138;margin:0 0 16px;}
.vitem p{font-size:14px;color:#5b626c;margin:0 0 12px;line-height:1.5;}
.vitem p b{color:#3b414c;}
.vitem::after{content:"";position:absolute;top:24px;width:18px;height:18px;border-radius:50%;background:#cdd2d4;transition:background .4s ease,transform .4s ease;}
.vitem.in::after{background:var(--teal);transform:scale(1.12);}
.vitem.left::after{right:-9px;}
.vitem.right::after{left:-9px;}
.vitem .vconn{position:absolute;top:32px;height:2px;background:#cdd2d4;transition:background .5s ease;}
.vitem.in .vconn{background:var(--teal);}
.vitem.left .vconn{right:0;width:40px;}
.vitem.right .vconn{left:0;width:40px;}

/* ---------- big teal statement band ---------- */
.band-teal{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:60px 0;
}

.band-teal .bt-water{
  position:relative;
}

.band-teal .bw-num{
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
}

.band-teal .bw-anos{
  position:absolute;
  right:0;
  bottom:-20px;
}
.band-teal p{
  max-width:700px;
  margin-left:auto;
  margin-right:40px;
}
.band-teal p b{font-weight:800;}

/* ---------- proyectos mosaico-carrusel (home) ---------- */
.gallery{background:transparent;padding:60px 0 70px;}
.gallery .g-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap;}
.gallery .g-head h2{font-size:34px;font-weight:800;color:var(--teal);margin:0;}
.gallery .g-head .g-sub{text-align:right;font-size:20px;color:#3b414c;line-height:1.3;}
.g-viewport{overflow:hidden;}
.g-rail{display:flex;will-change:transform;transition:transform .9s cubic-bezier(.45,.05,.2,1);}
.mosaic{min-width:100%;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;}
.mosaic .g-left{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px;}
.mosaic .g-right{display:flex;flex-direction:column;gap:14px;align-items:flex-end;}
.mosaic image-slot{border-radius:6px;}
.mosaic .g-left image-slot:nth-child(1){grid-column:1/2;height:130px;}
.mosaic .g-left image-slot:nth-child(2){grid-column:2/3;height:200px;}
.mosaic .g-left image-slot:nth-child(3){grid-column:1/2;height:200px;}
.mosaic .g-left image-slot:nth-child(4){grid-column:2/3;height:130px;}
.mosaic .g-right image-slot.big{width:100%;height:240px;}
.mosaic .g-right image-slot.wide{width:78%;height:150px;}
.g-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;}
.g-dots{display:flex;gap:10px;}
.g-dots button{width:9px;height:9px;border-radius:50%;border:0;background:#cdd2d4;padding:0;cursor:pointer;transition:background .2s,transform .2s;}
.g-dots button.active{background:var(--teal);transform:scale(1.25);}
.g-cta{margin:0;}

/* ---------- servicios (black) ---------- */
.servicios{background:var(--black);color:#fff;position:relative;overflow:hidden;padding:54px 0 70px;}
.serv-water{position:absolute;left:0;top:30px;font-size:170px;font-weight:800;color:rgba(255,255,255,.05);line-height:.8;pointer-events:none;}
.serv-top{position:relative;z-index:2;margin-bottom:60px;text-align:center;}
.serv-top h2{font-size:30px;font-weight:800;line-height:1.2;margin:0 auto;}
.serv-title{text-align:center;position:relative;z-index:2;margin-bottom:40px;}
.serv-title h3{font-size:38px;font-weight:800;margin:0 0 8px;}
.serv-title p{font-size:18px;color:#cfd3d8;margin:0;}
.serv-title p b{color:#fff;}
.serv-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;z-index:2;align-items:stretch;position:relative;}
.serv-col{display:grid;grid-template-rows:54px 380px 54px;}
.serv-col image-slot{grid-row:2;height:380px;}
.serv-col .serv-show{position:relative;border-radius:6px;overflow:hidden;background:#161616;}
.serv-col.lbl-bottom .serv-show{grid-row:1 / 3;}
.serv-col.lbl-top .serv-show{grid-row:2 / 4;}
.serv-show img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 2.4s ease-in-out;}
.serv-show img.on{opacity:1;z-index:1;}
.serv-col .serv-lbl{font-size:17px;font-weight:800;line-height:1.15;align-self:center;}
.serv-col.lbl-top .serv-lbl{grid-row:1;align-self:end;padding-bottom:10px;}
.serv-col.lbl-bottom .serv-lbl{grid-row:3;align-self:start;padding-top:10px;}
.serv-cta{text-align:center;margin-top:46px;position:relative;z-index:2;}

/* ---------- secondary page hero (image + heading + button) ---------- */
.page-hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;}
.page-hero .hero-content{position:relative;z-index:2;}
.page-hero .hero-img{opacity:.6;}
.page-hero .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.3) 100%)!important;}
.page-hero h1{color:#fff;}

/* ---------- trayectoria black hero ---------- */
.tray-hero{background:var(--black);color:#fff;position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;}
.tray-hero .wrap{position:relative;z-index:2;width:100%;}
.tray-hero h1{text-align:right;font-size:46px;font-weight:800;line-height:1.1;margin:0;}
.tray-hero .tray-water{position:absolute;left:0;right:0;bottom:-60px;text-align:center;font-size:340px;font-weight:800;color:rgba(255,255,255,.07);line-height:.8;pointer-events:none;z-index:1;white-space:nowrap;}

/* ---------- timeline scatter ---------- */
.timeline{background:transparent;padding:50px 0 70px;}
.tl-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:nowrap;}
.tl-item{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0;}
.tl-item .yr{font-size:34px;font-weight:800;color:#3b414c;}
.tl-item image-slot{width:100%;}
.tl-item.a{margin-top:30px;}
.tl-item.b{margin-top:120px;}
.tl-item.c{margin-top:230px;}
.tl-item.d{margin-top:60px;}
.tl-item.e{margin-top:170px;}
.tl-item.f{margin-top:80px;}
.tl-item.yr-below .yr{order:2;margin-top:10px;}
.tl-item.yr-above .yr{order:0;margin-bottom:10px;}

/* ---------- testimonials ---------- */
.testi{background:transparent;padding:0 0 70px;}
.testi-band{background:var(--teal);color:#fff;text-align:center;padding:34px 0;margin-bottom:60px;}
.testi-band h2{font-size:44px;font-weight:800;margin:0;}
.testi-carousel{position:relative;max-width:1000px;margin:0 auto;padding:0 50px;overflow:hidden;}
.testi-track-wrap{overflow:hidden;}
.testi-track{display:flex;transition:transform .5s ease;}
.testi-slide{min-width:33.333%;padding:30px 16px 40px;}
.testi-card{background:#fff;border-radius:22px;padding:26px 24px;box-shadow:0 12px 30px rgba(0,0,0,.08);height:300px;display:flex;flex-direction:column;transform:scale(.86);opacity:.72;transition:transform .45s ease,box-shadow .45s ease,opacity .45s ease;transform-origin:center center;}
.testi-slide.feat .testi-card{transform:scale(1.05);opacity:1;box-shadow:0 26px 56px rgba(0,0,0,.18);}
.testi-slide .t-type{text-align:center;font-weight:800;color:#2c3138;font-size:16px;margin-bottom:14px;min-height:54px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .45s ease;}
.testi-slide.feat .t-type{opacity:1;}
.stars{text-align:center;color:var(--gold);font-size:22px;letter-spacing:2px;margin-bottom:8px;flex:0 0 auto;}
.testi-card .t-name{text-align:center;font-weight:800;font-size:21px;color:#2c3138;margin-bottom:12px;flex:0 0 auto;}
.t-quote-wrap{flex:1 1 auto;width:100%;min-height:0;overflow:hidden;position:relative;}
.t-quote-wrap.is-scroll{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);}
.testi-card .t-quote{font-size:14.5px;color:#4b515a;line-height:1.5;text-align:center;will-change:transform;}
.testi-card .t-quote.scrolling{animation:vscroll var(--dur,14s) ease-in-out infinite;}
@keyframes vscroll{0%,9%{transform:translateY(0);}50%,59%{transform:translateY(var(--d,0));}100%{transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.testi-card .t-quote.scrolling{animation:none;}}
.testi-arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--teal);font-size:36px;line-height:1;padding:6px;}
.testi-arrow.prev{left:0;}.testi-arrow.next{right:0;}
.testi-cta{text-align:center;margin-top:30px;}

/* ---------- bitácora (scrolling timeline) ---------- */
.bitacora{background:transparent;color:#2c3138;padding:48px 0 44px;position:relative;overflow:hidden;}
.bita-water{position:absolute;top:14px;left:0;right:0;text-align:center;font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:210px;line-height:.8;color:rgba(58,139,154,.06);letter-spacing:.01em;pointer-events:none;z-index:0;white-space:nowrap;}
.bita-head{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto 4px;padding:0 36px;}
.bita-head h2{font-size:44px;font-weight:800;margin:0 0 10px;letter-spacing:-.01em;}
.bita-head p{font-size:18px;color:#5a616b;margin:0;max-width:680px;line-height:1.5;}
.bita-viewport{position:relative;z-index:1;overflow-x:auto;overflow-y:hidden;cursor:grab;-ms-overflow-style:none;scrollbar-width:none;}
.bita-viewport::-webkit-scrollbar{display:none;}
.bita-viewport.drag{cursor:grabbing;}
.bita-track{position:relative;width:max-content;}
.bita-group{position:absolute;top:0;}
.bita-group .bita-year{position:absolute;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-weight:700;font-size:40px;color:#2f343c;letter-spacing:.01em;z-index:40;line-height:1;}
.bita-group .bita-year.y-l{font-size:54px;}
.bita-group .bita-year.y-s{font-size:30px;}
.bita-ph{position:absolute;object-fit:cover;box-shadow:0 12px 26px rgba(0,0,0,.18);cursor:zoom-in;transition:transform .2s ease,box-shadow .2s ease;}
.bita-ph:hover{transform:scale(1.04);box-shadow:0 20px 40px rgba(0,0,0,.28);z-index:50!important;}

/* --- lightbox --- */
.bita-lb{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;backdrop-filter:blur(4px);}
.bita-lb.open{opacity:1;pointer-events:auto;}
.bita-lb img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:4px;box-shadow:0 32px 80px rgba(0,0,0,.6);transform:scale(.93);transition:transform .3s ease;}
.bita-lb.open img{transform:scale(1);}
.bita-lb-close{position:absolute;top:20px;right:28px;background:none;border:none;color:#fff;font-size:38px;cursor:pointer;line-height:1;opacity:.7;}
.bita-lb-close:hover{opacity:1;}
.bita-lb-year{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:22px;letter-spacing:.06em;opacity:.6;}
.bita-hint{position:relative;z-index:2;max-width:var(--maxw);margin:6px auto 0;padding:0 36px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#9aa0a7;}

/* ---------- proyectos listing ---------- */
.proj-list{background:transparent;padding:60px 0 80px;}
.proj-h1{font-size:clamp(26px,3.2vw,34px);font-weight:800;color:var(--teal);text-align:center;margin:0 0 40px;letter-spacing:-.01em;}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.proj-card .p-img{width:100%;height:380px;border-radius:14px;box-shadow:0 18px 36px rgba(0,0,0,.16);}
.proj-card h2{font-size:40px;font-weight:800;color:#2c3138;margin:24px 0 6px;}
.proj-card .p-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.proj-card .p-status{font-size:18px;color:#3b414c;line-height:1.35;}
.proj-card .p-mid{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:-52px;}
.chev-red{display:flex;flex-direction:column;color:#b03a40;}
.chev-red svg{width:54px;height:28px;margin-top:-10px;animation:chevFlow 1.4s cubic-bezier(.45,0,.25,1) infinite;}
.chev-red svg:nth-child(1){animation-delay:0s;}
.chev-red svg:nth-child(2){animation-delay:.2s;}
.chev-gray{color:#b9b6ae;}
@media(prefers-reduced-motion:reduce){.chev-red svg{animation:none;opacity:1;}}

/* ============================================================
   HERO RESPONSIVE (arquithel V)
   ============================================================ */

/* Desktop por defecto */
.carousel-desktop{
    display:block !important;
}

.carousel-mobile{
    display:none !important;
}

/* Mobile */
@media screen and (max-width:680px){

    .carousel-desktop{
        display:none !important;
    }

    .carousel-mobile{
        display:block !important;
    }

}
.pd-hero{position:relative;overflow:hidden;}
.pd-hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.38);z-index:2;pointer-events:none;}
.pd-hero .pd-hero-overlay{z-index:3;}
.pd-hero .pd-arrow{z-index:4;}
.pd-track-wrap{overflow:hidden;}
.pd-track{display:flex;transition:transform .6s ease;}
.pd-track image-slot,.pd-track .pd-slide{min-width:100%;height:100vh;}
.pd-track .pd-slide{object-fit:cover;display:block;}
.pd-hero-overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;
  align-items:flex-end;justify-content:flex-end;padding:0 40px 34px;pointer-events:none;gap:14px;
  max-width:1280px;margin:0 auto;left:0;right:0;}
.pd-hero-overlay .btn{pointer-events:auto;}
.pd-hero-overlay .pd-tag{color:#fff;text-align:right;font-size:26px;font-weight:700;line-height:1.2;text-shadow:0 2px 10px rgba(0,0,0,.5);}
.pd-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;background:rgba(255,255,255,.55);border:0;border-radius:50%;width:38px;height:38px;color:#2c3138;font-size:22px;line-height:1;}
.pd-arrow.prev{left:14px;}.pd-arrow.next{right:14px;}

.pd-cat{background:var(--teal);color:#fff;text-align:center;padding:18px 0;font-size:26px;font-weight:400;}
.pd-cat b{font-weight:800;}

.pd-feats{background:transparent;padding:40px 0;}
.pd-feats .wrap{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;}
.pd-amb{font-size:40px;font-weight:800;color:#2c3138;line-height:1.05;text-align:center;}
.pd-amb .plus{font-weight:300;font-size:34px;}
.pd-amb small{display:block;font-size:18px;font-weight:400;color:#9a9089;font-style:italic;margin-top:4px;}
.pd-feat-list{list-style:none;margin:0;padding:0;text-align:right;}
.pd-feat-list li{font-size:20px;font-weight:800;color:#2c3138;padding:9px 0;border-bottom:1px solid #d8d5cd;}
.pd-feat-list li:last-child{border-bottom:0;}
.pd-tagline{text-align:center;font-size:18px;color:#3b414c;padding:14px 0 8px;}
.pd-tagline b{font-weight:800;}

.pd-ubic{background:#fff;position:relative;}
.pd-ubic .ub-title{background:var(--slate);color:#fff;font-weight:800;line-height:1;padding:16px 28px 0;overflow:hidden;}
.pd-ubic .ub-title .fit-word{transform:translateY(38px);line-height:.82;}
.fit-word{display:inline-block;white-space:nowrap;line-height:.9;}
.pd-ubic .ub-body{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:40px 0;}
.pd-units .units-title{font-weight:800;line-height:1;letter-spacing:-.03em;padding:30px 24px 16px;text-align:center;overflow:hidden;}
.pd-units .units-title .fit-word{transform:translateY(22px);}
.pd-ubic .ub-body h3{font-size:30px;font-weight:400;color:#2c3138;margin:0 0 20px;line-height:1.2;}
.pd-ubic .ub-body .map-embed{width:100%;height:auto;display:block;border-radius:0;background:none;}

.pd-amen{background:#b9c0bd;padding:54px 0 48px;position:relative;}
.pd-amen .amen-grid{max-width:1280px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1fr 230px;}
.pd-amen .amen-main{padding-right:44px;}
.pd-amen .am-row{display:flex;justify-content:space-between;gap:14px;padding-bottom:36px;border-bottom:2px solid #717977;}
.amen{position:relative;display:flex;flex-direction:column;align-items:center;width:100px;}
.amen .am-ic{width:106px;height:106px;position:relative;z-index:2;}
.amen .am-ic img{width:100%;height:100%;display:block;}
.amen .am-cap{background:#fff;width:82px;min-height:316px;margin-top:-52px;border-radius:42px;display:flex;align-items:center;justify-content:center;padding:58px 0 26px;box-sizing:border-box;}
.amen .am-lbl{writing-mode:vertical-rl;transform:rotate(180deg);font-size:19px;font-weight:700;letter-spacing:.01em;color:#3b414c;white-space:nowrap;}
.pd-amen .am-foot{margin-top:34px;}
.pd-amen .am-foot p{font-size:30px;color:#3b414c;margin:0;line-height:1.24;}
.pd-amen .am-foot .am-big{font-size:48px;font-weight:800;color:#2c3138;margin-top:8px;}
.pd-amen .am-rail{border-left:2px solid #717977;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;}
.pd-amen .am-units{display:flex;flex-direction:column;align-items:center;color:#9aa19e;}
.pd-amen .am-units svg{width:86px;height:46px;margin-top:-16px;animation:chevFlow 1.4s cubic-bezier(.45,0,.25,1) infinite;}
.pd-amen .am-units svg:nth-child(1){animation-delay:0s;}
.pd-amen .am-units svg:nth-child(2){animation-delay:.2s;}
.pd-amen .am-units svg:nth-child(3){animation-delay:.4s;}
.pd-amen .am-unidades{display:inline-block;border:2px solid #2c3138;border-radius:30px;padding:12px 32px;font-size:20px;color:#2c3138;background:transparent;text-decoration:none;transition:background .2s,color .2s;}
.pd-amen .am-unidades:hover{background:#2c3138;color:#fff;}
@media(prefers-reduced-motion:reduce){.pd-amen .am-units svg{animation:none;opacity:1;}}

/* unidades accordion (black) */
.pd-units{background:var(--black);color:#fff;padding:0 0 70px;overflow:hidden;}
.pd-units .units-title{background:#fff;color:var(--black);font-weight:800;line-height:1;letter-spacing:-.03em;padding:16px 24px 0;text-align:center;overflow:hidden;}}
.pd-units .units-title .fit-word{transform:translateY(80px);line-height:.82;}
.acc-item{border-top:1px solid rgba(255,255,255,.25);}
.acc-item:last-child{border-bottom:1px solid rgba(255,255,255,.25);}
.acc-head{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:18px 0;}
.acc-head .sz{font-size:72px;font-weight:800;line-height:1;}
.acc-head .sz sup{font-size:.5em;vertical-align:super;}
.acc-head .tg{font-size:46px;font-weight:300;line-height:1;color:#fff;width:30px;text-align:center;}
.acc-head .tg::before{content:"+";}
.acc-item.open .acc-head .tg::before{content:"\2212";}
.acc-item:not(.open) .acc-head .sz{color:rgba(255,255,255,.35);}
.acc-item:not(.open) .acc-head{padding:12px 0;}
.acc-item:not(.open) .acc-head .sz{font-size:56px;}
.acc-body{display:none;padding:6px 0 30px;}
.acc-item.open .acc-body{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:start;}
.acc-feats{list-style:none;margin:0;padding:0;}
.acc-feats li{display:flex;align-items:center;gap:10px;font-size:15px;padding:4px 0;color:#e8e8e8;}
.acc-feats li::before{content:"✓";color:var(--teal);font-weight:800;font-size:15px;flex:0 0 auto;}
.acc-price{text-align:right;display:flex;flex-direction:column;align-items:flex-end;}
.acc-price .from{font-size:15px;color:#cfd3d8;}
.acc-price .amt{font-size:34px;font-weight:800;margin:2px 0 18px;}
.acc-price .btn{display:inline-flex;width:240px;box-sizing:border-box;padding:13px 26px;margin:8px 0 0;}

.pd-fin{background:var(--teal);color:#fff;text-align:center;padding:36px 0;}
.pd-fin p{font-size:24px;margin:0 0 16px;}
.pd-fin p b{font-weight:800;}

/* ---------- planos modal (lightbox) ---------- */
.plan-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:40px;}
.plan-modal[hidden]{display:none;}
.plan-backdrop{position:absolute;inset:0;background:rgba(18,20,22,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.plan-dialog{position:relative;z-index:1;background:none;border:0;box-shadow:none;padding:0;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:90vh;}
.plan-close{position:fixed;top:22px;right:26px;background:none;border:0;font-size:42px;line-height:1;color:#fff;opacity:.85;z-index:2;}
.plan-close:hover{opacity:1;}
.plan-group[hidden]{display:none;}
.plan-group{display:block;}
.plan-group image-slot{display:block;width:min(86vw,1100px);height:82vh;background:none;border:0;}

/* ---------- proveedores / empleo intro ---------- */
.fg-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px 40px;}
.fg-2{display:grid;grid-template-columns:1fr 1fr;gap:26px 40px;align-items:start;}
.fg-stack{display:grid;gap:26px;align-content:start;}
@media(max-width:900px){.fg-3,.fg-2{grid-template-columns:1fr;}}

.work-intro{background:transparent;padding:60px 0;position:relative;overflow:hidden;text-align:center;}
.work-intro .puzzle{position:absolute;left:0;top:50%;transform:translateY(-50%);width:520px;max-width:48%;height:auto;opacity:.22;pointer-events:none;filter:brightness(0);}
.work-intro h2{font-size:34px;font-weight:800;color:#3b414c;line-height:1.35;margin:0;position:relative;z-index:2;}

/* responsive */
@media(max-width:900px){
  .home-hero .h-row{flex-direction:column;align-items:flex-start;}
  .chevrons{display:none;}
  .stats .wrap{justify-content:space-around;}
  .vitem{width:100%;text-align:left !important;padding-left:40px !important;padding-right:0 !important;}
  .vline::before{left:9px;}
  .vitem::after{left:0 !important;right:auto !important;}
  .vitem .vconn{left:0 !important;right:auto !important;width:28px !important;}
  .mosaic{grid-template-columns:1fr;}
  .mosaic .g-right image-slot.wide{width:100%;}
  .serv-row{grid-template-columns:repeat(2,1fr);}
  .serv-col{grid-template-rows:40px 240px 40px;}
  .serv-col image-slot{height:220px;}
  .serv-col .serv-show{height:240px;}
  .serv-col.lbl-bottom .serv-show,.serv-col.lbl-top .serv-show{grid-row:2;}
  .proj-grid{grid-template-columns:1fr;}
  .tl-row{flex-wrap:wrap;}
  .tl-item{flex:0 0 45%;margin-top:20px !important;}
  .testi-slide{min-width:100%;}
  .pd-feats .wrap,.pd-ubic .ub-body{grid-template-columns:1fr;}
  .pd-feat-list{text-align:center;}
  .pd-ubic .ub-title{font-size:48px;}
  .pd-units .units-title{font-size:64px;}
  .band-teal p,.testi-band h2{font-size:24px;}
  .page-hero h1,.tray-hero h1{font-size:34px;}
  .pd-amen .amen-grid{grid-template-columns:1fr;}
  .pd-amen .amen-main{padding-right:0;}
  .pd-amen .am-row{flex-wrap:wrap;justify-content:center;gap:18px;}
  .pd-amen .am-rail{border-left:0;border-top:2px solid #717977;flex-direction:row;justify-content:center;gap:30px;padding-top:24px;margin-top:24px;}
  .pd-amen .am-foot p{font-size:24px;}
  .pd-amen .am-foot .am-big{font-size:38px;}
}

/* mobile project gallery — hidden on desktop, shown <=680px */
.mgal{display:none;}

/* ============================================================
   PHONE (<=680px) — mobile design per spec
   ============================================================ */
@media(max-width:680px){
    
    /* --- carousel: show mobile, hide desktop --- */
  .carousel-desktop{display:none;}
  .carousel-mobile{display:block;}
  /* --- trayectoria black hero: shorter (not a full black screen) + no "40 años" --- */
  .tray-hero{min-height:56vh;}
  .tray-hero .tray-water{display:none;}

  /* --- home hero: text + CTAs anchored bottom-left, two buttons in a row --- */
  .home-hero{min-height:72vh;align-items:flex-end;}
  .home-hero .wrap{padding-bottom:30px;}
  .home-hero .hero-shade{background:linear-gradient(0deg,rgba(244,241,234,.6),rgba(244,241,234,.05) 55%)!important;}
  .home-hero .h-row{flex-flow:row wrap;align-items:flex-start;gap:12px;}
  .home-hero .h-row > div:first-child{display:contents;}
  .home-hero h1{width:100%;font-size:29px;line-height:1.2;margin:0 0 8px;}
  .home-hero h1 .big{font-size:29px;}
  .home-hero .h-btns{margin:0;}
  .home-hero .h-aside{flex-direction:row;width:auto;gap:0;}
  .home-hero .btn{padding:11px 18px;font-size:13px;}
  /* --- pozo CTA: no chevrons on mobile, so pulse to invite the tap --- */
  .home-hero .h-aside .btn-teal{animation:pozoPulse 1.5s ease-in-out infinite;}

  /* --- stats: removed on mobile per spec --- */
  .stats{display:none;}

  /* --- intro logos --- */
  .intro{padding:26px 0 44px;}
  .intro-logos{gap:18px;margin-bottom:24px;}
  .intro-logos .arquithel{font-size:32px;}
  .intro-logos .arq-logo-img{height:42px;}
  .intro-logos .brothel-logo{height:40px;}
  .intro p{font-size:18px;}
  .intro p .m-bold{font-weight:800;}

  /* --- valores: line + teal fill on the LEFT, through the dots --- */
  .valores{padding:20px 0 50px;}
  .vline::before,
  .vfill{left:9px;transform:none;}
  .vitem h3{font-size:22px;}

  /* --- teal band: centered, no watermark number (override inline height/padding) --- */
  .band-teal{height:auto!important;padding:38px 0!important;}
  .band-teal p{text-align:center;margin:0 auto;font-size:21px;line-height:1.3;}
  .band-teal .bw-num,
  .band-teal .bw-anos{display:none;}

  /* --- gallery: heading + CTA, then single-image fade carousel + peek strip --- */
  .gallery{padding:44px 0 50px;}
  .gallery .wrap{display:flex;flex-direction:column;}
  .gallery .g-head{order:0;flex-direction:column;align-items:center;text-align:center;gap:8px;margin-bottom:14px;}
  .gallery .g-head h2{font-size:28px;}
  .gallery .g-head .g-sub{text-align:center;font-size:16px;}
  .gallery .g-foot{order:1;justify-content:center;margin:0 0 16px;}
  .gallery [data-gallery-dots]{display:none;}
  .gallery .g-viewport{order:2;overflow:visible;}
  .gallery [data-gallery-rail]{display:none;}
  .mgal{display:block;}
  .mgal-stage{position:relative;width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:#dcdcdc;}
  .mgal-stage > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease;}
  .mgal-stage > img.on{opacity:1;}
  .mgal-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:none;border:0;border-radius:0;width:44px;height:60px;color:#fff;font-size:50px;line-height:1;display:flex;align-items:center;justify-content:center;text-shadow:0 2px 10px rgba(0,0,0,.55);padding:0;}
  .mgal-arrow.prev{left:4px;}
  .mgal-arrow.next{right:4px;}
  .mgal-strip{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;}
  .mgal-strip::-webkit-scrollbar{display:none;}
  .mgal-strip img{flex:0 0 31%;height:74px;object-fit:cover;border-radius:4px;opacity:.5;transition:opacity .35s ease;cursor:pointer;}
  .mgal-strip img.cur{opacity:1;}

  /* --- servicios: full-width stacked bands, label above each image --- */
  .servicios{padding:40px 0 50px;}
  .serv-water{font-size:110px;}
  .serv-top{margin-bottom:30px;}
  .serv-top h2{font-size:21px;font-weight:400;}
  .serv-title{display:none;}
  .serv-row{grid-template-columns:1fr;gap:4px;}
  .serv-col{display:flex;flex-direction:column;margin-bottom:10px;}
  .serv-col .serv-show{position:relative;grid-row:auto;height:200px;border-radius:4px;}
  .serv-col.lbl-bottom .serv-show,.serv-col.lbl-top .serv-show{grid-row:auto;}
  .serv-col image-slot{height:auto;}
  .serv-col .serv-lbl,
  .serv-col.lbl-top .serv-lbl,
  .serv-col.lbl-bottom .serv-lbl{order:-1;grid-row:auto;align-self:center;text-align:center;font-size:20px;padding:6px 0 12px;}
  .serv-cta{margin-top:30px;}

  /* --- proyectos detail: keep readable --- */
  .pd-amen .amen-grid{padding:0 26px;}

  /* --- empleo: enlarge puzzle so it reaches the top/bottom of the white band --- */
  .work-intro{padding:34px 0;}
  .work-intro .puzzle{width:150%;max-width:none;height:auto;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.16;}

  /* --- reseñas: a touch taller so long reviews finish scrolling into view --- */
  .testi-card{height:332px;}

  /* ============================================================
     ARQUITHEL V (venta en pozo) — mobile-only
     ============================================================ */
  /* page base in the footer grey tone */
  body.pd-page{background:var(--gray-footer);}

  /* --- HERO: text + button bottom-LEFT, black --- */
  .pd-hero::after{background:linear-gradient(0deg,rgba(231,232,234,.92),rgba(231,232,234,.2) 34%,rgba(231,232,234,0) 58%);}
  .pd-hero-overlay{align-items:flex-start;justify-content:flex-end;padding:0 24px 38px;gap:16px;text-align:left;}
  .pd-hero-overlay .pd-tag{color:var(--black);text-align:left;text-shadow:none;font-size:23px;line-height:1.15;}
  .pd-hero-overlay .pd-tag .m-reg{font-weight:400;}
  .pd-hero-overlay .btn{border-color:var(--black);color:var(--black);background:transparent;}

  /* --- category band: "de alta categoria" bold --- */
  .pd-cat{font-size:19px;padding:14px 20px;}
  .pd-cat .m-bold{font-weight:800;}

  /* --- FEATS: white bg, scattered grey pills (animated via existing JS) --- */
  .pd-feats{background:#fff;padding:34px 0 28px;overflow:hidden;}
  .pd-feats .wrap{grid-template-columns:1fr;gap:20px;}
  .pd-amb{font-size:42px;line-height:1.15;text-align:center;color:#2c3138;}
  .pd-amb .amb-num{font-weight:800;}
  .pd-amb .amb-word{font-weight:400;}
  .pd-amb .plus{font-size:34px;font-weight:300;}
  .pd-amb small{font-size:16px;}
  .pd-feat-list{display:flex;flex-direction:column;gap:9px;align-items:stretch;}
  .pd-feat-list li{border-bottom:0;background:#ececec;color:var(--teal);font-size:13px;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;padding:12px 22px;border-radius:3px;
    width:72%;text-align:center;}
  .pd-feat-list li:nth-child(odd){margin-left:auto;margin-right:0;align-self:auto;}
  .pd-feat-list li:nth-child(even){margin-left:0;margin-right:auto;align-self:auto;}
  .pd-feat-list li:nth-child(1){align-self:auto;}
  .pd-feat-list li:nth-child(2){align-self:auto;}
  .pd-feat-list li:nth-child(3){align-self:auto;}
  .pd-feat-list li:nth-child(4){align-self:auto;}
  .pd-feat-list li:nth-child(5){align-self:auto;}
  .pd-feat-list li:nth-child(6){align-self:auto;}
  .pd-feat-list li:nth-child(7){align-self:auto;}
  .pd-tagline{font-size:25px !important;padding:8px 0 0;}

  /* --- UBICACIÓN: title readable, big map first, text+button row below --- */
  .pd-ubic{background:#fff;}
  .pd-ubic .ub-title .fit-word{transform:translateY(10px);line-height:.82;}
  .pd-ubic .ub-body{display:flex;flex-direction:column;gap:16px;padding:16px 0 30px;}
  .pd-ubic .ub-body > div:first-child{order:2;display:flex;align-items:center;justify-content:space-between;gap:14px;}
  .pd-ubic .ub-body h3{font-size:17px;margin:0;line-height:1.25;}
  .pd-ubic .ub-body .btn{flex:0 0 auto;padding:9px 18px;font-size:12px;margin:0;white-space:nowrap;}
  .pd-ubic .ub-body .map-embed{order:1;width:100%;min-height:60vh;object-fit:cover;}

  /* --- AMENITIES "sentirse en casa": stacked icon + horizontal pill --- */
  .pd-amen{background:var(--gray-footer);padding:36px 0 38px;}
  .pd-amen .amen-grid{grid-template-columns:1fr;}
  .pd-amen .amen-main{padding-right:0;display:flex;flex-direction:column;}
  .pd-amen .am-foot{order:-1;margin:0 0 24px;text-align:center;}
  .pd-amen .am-foot p{font-size:18px;}
  .pd-amen .am-foot .am-big{font-size:30px;}
  .pd-amen .am-row{flex-direction:column;gap:16px;padding-bottom:0;border-bottom:0;}
  .pd-amen .amen{flex-direction:row;width:100%;align-items:center;}
  .pd-amen .amen .am-ic{width:64px;height:64px;flex:0 0 64px;margin:0;z-index:2;}
  .pd-amen .amen .am-cap{width:auto;min-height:0;margin:0 0 0 -20px;border-radius:40px;
    padding:15px 24px 15px 38px;flex:1;justify-content:flex-start;box-shadow:0 2px 10px rgba(0,0,0,.08);}
  .pd-amen .amen .am-lbl{writing-mode:horizontal-tb;transform:none;font-size:16px;}
  .pd-amen .am-rail{border-left:0;flex-direction:row;justify-content:center;gap:0;margin-top:28px;}
  .pd-amen .am-units{display:none;}
  .pd-amen .am-unidades{font-size:16px;padding:9px 32px;}

  .pd-units .units-title .fit-word{transform:translateY(12px);}

  /* --- UNIDADES accordion: open state per mockup --- */
  .acc-head .sz{font-size:52px;}
  .acc-head .tg{font-size:34px;}
  .acc-item:not(.open) .acc-head .sz{font-size:38px;}
  .acc-item.open .acc-body{display:flex;flex-direction:column;gap:18px;}
  .acc-feats li{font-size:13px;}
  .acc-price{display:grid;grid-template-columns:1fr 150px;grid-template-areas:"from planos" "amt disp";
    column-gap:14px;row-gap:8px;align-items:center;text-align:left;width:100%;}
  .acc-price .from{grid-area:from;align-self:end;}
  .acc-price .amt{grid-area:amt;align-self:start;font-size:26px;margin:0;}
  .acc-price .btn[data-plan-open]{grid-area:planos;}
  .acc-price a.btn{grid-area:disp;}
  .acc-price .btn{width:100%;margin:0;padding:11px 16px;font-size:13px;}

  /* --- FINANCING: "personalizadas" bold --- */
  .pd-fin{padding:32px 0;}
  .pd-fin p{font-size:20px;}
  .pd-fin p .m-bold{font-weight:800;}
}

/* ============================================================
   NARROW PHONES (<=400px) — keep logos & titles tidy
   ============================================================ */
@media(max-width:400px){
  /* home intro logos: keep all three on one row */
  .intro-logos{gap:11px;flex-wrap:nowrap;}
  .intro-logos .brothel-logo{height:30px;}
  .intro-logos .arq-logo-img{height:32px;}
  /* arquithel V hero arrows: a touch smaller, clear of the bottom text */
  .pd-hero .pd-arrow{width:32px;height:32px;font-size:19px;top:40%;}
  
}

/* ---------- pozo CTA pulse (mobile invite-to-tap) ---------- */
@keyframes pozoPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(58,139,154,.55);}
  50%{transform:scale(1.06);box-shadow:0 0 0 12px rgba(58,139,154,0);}
}
@media(prefers-reduced-motion:reduce){
  .home-hero .h-aside .btn-teal{animation:none;}
}