/* Ajuste visual basado en la piedra y carpintería del Edificio Ginebra.
   No altera secciones, orden, contenido ni comportamiento. */
:root{--paper:#fbfaf8;--ink:#303330;--muted:#686a65;--line:#d6d4ce;--stone:#eeede8;--frame:#4c554d}
body{font-family:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--ink)}
h1,h2,h3{font-family:Arial,Helvetica,sans-serif;letter-spacing:-.025em;font-weight:500}
.hero h1{font-size:clamp(42px,5.1vw,76px);line-height:1.12;letter-spacing:-.035em;font-weight:500}
.hero h1 .hero-address{font-size:.59em;color:#666862;letter-spacing:-.02em;margin-top:10px}
h2,.comparison-heading h2,.team-quotes h2{font-size:clamp(29px,3vw,44px);letter-spacing:-.025em;font-weight:500;line-height:1.2}
.contact h2{font-size:clamp(32px,3.5vw,50px);letter-spacing:-.025em}
h3{letter-spacing:-.015em}.brand{font-size:23px;letter-spacing:-.7px;font-weight:600}.brand>span{color:#777b72}.brand small{letter-spacing:1.5px;color:#666a62}.header nav{font-size:12px}.eyebrow,.index{letter-spacing:.9px}.prototype{background:#4c554d;letter-spacing:.7px}
.hero-side .hero-location{color:#444a43;font-weight:500}.hero-side p{color:#62675f}.text-link{font-size:12px;border-color:#a9aca3}
.facts{border-bottom-color:#91968b}.facts strong{font-weight:500;letter-spacing:-1px}.facts small{font-size:11px;color:#666b62}.sqm-inline{font-weight:500}.price,.sqm-price strong{letter-spacing:-1px;font-weight:500}
.distribution,.team-quotes{background:var(--stone)}.diagram{background:#f8f8f5;border-color:#d2d5cb}.room{background:#e7eae2;border-color:#c1c8b8}.room:hover,.room.active{background:#d2dacb}.room-number{color:#515b4c;font-weight:500;letter-spacing:-3px}.room-info h3{font-weight:500}.rule{background:#c6ccc0}
.comparison-grid article>strong{font-weight:500;letter-spacing:-1.5px}.comparison-market{color:#72766e}.comparison-saving{background:var(--frame)}.comparison-saving strong{letter-spacing:-1.5px}.comparison-source{color:#686c64}.price-bar{height:5px}
.destinations{background:#f0f1ec}.destination.active{background:var(--frame)}.travel-summary{background:var(--frame)}.map-dot{background:var(--frame)}.office-pin{border-color:var(--frame)}.route-panel{background:#fff}.travel-summary>strong{font-weight:500}.route-origin strong{font-weight:600}.parking-icon{border-color:#a9afa1;color:var(--frame)}
.team-quotes .quote-card{border-color:#d1d3ca;background:#fff;color:var(--ink)}.team-quotes blockquote{color:var(--ink);font-size:clamp(22px,2vw,28px);font-weight:400;letter-spacing:-.015em;line-height:1.5}.team-quotes h2{color:var(--ink)}.team-quotes figcaption{color:#454b42;border-color:#d8dcd2}.team-quotes figcaption span{color:#697060}
.button{background:var(--frame);font-size:13px}.button:hover{background:#39443a}.button.small{font-size:12px}.whatsapp-button{background:#246441}.whatsapp-button:hover{background:#194b2f}.route-panel .button{background:transparent;color:var(--ink)}.image-tag{background:#fffffff0;color:#4b5147;letter-spacing:.5px}
.restaurants-block{background:#fff}.restaurants-head h3{font-size:24px;font-weight:500;letter-spacing:-.025em}.restaurant-logo,.restaurant-brand-slot{background:transparent}.restaurant-logo img.restaurant-brand{background:transparent}.footer{color:#535b4c}.footer-bottom{color:#68705f}
@media(max-width:700px){.hero h1{font-size:10.5vw;letter-spacing:-.035em}.hero h1 .hero-address{font-size:.61em}.comparison-heading h2{font-size:29px}.team-quotes blockquote{font-size:24px}.restaurants-head h3{font-size:21px}}

/* Fotografías reales: conservar su encuadre completo al ampliar. */
.hero-image img{object-position:center 54%}.gallery-main{min-height:0;aspect-ratio:4/3}.gallery-main img{object-position:center}.gallery-side .photo-button{height:360px}.gallery-side img{object-position:center 45%}.office-full-photo{width:100%;height: min(62vh,740px);object-fit:contain;background:#f2f1ed}.photo-thumbnails{display:flex;overflow-x:auto;gap:8px;padding:8px 24px 12px;scrollbar-width:thin}.photo-thumb{flex:0 0 80px;padding:3px;background:transparent;border:2px solid transparent}.photo-thumb.active{border-color:#4c554d}.photo-thumb img{width:70px;height:53px;object-fit:cover}.lightbox-footer>span{line-height:1.5}.lightbox-caption{padding:0 24px 18px}@media(max-width:700px){.gallery-main{aspect-ratio:4/3}.office-full-photo{height:50vh}.photo-thumbnails{padding-left:12px;padding-right:12px}.lightbox-footer>span{font-size:11px}.gallery-side .photo-button{height:330px}}

/* Galería amplia y visor de fotografías a tamaño de pantalla. */
.hero-image{height:auto;aspect-ratio:4/3}.hero-image img{object-fit:contain;object-position:center}.hero-image:hover img{transform:none}
.gallery{grid-template-columns:1fr;gap:24px}.gallery-main{height:auto;min-height:0;aspect-ratio:4/3}.gallery-side{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.gallery-side .photo-button{height:clamp(360px,45vw,640px)}.gallery-side img{object-fit:contain;background:#eeede8}.gallery-caption{grid-column:1/-1;padding-top:0}
dialog:has(.office-full-photo){width:98vw;max-width:1800px;max-height:98dvh}.office-full-photo{height:calc(98dvh - 238px);max-height:none;min-height:180px}.lightbox-footer{padding:12px 24px}.lightbox-caption{margin:0;padding-bottom:12px}
@media(max-width:700px){.gallery{gap:16px}.gallery-side{grid-template-columns:1fr;gap:16px}.gallery-side .photo-button{height:auto;aspect-ratio:4/3}.gallery-side .photo-button[data-photo="2"]{aspect-ratio:3/4}.office-full-photo{height:calc(98dvh - 240px)}.gallery-caption button{font-size:13px}}
dialog:has(.office-full-photo) .modal-close{position:absolute;right:0;top:0;background:#fbfaf8ee}.office-full-photo{height:calc(98dvh - 180px)}
@media(max-width:700px){dialog:has(.office-full-photo) .photo-thumbnails{display:none}.office-full-photo{height:calc(98dvh - 130px)}}
/* Cabecera compacta: dirección, edificio y condiciones en el primer vistazo. */
.header{height:76px}.hero{display:grid;grid-template-columns:.85fr 1.15fr;column-gap:40px;row-gap:18px;padding-top:20px}.hero>.eyebrow{grid-column:1/-1;font-size:10px}.hero-heading{display:block;padding:16px 0;align-self:center}.hero h1{font-size:clamp(38px,4.2vw,62px)}.hero h1 .hero-address{font-size:.58em;margin-top:12px}.hero-side{max-width:none;margin:24px 0 0;padding:0}.hero-side p{font-size:14px;margin:0 0 8px}.hero-side .text-link{margin-top:8px}.hero-image{height:clamp(260px,43vh,430px);aspect-ratio:auto;background:#eeede8}.hero-image img{object-fit:contain}.hero .facts{grid-column:1/-1;padding:22px 0;margin:0}.facts strong{font-size:clamp(28px,3vw,46px)}.facts small{margin-top:6px}
@media(max-width:700px){.header{height:66px}.hero{grid-template-columns:1fr;gap:14px;padding-top:14px}.hero>.eyebrow{font-size:8px;letter-spacing:.3px}.hero-heading{padding:0}.hero h1{font-size:34px}.hero h1 .hero-address{font-size:22px;margin-top:5px}.hero-side{display:block;margin:10px 0 0}.hero-side p{font-size:12px;margin:0}.hero-side .hero-location,.hero-side .text-link{display:none}.hero-image{height:230px}.hero .facts{padding:16px 0;gap:16px 0}.facts strong{font-size:29px}.facts small{font-size:10px}.facts .sqm-inline{font-size:14px}}

/* Respetar la proporción de cada foto, sin rellenos laterales. */
.hero-image{width:min(100%,calc(43vh * 4 / 3));height:auto;aspect-ratio:4/3;justify-self:end;background:transparent}.hero-image img{height:auto;width:100%;object-fit:cover}
.gallery-side{grid-template-columns:1fr 1fr;align-items:start}.gallery-side .photo-button{height:auto;aspect-ratio:auto;background:transparent}.gallery-side img{height:auto;width:100%;background:transparent}.office-full-photo{background:var(--paper)}
.distribution-summary{margin-top:28px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.distribution-summary h3{font-size:18px;margin:0 0 12px}.distribution-summary p{display:flex;gap:12px 24px;flex-wrap:wrap;font-size:14px;margin:0;line-height:1.6}.distribution-summary strong{font-weight:500}.distribution-summary span{color:#62675f}
@media(max-width:700px){.hero-image{width:min(100%,340px);justify-self:center;height:auto}.gallery-side{grid-template-columns:1fr}.gallery-side .photo-button[data-photo="2"]{aspect-ratio:auto}.distribution-summary p{gap:8px 20px;font-size:13px}}

.quotes-grid.quotes-single{grid-template-columns:1fr}.quotes-single .quote-card{max-width:1000px}.team-quotes .quotes-single blockquote{font-size:clamp(24px,3vw,38px);line-height:1.4}

/* Responsive: keep readable columns and touch controls at every width. */
.hero,.comparison-grid,.contact-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,.65fr)}
.contact-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.hero>*,.comparison-grid>*,.route-panel>*,.contact-grid>*{min-width:0}
.dot{flex-shrink:0}
.travel-summary>strong{overflow-wrap:anywhere}
.lightbox-footer button{flex:0 0 44px;width:44px;height:44px}
.lightbox-footer>span{min-width:0;text-align:center}
.modal-close,.menu-button{min-height:44px;min-width:44px}
#modal{overscroll-behavior:contain}
#modal:has(.office-full-photo){padding-top:44px}
#modal .office-full-photo{height:calc(98dvh - 238px);min-height:100px}
#mobile-menu[hidden]{display:none}
@media(min-width:901px){#mobile-menu{display:none}}
@media(max-width:1100px){
  .comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .comparison-saving{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:20px}
  .comparison-saving p{margin:0}
}
@media(max-width:900px){
  .header nav{display:none}
  .menu-button{display:block;background:none;font-size:13px;padding:10px 0 10px 16px}
  .hero{column-gap:24px}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}
  .facts>div{padding-left:20px}
  .facts>div:nth-child(odd){padding-left:0}
  .facts>div:nth-child(even){border-right:0}
  .map-layout{grid-template-columns:minmax(0,1fr)}
  .destinations #destinations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .destinations .destination{font-size:12px;padding:12px 10px;border:1px solid var(--line)}
  .map-main #map{height:340px;min-height:340px}
  .route-panel{grid-template-columns:minmax(0,1fr) 150px}
  .contact-grid{gap:32px}
  .sqm-price{flex-wrap:wrap;gap:8px}
}
@media(max-width:700px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero-image{width:100%;max-width:440px}
  .hero h1{font-size:clamp(30px,8.5vw,42px)}
  .hero>.eyebrow{font-size:9px;line-height:1.6}
  .facts small{font-size:12px;line-height:1.5}
  .facts strong{font-size:clamp(27px,7.4vw,34px)}
  .facts strong span{font-size:11px}
  .section-heading h2,.comparison-heading h2,.team-quotes h2{font-size:clamp(27px,7.4vw,34px);line-height:1.2}
  .section-heading{margin-bottom:24px}
  .benefits>div{display:block}
  .benefits h3{font-size:18px}
  .benefits p{font-size:14px;line-height:1.65}
  .distribution-summary p{display:grid;grid-template-columns:1fr;gap:6px;font-size:14px}
  .comparison-grid{gap:16px}
  .comparison-grid article{padding:12px 0}
  .comparison-grid article>strong{font-size:clamp(32px,9vw,44px)}
  .comparison-grid .eyebrow{font-size:10px;letter-spacing:.4px;min-height:34px}
  .comparison-grid article p{font-size:12px;line-height:1.6;min-height:58px}
  .comparison-saving{padding:18px;gap:12px}
  .comparison-saving strong{font-size:34px}
  .comparison-saving p{font-size:12px}
  .area-highlights p{font-size:14px;line-height:1.65}
  .destinations{padding:12px}
  .destinations #destinations{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .destinations .destination{font-size:12px;padding:10px 8px;gap:8px;line-height:1.4}
  .map-main #map{height:300px;min-height:300px}
  .route-panel{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px}
  .route-origin,.route-heading,.shared-distance,.travel-summary{grid-column:1;grid-row:auto}
  .route-origin strong{font-size:13px}.route-origin small{font-size:11px}
  .route-heading h3{font-size:21px;margin:6px 0 0}
  .travel-summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:14px 16px}
  .travel-summary>span{font-size:13px;margin:0}
  .travel-summary>strong{grid-column:2;grid-row:1/span 2;font-size:28px;text-align:right}
  .travel-summary>small{font-size:10px;margin:0}
  .route-panel .button{white-space:normal;min-height:44px;font-size:12px;text-align:left;justify-self:stretch;justify-content:flex-start}
  .route-panel #route-info{font-size:11px}
  .metro-highlight strong{font-size:14px;line-height:1.4}.metro-highlight small{font-size:12px;line-height:1.5}
  .parking h3{font-size:15px}.parking p{font-size:13px}
  .restaurants-block{padding:24px 14px;margin-top:40px}
  .restaurants-head h3{font-size:22px;line-height:1.3;margin-top:0}
  .contact-grid{grid-template-columns:minmax(0,1fr);gap:26px}
  .contact-intro{max-width:none;margin-top:18px}
  dl>div{font-size:13px;gap:16px;line-height:1.5}
  .footer-top p,.footer-bottom,.footer-bottom button{font-size:11px}
  .footer-bottom button{min-height:44px;text-align:left}
  .mobile-cta{bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
  #modal{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
  #modal:has(.office-full-photo){width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;padding-top:calc(44px + env(safe-area-inset-top,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  #modal:has(.office-full-photo) #modal-content{height:100%;display:flex;flex-direction:column}
  #modal .office-full-photo{height:0;min-height:0;flex:1;object-fit:contain}
  #modal .lightbox-footer{flex-shrink:0;padding:12px;gap:10px}
  #modal .lightbox-footer>span{font-size:12px;line-height:1.4}
  #modal .lightbox-caption{flex-shrink:0;font-size:11px;padding:0 12px 12px}
  #modal:has(.office-full-photo) .modal-close{top:env(safe-area-inset-top,0px)}
}
@media(hover:none){.photo-button:hover img{transform:none}}
