:root{
    --bg:#fbf7f2;
    --txt:#1f1f1f;
    --main:#731e1d;
    --main-hover:#9c2b28;
    --border:#e3d6c9;
    --radius:8px;
    --spacing-large:1.2rem;
    --spacing-nav:0.8rem;
    --box-bg:#fff;
    --sub-box-bg:#f7ece2;
    --font-serif:Georgia,'Times New Roman',serif;
    --font-sans:-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
body{
    margin:0;
    font-family:var(--font-sans);
    background:var(--bg);
    color:var(--txt);
    line-height:1.6;
}
header,footer{
    background:#fff;
    border-bottom:2px solid var(--main);
    border-top:2px solid var(--main);
    padding:1.4rem 0;
    text-align:center;
}
.brand{
    font-family:var(--font-serif);
    font-size:2.4rem;
    font-weight:bold;
    color:var(--main);
    margin:0;
    letter-spacing:.01em;
}
.brand a{
    color:inherit;
    text-decoration:none;
}
header .tagline{
    margin:.3rem 0 0;
    font-family:var(--font-sans);
    font-size:.95rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#6b6b6b;
}
.header-contact{
    margin:0 0 .5rem;
    font-size:.8rem;
    color:#6b6b6b;
}
.header-contact a{
    color:var(--main);
    font-weight:bold;
    text-decoration:none;
}
.header-contact a:hover{
    color:var(--main-hover);
    text-decoration:underline;
}
nav{
    margin-top:var(--spacing-large);
}
nav a{
    margin:0 var(--spacing-nav);
    color:var(--main);
    text-decoration:none;
    font-weight:bold;
    font-size:.85rem;
    letter-spacing:.08em;
    text-transform:uppercase;
}
nav a:hover{
    color:var(--main-hover);
    text-decoration:underline;
}
.hero{
    width:100%;
    height:340px;
    object-fit:cover;
    display:block;
}
.wrapper{
    max-width:800px;
    margin:auto;
    padding:2rem 1rem;
}
.card{
    background:var(--box-bg);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:1.8rem;
    margin-bottom:2rem;
    box-shadow:0 2px 6px rgba(0,0,0,.08);
}
h1,h2{
    font-family:var(--font-serif);
    margin:0 0 1rem 0;
    color:var(--main);
}
h3{
    font-family:var(--font-serif);
    margin-top:1.2rem;
    color:var(--main);
}
.info-group{
    position:relative;
    margin-top:1.6rem;
    padding-top:1.2rem;
}
.info-group:not(:first-of-type)::before{
    content:"";
    position:absolute;
    top:0;
    left:20%;
    right:20%;
    height:1px;
    background:linear-gradient(to right,transparent,var(--border) 25%,var(--border) 75%,transparent);
}
.info-group:first-of-type{
    margin-top:1.2rem;
    padding-top:0;
}
.info-group h3{
    margin:0 0 .6rem 0;
    margin-top:0;
    font-size:1.15rem;
}
.info-group p{
    margin:0 0 .5rem 0;
}
.info-group p:last-child{
    margin-bottom:0;
}
.contact-info{font-size:1.05rem;}
.contact-info p{margin:0 0 .8rem 0;}
.contact-info strong{color:var(--main);}
.plain-link{color:inherit;text-decoration:none;}
.plain-link:hover{text-decoration:underline;}
.small-note,.small-text{position:relative;font-size:.9rem;color:#6b6b6b;margin-top:1.4rem;padding-top:1.4rem;}
.small-note::before,.small-text::before{
    content:"";
    position:absolute;
    top:0;
    left:20%;
    right:20%;
    height:1px;
    background:linear-gradient(to right,transparent,var(--border) 25%,var(--border) 75%,transparent);
}
.email-link{color:var(--main);font-weight:bold;text-decoration:none;}
.email-link:hover{color:var(--main-hover);text-decoration:underline;}
.cta-button{
    display:inline-block;
    margin-top:.5rem;
    padding:.55em 1.5em;
    background:var(--main);
    color:#fff;
    font-weight:bold;
    text-decoration:none;
    border-radius:999px;
    letter-spacing:.03em;
}
.cta-button:hover{
    background:var(--main-hover);
}
.gallery{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:.6rem;
    margin-top:1.2rem;
}
.gallery img{
    width:100%;
    height:110px;
    object-fit:cover;
    border-radius:4px;
    cursor:pointer;
}
.lightbox-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.87);
    z-index:100;
    align-items:center;
    justify-content:center;
    padding:2rem;
    cursor:pointer;
}
.lightbox-overlay.open{
    display:flex;
}
.lightbox-overlay img{
    max-width:90vw;
    max-height:90vh;
    border-radius:var(--radius);
    box-shadow:0 4px 24px rgba(0,0,0,.5);
    cursor:default;
}
.lightbox-close{
    position:fixed;
    top:1.2rem;
    right:1.6rem;
    color:#fff;
    font-size:2.2rem;
    line-height:1;
    cursor:pointer;
}
.lightbox-prev,
.lightbox-next{
    position:fixed;
    top:50%;
    transform:translateY(-50%);
    color:#fff;
    font-size:3.5rem;
    line-height:1;
    cursor:pointer;
    padding:0 .6rem;
    user-select:none;
    opacity:.8;
}
.lightbox-prev:hover,
.lightbox-next:hover{
    opacity:1;
}
.lightbox-prev{
    left:1rem;
}
.lightbox-next{
    right:1rem;
}
@media (max-width:600px){
    .lightbox-prev,.lightbox-next{font-size:2.4rem;}
}
.gallery-full{
    grid-template-columns:repeat(4,1fr);
}
.gallery-full img{
    height:160px;
}
.team-photo{
    text-align:center;
    margin-top:1.8rem;
}
.team-photo img{
    max-width:100%;
    max-height:320px;
    border-radius:var(--radius);
    box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.team-photo p{
    margin:.6rem 0 0;
    font-style:italic;
    color:#6b6b6b;
    font-size:.95rem;
}
.fade-rule{
    height:1px;
    width:60%;
    margin:1.6rem auto;
    background:linear-gradient(to right,transparent,var(--border) 25%,var(--border) 75%,transparent);
}
.hours-block{
    text-align:center;
}
.hours-block h3{
    margin:0 0 .8rem;
}
.hours-block p{
    margin:.25rem 0;
}
.hours-block .note{
    margin-top:.9rem;
    font-size:.9rem;
    color:#6b6b6b;
}
h4{
    font-family:var(--font-serif);
    color:var(--main);
    margin:1.5rem 0 .5rem;
    font-size:1.02rem;
}
h3 + h4{
    margin-top:.9rem;
}
.menu-list{
    list-style:none;
    margin:0 0 .3rem;
    padding:0;
}
.menu-list li{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    padding:.32rem 0;
}
.menu-item-name{
    font-weight:600;
}
.menu-item-desc{
    display:block;
    font-weight:400;
    color:#6b6b6b;
    font-size:.92rem;
    margin-top:.1rem;
}
.menu-price{
    flex:none;
    font-weight:600;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}
.menu-note{
    margin:-.2rem 0 .6rem;
    font-size:.88rem;
    color:#6b6b6b;
}
footer{font-size:.9rem;}
footer a{
    color:var(--main);
    text-decoration:none;
    margin:0 .4rem;
}
footer a:hover{
    color:var(--main-hover);
    text-decoration:underline;
}
@media (max-width:480px){
    .gallery{grid-template-columns:repeat(2,1fr);}
    .gallery-full{grid-template-columns:repeat(2,1fr);}
    .hero{height:220px;}
    .brand{font-size:1.8rem;}
}
