/* Plantillas propias provincial y local. Medidas tomadas de la réplica. */
.interior h5,.interior h6 { margin:0; padding:0 0 10px; color:#333; font-weight:500; line-height:1; overflow-wrap:break-word; }
.interior h5 { font-size:16px; } .interior h6 { font-size:14px; }
.interior b { font-weight:700; }
.interior-callout { margin-top:0; margin-bottom:0; overflow:hidden; }
.interior-callout h2 { overflow-wrap:normal; }
.provincia .interior-callout { margin-top:-2px; margin-bottom:-33px; }
.provincia .hero-subtitle { text-align:left; }
.provincia .introduction-title,.provincia .introduction-description { text-align:left; }
.provincia .introduction-description h3 { font-size:22px; line-height:1.4; letter-spacing:2px; }
.province-summary>.row { padding-block:0; }
.province-gap { position:relative; padding:26px 0 54px; margin-top:-53px; background:var(--pale); }
.province-cities { padding-top:0; }
.cities-main,.cities-secondary { padding:5.82% 0; }
.cities-main h3 { font-size:30px; }
.cities-secondary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:11.64%; }
.cities-secondary h3 { font-size:25px; letter-spacing:1px; }
.cities-secondary>div:last-child h3 { line-height:1.1; }
.province-photo { margin-bottom:-11px; padding:6.041% 0; }
.province-photo img { display:block; }
.label-title { max-width:400px; border-bottom:2px solid var(--blue); }
.label-title h6 { font:600 18px/1.8 'Libre Franklin',Helvetica,Arial,sans-serif; color:var(--blue); }
.town-group { font-size:35px; letter-spacing:5px; line-height:1.8; margin-bottom:2.75%; overflow-wrap:break-word; }
.town-group:last-child { margin-bottom:0; }
.interior .contact-image a { display:inline-block; }
.local-title { margin-bottom:2.75%; text-align:center; }
.local-hero { margin-bottom:-70px; }
.local-title h1 { font:500 70px/1 'Libre Franklin',Helvetica,Arial,sans-serif; color:#000; text-shadow:0 .1em .1em rgba(0,0,0,.4); }
.local-introduction { padding-bottom:0; }
.local-intro-grid { padding-top:0; display:grid; grid-template-columns:57.8% 36.7%; column-gap:5.5%; }
.local-subtitle { padding:58px 0 20px; margin-bottom:5px; min-height:135px; font-size:1px; line-height:1.4; text-align:center; text-shadow:-.29em .1em 1.37em rgba(0,0,0,.4); }
.local-subtitle h2 { font:500 48px/1.2 'Libre Franklin',Helvetica,Arial,sans-serif; }
.local-intro-text { margin-bottom:-8px; }
.local-intro-text:nth-child(2) { font-family:'Libre Franklin',Helvetica,Arial,sans-serif; }
.local-intro-text h4 { font-size:25px; line-height:1.1; }
.local-intro-text:nth-child(2) h4 { font-family:'Libre Franklin',Helvetica,Arial,sans-serif; }
.local-logo { margin-right:-8px; }
.techniques { padding-top:46px; }
.card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:5.5%; }
.detail-card { font-family:'Libre Franklin',Helvetica,Arial,sans-serif; text-align:center; }
.detail-card h3 { font:600 22px/1.3 'Libre Franklin',Helvetica,Arial,sans-serif; }
.card-image { margin-bottom:30px; line-height:0; }
.card-image img { box-shadow:0 12px 18px -6px rgba(0,0,0,.3); }
.localidad .interior-callout { padding:50px 0; }
.localidad .interior-callout::before { content:''; position:absolute; inset:0; background:url('./images/mascara-llamada.svg') center/100% 100% no-repeat; mix-blend-mode:soft-light; pointer-events:none; }
.localidad .callout-inner { position:relative; }
.feature-row { display:grid; grid-template-columns:1fr 2fr; }
.feature-copy { padding:30% 15%; background:#efe9e4; min-width:0; }
.feature-copy h2 { font:600 36px/1.2 'Libre Franklin',Helvetica,Arial,sans-serif; }
.feature-copy>div:first-child { margin-bottom:0; }
.feature-text { font:500 18px/1.8 'Libre Franklin',Helvetica,Arial,sans-serif; margin-top:25px; }
.feature-rule { position:relative; height:23px; max-width:50px; }
.feature-rule::before { content:''; position:absolute; top:50%; width:100%; border-top:3px solid #fdb467; }
.feature-image { min-height:400px; background-position:center; background-size:cover; }
.feature-reversed { grid-template-columns:2fr 1fr; }
.feature-reversed .feature-image { grid-column:1; grid-row:1; }
.feature-reversed .feature-copy { grid-column:2; color:rgba(255,255,255,.7); background:#3f87c1; }
.feature-reversed h2 { color:#fff; }
.feature-reversed .feature-rule { margin-inline:auto; }
.local-services { padding:54px 0; }
.service-intro,.service-payment { max-width:600px; font-size:16px; line-height:1.8; }
.service-intro { margin-bottom:2.75%; }
.service-intro h3 { font-size:55px; }
.service-group-title { margin:5.82% 0; }
.service-group-title h2 { font:300 42px/1.4 'Libre Franklin',Helvetica,Arial,sans-serif; }
.service-detail { display:grid; grid-template-columns:32px minmax(0,1fr); gap:15px; margin:0 auto 5.82%; max-width:550px; line-height:1.8; }
.service-detail:last-child { margin-bottom:0; }
.service-detail>.icon { font-size:32px; color:var(--blue); }
.service-detail h4 { font:600 18px/1.8 'Libre Franklin',Helvetica,Arial,sans-serif; }
.business-services .label-title { border-color:#d72326; }
.business-services .label-title h6,.business-services .service-detail>.icon { color:#d72326; }
.local-map { text-align:center; }
.local-map iframe { border:0; width:100%; }
.variante-marbella .local-intro-text:nth-child(3) { padding-top:17px; margin-top:12px; margin-bottom:-10px; }
.variante-marbella .local-intro-text:nth-child(3) h2 { font-size:27px; }
.local-note { font-size:16px; }
.local-note h4 { font-size:28px; letter-spacing:3px; line-height:1.8; }
.nearby-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:5.5%; font-size:31px; line-height:23.8px; overflow-wrap:break-word; }
/* El HTML antiguo deja negritas abiertas a partir de las fichas. Conservamos
   su apariencia con CSS explícito, sin reproducir ese marcado inválido. */
.texto-heredado-negrita .detail-card,.texto-heredado-negrita .feature-copy,.texto-heredado-negrita .feature-text,
.texto-heredado-negrita .statistics-note,.texto-heredado-negrita .local-services,.texto-heredado-negrita .contact-item,
.texto-heredado-negrita .nearby-towns,.texto-heredado-negrita .copyright { font-weight:700; }
.texto-heredado-negrita .whatsapp>span { font-weight:700; }
.detail-card,.service-detail,.feature-text { overflow-wrap:break-word; }
@media(min-width:981px) { .provincia main { margin-top:-1px; } }
@media(max-width:980px) {
 .province-photo { padding:0; }
 .province-summary .columns>.province-photo { margin-bottom:19px; }
 .cities-main,.cities-secondary { padding:30px 0; }
 .cities-secondary { column-gap:5.5%; }
 .town-group { margin-bottom:30px; }
 .local-intro-grid { display:block; }
 .local-intro-grid>div:first-child { margin-bottom:30px; }
 .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:30px; }
 .feature-row,.feature-reversed { display:flex; flex-direction:column; }
 .feature-copy { padding:10% 5%; }
 .feature-row>div { margin-bottom:0; }
 .feature-reversed .feature-image { order:-1; }
 .local-title,.service-intro { margin-bottom:30px; }
 .service-group-title { margin:30px 0; }
 .service-detail { margin-bottom:30px; }
 .nearby-grid { display:block; }
 .nearby-grid>div:not(:last-child) { margin-bottom:30px; }
}
@media(max-width:767px) {
 .cities-secondary { display:block; }
 .cities-secondary>div:not(:last-child) { margin-bottom:30px; }
 .service-group-title h2 { font-size:32px; }
}
@media(max-width:479px) { .card-grid { display:block; } .detail-card:not(:last-child) { margin-bottom:30px; } }
