/* Temporary Torre Villa November campaign. All selectors are scoped. */
[data-torre-promo][hidden],[data-torre-promo-ended][hidden]{display:none!important}
.tv-promo-shell{padding:24px 5% 40px;background:#181e19}
.tv-promo-banner{display:grid;grid-template-columns:1.1fr 1.1fr .8fr;gap:20px 26px;align-items:center;background:#f7f5f0;border-top:7px solid #ce1420;padding:28px 28px 16px;color:#111}
.tv-promo-mark{min-width:0}
.tv-promo-slogan{background:#c91522;color:white;text-transform:uppercase;font-size:clamp(10px,.92vw,15px);font-weight:700;line-height:1.5;padding:7px 8px;text-align:center;margin:0 0 10px;letter-spacing:0}
.tv-promo-mark h2{font-family:Arial,Helvetica,sans-serif;font-size:clamp(35px,4.8vw,80px);font-weight:950;letter-spacing:-.065em;line-height:.95;white-space:nowrap;margin:0;color:#090909}
.tv-promo-price{text-align:center;min-width:0;border-inline:1px solid #c7a56570;padding:0 18px}
.tv-promo-price p{margin:0}
.tv-promo-price strong{font-size:clamp(27px,3.4vw,57px);font-weight:900;letter-spacing:-.045em;line-height:1.12;white-space:nowrap}
.tv-promo-price p>span{font-size:12px;font-weight:700;white-space:nowrap}
.tv-promo-price h3{font-size:clamp(15px,1.45vw,24px);line-height:1.3;margin:9px 0 7px}
.tv-promo-price .tv-promo-limit{font-size:clamp(13px,1.15vw,18px);line-height:1.5}
.tv-promo-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:16px 22px;background:#182b20;color:#fff;border:1px solid #182b20;border-radius:4px;font:700 16px/1.3 Arial,Helvetica,sans-serif;text-align:center;cursor:pointer}
.tv-promo-button:hover{background:#304637;color:#fff}
.tv-promo-button span{font-size:25px;font-weight:400;line-height:1}
.tv-promo-cta{text-align:center;min-width:0}.tv-promo-cta .tv-promo-button{width:100%}.tv-promo-cta p{font-size:13px;margin:10px 0 0;line-height:1.5}
.tv-promo-validity{grid-column:1/-1;margin:0;text-align:center;font-size:12px;line-height:1.6;color:#3e463f}
.tv-promo-detail{margin:35px 7% 60px;scroll-margin-top:110px;border:1px solid #c7a56560;background:#fffefa;color:#181e19}
.tv-promo-banner-detail{grid-template-columns:1fr 1.2fr;padding:32px 38px 18px;gap:24px 45px}.tv-promo-banner-detail .tv-promo-price{border-right:0}.tv-promo-banner-detail .tv-promo-slogan{font-size:clamp(12px,1.1vw,17px)}
.tv-promo-body{padding:30px 38px 38px}.tv-promo-intro{font:28px/1.3 Georgia,serif;margin:0 0 14px}.tv-promo-facts{line-height:1.8;color:#495347;margin:0 0 28px}.tv-promo-facts span{padding:0 8px;color:#77694f}
.tv-promo-payments{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-top:1px solid #c7a56560;border-bottom:1px solid #c7a56560;padding:24px 0;margin-bottom:26px}.tv-promo-payments span{display:block;font-size:12px;letter-spacing:.1em}.tv-promo-payments strong{display:block;font-size:27px;margin-top:9px}.tv-promo-payments p{font-size:14px;margin:8px 0 0;color:#495347}
.tv-promo-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tv-promo-outline{background:transparent;color:#182b20}.tv-promo-actions .page-share{margin:0}.tv-promo-actions .share-button{color:#182b20}.tv-promo-advisor{font-size:13px;line-height:1.8;margin:20px 0 28px;color:#495347}.tv-promo-advisor a{text-decoration:underline}
.tv-promo-conditions{border-top:1px solid #c7a56560;padding-top:20px}.tv-promo-conditions h3{font:25px/1.3 Georgia,serif;margin:0 0 16px}.tv-promo-conditions ul{padding-left:20px;line-height:1.7;font-size:15px;color:#495347}.tv-promo-conditions li{margin:0 0 12px}
.tv-promo-units{border-top:1px solid #c7a56560;margin-top:24px}.tv-promo-units summary{font-weight:700;cursor:pointer;padding:20px 0;min-height:48px}.tv-promo-units>p{font-size:14px;line-height:1.7}.tv-promo-unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tv-promo-unit-grid a{border:1px solid #c7a56560;padding:18px;display:grid;gap:8px}.tv-promo-unit-grid a:hover{background:#f0eee5}.tv-promo-unit-grid span{font-size:13px}
.tv-promo-feature a{display:block;border-left:3px solid #de4a4a;padding-left:14px;color:#fff;font-weight:700}.tv-promo-feature small{display:block;font-size:12px;margin:8px 0 0 17px}.tv-promo-note{padding:20px;background:#ecece2;font-size:14px;line-height:1.7}.tv-promo-note a{display:block;text-decoration:underline;margin-top:8px}.tv-promo-ended{margin:35px 7%;padding:25px;border:1px solid #c7a56560;line-height:1.7}
@media(min-width:1700px){.tv-promo-shell{padding-left:7%;padding-right:7%}.tv-promo-banner{padding:32px 40px 18px}}
@media(max-width:1000px) and (min-width:761px){.tv-promo-banner{grid-template-columns:1fr 1fr}.tv-promo-cta{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:24px}.tv-promo-cta .tv-promo-button{width:auto}.tv-promo-mark h2{font-size:6vw}.tv-promo-price strong{font-size:4.4vw}.tv-promo-slogan{font-size:1.3vw}}
@media(max-width:760px){.tv-promo-shell{padding:18px 6% 30px}.tv-promo-banner,.tv-promo-banner-detail{grid-template-columns:1fr;padding:22px 20px 18px;gap:24px;text-align:center}.tv-promo-mark h2{font-size:clamp(43px,12vw,83px);letter-spacing:-.065em}.tv-promo-slogan,.tv-promo-banner-detail .tv-promo-slogan{font-size:clamp(10px,2.65vw,16px);padding:7px 4px}.tv-promo-price{border:0;padding:0}.tv-promo-price strong{font-size:clamp(32px,9vw,56px)}.tv-promo-price h3{font-size:19px}.tv-promo-price .tv-promo-limit{font-size:14px}.tv-promo-cta .tv-promo-button{font-size:18px}.tv-promo-validity{font-size:12px}.tv-promo-detail{margin:24px 6% 40px}.tv-promo-body{padding:24px 20px}.tv-promo-intro{font-size:24px}.tv-promo-facts{font-size:14px}.tv-promo-payments{grid-template-columns:1fr;gap:22px}.tv-promo-payments>div+div{border-top:1px solid #c7a56550;padding-top:22px}.tv-promo-payments strong{font-size:25px}.tv-promo-actions{flex-direction:column;align-items:stretch}.tv-promo-actions .tv-promo-button{width:100%}.tv-promo-actions .page-share{align-self:center}.tv-promo-unit-grid{grid-template-columns:1fr}.tv-promo-conditions h3{font-size:23px}.tv-promo-conditions ul{font-size:14px}}

/* Home: show the campaign before the hero, leaving room for navigation. */
.tv-promo-first .tv-promo-shell{padding-top:118px;padding-bottom:24px}
.tv-promo-first .home-hero{padding-top:44px}
@media(max-width:760px){.tv-promo-first .tv-promo-shell{padding-top:100px;padding-bottom:24px}.tv-promo-first .home-hero{padding-top:28px}}

/* Torre Villa: make the offer visible on entry, above its hero. */
.tv-promo-entry{padding:118px 6% 0;background:#333b2c}
.tv-promo-entry-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px 28px;border-top:5px solid #ce1420;padding:22px 28px 14px;background:#f7f5f0;color:#111}
.tv-promo-entry-mark p{margin:0 0 7px;background:#c91522;color:#fff;padding:5px 10px;text-align:center;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.4}
.tv-promo-entry-mark h2{margin:0;color:#090909;font:900 39px/.95 Arial,Helvetica,sans-serif;letter-spacing:-.065em;white-space:nowrap}
.tv-promo-entry-offer{text-align:center;min-width:0}
.tv-promo-entry-offer p{margin:0;font-size:14px;line-height:1.6}
.tv-promo-entry-offer strong{font-size:clamp(30px,3.2vw,48px);font-weight:900;line-height:1.2;letter-spacing:-.045em;white-space:nowrap}
.tv-promo-entry-offer p>span{font-size:12px;font-weight:700}
.tv-promo-first[data-view="torre-villa"] .still-hero{padding-top:36px;min-height:0}
@media(max-width:760px){
 .tv-promo-entry{padding:100px 6% 0}
 .tv-promo-entry-card{grid-template-columns:1fr;gap:16px;padding:18px 18px 14px;text-align:center}
 .tv-promo-entry-mark{justify-self:center}
 .tv-promo-entry-mark h2{font-size:39px}
 .tv-promo-entry-offer strong{font-size:34px}
 .tv-promo-entry-offer p{font-size:13px}
 .tv-promo-entry-card>.tv-promo-button{width:100%}
 .tv-promo-first[data-view="torre-villa"] .still-hero{padding-top:28px}
}

/* Hide inactive hero variants even where mobile layout uses display:contents. */
[data-home-priority-variant][hidden]{display:none!important}
@media(max-width:760px){
 .tv-promo-first .home-hero .advisor-signature{order:6}
 .tv-promo-first .home-hero .page-share{order:7}
 .tv-promo-first .home-hero .still-signature{order:8}
 .tv-promo-first #serena .intro-grid>*{min-width:0}
 .tv-promo-first #serena .prepare-link{white-space:normal;overflow-wrap:anywhere}
}
