@charset "UTF-8";
:root{
    --ink:#132d39;
    --navy:#102c39;
    --green:#256553;
    --gold:#b48742;
    --cream:#f6f4ee;
    --line:#dcded5;
    --muted:#596b70;
    --white:#fff;
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
    color:var(--ink);
    background:var(--cream);
    font-size:16px;
    line-height:1.65;
    scroll-behavior:smooth
}
*{
    box-sizing:border-box
}
body{
    margin:0
}
a{
    color:var(--green);
    text-underline-offset:4px
}
a:hover{
    color:#a46c24
}
img{
    max-width:100%;
    height:auto
}
button,input,select,textarea{
    font:inherit
}
button,.button,.main-btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:.6rem;
    background:var(--green);
    color:white;
    border:1px solid transparent;
    border-radius:6px;
    padding:.72rem 1.15rem;
    font-weight:650;
    text-decoration:none;
    cursor:pointer
}
button:hover,.button:hover,.main-btn:hover{
    background:#164a3b;
    color:white
}
button:disabled{
    opacity:.5;
    cursor:not-allowed
}
.secondary{
    color:var(--ink);
    background:white;
    border-color:var(--line)
}
h1,h2,h3,h4,p{
    margin-top:0
}
h1,h2{
    font-family:Georgia,serif;
    line-height:1.12;
    letter-spacing:-.025em
}
h1{
    font-size:clamp(2.8rem,5vw,4.6rem);
    font-weight:400;
    margin-bottom:1.2rem
}
h2{
    font-size:clamp(1.8rem,3vw,2.7rem);
    font-weight:400
}
h3,h4{
    line-height:1.35
}
h3{
    font-size:1.3rem
}
p{
    margin-bottom:1rem
}
ul{
    padding-left:1.3rem
}
input,select,textarea{
    display:block;
    width:100%;
    padding:.65rem .75rem;
    background:#fff;
    border:1px solid #a8b6b5;
    border-radius:5px;
    color:var(--ink)
}
textarea{
    min-height:130px
}
label{
    display:block;
    font-size:.9rem;
    font-weight:600
}
label input,label select{
    margin-top:.35rem
}
input[type=checkbox]{
    width:auto;
    display:inline
}
label.check{
    display:flex;
    align-items:center;
    gap:.65rem;
    font-weight:400
}
.check input{
    margin:0
}
:focus-visible{
    outline:3px solid #b57d29;
    outline-offset:4px
}
[hidden],.honeypot{
    display:none!important
}
section[id]{
    scroll-margin-top:25px
}
.container{
    width:min(1180px,calc(100% - 48px));
    margin:auto
}
.app-section{
    padding:64px 0
}
.app-section>section{
    margin-top:64px
}
.eyebrow{
    text-transform:uppercase;
    letter-spacing:.15em;
    font-size:.72rem;
    font-weight:750;
    color:var(--green);
    margin-bottom:16px
}
.muted{
    color:var(--muted);
    font-size:.88rem
}
.stack>*+*{
    margin-top:1.1rem
}
.panel{
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    padding:28px
}
.empty{
    text-align:center;
    padding:60px 24px;
    margin-top:40px
}
.auth-shell{
    width:min(460px,calc(100% - 40px));
    margin:80px auto 100px
}
.auth-shell h1{
    font-size:3.4rem
}
.auth-shell.wide{
    width:min(680px,calc(100% - 40px))
}
.toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    flex-wrap:wrap;
    margin-bottom:20px
}
.toolbar h2{
    margin:0;
    font-size:1.7rem
}
.notice{
    background:#e4f0e7;
    border:1px solid #a9c9b5;
    padding:18px 24px;
    margin:24px auto;
    width:min(1180px,calc(100% - 48px));
    border-radius:8px
}
.error{
    color:#a12828
}
.notice.error{
    background:#fff0ef;
    border-color:#e6b3ad
}
.skip-link{
    position:absolute;
    left:16px;
    top:-100px;
    z-index:100;
    background:white;
    padding:12px
}
.skip-link:focus{
    top:10px
}
.site-header{
    background:#fff;
    border-bottom:1px solid var(--line)
}
.nav-shell{
    max-width:1500px;
    padding:20px 30px;
    margin:auto;
    display:flex;
    gap:28px;
    align-items:center;
    justify-content:space-between
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--ink);
    text-decoration:none;
    white-space:nowrap;
    line-height:1.2;
    font-family:Georgia,serif;
    font-size:1.3rem
}
.brand img{
    width:36px;
    max-height:54px;
    object-fit:contain
}
.brand small{
    display:block;
    font-family:system-ui,sans-serif;
    font-size:.62rem;
    letter-spacing:.05em;
    margin-top:7px;
    color:var(--muted)
}
#site-links{
    display:flex;
    align-items:center;
    gap:18px;
    font-size:.8rem
}
#site-links a{
    text-decoration:none;
    color:var(--ink);
    font-weight:600
}
.nav-cta{
    font-size:.8rem;
    white-space:nowrap
}
.menu-toggle{
    display:none
}
.site-footer{
    padding:50px max(24px,calc((100vw - 1180px)/2));
    background:var(--navy);
    color:#d7e1de;
    display:flex;
    gap:40px;
    justify-content:space-between
}
.site-footer strong{
    font-family:Georgia,serif;
    font-size:1.6rem;
    color:white
}
.site-footer p{
    font-size:.85rem;
    margin-top:12px
}
.site-footer nav{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 28px;
    align-content:start
}
.site-footer a{
    color:#dce6e0;
    font-size:.85rem
}
.archive-note{
    background:#e9e6dc;
    padding:10px 24px;
    text-align:center;
    font-size:.8rem
}
.archive-note a{
    margin-left:10px
}
.header-content-area{
    background:linear-gradient(90deg,rgba(10,31,43,.94),rgba(10,31,43,.56)),url('/assets/images/header-bg.jpg') center/cover;
    min-height:530px;
    color:white;
    display:flex;
    align-items:center;
    padding:90px 0
}
.header-content{
    max-width:850px
}
.header-title{
    font-size:clamp(3rem,6vw,6rem)
}
.header-content .sub-title{
    font-size:1.05rem;
    font-weight:400;
    max-width:700px;
    margin:0 auto 18px;
    color:#e3e3d8
}
.header-content .smaller-title{
    font-size:1.7rem;
    font-family:Georgia,serif
}
.header-btn{
    list-style:none;
    display:flex;
    justify-content:center;
    gap:16px;
    padding:15px 0 0
}
.header-btn .main-btn{
    background:#c19b5b;
    color:#142c36
}
.header-btn li:last-child .main-btn{
    background:transparent;
    border-color:#c7cfc9;
    color:white
}
.text-center{
    text-align:center
}
.row{
    display:flex;
    flex-wrap:wrap;
    margin:-14px
}
.row>[class*=col-]{
    padding:14px;
    width:100%
}
.col-lg-6{
    flex:0 0 50%
}
.col-lg-3{
    flex:0 0 25%
}
.col-lg-4{
    flex:0 0 33.333%
}
.col-lg-8{
    flex:0 0 66.666%
}
.col-lg-10{
    flex:0 0 83.333%
}
.justify-content-center{
    justify-content:center
}
.align-items-center{
    align-items:center
}
.d-flex,.d-md-flex{
    display:flex;
    gap:26px
}
.media-body{
    flex:1
}
.about-area,.event-schedule,.features-area,.team-area,.pricing-area,.client-area,.contact-area{
    padding:76px 0
}
.about-image img{
    width:100%;
    border-radius:12px;
    max-height:390px;
    object-fit:cover
}
.about-content{
    padding-left:20px
}
.about-content .text{
    color:var(--muted)
}
.date2{
    color:var(--gold);
    font-weight:700
}
.counter-area{
    padding:35px 0;
    background:var(--navy);
    color:white
}
.counter-content .count{
    font-family:Georgia,serif;
    font-size:3rem
}
.counter-content p{
    margin:0;
    color:#c2d5d1;
    font-size:.85rem
}
.counter-icon{
    display:none
}
.event-schedule,.pricing-area,.contact-area{
    background:#fff
}
.section-title{
    max-width:800px;
    margin:0 auto 25px
}
.section-title .text{
    color:var(--muted)
}
.event-tab>.nav{
    display:flex;
    gap:20px;
    padding:0;
    list-style:none;
    border-bottom:1px solid var(--line)
}
.event-tab>.nav a{
    display:block;
    padding:15px 24px;
    text-decoration:none
}
.event-tab .nav-title{
    margin-bottom:5px
}
.single-event{
    padding:26px 0;
    border-bottom:1px solid var(--line)
}
.event-image{
    width:115px;
    flex-shrink:0
}
.event-image img{
    width:115px;
    height:115px;
    object-fit:cover;
    border-radius:8px
}
.event-meta{
    list-style:none;
    padding:0;
    color:var(--muted);
    font-size:.85rem
}
.event-meta li{
    display:inline-block;
    margin-right:24px
}
.event-title{
    font-size:1.3rem
}
.features-area{
    background:#e9eee7
}
.single-features,.single-team,.single-pricing{
    height:100%;
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    padding:24px
}
.features-icon{
    font-family:Georgia,serif;
    font-size:2.5rem;
    color:var(--gold)
}
.features-title{
    margin:12px 0
}
.team-image img{
    width:100%;
    height:200px;
    object-fit:cover;
    border-radius:8px
}
.team-content{
    padding-top:20px
}
.team-content .social,.footer-contact .social{
    list-style:none;
    padding:0;
    display:flex;
    justify-content:center;
    gap:10px
}
.team-content .social:empty{
    display:none
}
.team-content .sub-title{
    font-size:.8rem;
    color:var(--muted)
}
.pricing-price span{
    font-family:Georgia,serif;
    font-size:2.7rem
}
.pricing-name{
    padding:10px 0 20px
}
.pricing-list ul{
    list-style:none;
    padding:0;
    color:var(--muted);
    font-size:.88rem
}
.pricing-list li{
    padding:5px
}
.pricing-btn{
    margin-top:24px
}
.single-pricing.active{
    border:2px solid var(--gold)
}
.client-active{
    align-items:center;
    justify-content:center
}
.client-active .col-lg-3{
    flex:0 0 20%
}
.single-client img{
    max-height:70px;
    object-fit:contain
}
.contact-info ul{
    list-style:none;
    padding:0
}
.info-title{
    font-size:.85rem;
    margin:0
}
.single-info{
    margin-bottom:22px
}
.single-form{
    margin:0 0 10px
}
.contact-map{
    padding-top:32px
}
.contact-map iframe{
    width:100%;
    border:0;
    border-radius:12px;
    max-height:330px
}
.footer-area{
    background:#e8ece3;
    padding:65px 0 30px
}
.footer-subscribe{
    max-width:620px;
    margin:auto
}
.footer-subscribe form{
    display:flex;
    gap:12px
}
.footer-subscribe form input{
    flex:1;
    min-width:0
}
.footer-widget{
    padding-top:60px
}
.f-title{
    font-size:1.2rem
}
.footer-copyright{
    text-align:center;
    font-size:.8rem;
    margin-top:25px
}
.social a[href="#"]{
    display:inline-block;
    min-width:12px
}
.social i:before{
    content:'•'
}
.document-page{
    padding:60px 0;
    max-width:1000px
}
.document-page article{
    border-top:1px solid var(--line);
    padding:28px 0
}
.document-page img{
    max-width:420px;
    max-height:280px
}
.document-page h1{
    font-size:3rem
}
.booking-grid{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);
    gap:24px;
    align-items:start
}
.event-picker{
    max-width:800px;
    margin:28px 0
}
.booking-form{
    position:sticky;
    top:20px
}
.legend{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    font-size:.8rem;
    color:var(--muted)
}
.seat-map{
    overflow:auto;
    background:#f6f7f1;
    border:1px solid var(--line);
    border-radius:8px
}
.seat-map svg{
    display:block;
    width:100%;
    min-width:520px;
    max-height:750px
}
.room-boundary{
    fill:#fafbf7;
    stroke:#93a49e;
    stroke-width:.15
}
.room-stage{
    fill:#153a48;
    stroke:#153a48
}
.room-obstacle{
    fill:#c4c9c4;
    stroke:#879b92;
    stroke-width:.1
}
.room-row{
    fill:transparent
}
.room-table{
    fill:#e0dbca;
    stroke:#b7aa8d;
    stroke-width:.12
}
.room-label{
    font:1.05px system-ui;
    fill:#2c433b;
    pointer-events:none
}
.room-stage+.room-label{
    fill:white
}
.map-seat circle{
    stroke-width:.15;
    stroke:#256553;
    fill:#fff
}
.map-seat.selected circle{
    fill:#256553;
    stroke:#153b2f
}
.map-seat.unavailable circle{
    fill:#d7dcd7;
    stroke:#a3aca5
}
.map-seat[role=button]:not([aria-disabled=true]){
    cursor:pointer
}
.map-seat:focus circle{
    stroke:#cc8120;
    stroke-width:.5
}
.seat-mark{
    font:.9px system-ui;
    fill:#64746a;
    pointer-events:none
}
.seat-list{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(100px,1fr));
    gap:8px;
    margin-top:16px
}
.seat-list button{
    font-size:.8rem;
    background:white;
    border-color:var(--line);
    color:var(--ink);
    padding:8px
}
.seat-list button[aria-pressed=true]{
    background:var(--green);
    color:white
}
details{
    margin-top:16px
}
summary{
    cursor:pointer
}
.field-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}
fieldset{
    border:1px solid var(--line);
    border-radius:8px;
    padding:18px
}
legend{
    font-weight:700;
    padding:0 8px
}
.editor-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px
}
.editor-grid>div{
    min-width:0
}
.element-card{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:15px
}
.element-card label{
    font-size:.75rem
}
.element-card .check{
    grid-column:span 2
}
.element-card button{
    font-size:.7rem;
    padding:8px
}
.event-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}
.event-cards .panel h3{
    margin-bottom:10px
}
.actions{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    font-size:.85rem;
    margin-bottom:16px
}
.table-scroll{
    overflow:auto
}
table{
    border-collapse:collapse;
    width:100%;
    background:white;
    font-size:.85rem
}
th,td{
    text-align:left;
    padding:18px;
    border-bottom:1px solid var(--line);
    vertical-align:top
}
th{
    background:#e8ede5
}
.preserve-lines{
    white-space:pre-wrap
}
#guide-controls{
    padding:14px;
    background:#e4eae1
}
#guide-controls button{
    color:var(--ink)
}
@media(max-width:1250px){
    .nav-shell{
        flex-wrap:wrap;
        gap:18px
    }
    .menu-toggle{
        display:block;
        margin-left:auto;
        background:white;
        color:var(--ink);
        border-color:var(--line)
    }
    #site-links{
        display:none;
        width:100%;
        order:4;
        flex-wrap:wrap;
        padding:16px 0
    }
    #site-links.open{
        display:flex
    }
    .nav-cta{
        margin-left:0
    }
}
@media(max-width:800px){
    .booking-grid,.editor-grid{
        grid-template-columns:1fr
    }
    .booking-form{
        position:static
    }
    .field-grid,.event-cards{
        grid-template-columns:1fr 1fr
    }
    .col-lg-3,.col-lg-4,.col-lg-6,.col-lg-8,.col-lg-10{
        flex:0 0 100%
    }
    .counter-area .col-lg-3{
        flex:0 0 50%
    }
    .client-active .col-lg-3{
        flex:0 0 33.33%
    }
    .site-footer{
        flex-direction:column
    }
    .about-content{
        padding-left:0
    }
    .header-content-area{
        padding:60px 0;
        min-height:450px
    }
    .event-image{
        width:75px
    }
    .event-image img{
        width:75px;
        height:75px
    }
    .d-md-flex{
        gap:16px
    }
    .footer-subscribe form{
        flex-direction:column
    }
    .nav-shell{
        padding:18px 22px
    }
    .nav-cta{
        display:none
    }
    .container{
        width:calc(100% - 32px)
    }
    .panel{
        padding:20px
    }
    .field-grid,.event-cards{
        grid-template-columns:1fr
    }
    .app-section{
        padding:40px 0
    }
    .header-btn{
        flex-wrap:wrap
    }
    .document-page img{
        max-width:100%
    }
    .element-card{
        grid-template-columns:repeat(2,1fr)
    }
}
.booking-grid>*,.editor-grid>*,.event-picker{
    min-width:0
}
.booking-grid{
    max-width:100%
}
@media(prefers-reduced-motion:reduce){
    :root{
        scroll-behavior:auto
    }
}
@media print{
    .site-header,.site-footer,button,.button,.archive-note{
        display:none!important
    }
    body{
        background:white
    }
    .auth-shell{
        margin:0;
        width:100%
    }
    .panel{
        border:0
    }
}
