:root{
    --bg:#7b4630;
    --bg-dark:#512a1b;
    --sidebar-top:#603116;
    --sidebar-bottom:#4b2414;
    --panel:#7b4630;
    --text:#ead8c9;
    --text-soft:#e1cbbb;
    --heading:#f2e7de;
    --line:rgba(255,255,255,.14);
    --line-strong:rgba(255,255,255,.32);
    --white:#ffffff;
    --gold:#9f8d3b;
    --shadow:rgba(0,0,0,.18);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
    font-family:Georgia, "Times New Roman", serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
video{max-width:100%;display:block}

.site-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:162px minmax(0,1fr);
}

.sidebar{
    background:linear-gradient(180deg, var(--sidebar-top) 0%, var(--sidebar-bottom) 100%);
    min-height:100vh;
    position:sticky;
    top:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:28px 10px 22px;
    border-right:1px solid rgba(255,255,255,.05);
    box-shadow:inset -1px 0 0 rgba(255,255,255,.02);
    z-index:10;
}

.sidebar__brand{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    margin-bottom:26px;
}

.sidebar__logo{
    width:104px;
    height:auto;
    object-fit:contain;
}

.sidebar__brand-name{
    min-height:1px;
}

.sidebar__nav{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:2px;
}

.sidebar__link{
    display:block;
    text-align:center;
    padding:10px 8px;
    color:rgba(241,226,213,.86);
    border-bottom:1px solid transparent;
    transition:all .2s ease;
    font-size:.95rem;
}

.sidebar__link:hover{
    color:#fff;
    background:rgba(255,255,255,.03);
    border-bottom-color:var(--line-strong);
}

.sidebar__link.is-active{
    color:#fff;
    background:rgba(255,255,255,.04);
    border-bottom:2px solid #efe5dc;
    text-shadow:0 1px 0 rgba(0,0,0,.14);
}

.sidebar__lang{
    margin-top:auto;
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:center;
    font-size:18px;
    font-weight:700;
    letter-spacing:.02em;
}

.sidebar__lang a{
    opacity:.8;
    transition:opacity .2s ease;
}

.sidebar__lang a:hover,
.sidebar__lang a.is-active{
    opacity:1;
}

.site-main{
    min-height:100vh;
    background:var(--panel);
}

.hero{
    min-height:190px;
    position:relative;
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.hero__overlay{
    position:absolute;
    inset:0;
    background:rgba(16,18,22,.34);
}

.hero__inner{
    position:relative;
    z-index:2;
    padding:18px 20px;
    text-align:center;
}

.hero__inner h1{
    margin:0;
    font-size:clamp(2.1rem, 4vw, 3rem);
    color:#fff;
    font-weight:700;
    text-shadow:0 2px 10px rgba(0,0,0,.28);
}

.content-section,
.content-panel{
    width:100%;
    max-width:1240px;
    margin:0 auto;
    padding:12px 28px 36px;
}

.content-card{
    width:100%;
}

.content-copy{
    width:min(100%, 640px);
    margin:0 auto;
    color:var(--text);
}

.content-copy p{
    margin:0 0 26px;
    font-size:1rem;
}

.content-copy strong,
.content-copy b{
    color:var(--heading);
    font-weight:700;
}

.content-copy em{
    color:#f4e2d5;
}

.content-copy h2,
.content-copy h3{
    margin:28px 0 20px;
    color:var(--heading);
    line-height:1.25;
    text-align:center;
}

.content-copy h2{
    font-size:1.65rem;
}

.content-copy h3{
    font-size:1.3rem;
}

.home-layout{
    width:min(100%, 1020px);
    margin:0 auto;
}

.home-layout__intro{
    width:min(100%, 620px);
    margin:0 auto 18px;
}

.home-layout__intro p{
    margin-bottom:18px;
}

.home-layout__main{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 300px;
    gap:48px;
    align-items:start;
    width:min(100%, 920px);
    margin:0 auto 34px;
}

.home-layout__body{
    width:100%;
    max-width:none;
    margin:0;
}

.home-layout__body p{
    margin-bottom:24px;
}

.home-layout__body h2,
.home-layout__body h3{
    text-align:left;
}

.home-media__person{
    margin:0;
    width:100%;
    max-width:300px;
}

.home-media__person img{
    width:100%;
    height:auto;
    background:#fff;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 10px 22px rgba(0,0,0,.12);
}

.home-media__person figcaption{
    margin-top:8px;
    color:var(--text-soft);
    font-size:1rem;
}

.home-media__video{
    width:min(100%, 420px);
    margin:0 auto;
}

.home-media__video video{
    width:100%;
    height:auto;
    background:#000;
    border:1px solid rgba(255,255,255,.1);
    box-shadow:0 10px 24px rgba(0,0,0,.14);
}

.home-media__video-title{
    margin:10px 0 0;
    color:var(--text-soft);
    text-align:left;
}

.contact-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 260px;
    gap:56px;
    align-items:start;
    width:min(100%, 860px);
    margin:0 auto;
}

.contact-form-wrap h2,
.contact-form h2{
    margin:0 0 18px;
    color:var(--heading);
    font-size:1.85rem;
    text-align:center;
}

.contact-form label{
    display:block;
    margin-bottom:18px;
}

.contact-form span{
    display:block;
    margin-bottom:8px;
    font-weight:700;
    color:var(--heading);
}

.contact-form em{
    color:#ffd3c6;
    font-style:normal;
}

.contact-form input,
.contact-form textarea{
    width:100%;
    border:1px solid rgba(255,255,255,.24);
    background:#fff;
    color:#2a1c16;
    padding:11px 13px;
    font:inherit;
    border-radius:0;
}

.contact-form textarea{
    resize:vertical;
    min-height:112px;
}

.contact-form button{
    border:0;
    background:#fff;
    color:#2a1c16;
    padding:10px 18px;
    font-weight:700;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease;
}

.contact-form button:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 18px rgba(0,0,0,.14);
}

.contact-details{
    text-align:center;
}

.contact-details h3{
    margin:0 0 6px;
    color:var(--heading);
}

.contact-details p{
    margin:0 0 20px;
}

.map-card{
    margin:36px auto 0;
    padding-top:18px;
    border-top:1px solid var(--line);
    width:min(100%, 860px);
}

.map-card a{
    display:inline-block;
    margin-bottom:12px;
    color:#fff;
    text-decoration:underline;
}

.map-placeholder{
    min-height:220px;
    background:#d8d8d8;
    color:#444;
    display:grid;
    place-items:center;
    text-align:center;
    padding:20px;
}

.service-grid{
    width:min(100%, 920px);
    margin:22px auto 0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
}

.service-card{
    border:2px solid rgba(255,245,235,.82);
    min-height:108px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-align:center;
    padding:18px 14px 16px;
    background:rgba(255,255,255,.015);
    transition:transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.service-card:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.035);
    border-color:rgba(255,245,235,.95);
    box-shadow:0 10px 20px rgba(0,0,0,.12);
}

.service-card__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    margin:0 auto;
    color:#f7eee7;
}

.service-card__icon svg{
    width:32px;
    height:32px;
}

.service-card__title,
.service-card h3{
    margin:0;
    color:#f6ece4;
    font-size:.95rem;
    line-height:1.25;
}

.flash{
    max-width:1240px;
    margin:16px auto 0;
    padding:14px 28px;
    font-weight:700;
}

.flash--success{
    background:#dff2dd;
    color:#1c4517;
}

.flash--error{
    background:#f7dddd;
    color:#661818;
}

.reveal{
    opacity:1;
    transform:none;
}

.js .reveal{
    opacity:0;
    transform:translateY(18px);
}

.is-visible{
    opacity:1 !important;
    transform:none !important;
    transition:opacity .55s ease, transform .55s ease;
}

@media (prefers-reduced-motion: reduce){
    *,
    *::before,
    *::after{
        animation:none !important;
        transition:none !important;
        scroll-behavior:auto !important;
    }

    .reveal,
    .js .reveal,
    .is-visible{
        opacity:1 !important;
        transform:none !important;
    }

    .service-card:hover{
        transform:none;
    }
}

@media (max-width: 1180px){
    .service-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        width:min(100%, 760px);
    }
}

@media (max-width: 980px){
    .site-shell{
        grid-template-columns:1fr;
    }

    .sidebar{
        position:relative;
        min-height:0;
        padding:20px 14px 18px;
    }

    .sidebar__logo{
        width:110px;
    }

    .sidebar__nav{
        flex-direction:row;
        flex-wrap:wrap;
        justify-content:center;
    }

    .sidebar__link{
        width:auto;
        padding:8px 10px;
    }

    .sidebar__lang{
        margin-top:18px;
    }

    .content-section,
    .content-panel{
        padding:16px 18px 30px;
    }

    .home-layout__main,
    .contact-grid{
        grid-template-columns:1fr;
        gap:24px;
    }

    .home-layout{
        width:min(100%, 760px);
    }

    .home-layout__intro,
    .home-layout__body,
    .home-media__person,
    .home-media__video,
    .content-copy{
        max-width:100%;
        width:100%;
    }

    .contact-details{
        text-align:left;
    }
}

@media (max-width: 760px){
    .hero{
        min-height:156px;
    }

    .hero__inner h1{
        font-size:2.15rem;
    }

    .content-copy p{
        font-size:.98rem;
        margin-bottom:20px;
    }

    .service-grid{
        grid-template-columns:1fr;
        width:100%;
        gap:12px;
    }

    .service-card{
        min-height:100px;
        padding:18px 14px 16px;
    }

    .service-card__icon{
        width:40px;
        height:40px;
    }

    .service-card__icon svg{
        width:30px;
        height:30px;
    }
}