:root{
    --bg:#07131d;
    --bg-soft:#0d1f2b;
    --paper:#f4ead4;
    --paper-2:#e8d6ac;
    --ink:#11222d;
    --gold:#d9b35b;
    --gold-soft:#f2d48e;
    --sea:#2e7f8d;
    --sea-soft:#63b1bf;
    --danger:#8f2d2d;
    --white:#ffffff;
    --shadow:0 20px 45px rgba(0,0,0,.25);
    --radius:22px;
    --radius-sm:14px;
    --wrap:min(1180px, calc(100% - 2rem));
    --font-heading: Georgia, "Times New Roman", serif;
    --font-body: "Trebuchet MS", "Segoe UI", Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:var(--font-body);
    color:#f8f4ea;
    background:
        radial-gradient(circle at top left, rgba(99,177,191,.12), transparent 30%),
        radial-gradient(circle at bottom right, rgba(217,179,91,.10), transparent 24%),
        linear-gradient(180deg, #091826, #061018 55%, #081621);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.wrap{width:var(--wrap);margin-inline:auto}
.section{padding:5rem 0}
.parchment-section{
    background:
        linear-gradient(180deg, rgba(244,234,212,.98), rgba(232,214,172,.97)),
        url("../img/texture.svg");
    color:var(--ink);
}
.dark-section{background:linear-gradient(180deg, rgba(7,19,29,.92), rgba(7,19,29,1))}
.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:start}
.grid-2 > *{min-width:0}
.content-shell, .admin-card{
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.08);
    border-radius:var(--radius);
    padding:1.5rem;
    box-shadow:var(--shadow);
}
.parchment-section .content-shell,
.parchment-section .admin-card{
    background:rgba(255,255,255,.42);
    border-color:rgba(17,34,45,.08);
}
.site-header{
    position:sticky;top:0;z-index:90;
    backdrop-filter:blur(14px);
    background:rgba(7,19,29,.82);
    border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-shell{
    min-height:86px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}
.brand,.admin-brand,.login-brand{
    display:flex;
    align-items:center;
    gap:.85rem;
}
.brand strong,.admin-brand strong,.login-brand h1{
    display:block;
    font-family:var(--font-heading);
    font-size:1.3rem;
}
.brand small,.admin-brand small{
    display:block;
    color:rgba(255,255,255,.75);
    font-size:.85rem;
}
.brand-mark{
    width:3rem;height:3rem;border-radius:50%;
    display:grid;place-items:center;
    background:linear-gradient(135deg, var(--gold), #8f6a20);
    color:#12212c;
    font-weight:900;font-size:1.4rem;
    box-shadow:0 10px 24px rgba(217,179,91,.28);
}
.site-nav,.nav-cta-group,.hero-actions,.card-footer,.section-head,.order-band-inner,.footer-grid,.footer-actions,.button-stack,.table-actions,.admin-actions,.admin-topbar{
    display:flex;align-items:center
}
.site-nav{
    gap:.95rem;flex-wrap:wrap;justify-content:flex-end
}
.site-nav > a{
    color:#f5f0df;padding:.55rem .8rem;border-radius:999px;
    transition:.2s background,.2s color
}
.site-nav > a:hover,.site-nav > a.is-active{background:rgba(255,255,255,.08)}
.nav-cta-group{gap:.6rem;margin-left:.4rem}
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    padding:.9rem 1.3rem;border-radius:999px;border:1px solid transparent;
    font-weight:700;transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    cursor:pointer;text-align:center
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
    background:linear-gradient(135deg, var(--gold-soft), var(--gold));
    color:#162735;box-shadow:0 10px 24px rgba(217,179,91,.28)
}
.btn-secondary{
    background:transparent;border-color:rgba(255,255,255,.22);color:#fff
}
.parchment-section .btn-secondary,
.admin-body .btn-secondary,
.login-body .btn-secondary{color:var(--ink);border-color:rgba(17,34,45,.18)}
.btn-small{padding:.7rem 1rem;font-size:.92rem}
.nav-toggle{
    display:none;flex-direction:column;gap:.28rem;padding:.4rem;background:none;border:0
}
.nav-toggle span{width:1.55rem;height:2px;background:#fff;border-radius:2px}
.flash-stack{display:grid;gap:.75rem;margin:1rem auto 0}
.flash{
    padding:1rem 1.15rem;border-radius:16px;border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.08)
}
.flash-success{background:rgba(50,122,88,.22);border-color:rgba(88,172,132,.3)}
.flash-error{background:rgba(143,45,45,.25);border-color:rgba(190,79,79,.35)}
.hero-carousel{position:relative;overflow:hidden}
.hero-track{position:relative;min-height:78svh}
.hero-slide{
    position:absolute;inset:0;opacity:0;pointer-events:none;
    background:
        linear-gradient(120deg, rgba(7,19,29,.82), rgba(7,19,29,.55)),
        var(--hero-image) center/cover no-repeat;
    transition:opacity .6s ease
}
.hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-content{
    min-height:78svh;
    display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
    gap:1rem;padding:8rem 0 5rem
}
.eyebrow,.pill{
    display:inline-flex;align-items:center;gap:.4rem;
    font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem
}
.eyebrow{color:var(--gold-soft)}
.hero-content h1,.page-hero h1,.section-head h2,h2,.login-brand h1{
    font-family:var(--font-heading);line-height:1.03;margin:0
}
.hero-content h1{font-size:clamp(2.8rem, 5vw, 5.5rem);max-width:12ch}
.hero-content p{max-width:40rem;font-size:1.15rem;color:rgba(255,255,255,.86)}
.hero-actions{gap:.9rem;flex-wrap:wrap}
.hero-dots{
    position:absolute;left:50%;bottom:2rem;transform:translateX(-50%);
    display:flex;gap:.7rem;justify-content:center
}
.hero-dot{
    width:.9rem;height:.9rem;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;cursor:pointer
}
.hero-dot.is-active{background:var(--gold);border-color:var(--gold)}
.order-band{padding:0}
.order-band-inner{
    background:linear-gradient(135deg, rgba(46,127,141,.25), rgba(217,179,91,.14));
    border:1px solid rgba(255,255,255,.08);
    margin-top:-2.5rem;position:relative;z-index:3;
    border-radius:var(--radius);
    width:var(--wrap);margin-inline:auto;padding:1.6rem;justify-content:space-between;gap:1rem;
    box-shadow:var(--shadow)
}
.button-stack{gap:.8rem;flex-wrap:wrap;justify-content:flex-end}
.button-stack.left{justify-content:flex-start}
.feature-stack,.job-grid,.admin-form-stack{display:grid;gap:1rem}
.feature-card,.job-card,.special-card,.menu-card,.gallery-card,.contact-card,.stat-card,.message-list-item{
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow)
}
.feature-card{
    padding:1.2rem;background:rgba(255,255,255,.45);border:1px solid rgba(17,34,45,.08)
}
.feature-card h3,.job-card h3,.menu-card h3,.special-card h3{margin:.25rem 0 .5rem;font-family:var(--font-heading)}
.section-head{justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.section-head.mini{margin-bottom:1rem}
.section-head p,.content-shell p{margin:.25rem 0 0}
.text-link{
    color:var(--gold-soft);font-weight:700
}
.parchment-section .text-link, .admin-body .text-link, .login-body .text-link{color:var(--sea)}
.text-link.danger{color:#c43d3d;background:none;border:0;padding:0;cursor:pointer}
.card-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.25rem}
.card-grid.three-up{grid-template-columns:repeat(3, minmax(0, 1fr))}
.menu-card,.special-card,.job-card,.gallery-card,.message-list-item,.stat-card{
    background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);overflow:hidden
}
.parchment-section .menu-card,
.parchment-section .special-card,
.parchment-section .job-card,
.parchment-section .gallery-card,
.admin-body .message-list-item,
.admin-body .stat-card{
    background:rgba(255,255,255,.55);border-color:rgba(17,34,45,.08);color:var(--ink)
}
.menu-card-image,.special-image{
    aspect-ratio:1.25/1;background:center/cover no-repeat
}
.menu-card-body,.special-card-body,.job-card,.stat-card{padding:1rem}
.card-footer{justify-content:space-between;gap:1rem}
.pill{
    background:rgba(217,179,91,.22);color:var(--gold-soft);
    padding:.35rem .65rem;border-radius:999px
}
.parchment-section .pill,.admin-body .pill,.login-body .pill{color:#6b4d13;background:rgba(217,179,91,.25)}
.pill.alt{background:rgba(99,177,191,.18);color:#9be6f2}
.gallery-grid{
    display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:1rem
}
.gallery-grid.full{grid-template-columns:repeat(3, minmax(0, 1fr))}
.gallery-card{position:relative}
.gallery-card img{aspect-ratio:1/1;object-fit:cover;width:100%}
.gallery-card figcaption{
    display:grid;gap:.2rem;padding:.9rem 1rem;color:var(--ink);
    background:rgba(255,255,255,.7)
}
.page-hero{
    position:relative;
    background:
        linear-gradient(120deg, rgba(7,19,29,.82), rgba(7,19,29,.45)),
        var(--page-hero) center/cover no-repeat;
}
.page-hero-content{
    min-height:48svh;display:flex;flex-direction:column;justify-content:flex-end;gap:.85rem;padding:8rem 0 4rem
}
.page-hero h1{font-size:clamp(2.5rem, 4vw, 4.3rem)}
.page-hero p{max-width:40rem;color:rgba(255,255,255,.86);font-size:1.08rem}
.rich-text{
    display:grid;gap:1rem;line-height:1.75
}
.rich-text h2,.rich-text h3{font-family:var(--font-heading);margin:0}
.rich-text p,.rich-text ul{margin:0}
.menu-filter{display:flex;gap:.7rem;flex-wrap:wrap;margin:2rem 0}
.menu-filter button{
    background:rgba(17,34,45,.08);border:1px solid rgba(17,34,45,.12);color:var(--ink);
    padding:.7rem 1rem;border-radius:999px;cursor:pointer
}
.menu-filter button.is-active{background:var(--ink);color:#fff}
.menu-category{display:grid;gap:1rem;margin-top:2rem}
.meta{color:rgba(255,255,255,.72)}
.parchment-section .meta{color:#52616c}
.contact-card,.job-card{padding:1.2rem}
.map-shell{
    margin-top:1rem;border-radius:var(--radius);overflow:hidden;border:1px solid rgba(17,34,45,.08);min-height:320px
}
.map-shell iframe{width:100%;height:320px;border:0}
.site-footer{
    padding:3rem 0 2rem;border-top:1px solid rgba(255,255,255,.08);
    background:rgba(0,0,0,.18)
}
.footer-grid{justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}
.footer-grid > *{flex:1 1 220px}
.footer-grid h3,.footer-grid h4{font-family:var(--font-heading);margin:0 0 .75rem}
.footer-bottom{padding-top:1.25rem;color:rgba(255,255,255,.65)}

/* forms */
.admin-form, .public-form{
    display:grid;gap:1rem
}
.form-grid{
    display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1rem
}
.form-grid label, .admin-form > label{
    display:grid;gap:.45rem;font-weight:700;color:inherit
}
.form-grid label span, .admin-form > label span{font-size:.92rem}
input[type="text"],input[type="email"],input[type="password"],input[type="number"],select,textarea{
    width:100%;border-radius:14px;border:1px solid rgba(17,34,45,.18);padding:.9rem 1rem;
    background:rgba(255,255,255,.92);color:var(--ink)
}
textarea{resize:vertical}
.checkbox-row{
    display:flex !important;align-items:center;gap:.7rem;padding-top:1.9rem
}
.checkbox-row input{width:auto}
.span-2{grid-column:span 2}
.admin-actions{gap:.75rem;flex-wrap:wrap;justify-content:flex-start}
.admin-table-wrap{overflow:auto}
.admin-table{
    width:100%;border-collapse:collapse;font-size:.96rem
}
.admin-table th,.admin-table td{
    padding:.85rem .7rem;border-bottom:1px solid rgba(17,34,45,.1);vertical-align:top;text-align:left
}
.table-actions{gap:.85rem;justify-content:flex-end;flex-wrap:wrap}
.table-actions form{display:inline-flex}
.message-list{display:grid;gap:.8rem}
.message-list-item{
    padding:1rem;display:grid;gap:.25rem;color:var(--ink)
}
.message-list-item.unread{outline:2px solid rgba(99,177,191,.55)}
.message-body{
    margin:1rem 0;padding:1rem;border-radius:14px;background:rgba(17,34,45,.06);white-space:normal;line-height:1.7
}

/* admin layout */
.admin-body{
    background:linear-gradient(180deg, #0c1824, #09131c);
    color:#eef5f6
}
.admin-shell{
    display:grid;grid-template-columns:280px 1fr;min-height:100svh
}
.admin-sidebar{
    padding:1.25rem;background:rgba(0,0,0,.28);border-right:1px solid rgba(255,255,255,.08)
}
.admin-nav{display:grid;gap:.3rem;margin-top:1.2rem}
.admin-nav a{
    padding:.85rem 1rem;border-radius:14px;color:rgba(255,255,255,.86)
}
.admin-nav a.is-active,.admin-nav a:hover{background:rgba(255,255,255,.08)}
.admin-main{padding:1.5rem;display:grid;gap:1.25rem}
.admin-topbar{justify-content:space-between;gap:1rem;align-items:flex-start}
.admin-topbar h1{font-family:var(--font-heading);margin:0;font-size:2rem}
.admin-topbar p{margin:.25rem 0 0;color:rgba(255,255,255,.7)}
.admin-user-badge{
    padding:.85rem 1rem;border-radius:14px;background:rgba(255,255,255,.08)
}
.admin-grid{display:grid;gap:1rem}
.admin-grid.two-up{grid-template-columns:1fr 1fr}
.stat-grid{grid-template-columns:repeat(4, minmax(0, 1fr))}
.stat-card{display:grid;gap:.35rem}
.stat-card strong{font-size:2rem;font-family:var(--font-heading)}

/* login */
.login-body{
    min-height:100svh;display:grid;place-items:center;padding:1.5rem;
    background:
        linear-gradient(135deg, rgba(7,19,29,.9), rgba(7,19,29,.75)),
        url("../img/hero-1.svg") center/cover no-repeat
}
.login-card{
    width:min(100%, 520px);
    background:rgba(255,255,255,.96);
    color:var(--ink);
    border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow);
    display:grid;gap:1rem
}
.login-brand p,.login-help{color:#51606a;margin:0}
.login-help{
    padding:1rem;border-radius:14px;background:rgba(17,34,45,.06);font-size:.94rem
}

@media (max-width: 1080px){
    .card-grid,.gallery-grid,.gallery-grid.full,.card-grid.three-up,.stat-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
    .admin-grid.two-up,.grid-2,.admin-shell{grid-template-columns:1fr}
    .admin-sidebar{position:sticky;top:0;z-index:10}
}
@media (max-width: 760px){
    .nav-toggle{display:flex}
    .site-nav{
        position:absolute;top:100%;left:0;right:0;
        display:none;flex-direction:column;align-items:stretch;
        background:rgba(7,19,29,.98);padding:1rem;border-bottom:1px solid rgba(255,255,255,.08)
    }
    .site-nav.is-open{display:flex}
    .nav-cta-group{margin-left:0}
    .hero-content h1{font-size:2.6rem}
    .order-band-inner,.footer-grid,.section-head,.admin-topbar{flex-direction:column;align-items:flex-start}
    .card-grid,.gallery-grid,.gallery-grid.full,.card-grid.three-up,.form-grid,.stat-grid{grid-template-columns:1fr}
    .span-2{grid-column:span 1}
    .page-hero-content,.hero-content{padding-top:7rem}
}
