:root{--bg:#111111;--panel:#191919;--panel-2:#202020;--line:#353535;--text:#f5f5f4;--muted:#b7b7b5;--red:#e50c0f;--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',sans-serif;--display:'Manrope',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);font:16px var(--sans)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}
.top{height:75px;padding:0 max(calc((100vw - 1180px)/2),24px);display:flex;align-items:center;justify-content:space-between;background:#090909;border-bottom:1px solid #252525;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;font:800 17px/1.05 var(--display);letter-spacing:.3px}.brand img{width:49px;height:46px;object-fit:contain}.brand small{display:block;color:#b7b7b5;font:9px var(--mono);letter-spacing:1.3px;margin-top:7px}.head-right{display:flex;gap:20px;align-items:center}.mainlink{border:1px solid #303030;border-radius:28px;padding:11px 17px;color:#c4c4c2;font-size:13px}.phone{color:var(--red);font-weight:800}.crumb{height:50px;max-width:1180px;margin:auto;display:flex;gap:20px;align-items:center;color:#92928f;font:10px var(--mono);letter-spacing:2px;padding:0}.crumb a{color:#c5c5c2}.crumb i{font-style:normal;color:#636361}
.hero{height:774px;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid #242424}.hero-photo{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,6,6,.86),rgba(7,7,7,.58) 40%,rgba(7,7,7,.10) 76%),linear-gradient(0deg,rgba(7,7,7,.54),transparent 36%),url('/assets/hero-casa-viva-trades.png') center/cover no-repeat}.hero-in{position:relative;max-width:1180px;margin:auto;width:100%;padding:20px 0 0}.eyebrow,label{color:var(--red);font:600 11px var(--mono);letter-spacing:2px}.hero .eyebrow{color:#f1f1ef}.eyebrow:before{content:'';display:inline-block;width:23px;height:2px;background:var(--red);vertical-align:middle;margin-right:12px}.hero h1{font:800 50px/1.12 var(--display);letter-spacing:-1.6px;max-width:740px;margin:18px 0 22px}.hero h1 em{color:inherit;font-style:normal}.hero-in>p{font-size:18px;line-height:1.68;color:#dadad8;max-width:665px;margin:0}.actions{display:flex;gap:13px;margin-top:28px}.red-button,.outline{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;min-height:57px;padding:0 23px;font-weight:800;font-size:14px}.red-button{background:var(--red);color:#fff;border:1px solid var(--red);cursor:pointer}.red-button:hover{background:#c90006;border-color:#c90006}.outline{border:1px solid #777;background:rgba(10,10,10,.58)}.sig{margin-top:48px;color:#e8e8e6;font:10px var(--mono);letter-spacing:1.7px}.sig b{color:var(--red);padding:0 5px}.image-note{position:absolute;right:24px;bottom:18px;font:10px var(--mono);letter-spacing:.5px;color:#ecece9;background:#0808088a;padding:6px 9px;border-radius:3px}
.sec{padding:90px 24px;background:var(--bg);border-bottom:1px solid #282828}.sec.alt{background:#181818;position:relative}.wrap{max-width:1180px;margin:auto}.sec h2{font:800 42px/1.12 var(--display);letter-spacing:-1px;margin:16px 0}.sec h3{font-weight:800}.lead{color:#c2c2bf;font-size:18px;line-height:1.65;max-width:770px}.sec label{display:block}.sec p{line-height:1.7;color:#c0c0bd}.trade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:31px}.trade,.feature-grid article,.step-grid article{background:#111;border:1px solid #393939;border-radius:6px;padding:24px}.trade{min-height:252px;display:flex;flex-direction:column}.trade>b,.feature-grid b,.step-grid b{font:11px var(--mono);color:var(--red)}.trade h3{font:800 20px var(--display);margin:20px 0 4px}.trade p{margin:5px 0 16px;font-size:14px}.trade a{color:var(--red);font-weight:700;font-size:13px;margin-top:auto}.trade a span{margin-left:6px}.wide{max-width:890px;font-size:17px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.feature-grid article{min-height:175px}.feature-grid h3{font:700 20px var(--display);margin:16px 0 8px}.feature-grid p{font-size:14px;margin:0}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:30px}.photo-card{position:relative;background:#0b0b0b;border:1px solid #373737;padding:0;cursor:zoom-in;overflow:hidden;min-height:230px}.photo-card img{display:block;width:100%;height:255px;object-fit:cover;transition:transform .35s}.photo-card:hover img{transform:scale(1.035)}.photo-card span{position:absolute;left:11px;bottom:11px;padding:7px 9px;background:#111d;color:white;font:10px var(--mono);letter-spacing:1px}.pricing{background:#0d0d0d}.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:30px}.step-grid article{min-height:190px}.step-grid h3{font:700 19px var(--display);margin:16px 0 6px}.step-grid p{font-size:14px}.quote-note{margin-top:28px;padding:24px;border-left:3px solid var(--red);background:#151515;font-size:22px;font-weight:700}.quote-note span{display:block;color:var(--red);font:10px var(--mono);letter-spacing:1px;margin-top:15px}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faqs{margin-top:3px}.faqs details{border-bottom:1px solid #424242;padding:20px 0}.faqs summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}.faqs summary::-webkit-details-marker{display:none}.faqs summary:after{content:'+';font-size:22px;color:var(--red)}.faqs details[open] summary:after{content:'−'}.faqs p{margin-bottom:0;color:#c5c5c2;font-size:14px}.contact{background:#111;padding-top:70px;padding-bottom:75px}.contact-grid{display:grid;grid-template-columns:1fr .95fr;gap:70px;align-items:start}.contact-grid>div p{font-size:17px;color:#c5c5c2}.contact-grid>div small{display:block;color:#aaa;margin-top:26px}.contact-phone{display:block;color:#f4f4f2;margin:18px 0;font-weight:700}.contact-phone:hover{color:var(--red)}.contact form{background:#191919;border:1px solid #444;border-radius:6px;padding:23px;display:grid;gap:13px}.contact form header{display:flex;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid #383838}.contact form header b{font:600 10px var(--mono);letter-spacing:1px}.contact form header small{font:10px var(--mono);color:var(--red)}.contact form label{font:12px var(--sans);letter-spacing:0;color:#d2d2cf;display:grid;gap:7px}.contact input,.contact textarea,.contact select{width:100%;background:#0b0b0b;border:1px solid #454545;border-radius:4px;color:#fff;padding:12px;font:14px var(--sans)}.contact textarea{resize:vertical}.contact select option{color:#111}.contact form .red-button{width:100%}.contact form p{font-size:11px;color:#aaa;margin:0}.foot{padding:52px max(calc((100vw - 1180px)/2),24px);background:#090909;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:35px;color:#bcbcb9}.foot-brand img{width:50px;vertical-align:middle;margin-right:10px}.foot-brand b{color:#f3f3f0}.foot-brand p{margin:8px 0 0 64px;color:#999;font-size:13px}.foot .foot-links{display:flex;flex-direction:column;align-items:flex-start}.foot .foot-links>b{font:600 10px var(--mono);letter-spacing:1.4px;color:#f1f1ef;margin-bottom:8px}.foot .foot-links a{margin:6px 0;font-size:13px}.foot .foot-links a:hover{color:var(--red)}.foot>small{grid-column:1/-1;border-top:1px solid #292929;padding-top:20px;color:#969693}.mobile-bar{display:none}#photoDialog{border:0;padding:28px;max-width:750px;width:calc(100% - 32px);background:#161616;color:#fff;box-shadow:0 20px 70px #0008}#photoDialog::backdrop{background:#060606c9}#photoDialog img{display:block;width:100%;max-height:72vh;object-fit:contain}#photoDialog p{color:#c4c4c1}.dialog-close{float:right;border:0;background:#282828;font-size:24px;width:36px;height:36px;cursor:pointer;margin-bottom:10px}body.dialog-open{overflow:hidden}
@media(max-width:700px){html{scroll-padding-top:20px}.top{height:70px;padding:0 18px}.brand{gap:9px;font-size:15px}.brand img{width:41px;height:40px}.brand small{font-size:8px;letter-spacing:.8px}.head-right{gap:0}.mainlink{display:none}.phone{width:43px;height:43px;border:1px solid #393939;border-radius:50%;display:grid;place-items:center;font-size:17px}.phone b{display:none}.crumb{height:47px;padding:0 18px;gap:12px;font-size:9px;letter-spacing:1.2px}.hero{height:auto;min-height:670px;align-items:flex-start}.hero-photo{background-position:64% center;background-image:linear-gradient(90deg,rgba(6,6,6,.76),rgba(7,7,7,.45) 58%,rgba(7,7,7,.12)),linear-gradient(0deg,rgba(7,7,7,.58),transparent 43%),url('/assets/hero-casa-viva-trades.png')}.hero-in{padding:47px 20px 57px}.eyebrow{font-size:9px;letter-spacing:1.2px}.hero h1{font-size:34px;line-height:1.08;letter-spacing:-.7px;margin:19px 0 17px}.hero-in>p{font-size:15px;line-height:1.7}.actions{align-items:stretch;flex-direction:column;gap:10px;margin-top:22px}.red-button,.outline{min-height:53px;border-radius:6px;padding:0 17px}.sig{margin-top:32px;font-size:8px;letter-spacing:1px;line-height:1.7}.image-note{right:13px;bottom:10px;font-size:8px}.sec{padding:64px 19px}.sec h2{font-size:31px;letter-spacing:-.45px}.lead{font-size:15px}.trade-grid,.feature-grid,.step-grid,.faq-layout,.contact-grid{grid-template-columns:1fr;gap:10px}.trade{min-height:0;padding:21px}.trade h3{margin:15px 0 2px}.feature-grid article{min-height:0}.step-grid article{min-height:0}.wide{font-size:15px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.photo-card{min-height:0}.photo-card img{height:175px}.faq-layout{gap:24px}.faqs details{padding:17px 0}.contact{padding-top:56px;padding-bottom:68px}.contact-grid{gap:26px}.contact form{padding:18px;gap:11px}.contact form header{flex-wrap:wrap}.foot{padding:42px 20px 95px;grid-template-columns:1fr;gap:22px}.foot>small{grid-column:auto}.mobile-bar{position:fixed;z-index:10;display:grid;grid-template-columns:1fr 1fr 1.1fr;left:0;right:0;bottom:0;height:67px;padding:8px 11px;background:#090909ed;border-top:1px solid #383838;gap:8px}.mobile-bar a{border:1px solid #3a3a3a;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:700}.mobile-bar a:last-child{background:var(--red);border-color:var(--red)}.mobile-bar b{font-size:11px}.quote-note{font-size:19px;padding:20px}}

/* Compact mobile-first project links and trust signals: no individual tiles. */
.project-type-grid,.trust-grid{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:23px}
.project-type-grid{max-width:590px}
.trust-grid{max-width:630px}
.info-card{position:relative;display:flex;min-width:0;align-items:center;justify-content:center;gap:8px;padding:5px 2px;border:0;border-radius:0;background:transparent;color:var(--text);transition:color .2s,opacity .45s,transform .45s}
.info-card:hover{border-color:transparent;background:transparent;color:#fff;transform:translateY(-2px)}
.info-card:focus-visible{outline:1px solid var(--red);outline-offset:4px}
.project-card{flex:0 1 auto;flex-direction:column;gap:5px}
.source-icon{display:block;object-fit:contain;filter:brightness(0) invert(1);transition:filter .2s,transform .3s,opacity .45s}
.info-card:hover .source-icon{filter:brightness(0) saturate(100%) invert(18%) sepia(99%) saturate(5430%) hue-rotate(353deg) brightness(91%) contrast(112%);transform:translateY(-1px)}
.project-icon{width:38px;height:34px;margin:0 auto}
.project-type-name{font-size:11px;line-height:1.2;color:#d7d7d4;white-space:nowrap}
.badge-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.badge-label{color:#999995;font:500 8px/1.2 var(--mono);letter-spacing:.8px}
.badge-count{display:inline-flex;align-items:baseline;gap:0;color:var(--text);font:700 23px/1 var(--display);letter-spacing:-.8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.badge-count>span:last-child{font-size:14px;letter-spacing:0;color:var(--red)}
.badge-name{font:600 10px/1.25 var(--sans);color:#e3e3e0;white-space:nowrap}
.trust-card{flex:0 1 auto;gap:7px}
.florida-icon{width:30px;height:25px;margin:0;flex:none}
.motion-ready .info-card{opacity:0;transform:translateY(7px)}
.motion-ready .info-card.is-in-view{opacity:1;transform:translateY(0)}
.motion-ready .source-icon{opacity:0;transform:scale(.96)}
.motion-ready .info-card.is-in-view .source-icon{opacity:1;transform:scale(1)}
@media(max-width:700px){
  .project-type-grid,.trust-grid{width:100%;max-width:420px;justify-content:space-between;gap:7px;margin-top:18px}
  .project-card{gap:4px;padding:4px 0}
  .project-icon{width:34px;height:29px}
  .project-type-name{font-size:10px}
  .trust-card{gap:5px;padding:4px 0}
  .badge-count{font-size:21px;letter-spacing:-.7px}
  .badge-count>span:last-child{font-size:13px}
  .badge-label{font-size:7px;letter-spacing:.55px}
  .badge-name{font-size:9px}
  .florida-icon{width:24px;height:21px}
}
@media(max-width:350px){.project-type-grid,.trust-grid{gap:4px}.project-type-name{font-size:9px}.trust-card{gap:3px}.florida-icon{width:21px}.badge-name{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.info-card,.source-icon{transition:none!important}.motion-ready .info-card{opacity:1;transform:none}}

/* Site navigation */
.desktop-nav{display:flex;align-items:center;gap:20px}.desktop-nav a{font-size:13px;color:#d5d5d2;transition:color .2s}.desktop-nav a:hover{color:#fff}
.menu-toggle{display:none;width:42px;height:42px;padding:12px 10px;border:1px solid #343434;border-radius:50%;background:#111;cursor:pointer;flex:none;flex-direction:column;justify-content:center;gap:5px}.menu-toggle span{display:block;width:20px;height:1.5px;background:#f3f3f0;transition:transform .2s}
.site-menu[hidden]{display:none}.site-menu{position:absolute;z-index:5;top:75px;left:0;right:0;padding:14px max(calc((100vw - 1180px)/2),24px) 24px;background:#101010;border-bottom:1px solid #343434;box-shadow:0 18px 28px #0008;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px}.site-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 2px;border-bottom:1px solid #303030;font-size:15px}.site-menu a span{color:#888;font:10px var(--mono);letter-spacing:1px}.site-menu a:hover{color:#fff}.site-menu a:hover span{color:var(--red)}
.hero-in{max-width:1180px}.hero-in>p{max-width:540px}
@media(max-width:900px){.desktop-nav{gap:12px}.desktop-nav a{font-size:12px}}
@media(max-width:700px){
  .head-right{gap:9px}.desktop-nav,.mainlink{display:none}.menu-toggle{display:flex}.top.menu-open .menu-toggle span:first-child{transform:translateY(3.25px) rotate(45deg)}.top.menu-open .menu-toggle span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
  .site-menu{top:70px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px;padding:9px 20px 16px}.site-menu a{font-size:13px;padding:15px 0}
}
@media(max-width:360px){.hero h1{font-size:33px}.hero-in{padding-left:19px;padding-right:19px}#tipos-proyecto .project-type-name{font-size:10px}}

/* Mobile hero is editorial: the service copy leads; the image supports it. */
@media(max-width:700px){
  .hero{height:auto;min-height:0;display:flex;flex-direction:column;align-items:stretch;overflow:hidden}
  .hero-in{order:0;position:relative;z-index:1;margin:0;padding:35px 22px 25px;width:100%;background:#111}
  .hero .eyebrow{color:#f5f5f4;font-size:9px;letter-spacing:1.1px;line-height:1.6}
  .hero .eyebrow:before{width:22px;margin-right:10px}
  .hero h1{max-width:350px;font-size:35px;line-height:1.04;letter-spacing:-.75px;margin:15px 0 11px}
  .hero-in>p{max-width:350px;font-size:14px;line-height:1.55;color:#d3d3d0}
  .hero .actions{display:flex;align-items:flex-start;flex-direction:column;gap:9px;margin-top:18px}
  .hero .red-button{width:auto;min-height:48px;padding:0 16px;border-radius:4px;font-size:13px;gap:10px}
  .hero-secondary{display:inline-flex;align-items:center;gap:8px;min-height:25px;color:#f2f2ef;font-size:12px;font-weight:600}
  .hero-secondary span{color:var(--red);font-size:16px;transition:transform .2s}
  .hero-secondary:hover span{transform:translateY(2px)}
  .hero-photo{order:1;position:relative;inset:auto;width:100%;height:44vh;height:min(44svh,390px);min-height:300px;max-height:390px;background-image:linear-gradient(0deg,rgba(8,8,8,.32),transparent 26%),url('/assets/hero-casa-viva-room.webp');background-size:cover;background-position:center 42%}
  .image-note{right:13px;bottom:10px;padding:4px 0;background:transparent;font-size:7px;opacity:.9}
  #tipos-proyecto.sec{padding-top:54px;padding-bottom:54px}
  #tipos-proyecto .project-type-grid{margin-top:18px;gap:7px}
  #tipos-proyecto .project-icon{width:56px;height:48px}
  #tipos-proyecto .project-type-name{font-size:11px}
}
@media(max-width:360px){#tipos-proyecto .project-icon{width:54px;height:46px}}

/* Restore the approved full-bleed room hero; retain the site's existing type system. */
.hero-photo{background-image:linear-gradient(90deg,rgba(6,6,6,.84) 0%,rgba(7,7,7,.66) 42%,rgba(7,7,7,.14) 100%),linear-gradient(0deg,rgba(7,7,7,.5),transparent 45%),url('/assets/hero-casa-viva-room.webp');background-position:center 54%;background-size:cover}
.hero-proof{display:flex;gap:9px;align-items:center;margin-top:31px;color:#e3e3e0;font:9px var(--mono);letter-spacing:1.2px}.hero-proof i{color:var(--red);font-style:normal}.lang-switch{height:40px;display:flex;align-items:center;padding:3px;border:1px solid #333;border-radius:24px;background:#111;gap:0}.lang-switch button{height:32px;min-width:40px;padding:0 10px;border:0;border-radius:18px;background:transparent;color:#bdbdb9;font:600 11px var(--mono);cursor:pointer}.lang-switch button[aria-pressed="true"]{background:var(--red);color:white}.head-right{gap:14px}
@media(max-width:700px){
 .top{height:66px;padding:0 15px}.brand{gap:7px;font-size:14px}.brand img{width:38px;height:37px}.brand small{font-size:7px;letter-spacing:.55px}.head-right{gap:7px}.lang-switch{height:34px;padding:2px}.lang-switch button{height:28px;min-width:32px;padding:0 8px;font-size:10px}.phone,.menu-toggle{width:37px;height:37px}.menu-toggle{padding:9px 8px;gap:5px}.menu-toggle span{width:18px}.crumb{height:42px}
 .hero{height:calc(100svh - 108px);min-height:520px;max-height:810px;display:flex;position:relative;align-items:flex-end;justify-content:center;overflow:hidden;border-bottom:1px solid #292929}
 .hero-photo{position:absolute!important;inset:0!important;order:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;background-image:linear-gradient(0deg,rgba(5,5,5,.88) 0%,rgba(5,5,5,.70) 35%,rgba(7,7,7,.26) 77%,rgba(7,7,7,.18) 100%),linear-gradient(90deg,rgba(5,5,5,.24),transparent 75%),url('/assets/hero-casa-viva-room.webp')!important;background-size:cover!important;background-position:60% center!important}
 .hero-in{position:relative!important;z-index:1;order:1!important;align-self:auto;width:100%;margin:0;padding:0 22px calc(42px + 3svh)!important;background:transparent!important;transform:none;text-align:center}
 .hero .eyebrow{font-size:9px;letter-spacing:1.45px;color:#f2f2ef}.hero .eyebrow:before{width:21px;height:2px;margin-right:10px}.hero .eyebrow span{color:var(--red);padding:0 2px}
 .hero h1{max-width:360px;margin:16px auto 12px;font-size:clamp(33px,8vw,35px);line-height:1.02;letter-spacing:-1.05px}.hero-in>p{max-width:350px;margin:0 auto;font-size:14px;line-height:1.55;color:#e0e0dc}
 .hero .actions{align-items:center;flex-direction:column;gap:9px;margin-top:19px}.hero .red-button{justify-content:center;min-height:50px;width:min(100%,300px);max-width:100%;padding:0 17px;border-radius:5px;font-size:13px;gap:12px}.hero-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 9px;border:0;border-radius:0;background:transparent;color:#f5f5f2;font-size:12px;font-weight:700}
 .hero-proof{display:none}.image-note{right:14px;bottom:76px;padding:0;background:transparent;font-size:7px;color:#eee}
 .mobile-bar{height:65px;padding:7px 10px;gap:7px}.mobile-bar a{font-size:12px;border-radius:6px}.mobile-bar a:last-child{font-size:12px}
}
@media(max-width:360px){.top{padding:0 11px}.head-right{gap:5px}.lang-switch button{min-width:29px;padding:0 6px}.hero-in{padding-left:18px!important;padding-right:18px!important}.hero h1{font-size:33px}}

/* Short Casa Viva arrival and restrained motion for section transitions. */
.brand-intro{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:19px;background:#f0efeb;color:#151515;opacity:1;visibility:visible;transition:opacity .34s ease,visibility .34s ease}
.brand-intro.is-done{opacity:0;visibility:hidden;pointer-events:none}
.brand-intro-mark{display:flex;align-items:center;gap:12px;font:800 15px/1 var(--display);letter-spacing:.45px;animation:intro-mark-in .42s cubic-bezier(.2,.7,.2,1) both}
.brand-intro-mark img{display:block;width:48px;height:44px;object-fit:contain}
.brand-intro-track{width:128px;height:2px;background:#d4d1cc;overflow:hidden}
.brand-intro-track i{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left;animation:intro-progress .42s ease-out both}
@keyframes intro-mark-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-progress{to{transform:scaleX(1)}}
.hero .red-button{border-radius:9px;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.hero .red-button:hover{transform:translateY(-1px);box-shadow:0 7px 20px #0004}
.reveal-ready [data-reveal]{opacity:0;transform:translateY(13px);transition:opacity .58s ease var(--reveal-delay,0ms),transform .58s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.reveal-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}
.intro-finished .hero .eyebrow,.intro-finished .hero h1,.intro-finished .hero-in>p,.intro-finished .hero .actions,.intro-finished .hero-proof{animation:hero-copy-arrive .48s cubic-bezier(.2,.7,.2,1) both}
.intro-finished .hero h1{animation-delay:45ms}.intro-finished .hero-in>p{animation-delay:90ms}.intro-finished .hero .actions{animation-delay:135ms}
@keyframes hero-copy-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.hero .red-button{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.brand-intro,.brand-intro-mark,.brand-intro-track i,.hero .red-button,.reveal-ready [data-reveal],.intro-finished .hero .eyebrow,.intro-finished .hero h1,.intro-finished .hero-in>p,.intro-finished .hero .actions,.intro-finished .hero-proof{animation:none!important;transition:none!important}.brand-intro.is-done{opacity:0;visibility:hidden}.hero .red-button:hover{transform:none;box-shadow:none}}

/* Casa Viva wordless hero: let the real house mark carry the art direction. */
.hero{height:clamp(680px,calc(100svh - 125px),820px);min-height:680px;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid #262323;background:radial-gradient(ellipse at 77% 48%,#211011 0%,#130d0e 24%,#0b0b0b 63%)}
.hero:before{content:'';position:absolute;top:10%;bottom:10%;left:73%;width:1px;background:linear-gradient(180deg,transparent,#ffffff14 22%,#ffffff14 80%,transparent);pointer-events:none}
.hero-mark{position:absolute;z-index:0;top:50%;right:-2vw;width:clamp(500px,48vw,730px);transform:translateY(-49%);opacity:.13;pointer-events:none;mask-image:linear-gradient(90deg,transparent 0%,#000 20%,#000 88%,transparent 100%)}
.hero-mark img{display:block;width:100%;height:auto;filter:saturate(.82)}
.hero-in{position:relative;z-index:1;width:min(850px,calc(100% - 48px));max-width:850px;margin:0 0 0 max(24px,calc((100vw - 1180px)/2));padding:0;text-align:left}
.hero .eyebrow{display:flex;align-items:center;gap:10px;color:#f1f1ef;font:600 10px/1.4 var(--mono);letter-spacing:1.8px}
.hero .eyebrow:before{width:25px;height:2px;margin:0;background:var(--red)}
.hero .eyebrow span{color:var(--red)}
.hero h1{display:flex;flex-direction:column;max-width:800px;margin:22px 0 20px;font:800 clamp(56px,5vw,72px)/.98 var(--display);letter-spacing:-2.5px;color:#f4f4f2}
.hero h1 span{display:block}
.hero-in>p{max-width:650px;margin:0;color:#c9c8c6;font-size:17px;line-height:1.62}
.hero .actions{display:flex;align-items:center;gap:28px;margin-top:29px}
.hero .red-button{display:inline-flex;align-items:center;gap:24px;min-height:54px;width:auto;padding:0 19px;border:1px solid var(--red);border-radius:8px;background:var(--red);color:white;font-size:14px;font-weight:800;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s}
.hero .red-button:hover{background:#cc0008;transform:translateY(-2px);box-shadow:0 9px 28px #e306132e}
.hero .red-button span{font-size:18px;line-height:1}
.hero-action-arrow{display:grid;place-items:center}
.hero-action-arrow svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hero-whatsapp{display:inline-flex;align-items:center;gap:9px;padding:8px 0 9px;border-bottom:1px solid #ffffff53;color:#eee;font-size:14px;font-weight:700;transition:color .2s,border-color .2s}
.hero-whatsapp:hover{color:#fff;border-color:var(--red)}
.hero-whatsapp svg{width:19px;height:19px;fill:none;stroke:var(--red);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hero-whatsapp svg path+path{fill:none}
.hero-arrow{margin-left:5px;color:#999;font-size:14px;transition:transform .2s,color .2s}
.hero-whatsapp:hover .hero-arrow{transform:translate(2px,-2px);color:var(--red)}
.hero-arrow svg{display:block;width:13px;height:13px;fill:none;stroke:#999;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}
.hero-whatsapp:hover .hero-arrow svg{stroke:var(--red)}
.hero-proof{display:flex;align-items:center;gap:11px;width:max-content;max-width:100%;margin-top:36px;padding-top:13px;border-top:1px solid #ffffff30;color:#b9b8b6;font:500 9px/1.4 var(--mono);letter-spacing:1.25px;text-transform:uppercase}
.hero-proof:before{content:'';width:17px;height:2px;margin-right:2px;background:var(--red)}
.hero-proof i{color:var(--red);font-style:normal}
.hero-proof span{white-space:nowrap}
@media(max-width:900px){.hero-in{margin-left:34px;width:min(760px,calc(100% - 68px))}.hero h1{font-size:clamp(54px,7.2vw,64px)}.hero-mark{right:-70px;width:58vw;opacity:.12}}
@media(max-width:700px){
 .hero{height:auto;min-height:max(530px,calc(100svh - 173px));max-height:none;align-items:center;background:radial-gradient(ellipse at 79% 23%,#291012 0%,#151011 26%,#0b0b0b 69%)}
 .hero:before{top:7%;bottom:8%;left:auto;right:24px;width:1px;background:linear-gradient(180deg,transparent,#ffffff12 18%,#ffffff12 78%,transparent)}
 .hero-mark{top:3%;right:-140px;width:500px;transform:none;opacity:.14;mask-image:linear-gradient(180deg,#000 0%,#000 46%,transparent 100%)}
 .hero-mark img{filter:saturate(.76)}
 .hero-in{width:100%;max-width:540px;margin:0;padding:28px 23px 31px}
 .hero .eyebrow{gap:8px;font-size:9px;letter-spacing:1.35px}
 .hero .eyebrow:before{width:19px}
 .hero h1{max-width:440px;margin:20px 0 15px;font-size:clamp(35px,9.3vw,43px);line-height:1.02;letter-spacing:-1.45px}
 .hero-in>p{max-width:440px;font-size:14px;line-height:1.62;color:#cfcecb}
 .hero .actions{align-items:flex-start;flex-wrap:wrap;gap:20px;margin-top:22px}
 .hero .red-button{min-height:49px;gap:20px;padding:0 16px;border-radius:8px;font-size:13px}
 .hero-whatsapp{gap:7px;padding:7px 0 8px;font-size:13px}
 .hero-whatsapp svg{width:18px;height:18px}
 .hero-arrow svg{width:12px;height:12px}
 .hero-proof{gap:8px;margin-top:29px;padding-top:11px;font-size:9px;letter-spacing:.65px}
 .hero-proof:before{width:13px}
}
@media(max-width:360px){
 .hero{min-height:max(520px,calc(100svh - 173px))}
 .hero-mark{right:-185px;width:470px}
 .hero-in{padding-right:19px;padding-left:19px}
 .hero h1{font-size:clamp(34px,9.6vw,36px);letter-spacing:-1.25px}
 .hero-in>p{font-size:13px}
 .hero .actions{gap:14px}
 .hero .red-button{min-height:47px}
 .hero-proof{gap:6px;font-size:8px;letter-spacing:.5px}
 .hero-proof:before{width:10px}
}

@media(max-width:700px){.site-menu{top:66px}}

/* Light Casa Viva composition. The skyline is drawn for this page; the house is the real brand asset. */
.hero{
  height:auto;
  min-height:640px;
  display:flex;
  align-items:center;
  border-bottom:1px solid #dbe1e3;
  background-color:#f7fafb;
  background-image:linear-gradient(180deg,#f7fafbef 0%,#f7fafbc9 45%,#f7fafb80 75%,#f7fafbb0 100%),url('/assets/hero-skyline.svg');
  background-position:center bottom;
  background-size:cover;
  background-repeat:no-repeat;
  color:#17191b;
}
.hero:before{display:none}
.hero-mark{
  position:absolute;
  top:50%;
  right:max(4%,calc((100vw - 1280px)/2));
  width:clamp(270px,30vw,420px);
  transform:translateY(-55%);
  opacity:1;
  mask-image:none;
  filter:drop-shadow(0 16px 15px #56636b20);
}
.hero-mark img{filter:none}
.hero-wordmark{display:block;margin-top:-3px;color:#111;font:800 clamp(33px,3.4vw,48px)/1 var(--display);letter-spacing:-1.8px;text-align:center}
.hero-wordmark small{display:block;margin-top:4px;font:700 14px/1.1 var(--display);letter-spacing:5px}
.hero-in{
  width:min(58%,650px);
  max-width:650px;
  margin:0 0 0 max(28px,calc((100vw - 1180px)/2));
  padding:64px 0 80px;
  text-align:left;
}
.hero .eyebrow{color:#44484a}
.hero .eyebrow span{color:var(--red)}
.hero h1{max-width:630px;color:#17191b;font-size:clamp(48px,4.4vw,66px)}
.hero-in>p{max-width:530px;color:#454b4e}
.hero-whatsapp{color:#191d1f;border-color:#888e91}
.hero-whatsapp:hover{color:#111}
.hero-arrow svg{stroke:#51575a}
.hero-proof{color:#474d50;border-color:#9fa9ae}
.hero-proof i{color:var(--red)}
@media(min-width:701px){
  #tipos-proyecto .project-type-grid{max-width:1020px;gap:35px}
  #tipos-proyecto .project-card{gap:11px;min-width:150px}
  #tipos-proyecto .project-icon{width:92px;height:78px}
  #tipos-proyecto .project-card:nth-child(3) .project-icon{width:104px;height:88px}
  #tipos-proyecto .project-type-name{font-size:14px}
  #badges-confianza .trust-grid{max-width:920px;gap:40px}
  #badges-confianza .badge-count{font-size:34px}
  #badges-confianza .badge-count>span:last-child{font-size:19px}
  #badges-confianza .badge-label{font-size:9px}
  #badges-confianza .badge-name{font-size:13px}
  #badges-confianza .florida-icon{width:49px;height:37px}
}
@media(max-width:900px) and (min-width:701px){
  .hero-in{width:59%;margin-left:34px}
  .hero-mark{right:1%;width:34vw}
  .hero h1{font-size:clamp(43px,5.3vw,53px)}
}
@media(max-width:700px){
  .hero{
    min-height:0;
    height:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    padding:34px 19px 53px;
    background-position:center bottom;
    background-size:auto 100%;
  }
  .hero-mark{
    position:relative;
    top:auto;
    right:auto;
    order:0;
    width:clamp(134px,39vw,174px);
    margin:0 auto 26px;
    transform:none;
  }
  .hero-wordmark{font-size:clamp(23px,6.2vw,29px);letter-spacing:-.9px}
  .hero-wordmark small{font-size:10px;letter-spacing:3.4px;margin-top:2px}
  .hero-in{
    order:1;
    width:100%;
    max-width:430px;
    margin:0 auto;
    padding:0!important;
    text-align:center;
  }
  .hero .eyebrow{justify-content:center;gap:7px;color:#32383c;font-size:9px;letter-spacing:1.1px}
  .hero .eyebrow:before{width:18px}
  .hero h1{
    max-width:390px;
    margin:16px auto 13px;
    font-size:clamp(32px,8.5vw,40px);
    line-height:1.04;
    letter-spacing:-1.3px;
    color:#17191b;
  }
  .hero h1 span{display:block}
  .hero-in>p{max-width:345px;margin:0 auto;color:#44494c;font-size:14px;line-height:1.52}
  .hero .actions{justify-content:center;align-items:center;gap:16px;margin-top:23px}
  .hero .red-button{min-height:50px;padding:0 19px;font-size:13px}
  .hero-whatsapp{padding:9px 0;color:#202426;border-color:#9aa1a5}
  .hero-proof{
    justify-content:center;
    width:max-content;
    max-width:100%;
    margin:26px auto 0;
    padding-top:11px;
    color:#50575a;
    border-color:#a7b0b5;
  }
}
@media(max-width:360px){
  .hero{padding:31px 16px 44px}
  .hero-mark{width:136px;margin-bottom:22px}
  .hero h1{font-size:32px}
  .hero-in>p{font-size:13px}
  .hero-proof{font-size:8px;gap:6px}
  .hero-in{padding:0!important}
}
@media(max-width:700px){
  .mobile-bar{
    grid-template-columns:1fr 1.25fr;
    opacity:0;
    visibility:hidden;
    transform:translateY(100%);
    pointer-events:none;
    transition:opacity .22s,transform .22s,visibility .22s;
  }
  .mobile-bar.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
}
@media(prefers-reduced-motion:reduce){.mobile-bar{transition:none}}

@media(min-width:701px){
  .hero{
    min-height:0;
    padding:44px 28px 62px;
    flex-direction:column;
    justify-content:center;
    align-items:center;
  }
  .hero-mark{
    position:relative;
    top:auto;
    right:auto;
    width:clamp(210px,19vw,270px);
    margin:0 auto 25px;
    transform:none;
  }
  .hero-wordmark{font-size:clamp(30px,3vw,40px)}
  .hero-in{
    width:min(100%,780px);
    max-width:780px;
    margin:0 auto;
    padding:0;
    text-align:center;
  }
  .hero .eyebrow{justify-content:center}
  .hero h1{max-width:760px;margin:17px auto 16px;font-size:clamp(48px,4.5vw,66px)}
  .hero-in>p{max-width:670px;margin:0 auto;font-size:17px}
  .hero .actions{justify-content:center}
  .hero-proof{margin:27px auto 0}
  #tipos-proyecto .project-icon{width:125px;height:104px}
  #tipos-proyecto .project-card:nth-child(3) .project-icon{width:132px;height:115px}
  #tipos-proyecto .project-card{min-width:170px}
  #tipos-proyecto .project-type-name{font-size:15px}
  #badges-confianza .florida-icon{width:66px;height:50px}
}
@media(min-width:701px) and (max-width:900px){
  .hero{padding:35px 28px 53px}
  .hero-mark{width:200px}
  .hero h1{font-size:48px}
  #tipos-proyecto .project-icon{width:105px;height:88px}
  #tipos-proyecto .project-card:nth-child(3) .project-icon{width:110px;height:96px}
}
