@font-face{font-family:'Libre Baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/librebaskerville-kmkhzrc3hgbbcjq75u4uslyuy4kn0qncwx8qdp2v.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Libre Baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/librebaskerville-kmkhzrc3hgbbcjq75u4uslyuy4kn0qncwxeqda.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/librebaskerville-kmknzrc3hgbbcjq75u4uslyuy4kn0qnxaxmica.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/librebaskerville-kmknzrc3hgbbcjq75u4uslyuy4kn0qnzaxm.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/librebaskerville-kmkizrc3hgbbcjq75u4uslyuy4kn0qvitgy5kccsww.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/librebaskerville-kmkizrc3hgbbcjq75u4uslyuy4kn0qvitgy3kca.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia2jl7suc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia0zl7suc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia2zl7suc.woff2) format('woff2');unicode-range:U+1F00-1FFF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia1pl7suc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia2pl7suc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia25l7suc.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-ucc73fwrk3iltehus_nvmrmxcp50sjia1zl7.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#000;font:14px/21px Inter,sans-serif}
main{display:block}
img{max-width:100%;height:auto;border:0;vertical-align:middle}
a{color:#000;text-decoration:none}
h1,h2,h3{margin:0;font-weight:500}
p{margin:0 0 14.4px}
ul{margin:0;padding:0;list-style:none}
iframe{display:block;width:100%;height:100%;border:0}
:focus-visible{outline:2px solid #000;outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:#fff;padding:8px 12px}
.skip:focus{left:0}
.wrap{width:min(1140px,100% - 40px);margin-inline:auto}
.serif{font-family:'Libre Baskerville',serif}

/* aparición suave al hacer scroll (solo navegadores con scroll-driven animations) */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@supports (animation-timeline:view()){
  .reveal{animation:fadeIn linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
}
@media (prefers-reduced-motion:reduce){.reveal{animation:none!important}}

.rule{height:0;border:0;border-top:1px solid #000;margin:15px 0}

/* ---------- cabecera ---------- */
.hero{position:relative;height:581px;margin-top:-100px;background:#fff url(../img/futuristic-empty-room-3d-rendering-2022-12-16-22-22-34-utc.webp) 50% 0/cover no-repeat}
.hero-logo{position:absolute;top:154px;left:50%;width:348px;transform:translateX(-50%)}
.hero-logo img{display:block;width:100%}

/* ---------- portada ---------- */
.lead{position:relative;margin-top:-190px;display:grid;grid-template-columns:461fr 354fr 325fr;align-items:start}
.lead-t{grid-column:1;grid-row:1;align-self:center}
.lead h1{font:500 35px/35px 'Libre Baskerville',serif}
.lead .rule{width:48%;margin:35px 0}
.lead-t p{font:500 23px/34.5px 'Libre Baskerville',serif}
.lead-i1,.lead-i2{grid-row:1;width:321px}
.lead-i1{grid-column:2}
.lead-i2{grid-column:3}

.intro{padding-top:60px}
.intro .rule{margin:35px 0}
.intro .rule:first-child{margin-top:15px}
.intro .rule:last-child{margin-bottom:15px}
.intro p{margin:0;text-align:justify;font:400 22px/33px 'Libre Baskerville',serif}

/* ---------- servicios ---------- */
.svc{display:grid;grid-template-columns:1fr 1fr;padding-top:60px}
.svc-t{align-self:center;padding:30px 1px 0 50px}
.svc h2{margin:0 0 26px;font:600 17px/25.5px 'Libre Baskerville',serif}
.svc p{font:400 22px/33px 'Libre Baskerville',serif}
.svc img{width:100%}
.svc-a img{grid-column:1;grid-row:1}
.svc-a .svc-t{grid-column:2;grid-row:1}
.svc-b img{grid-column:2;grid-row:1;width:calc(100% - 6px);margin-left:5px}
.svc-b .svc-t{grid-column:1;grid-row:1;padding:30px 51px 0 0}

.closing{padding:88.5px 10% 38px 11%;text-align:center}
.closing .rule:first-child{margin:15px 0 0}
.closing .rule:last-child{margin:30px 0 15px}
.closing p{margin:30px 0 0;color:#212121;letter-spacing:2px;font:800 27px/29.7px 'Libre Baskerville',serif;letter-spacing:2px}
.closing h2{margin:15px 0 0;color:#222;letter-spacing:-1.6px;font:500 28px/36.4px 'Libre Baskerville',serif;letter-spacing:-1.6px}
.sp-a{height:101px}
.sp-b{height:50px}

.gallery{display:grid;grid-template-columns:repeat(3,1fr)}
.gallery img{display:block;width:100%}

/* ---------- contacto ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr 1fr}
.cform{padding:44px 29px 56px 30px}
.cform h2{margin:0 0 34px;font:500 32px/38.4px 'Libre Baskerville',serif;text-align:center}
.g{margin-bottom:10px}
.g label,.consent label{font:500 14px/14px Inter,sans-serif;letter-spacing:3px;text-transform:uppercase}
.g label{display:block}
.req label::after{content:"*";padding-left:.2em;color:red}
.g input,.g textarea{display:block;width:100%;height:40px;margin:0;padding:10px 0 0;border:0;border-bottom:1px solid #69727d;border-radius:0;background:#fff;color:#000;font:500 14px/19.6px Inter,sans-serif}
.g textarea{height:89.4px;resize:vertical}
.g input:focus,.g textarea:focus{border-color:#333;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}
.consent{height:130px;padding:4px 25px 0 0;font:500 10px/21px Inter,sans-serif;letter-spacing:3px;text-transform:uppercase}
.consent input{width:13px;height:13px;margin:0 3px 0 0;vertical-align:baseline}
.consent label{font:inherit;display:inline}
.consent a{color:red;transition:color .3s ease}
.consent a:hover{color:#69727d}
.hp{display:none!important}
.btn{display:block;width:100%;padding:22px 47px;border:1px solid #000;border-radius:0;background:transparent;color:#000;font:500 14px/14px Inter,sans-serif;letter-spacing:3px;text-transform:uppercase;text-align:center;cursor:pointer;transition:all .3s}
.btn:hover,.btn:focus-visible{background:#000;color:#fff}
.fmsg{margin-top:12px;font-weight:600}
.fmsg:empty{display:none}

.map{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:235px;padding:20px;background:#eceae7;text-align:center}
.map .btn{width:auto;padding:16px 30px}
.map small{max-width:260px;font-size:11px;line-height:16px;color:#555}
.map iframe{height:100%;min-height:235px}
.map.on{padding:0;display:block;background:none}

.office{display:grid;grid-template-columns:1fr 1fr;padding:40px 0 15px;text-align:center}
.office>div{padding-right:35px}
.info{display:grid;grid-template-columns:repeat(4,1fr);padding:0 0 40px;text-align:center}
.info>div{grid-column:span 1;padding-right:35px}
.info>div:first-child{grid-column:2}
.office h3,.info h3{display:table;margin:0 auto;border-bottom:1px solid #000;font:500 14px/16.8px Inter,sans-serif;letter-spacing:3px;text-transform:uppercase}
.office p{margin:10.2px 0 0}
.info p{margin:5.2px 0 0}
.info a:hover{text-decoration:underline}

/* ---------- pie ---------- */
.foot{overflow:hidden;padding:155px 0;background:#fff url(../img/IMG-20240426-WA0012.webp) 50% 50%/cover no-repeat;color:#fff}
.foot h2{max-width:1011px;margin:0 0 49px;font:500 32px/38.4px 'Libre Baskerville',serif}
.foot ul{display:flex;flex-wrap:wrap;margin:0 -25px}
.foot li{padding:0 25px}
.foot a{color:#fff}
.foot a:hover{opacity:.8}
.copy{padding:35px 0;text-align:center;font:500 10px/15px Inter,sans-serif;letter-spacing:3px}

/* ---------- páginas legales ---------- */
.lhero{position:relative;height:638px;margin-top:-100px;padding-top:385px;background:#fff url(../img/futuristic-empty-room-3d-rendering-2022-12-16-22-22-34-utc.webp) 50% 0/cover no-repeat}
.lhero .hero-logo{width:280px}
.lhero h1{margin:0 0 15px;font:500 35px/42px 'Libre Baskerville',serif}
.legal{padding:60px 0 25px}
.legal h2{margin:10px 10px;font:500 28px/28px 'Libre Baskerville',serif;text-align:center}
.legal .txt{font:400 16px/24px 'Libre Baskerville',serif}
.legal .txt ul{list-style:disc;padding-left:40px}
.legal .txt ol{padding-left:40px}
.legal .txt a{text-decoration:underline}
.legal .txt table{border-collapse:collapse;max-width:100%}
.legal .txt td,.legal .txt th{border:1px solid #000;padding:4px 8px}

/* ---------- 404 ---------- */
.nf{max-width:720px;margin:0 auto;padding:120px 20px;text-align:center}
.nf h1{margin:0 0 16px;font:500 35px/42px 'Libre Baskerville',serif}

/* ---------- móvil ---------- */
@media (max-width:767px){
  .wrap{width:calc(100% - 20px)}
  .hero{height:312px;margin-top:-67px}
  .hero-logo{top:81px;width:252px;left:calc(50% - 3px)}
  .lead{display:grid;grid-template-columns:43% 43% 1fr;margin-top:-108px;padding-bottom:20px}
  .lead-t{grid-column:1/-1;grid-row:1}
  .lead .rule{width:100%}
  .lead-t p{font-size:20px;line-height:30px}
  .lead-i1{grid-column:1;grid-row:2;width:100%}
  .lead-i2{grid-column:2;grid-row:2;width:100%}

  .intro{padding-top:5px}
  .intro .rule,.intro .rule:first-child,.intro .rule:last-child{margin:15px 0}
  .intro p{font-size:15px;line-height:22.5px;text-align:left}

  .svc{display:flex;flex-direction:column;padding-top:0}
  .svc-1{margin-top:35px}
  .svc+.svc::before{content:"";display:block;border-top:1px solid #000;margin:15px 0 35px}
  .svc-t{display:contents}
  .svc h2{order:1;margin:0 0 26px;text-align:center}
  .svc img,.svc-b img{order:2;width:100%;margin:0 0 20px}
  .svc p{order:3;font-size:14px;line-height:21px}
  .svc-2 img,.svc-4 img{width:calc(100% - 4px);margin-left:2px}
  .svc-6{padding-bottom:30px}

  .closing{padding:0 19.5px 58.5px}
  .closing>div{padding:0 17.5px}
  .closing p{font-size:13px;line-height:14.3px}
  .closing h2{margin-top:27.7px;font-size:22px;line-height:28.6px}
  .sp-a{height:1px}
  .sp-b{display:none}

  .gallery{grid-template-columns:1fr}

  .contact{display:flex;flex-direction:column}
  .cform{order:1;padding:50px 10px 52px}
  .cform h2{font-size:17px;line-height:20.4px}
  .consent{padding-right:6px}
  .contact .map{height:235px;min-height:0}
  .map1{order:2}
  .map2{order:3;margin-top:15px}

  .office{grid-template-columns:1fr;padding:25px 0 20px}
  .office>div{padding-right:0}
  .office>div+div{margin-top:17px}
  .info{grid-template-columns:1fr;padding:0 0 20px}
  .info>div,.info>div:first-child{grid-column:1;padding-right:0}
  .info>div+div{margin-top:13px}

  .foot{padding:100px 0 130px}
  .foot h2{font-size:14px;line-height:16.8px;max-width:none}
  .foot ul{justify-content:center}
  .copy{padding:20px 0;font-size:9px;line-height:13.5px}

  .lhero{height:411px;margin-top:-67px;padding-top:133px}
  .lhero .hero-logo{top:81px;width:111px;left:calc(50% - 2.5px)}
  .lhero h1{text-align:center}
  .legal{padding:0 0 50px}
  .legal h2{margin:60px 10px 10px}
}
