
:root {
    --color-principal:#c18b55;
    --color-principal-hover:#d7a36f;
    --color-fondo:#171717;
    --color-superficie:#22211f;
    --color-superficie-clara:#2d2a26;
    --color-texto:#f5f0e8;
    --color-texto-secundario:#c4bbb0;
    --color-borde:#484039;
    --ancho-contenido:1120px;
    --radio:12px;
    --espacio-seccion:clamp(4.5rem,9vw,7.5rem);
    --fuente:Arial,Helvetica,sans-serif;
    --sombra:0 20px 60px rgb(0 0 0 / 24%)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:90px
}
body {
    margin:0;
    background:var(--color-fondo);
    color:var(--color-texto);
    font-family:var(--fuente);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased
}
img {
    display:block;
    max-width:100%
}
a {
    color:inherit
}
a:focus-visible {
    outline:3px solid var(--color-principal-hover);
    outline-offset:4px;
    border-radius:4px
}
.container {
    width:min(var(--ancho-contenido),calc(100% - 40px));
    margin-inline:auto
}
.skip-link {
    position:absolute;
    z-index:100;
    top:8px;
    left:8px;
    padding:12px 16px;
    transform:translateY(-160%);
    background:var(--color-texto);
    color:var(--color-fondo);
    border-radius:6px
}
.skip-link:focus {
    transform:translateY(0)
}
.site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:rgb(23 23 23 / 94%);
    border-bottom:1px solid rgb(255 255 255 / 8%);
    backdrop-filter:blur(14px)
}
.header-inner {
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}
.brand {
    display:inline-flex;
    align-items:center;
    gap:11px;
    text-decoration:none;
    font-size:.94rem;
    line-height:1.2;
    letter-spacing:-.02em
}
.brand strong {
    color:var(--color-principal)
}
.brand small {
    display:block;
    margin-top:5px;
    color:var(--color-texto-secundario);
    font-size:.58rem;
    letter-spacing:.15em
}
.brand-mark {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:1px solid var(--color-principal);
    color:var(--color-principal);
    font-size:.8rem;
    font-weight:800;
    letter-spacing:.08em
}
.button {
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:13px 20px;
    border:1px solid var(--color-principal);
    border-radius:4px;
    background:var(--color-principal);
    color:#171411;
    font-size:.9rem;
    font-weight:700;
    text-decoration:none;
    transition:background-color .2s ease,border-color .2s ease,transform .2s ease
}
.button:hover {
    background:var(--color-principal-hover);
    border-color:var(--color-principal-hover);
    transform:translateY(-1px)
}
.button-small {
    min-height:42px;
    padding:10px 15px;
    font-size:.82rem
}
.section {
    padding-block:var(--espacio-seccion)
}
.hero {
    padding-top:clamp(3.5rem,7vw,6rem)
}
.hero-grid {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    align-items:center;
    gap:clamp(2.5rem,6vw,5.5rem)
}
.eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 22px;
    color:var(--color-principal);
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.17em
}
.eyebrow-line {
    width:28px;
    height:1px;
    background:currentColor
}
h1,h2,h3,p {
    margin-top:0
}
h1,h2 {
    margin-bottom:22px;
    font-size:clamp(2.65rem,5.5vw,5rem);
    font-weight:500;
    line-height:.99;
    letter-spacing:-.065em
}
h1 span,h2 span {
    color:var(--color-principal)
}
.hero-intro {
    max-width:440px;
    margin-bottom:28px;
    color:var(--color-texto-secundario);
    font-size:1.05rem;
    line-height:1.8
}
.hero-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:20px
}
.text-link {
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:44px;
    color:var(--color-texto);
    font-size:.88rem;
    text-decoration-color:var(--color-principal);
    text-underline-offset:5px
}
.text-link:hover {
    color:var(--color-principal-hover)
}
.hero-note {
    display:flex;
    align-items:center;
    gap:9px;
    margin:32px 0 0;
    color:var(--color-texto-secundario);
    font-size:.8rem
}
.status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--color-principal)
}
.hero-image-wrap {
    position:relative
}
.hero-image {
    width:100%;
    height:clamp(360px,48vw,590px);
    object-fit:cover;
    border-radius:var(--radio);
    filter:saturate(.72)
}
.image-label {
    position:absolute;
    right:16px;
    bottom:16px;
    left:16px;
    padding:14px 16px;
    background:rgb(23 23 23 / 88%);
    border:1px solid rgb(255 255 255 / 12%);
    color:var(--color-texto);
    font-size:.82rem;
    backdrop-filter:blur(8px)
}
.image-label span {
    margin-right:10px;
    color:var(--color-principal)
}
.services-section,.location-section {
    background:var(--color-superficie)
}
.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:35px;
    margin-bottom:42px
}
.section-heading h2,.location-grid h2,.contact-inner h2 {
    margin-bottom:0;
    font-size:clamp(2.5rem,4.5vw,4.2rem)
}
.section-aside {
    max-width:310px;
    margin-bottom:6px;
    color:var(--color-texto-secundario);
    font-size:.9rem
}
.price-list {
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid var(--color-borde)
}
.price-list li {
    display:grid;
    grid-template-columns:50px 1fr auto;
    align-items:center;
    gap:18px;
    min-height:78px;
    border-bottom:1px solid var(--color-borde)
}
.service-number {
    color:var(--color-principal);
    font-size:.75rem
}
.service-name {
    font-size:clamp(1rem,2vw,1.2rem)
}
.service-price {
    font-size:1.05rem;
    font-weight:700
}
.gallery-grid {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    grid-template-rows:230px 230px;
    gap:16px
}
.gallery-item {
    position:relative;
    min-width:0;
    min-height:0;
    margin:0;
    overflow:hidden;
    border-radius:7px;
    background:var(--color-superficie)
}
.gallery-item-tall {
    grid-row:span 2
}
.gallery-item img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.7);
    transition:transform .35s ease,filter .35s ease
}
.gallery-item:hover img {
    transform:scale(1.035);
    filter:saturate(1)
}
.gallery-item figcaption {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    padding:32px 16px 15px;
    background:linear-gradient(transparent,rgb(0 0 0 / 80%));
    color:white;
    font-size:.86rem
}
.location-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:clamp(2.5rem,7vw,6rem)
}
.location-intro {
    max-width:390px;
    margin:20px 0 30px;
    color:var(--color-texto-secundario)
}
.hours-card {
    max-width:440px
}
.hours-card h3 {
    margin-bottom:12px;
    font-size:1rem
}
.hours-list {
    margin:0
}
.hours-list div {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 0;
    border-top:1px solid var(--color-borde)
}
.hours-list dt {
    color:var(--color-texto-secundario)
}
.hours-list dd {
    margin:0;
    text-align:right
}
.map-card {
    overflow:hidden;
    border:1px solid var(--color-borde);
    border-radius:var(--radio);
    background:var(--color-fondo)
}
.map-art {
    position:relative;
    height:260px;
    overflow:hidden;
    background-color:#2d332e;
    background-image:linear-gradient(35deg,transparent 47%,#555d50 48%,#555d50 51%,transparent 52%),linear-gradient(125deg,transparent 42%,#495448 43%,#495448 46%,transparent 47%),repeating-linear-gradient(0deg,transparent 0 38px,rgb(225 220 193 / 9%) 39px 41px)
}
.map-road {
    position:absolute;
    display:block;
    height:13px;
    background:#b3a78e;
    border:3px solid #e2d6bd
}
.map-road-one {
    top:43%;
    left:-10%;
    width:125%;
    transform:rotate(-17deg)
}
.map-road-two {
    top:0;
    left:43%;
    width:120%;
    transform:rotate(65deg)
}
.map-road-three {
    top:70%;
    left:-5%;
    width:75%;
    transform:rotate(22deg)
}
.map-pin {
    position:absolute;
    top:43%;
    left:52%;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:5px solid var(--color-fondo);
    border-radius:50% 50% 50% 0;
    background:var(--color-principal);
    color:var(--color-fondo);
    font-size:1.1rem;
    transform:rotate(-45deg);
    box-shadow:var(--sombra)
}
.map-details {
    padding:24px
}
.map-label {
    color:var(--color-principal);
    font-size:.65rem;
    font-weight:700;
    letter-spacing:.15em
}
.map-details h3 {
    margin:9px 0 4px;
    font-size:1.35rem
}
.map-details p {
    margin-bottom:12px;
    color:var(--color-texto-secundario);
    font-size:.9rem
}
.contact-section {
    padding-block:clamp(4rem,8vw,7rem)
}
.contact-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px
}
.contact-inner h2 {
    margin-bottom:18px
}
.contact-inner>div>p:last-child {
    margin-bottom:0;
    color:var(--color-texto-secundario)
}
.contact-actions {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:13px
}
.phone-link {
    min-height:36px;
    color:var(--color-texto);
    text-decoration:none;
    font-weight:700
}
.phone-link span {
    display:block;
    color:var(--color-texto-secundario);
    font-size:.75rem;
    font-weight:400
}
.site-footer {
    padding-top:40px;
    border-top:1px solid var(--color-borde);
    background:#111
}
.footer-main {
    display:grid;
    grid-template-columns:.8fr 1.5fr auto;
    align-items:start;
    gap:35px;
    padding-bottom:35px
}
.legal-copy h2 {
    margin-bottom:10px;
    font-size:.9rem;
    letter-spacing:0
}
.legal-copy p {
    margin-bottom:8px;
    color:var(--color-texto-secundario);
    font-size:.75rem;
    line-height:1.7
}
.back-top {
    color:var(--color-texto-secundario);
    font-size:.78rem;
    text-underline-offset:4px
}
.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-block:18px;
    border-top:1px solid rgb(255 255 255 / 9%);
    color:var(--color-texto-secundario);
    font-size:.7rem
}
@media(max-width:800px) {
    .hero-grid {
        grid-template-columns:1fr;
        gap:34px
    }
    .hero-copy {
        max-width:650px
    }
    .hero-image {
        height:min(72vw,480px)
    }
    .section-heading {
        align-items:start;
        flex-direction:column;
        gap:15px
    }
    .section-aside {
        max-width:520px
    }
    .gallery-grid {
        grid-template-columns:1fr 1fr;
        grid-template-rows:240px 190px 190px
    }
    .gallery-item-tall {
        grid-column:span 2;
        grid-row:auto
    }
    .location-grid {
        grid-template-columns:1fr
    }
    .map-card {
        max-width:600px
    }
    .contact-inner {
        align-items:flex-start;
        flex-direction:column
    }
    .footer-main {
        grid-template-columns:1fr 1.4fr
    }
    .back-top {
        grid-column:1/-1
    }
}
@media(max-width:480px) {
    .container {
        width:calc(100% - 32px)
    }
    .header-inner {
        min-height:70px;
        gap:12px
    }
    .brand {
        gap:8px;
        font-size:.82rem
    }
    .brand-mark {
        width:36px;
        height:36px
    }
    .brand small {
        font-size:.52rem
    }
    .button-small {
        min-height:42px;
        padding:9px 11px;
        font-size:.75rem
    }
    .hero {
        padding-top:3.5rem
    }
    h1 {
        font-size:clamp(2.75rem,13vw,3.7rem)
    }
    .hero-intro {
        font-size:.98rem
    }
    .hero-actions {
        align-items:flex-start;
        flex-direction:column;
        gap:10px
    }
    .hero-image {
        height:360px
    }
    .section {
        padding-block:4.5rem
    }
    .section-heading h2,.location-grid h2,.contact-inner h2 {
        font-size:2.65rem
    }
    .price-list li {
        grid-template-columns:28px 1fr auto;
        gap:10px;
        min-height:70px
    }
    .service-name {
        font-size:.96rem
    }
    .service-price {
        font-size:.98rem
    }
    .gallery-grid {
        grid-template-rows:240px 170px 170px;
        gap:10px
    }
    .hours-list div {
        gap:12px;
        font-size:.88rem
    }
    .map-art {
        height:220px
    }
    .map-details {
        padding:20px
    }
    .footer-main {
        grid-template-columns:1fr;
        gap:25px
    }
    .back-top {
        grid-column:auto
    }
    .footer-bottom {
        flex-direction:column;
        gap:5px
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important
    }
}