/* Shared navigation, service icons and enquiry flow. */
:root{--navigation-height:72px}
[id]{scroll-margin-top:calc(var(--navigation-height) + 20px)}
[hidden]{display:none!important}
.site-navigation{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:32px;height:var(--navigation-height);padding:0 var(--gutter);background:var(--paper);border-bottom:1px solid #1d1d1f25;font:var(--weight-ui) var(--type-ui)/1.3 var(--font-body);transition:background-color .2s,border-color .2s}
.site-navigation--home{position:fixed;inset:0 0 auto;background:transparent;border-color:transparent}
.site-navigation--home.is-past-hero,.site-navigation--home.has-spaces-open{background:var(--paper);border-color:#1d1d1f25}
.navigation-brand{display:flex;align-items:center;flex:none;min-height:44px}
.navigation-brand svg{width:96px;height:auto}
.site-navigation .menu-toggle{display:none}
.navigation-panel{display:flex;align-items:center;gap:32px}
.navigation-panel>a,.navigation-spaces>summary{display:flex;align-items:center;gap:12px;min-height:44px;white-space:nowrap}
.navigation-panel [aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.navigation-spaces{position:relative}
.navigation-spaces>summary{cursor:pointer;list-style:none}
.navigation-spaces>summary::-webkit-details-marker{display:none}
.navigation-spaces>summary svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s}
.navigation-spaces[open]>summary svg{transform:rotate(180deg)}
.navigation-categories{position:absolute;top:calc(100% + 13px);left:-20px;min-width:240px;padding:12px 20px;background:var(--paper);border:1px solid #1d1d1f25}
.navigation-categories a{display:flex;align-items:center;min-height:44px;white-space:nowrap}
.navigation-estimate{border-left:1px solid #1d1d1f30;padding-left:32px}
.page-header{padding-top:112px}
@media(hover:hover){.navigation-panel a:hover,.navigation-spaces>summary:hover{text-decoration:underline;text-underline-offset:5px}}
@media(max-width:1000px){.page-header{padding-top:96px;grid-template-rows:auto 1fr auto}.page-header-title{grid-row:1}.page-header-logo{grid-row:2}.page-header-description{grid-row:3}}
@media(max-width:800px){
 :root{--navigation-height:60px}
 .site-navigation{gap:16px}
 .navigation-brand svg{width:88px}
 .site-navigation .menu-toggle{display:flex;align-items:center;justify-content:flex-end;width:auto;min-width:60px;min-height:44px;font-size:var(--type-ui);line-height:1.3}
 .navigation-panel{position:absolute;top:100%;left:0;right:0;display:none;grid-template-columns:1fr 1fr;gap:12px 20px;padding:12px var(--gutter) 20px;background:var(--paper);border-bottom:1px solid #1d1d1f25}
 .site-navigation.is-open .navigation-panel{display:grid}
 .site-navigation--home.is-open{background:var(--paper);border-color:#1d1d1f25}
 .navigation-spaces{grid-column:1/-1}
 .navigation-spaces>summary{display:none}
 .navigation-categories{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;min-width:0;padding:0 0 12px;border:0;border-bottom:1px solid #1d1d1f25}
 .navigation-categories a{white-space:normal;line-height:1.4;padding:6px 0}
 .navigation-panel>a{white-space:normal;gap:8px}
 .navigation-estimate{border-left:0;padding-left:0}
 .navigation-contact{justify-self:end}
 .page-header{padding-top:84px}
}
.interior-display{font:var(--weight-display) var(--type-display)/var(--line-display) var(--font-display);text-transform:uppercase;letter-spacing:normal;padding:.04em 0 .06em}
.services-grid--single .service-group{display:block}
.services-grid--single .service-group header{max-width:480px;min-height:88px}
.services-grid--single .service-group ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;padding-top:8px}
.services-grid--single .service-group li{display:flex;flex-direction:column;align-items:flex-start;gap:24px;min-height:180px;padding:26px 0!important;border-top:1px solid #1d1d1f26!important;line-height:1.45;letter-spacing:0}
.service-item-icon{width:42px;height:42px;flex:none;fill:none}
.service-group li span{max-width:230px}
.calculator-section{padding:20px var(--gutter) clamp(80px,10vw,144px)}
.calculator-heading-row{display:grid;grid-template-columns:1.35fr .65fr;align-items:end;gap:40px;padding:64px 0 80px}
.calculator-heading-row p{max-width:390px;line-height:1.5}
.calculator-layout{display:grid;grid-template-columns:1fr 1.45fr;gap:clamp(40px,8vw,140px)}
.calculator-aside{display:flex;align-items:flex-start;flex-direction:column;gap:28px;max-width:340px;line-height:1.5}
.small-copy{font-size:var(--type-ui);line-height:1.5;letter-spacing:0}
.calculator-aside .small-copy{opacity:.7}
.text-link{text-decoration:underline;text-underline-offset:5px;font-size:var(--type-ui);line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
.calculator-main{min-width:0}
#price-calculator fieldset{border:0;border-top:1px solid #1d1d1f65;padding:24px 0 32px;margin:0;min-width:0}
#price-calculator legend{float:left;width:100%;display:flex;gap:20px;font-weight:400;margin-bottom:24px;font-size:var(--type-body)}
#price-calculator legend span{font-size:var(--type-caption);padding-top:4px;opacity:.55}
.choice-grid{clear:both;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.choice{position:relative;min-width:0;cursor:pointer}
.choice input{position:absolute;opacity:0;width:1px;height:1px;inset:50%}
.choice span{display:flex;align-items:center;justify-content:center;min-height:60px;border:1px solid #1d1d1f45;padding:12px 10px;text-align:center;font-size:var(--type-ui);line-height:1.35;transition:background .2s,color .2s,border .2s}
.choice input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.choice input:focus-visible+span{outline:2px solid;outline-offset:3px}
.area-field{clear:both;display:flex;align-items:baseline;gap:12px;max-width:300px;border-bottom:1px solid #1d1d1f65;margin-bottom:12px}
.area-field input{width:100%;min-width:0;font:300 36px/1.2 var(--font-body);padding:8px 0 16px;border:0;color:var(--ink);background:transparent;border-radius:0}
.area-field span{font-size:var(--type-body)}
.calculator-submit,.estimate-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:8px}
.calculator-submit p{max-width:180px;opacity:.7}
.primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 20px;min-height:54px;background:var(--ink);color:var(--paper);font-size:var(--type-ui);font-weight:400;line-height:1.4}
.primary-action:disabled{opacity:.5;cursor:wait}
/* Estimate sheet: inputs, range, scope, conditions, source and next step. */
.estimate-result{scroll-margin-top:calc(var(--navigation-height) + 20px);border:1px solid #1d1d1f45;padding:clamp(20px,3vw,40px);background:#ebe5d8}
.estimate-result h3{font:900 clamp(40px,4vw,64px)/.95 var(--font-display);text-transform:uppercase;margin:32px 0 28px}
.estimate-result h4,.estimate-inputs dt,.estimate-label,.estimate-sources dt{font-size:var(--type-caption);font-weight:400;line-height:1.3;text-transform:uppercase;letter-spacing:.04em;opacity:.62}
.estimate-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid #1d1d1f30}
.estimate-inputs>div{padding:14px 16px 16px 0;min-width:0}
.estimate-inputs>div+div{border-left:1px solid #1d1d1f30;padding-left:16px}
.estimate-inputs dd{margin-top:6px;font-size:var(--type-menu);font-weight:400;overflow-wrap:anywhere}
.estimate-price{padding:36px 0 32px}
.estimate-total{font:900 clamp(48px,5vw,84px)/1 var(--font-display);margin:14px 0 24px;letter-spacing:normal}
.estimate-total span{white-space:nowrap}
.estimate-range{position:relative;height:6px;border-radius:3px;background:#1d1d1f1a;overflow:hidden}
.estimate-range-fill{position:absolute;inset:0 0 0 var(--from,60%);border-radius:3px;background:var(--ink);transform-origin:left;animation:estimate-fill .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes estimate-fill{from{transform:scaleX(0)}}
.estimate-rate{margin-top:14px;font-size:var(--type-ui);opacity:.75}
.estimate-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;padding:28px 0;border-top:1px solid #1d1d1f30}
.estimate-scope:has(.estimate-excludes[hidden]) .estimate-includes{grid-column:1/-1}
.estimate-list ul{display:grid;gap:10px;margin-top:14px}
.estimate-list li{position:relative;padding-left:24px;font-size:var(--type-menu);line-height:1.4}
.estimate-includes li::before{content:"";position:absolute;left:1px;top:.32em;width:9px;height:5px;border-left:1.5px solid;border-bottom:1.5px solid;transform:rotate(-45deg)}
.estimate-excludes li{opacity:.72}
.estimate-excludes li::before{content:"";position:absolute;left:0;top:.7em;width:11px;border-top:1.5px solid}
.estimate-conditions{padding:28px 0;border-top:1px solid #1d1d1f30}
.estimate-conditions li{font-size:var(--type-ui);line-height:1.5}
.estimate-conditions li::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:currentColor}
.estimate-conditions li:first-child{font-weight:400}
.estimate-sources{border-block:1px solid #1d1d1f30;font-size:var(--type-ui)}
.estimate-sources summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;list-style:none}
.estimate-sources summary::-webkit-details-marker{display:none}
.estimate-sources summary::after{content:"+";font-size:20px;line-height:1;transition:transform .2s}
.estimate-sources[open] summary::after{transform:rotate(45deg)}
.estimate-sources dl{display:grid;gap:10px;padding:4px 0 8px}
.estimate-sources dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:baseline}
.estimate-source{display:inline;min-height:auto;overflow-wrap:anywhere}
.estimate-method{margin:4px 0 16px;opacity:.75}
.estimate-next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:28px;padding:24px;border:1px solid #1d1d1f30;background:var(--paper)}
.estimate-next-title{margin-bottom:8px;font:900 clamp(24px,2.2vw,32px)/1 var(--font-display);text-transform:uppercase}
.estimate-next .small-copy{max-width:320px;opacity:.75}
.estimate-next .estimate-actions{flex-direction:row-reverse;gap:24px;margin:0}
@media(prefers-reduced-motion:reduce){.estimate-range-fill{animation:none}.estimate-sources summary::after{transition:none}}
.contact-page .contact-section{padding-top:28px}
.contact-page h1{margin:64px 0 80px}
.contact-intro{line-height:1.5}
.contact-project{border-top:1px solid;margin-top:32px;padding-top:20px;max-width:420px}
.contact-project p+p{margin-top:12px;line-height:1.5}
.contact-project a{margin-top:14px}
.contact-calculate{margin-top:32px;max-width:340px}
@media(hover:hover){.choice:hover span{border-color:var(--ink)}.primary-action:hover{background:#594037}}
@media(max-width:1180px){.calculator-layout{grid-template-columns:.7fr 1.3fr;gap:40px}}
@media(max-width:800px){.services-grid--single .service-group ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.services-grid--single .service-group li{min-height:154px;gap:18px;padding:22px 0!important}.service-item-icon{width:36px;height:36px}.calculator-heading-row{grid-template-columns:1fr;gap:28px;padding:40px 0 48px}.calculator-heading-row p{max-width:440px}.calculator-layout{grid-template-columns:1fr;gap:36px}.calculator-aside{max-width:520px;gap:16px}.calculator-aside>p:first-child{display:none}.calculator-aside .text-link{display:none}.calculator-submit{align-items:flex-start;flex-direction:column;gap:16px}.calculator-submit p{max-width:none}.calculator-submit .primary-action{width:100%}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice span{min-height:56px}.contact-page h1{margin:40px 0 48px}.contact-page .contact-grid{gap:32px}}
@media(max-width:380px){.services-grid--single .service-group ul{gap:0 16px}.service-group li span{font-size:13px}}
/* Contact fields and the primary action use the existing palette and type scale. */
.contact-page .contact-form{gap:24px;align-content:start}
.contact-page .field{gap:10px}
.contact-page .field input,.contact-page .field textarea{border:1px solid #59403766;background:#fffcf5;padding:15px 16px;line-height:1.5;min-height:54px;transition:border-color .15s,box-shadow .15s}
.contact-page .field textarea{min-height:148px}
.contact-page .field input::placeholder,.contact-page .field textarea::placeholder{color:#786b64;opacity:1}
.contact-page .field input:focus,.contact-page .field textarea:focus{border-color:#594037;box-shadow:0 0 0 1px #594037;outline:none}
.contact-page .form-bottom{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.contact-page .form-bottom .contact-submit{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:16px 20px;background:#594037;color:var(--paper);font-size:16px;line-height:1.4;text-decoration:none;transition:background-color .2s}
.contact-submit span:last-child{font-size:var(--type-icon);line-height:1}
.contact-page .form-bottom p{max-width:none;text-align:center}
.contact-page .form-feedback:empty{display:none}
@media(hover:hover){.contact-page .form-bottom .contact-submit:hover{background:var(--ink)}}
@media(max-width:800px){.contact-page h1{margin:32px 0}.contact-page .contact-form{gap:22px}.contact-page .field input,.contact-page .field textarea{font-size:16px}}
/* Larger invisible tap areas for small links on touch screens; no visual change. */
@media(pointer:coarse){.section-kicker a,.footer-logo{position:relative}.section-kicker a::after{content:"";position:absolute;inset:-15px -10px}.footer-logo::after{content:"";position:absolute;inset:-6px -4px}}
@media(max-width:800px){.estimate-inputs{grid-template-columns:1fr}.estimate-inputs>div,.estimate-inputs>div+div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-left:0}.estimate-inputs>div+div{border-top:1px solid #1d1d1f30}.estimate-inputs dd{margin:0;text-align:right}.estimate-price{padding:28px 0 26px}.estimate-total{font-size:clamp(40px,12vw,64px)}.estimate-scope{grid-template-columns:1fr;gap:24px}.estimate-sources dl>div{grid-template-columns:1fr;gap:2px}.estimate-next{flex-direction:column;align-items:stretch;padding:20px}.estimate-next .estimate-actions{flex-direction:column;align-items:stretch;gap:4px}.estimate-next .primary-action{width:100%}.estimate-next .text-link{justify-content:center}}
/* Homepage slider cards: the space name, large and clear, with "Más info" opposite. */
.filmstrip-card__meta--title{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;padding-top:12px}
.filmstrip-card__title{margin:0;font:900 clamp(26px,2.6vw,40px)/.92 var(--font-display);letter-spacing:normal;text-transform:uppercase}
.filmstrip-card__more{display:inline-flex;align-items:center;gap:8px;min-height:32px;margin-bottom:-6px;white-space:nowrap}
.filmstrip-card__more-label{text-decoration:underline;text-underline-offset:4px}
.filmstrip-card__more>span[aria-hidden]{display:inline}
@media(pointer:coarse){.filmstrip-card__more{min-height:44px;margin-bottom:-12px}}
@media(max-width:800px){.filmstrip-card__meta--title{grid-template-columns:minmax(0,1fr) auto;gap:12px}}
