/* Tipografía común a todas las páginas de Casa Grande. */
:root{
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --serif:var(--sans);
}
html body, html body *{ font-family:var(--sans) !important; }
html body{ font-weight:400; }
input, select, textarea, button{ font-family:var(--sans) !important; }
h1, h2, h3, h4, h5, h6, .display, .tapa h1, .gracias h2{
  font-weight:800 !important; font-style:normal; line-height:1.2; letter-spacing:-.025em;
}
h1 em, h2 em, h3 em, h4 em, .display em{
  font-family:var(--sans); font-style:normal !important; font-weight:inherit !important;
}
p{
  text-align:justify !important; text-align-last:left;
  text-justify:inter-word; hyphens:auto; overflow-wrap:break-word;
}
.minihead{ font-style:normal; font-weight:700; }
.frase p{
  white-space:normal; font-style:normal;
  font-size:clamp(1.05rem,2.2vw,1.8rem); line-height:1.55;
  text-align:center !important; text-align-last:center;
  text-wrap:balance; hyphens:none;
}
.frase em{ font-style:normal; }
.counter b{ font-weight:800; line-height:1.2; letter-spacing:-.04em; }
.contacto__head{ flex-wrap:wrap; }
#contacto .rotulo{
  flex:1 1 18rem; min-width:0; max-width:100%;
  font-size:clamp(1.5rem,2.7vw,2.75rem); line-height:1.25;
  letter-spacing:-.025em;
}
#contacto .rotulo em{ white-space:normal; }
.carga__inmobiliaria{
  font-size:clamp(.85rem,3.3vw,1.15rem); font-weight:700; letter-spacing:.08em;
}
@media(max-width:640px){
  .display{ font-size:clamp(1.65rem,7vw,2.5rem); }
  .display--md{ font-size:clamp(1.5rem,6vw,2rem); }
  #contacto .rotulo{ font-size:clamp(1.45rem,6.5vw,2rem); }
}

/* Escala compartida de inicio, Somos y fichas de proyectos.
   Los tamaños se definen por función, nunca por sección. Estas reglas
   prevalecen sobre los tamaños heredados de las hojas anteriores. */
:root{
  --type-title:2.5rem;
  --type-subtitle:1.5rem;
  --type-body:1rem;
  --type-control:.875rem;
  --type-small:.8125rem;
  --type-label:.75rem;
  --type-stat:2rem;
  --type-nav:calc(var(--type-control) + 3px);
  --header-social-icon:27px;
  --type-heading-weight:700;
  --type-heading-leading:1.2;
  --type-body-leading:1.7;
}
body.type-system{
  font-size:var(--type-body);
  font-weight:400;
  line-height:var(--type-body-leading);
  font-optical-sizing:auto;
}
body.type-system :where(p,li){
  font-size:var(--type-body)!important;
  line-height:var(--type-body-leading)!important;
  font-weight:400;
  letter-spacing:normal;
}
body.type-system :where(h1,h2,h3,h4,h5,h6,.form__tit,.family-message h3,.about-photo figcaption){
  font-size:var(--type-subtitle)!important;
  font-weight:var(--type-heading-weight)!important;
  line-height:1.3!important;
  letter-spacing:-.02em!important;
  font-style:normal;
  text-wrap:balance;
}
body.type-system :where(.home-title,.project-intro__heading h1,.project-detail__title,#galeria,#contacto .rotulo){
  font-size:var(--type-title)!important;
  font-weight:var(--type-heading-weight)!important;
  line-height:var(--type-heading-leading)!important;
  letter-spacing:-.025em!important;
}
body.type-system :where(.eyebrow,.home-kicker,.kicker,.project-card__heading p,.project-card__render,.project-cover figcaption,.journey-steps button>span,.trust-item__number,.vent b){
  font-size:var(--type-label)!important;
  line-height:1.5!important;
  font-weight:700!important;
  letter-spacing:.13em!important;
}
body.type-system :where(.project-card__render,.project-cover figcaption){letter-spacing:0!important;font-weight:500!important;}
body.type-system :where(.about-facts span,.family-signature>span:last-child,.project-card__facts li,.project-card__location,.project-carousel__meta,.project-carousel__hint,.project-detail__note,.project-catalog__note,.family-photo__expand,.about-photo figcaption span,.spec span,.badge,.formtip,.formnote,.form__intro,.check,.masdatos,.contact-direct>a>span,.contact-direct>div>span,.piecols__c p,.piecols__copy,.lb__cap,.vent span){
  font-size:var(--type-small)!important;
  line-height:1.6!important;
  font-weight:400;
  letter-spacing:normal!important;
}
body.type-system .project-carousel .shot figcaption{
  font-size:var(--type-small)!important;
  line-height:1.6!important;
  letter-spacing:normal!important;
}
body.type-system :where(.btn,.home-text-link,.project-card__button,.project-back,.about-back,.project-intro__gallery,.journey-steps button,.nav__a,.family-signature strong,.piecols__c h3,.piecols__marca,.cuota__cta){
  font-size:var(--type-control)!important;
  line-height:1.5!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
  font-style:normal;
}
body.type-system :where(.nav__a,.piecols__c h3,.piecols__marca){font-weight:700!important;}
/* Ampliación del menú y redes; la altura de la cabecera se conserva. */
body.type-system .header--inline .nav__a{font-size:var(--type-nav)!important;}
body.type-system .header--inline .redes a{width:35px;height:38px;}
body.type-system .header--inline .redes svg{width:var(--header-social-icon);height:var(--header-social-icon);}
body.type-system .btn{text-transform:none;letter-spacing:0!important;}
body.type-system .rotulo{transform:none;filter:none;text-shadow:none;text-transform:none;-webkit-text-fill-color:currentColor;}
body.type-system .rotulo em{transform:none;margin-left:0;-webkit-text-fill-color:currentColor;}
body.type-system :where(.fq__q,.about-details summary){
  font-size:var(--type-body)!important;
  line-height:1.5!important;
  font-weight:600!important;
  letter-spacing:normal!important;
}
body.type-system :where(.fld input,.fld select){
  font-size:1rem!important;
  line-height:1.5!important;
  font-weight:400!important;
  letter-spacing:normal!important;
}
body.type-system .fld label{font-size:var(--type-control)!important;line-height:1.5!important;font-weight:400!important;letter-spacing:normal!important;}
body.type-system :where(.about-facts b,.counter b){
  font-size:var(--type-stat)!important;
  line-height:1.2!important;
  font-weight:700!important;
  letter-spacing:-.025em!important;
}
body.type-system :where(.spec b,.cuota b,.contact-direct strong){
  font-size:var(--type-subtitle)!important;
  line-height:1.3!important;
  font-weight:600!important;
  letter-spacing:-.02em!important;
}
body.type-system .drawer nav a{font-size:var(--type-subtitle);font-weight:700;line-height:1.3;letter-spacing:-.02em;}
body.type-system .frase p{font-size:var(--type-subtitle)!important;line-height:1.5!important;font-weight:400;}
body.type-system .project-intro__heading>div{min-width:0;}
body.type-system .project-intro__actions{flex-wrap:wrap;}
body.type-system .project-intro__actions .btn{flex-shrink:0;}
body.type-system .specs{grid-template-columns:repeat(4,minmax(0,1fr));}
body.type-system .spec{min-width:0;}
body.type-system .spec b{overflow-wrap:anywhere;hyphens:auto;}
body.type-system .about-layout{align-items:stretch;}
body.type-system .about-photo{height:auto;min-height:440px;}
body.type-system :where(.journey-panel p,.family-message h3){min-height:0;}
body.type-system .contact-direct--row{margin-top:0;}
body.type-system .project-card__heading>div{min-width:0;}
@media(max-width:1000px){
  :root{--type-title:2.125rem;}
}
@media(min-width:1001px) and (max-width:1200px){
  body.type-system .header--inline .header__main{gap:12px;}
  body.type-system .header--inline .nav{gap:16px;}
  body.type-system .header--inline .header__actions{gap:12px;}
}
@media(max-width:700px){
  :root{--type-title:1.875rem;--type-subtitle:1.25rem;--type-body:.9375rem;--type-label:.6875rem;--type-stat:1.75rem;}
  body.type-system .about-photo{height:300px;min-height:0;}
  body.type-system .project-card__heading{align-items:flex-end;}
  body.type-system .specs{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.type-system .header__cta{font-size:var(--type-small)!important;}
  body.type-system .hero__cta--strip .btn{font-size:var(--type-small)!important;padding-left:4px;padding-right:4px;}
  body.type-system .hero__cta--strip .btn span{gap:4px;}
}
@media(max-width:360px){
  body.type-system .header--inline .header__main{gap:4px;}
  body.type-system .header--inline .marca__nom{width:86px;}
  body.type-system .header--inline .header__cta{padding:0 8px;}
}
