/* Compact desktop composition; mobile retains natural document scrolling. */
.service-private .shade {
  background: linear-gradient(180deg, transparent 8%, #17130e42 31%, #15110df5 100%);
}
@media (min-width: 761px) {
  .services {
    grid-template-rows: minmax(0, 1fr) auto;
    row-gap: 0;
  }
  .services .service {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    align-items: stretch;
  }
  .services .service-body {
    grid-row: 2;
  }
}
.service{min-width:0}
.brand{width:370px;max-width:34vw}.brand-logo{height:auto;max-height:108px;width:100%;object-fit:contain}
.header{padding:10px 4.2%;min-height:100px}.hero{background:none;padding:35px 24px 28px;isolation:isolate}
.hero:before{display:block;content:"";position:absolute;inset:0;background:url('assets/fondo-alcazar.png') center center/cover no-repeat;opacity:1;mask-image:none;z-index:-1;pointer-events:none}
.hero h1{font-size:clamp(40px,4.8vw,76px)}.intro{display:none}
.services{width:min(1800px,91.6%)}.service-body{padding:140px 32px 28px}.commitment{padding:22px 0}.footer{font-size:11px;padding-block:13px}.footer a{color:var(--gold)}
@media(max-width:760px){.services{grid-template-columns:minmax(0,1fr)}.services .service{aspect-ratio:auto;width:100%;min-width:0}}
/* Desktop: align panels with the header and dissolve one continuous backdrop. */
@media(min-width:1100px){
 main{position:relative;isolation:isolate}
 main:before{content:"";position:absolute;inset:22% 0 0;z-index:-1;pointer-events:none;background:url('assets/fondo-alcazar.png') center center/cover no-repeat;opacity:.12;mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent 95%)}
 .hero:before{display:block;background-size:auto 110%;background-position:right center;background-repeat:no-repeat;opacity:1;mask-image:linear-gradient(to right,transparent 42%,rgba(0,0,0,.35) 62%,#000 80%)}
 .hero:after{content:"";position:absolute;inset:0 auto 0 0;width:24%;z-index:-1;pointer-events:none;background:url('assets/fondo-alcazar.png') left center/auto 110% no-repeat;opacity:.48;mask-image:linear-gradient(to right,#000,transparent 95%)}
 .brand{width:420px}.brand-logo{max-height:122px}
 .services{width:80%;max-width:2100px}
 .service{min-width:0}
 .service-body{max-width:100%}
 .service p{max-width:560px}
}
@media(min-width:1100px) and (min-height:740px){
 html{scroll-padding-top:0}
 body{height:100svh;min-height:740px;display:grid;grid-template-rows:clamp(104px,11svh,132px) minmax(0,1fr) 38px}
 .header{min-height:0;height:100%;padding-block:5px}
 main{display:grid;grid-template-rows:minmax(230px,.78fr) minmax(270px,.9fr) minmax(68px,.25fr);min-height:0;padding-bottom:clamp(8px,2svh,28px)}
 .hero{padding:15px 24px;display:flex;align-items:center;justify-content:center;min-height:0}
 .hero h1{font-size:clamp(40px,min(4.5vw,6svh),80px);line-height:1.08}
 .motto{font-size:clamp(20px,2.5svh,30px);margin:18px 0 0}
 .services{height:100%;min-height:0;gap:22px}
 .service{height:100%;min-height:0;aspect-ratio:auto}
 .service-body{padding:24px 34px;min-height:0}
 .service h2{font-size:clamp(29px,min(3.3vw,4.7svh),50px);margin-bottom:12px}
 .service p{font-size:clamp(14px,1.7svh,18px);line-height:1.45;max-width:560px;margin-bottom:12px}
 .service-link{font-size:clamp(14px,1.65svh,17px)}
 .photo{object-position:center 38%}
 .commitment{align-self:center;padding:0;font-size:clamp(22px,2.6svh,31px)}
 .footer{min-height:0;height:38px;align-items:center;padding:0;border-top:0}
}
@media(max-width:1099px){.brand{width:300px;max-width:36vw}.brand-logo{max-height:85px}.header nav{gap:20px}.hero{padding-block:35px}.services{width:calc(100% - 48px)}.footer{margin-top:5px}}
@media(max-width:760px){.header{min-height:88px;padding:10px 18px}.brand{width:270px;max-width:72vw}.brand-logo{max-height:78px}.menu-button{font-size:13px;gap:6px}.menu-button svg{width:20px}.hero{padding:34px 18px 28px}.hero h1{font-size:clamp(34px,6.9vw,49px)}.hero:before{background-position:65% center;opacity:.65}.services{width:calc(100% - 32px)}.service{min-height:380px}.service-body{padding:150px 24px 26px}.motto{font-size:20px}.commitment{padding:24px 4px;font-size:21px}.footer{flex-wrap:nowrap;gap:10px;font-size:10px;padding-block:16px}.footer a{letter-spacing:0;overflow-wrap:anywhere}}
