/* ---------- Self-hosted fonts ----------
   Served from this domain, not from Google. No third-party request is made
   on page load, so no visitor IP address reaches another company before
   they have consented to anything. Latin subset, woff2. */
@font-face{font-family:'Teko';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/teko-400-700.woff2') format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/rajdhani-400.woff2') format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/rajdhani-500.woff2') format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/rajdhani-600.woff2') format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/rajdhani-700.woff2') format('woff2')}

/* The Scallion - palette and type read from the live Elementor kit, 23 September 2026.
   Forest green #2B6734, deep green #114118, olive #8D9A5B, gold #E6D26B,
   brown #6E4F2B. Teko for display, Rajdhani for body and buttons. */

:root{
  --green:#2B6734; --green-deep:#114118; --green-panel:#22532a;
  --olive:#8D9A5B; --gold:#E6D26B; --gold-deep:#cbb64f; --brown:#6E4F2B;
  --ink:#1E1E1E; --white:#fff; --text:#f1f0e8;
  --muted:rgba(241,240,232,.72); --line:rgba(230,210,107,.28);
  --display:"Teko",system-ui,sans-serif;
  --body:"Rajdhani",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--green);color:var(--text);font-family:var(--body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}

h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1;margin:0 0 .3em;color:var(--white);text-transform:uppercase;letter-spacing:.5px}
h1{font-size:clamp(2.6rem,6.5vw,4.6rem)}
h2{font-size:clamp(2rem,4.6vw,3.4rem)}
h3{font-size:1.65rem}
p{margin:0 0 1.1em}
strong{color:var(--white)}
a{color:var(--gold)}
a:hover{color:var(--white)}

.kicker{font-family:var(--body);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;font-size:.8rem;color:var(--gold);margin:0 0 .7em}
.kicker.center{text-align:center}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.narrow{max-width:800px;margin-inline:auto}
.center{text-align:center}
.lead{font-size:1.2rem;max-width:60ch}
.center .lead,.hero .lead{margin-inline:auto}
.muted{color:var(--muted)}
.small{font-size:.92rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hidden{position:absolute;left:-9999px}
.skip{position:absolute;left:-9999px;background:var(--gold);color:var(--green-deep);padding:.75rem 1.25rem;z-index:100}
.skip:focus{left:0;top:0}

/* Buttons - gold outline, square corners, as on the live kit */
.btn{display:inline-block;white-space:nowrap;font-family:var(--body);font-weight:700;font-size:17px;letter-spacing:1px;text-transform:uppercase;text-decoration:none;padding:15px 30px;border-radius:0;background:var(--gold);color:var(--green-deep);border:2px solid var(--gold);line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease}
.btn:hover{background:transparent;color:var(--gold);border-color:var(--gold)}
.btn--ghost{background:transparent;color:var(--white);border-color:var(--white)}
.btn--ghost:hover{background:var(--white);color:var(--green-deep)}
.btn--dark{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}
.btn--dark:hover{background:transparent;color:var(--gold)}
.btn--ghost-dark{background:transparent;color:var(--text);border-color:var(--line)}
.btn--ghost-dark:hover{background:var(--white);color:var(--green-deep);border-color:var(--white)}
.btn--sm{padding:10px 20px;font-size:15px}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0;align-items:center}
.center-btns{justify-content:center}

/* Announcement strip */
.strip{background:var(--gold);color:var(--green-deep);font-size:.8rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;text-align:center;padding:.5rem 0}

/* Header */
.site-header{position:sticky;top:0;z-index:60;background:var(--green-deep);border-bottom:2px solid var(--gold)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:.7rem 0;flex-wrap:nowrap}
.logo{display:block;line-height:0}
.logo img{height:50px;width:auto;display:block}
.mainnav{display:flex;align-items:center;gap:1.2rem;min-width:0}
.mainnav ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}
.mainnav ul a{font-family:var(--body);font-weight:700;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);text-decoration:none;white-space:nowrap}
.mainnav ul a:hover,.mainnav ul a[aria-current]{color:var(--gold)}
/* the header button is an <a> inside .mainnav: keep it on the button palette */
.mainnav .btn{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}
.mainnav .btn:hover{background:transparent;color:var(--gold)}
.nav-toggle{display:none;background:none;border:0;padding:.5rem;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--gold);margin:5px 0}

/* Hero */
.hero{min-height:76vh;display:grid;place-items:center;text-align:center;padding:5rem 0;background-size:cover;background-position:center}
.hero__inner{max-width:880px}
.hero .btns{justify-content:center}

/* Ticker */
.ticker{background:var(--olive);border-block:1px solid rgba(0,0,0,.2)}
.ticker__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2.4rem;padding:.9rem 1.25rem;font-size:.8rem;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--green-deep)}

/* Sections */
.section{padding:clamp(3rem,7vw,5rem) 0}
.section--panel{background:var(--green-deep);border-block:1px solid var(--line)}
.section--cta{background:var(--gold);color:var(--green-deep)}
.section--cta h2,.section--cta p{color:var(--green-deep)}
.section--cta .btn{background:var(--green-deep);color:var(--gold);border-color:var(--green-deep)}
.section--cta .btn:hover{background:transparent;color:var(--green-deep);border-color:var(--green-deep)}
.section--cta .btn--ghost{background:transparent;color:var(--green-deep);border-color:var(--green-deep)}
.section--cta .btn--ghost:hover{background:var(--green-deep);color:var(--gold)}
.section.tall{min-height:58vh;display:grid;place-items:center}
.pagehead{padding:clamp(3rem,7vw,4.5rem) 0 1.8rem;background:var(--green-deep);border-bottom:3px solid var(--gold)}

.split{display:grid;gap:clamp(2rem,5vw,3.5rem);align-items:center;grid-template-columns:1fr 1fr}
.split__media img{width:100%;height:100%;max-height:560px;object-fit:cover;display:block}
.gallery{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}

/* Cards, deals */
.grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));margin-top:2.2rem}
.grid--tight{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{background:var(--green-panel);border:1px solid var(--line);display:flex;flex-direction:column}
.section--panel .card{background:var(--green)}
.card--plain{padding:1.5rem 1.4rem}
.card--plain p:last-child{margin-bottom:0}
.deal{background:var(--green-panel);border:1px solid var(--line);border-top:4px solid var(--gold);padding:1.5rem 1.4rem}
.section--panel .deal{background:var(--green)}
.deal__price{font-family:var(--display);font-weight:600;font-size:2.4rem;line-height:1;color:var(--gold);margin:0 0 .15em}
.deal__when{font-size:.78rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);margin:0 0 .5em}
.deal h3{margin:0 0 .25em}
.deal p:last-child{margin-bottom:0}
.more{font-family:var(--body);font-weight:700;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:2px}
.more:hover{border-bottom-color:var(--white)}

.badges{list-style:none;padding:0;margin:1.4rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.badges li{font-size:.8rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);padding:.45rem .85rem}

/* Menu cards + lists */
.menu-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:2.2rem 0;text-align:left}
.menu-card{display:block;background:var(--green-panel);border:1px solid var(--line);padding:1.5rem 1.35rem;text-decoration:none}
.menu-card:hover{border-color:var(--gold)}
.menu-card__label{display:block;font-family:var(--display);font-weight:500;font-size:1.7rem;text-transform:uppercase;color:var(--white);line-height:1.05}
.menu-card__note{display:block;font-size:.88rem;color:var(--muted);margin-top:.3rem}
.menu-list{margin:0 0 2.5rem}
.menu-item{padding:.95rem 0;border-bottom:1px solid var(--line)}
.menu-item dt{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.menu-item dd{margin:.3rem 0 0;color:var(--muted);font-size:.95rem}
.menu-item__name{font-family:var(--display);font-weight:500;font-size:1.45rem;letter-spacing:.5px;text-transform:uppercase;color:var(--white);line-height:1.1}
.menu-item__price{font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--gold);white-space:nowrap}

.notice{border:1px dashed var(--gold);padding:1.15rem 1.3rem;margin:1.6rem 0;color:var(--muted);font-size:.93rem;background:rgba(230,210,107,.09);text-align:left}
.notice.small{font-size:.86rem;padding:.85rem 1rem}
.notice p:last-child{margin-bottom:0}
.section--cta .notice{border-color:var(--green-deep);color:var(--green-deep);background:rgba(17,65,24,.08)}

/* Forms */
.form-block{background:var(--green-deep);padding:clamp(3rem,7vw,4.5rem) 0;border-top:1px solid var(--line)}
form{display:grid;gap:1.1rem;margin-top:2rem}
.field{display:flex;flex-direction:column;gap:.4rem}
@media (min-width:720px){
  form{grid-template-columns:1fr 1fr}
  .field{grid-column:span 2}
  .field--half{grid-column:span 1}
  form .btn{grid-column:span 2;justify-self:start}
}
label{font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold)}
input,select,textarea{background:var(--green);border:1px solid var(--line);color:var(--text);padding:.85rem .9rem;font:inherit;font-size:1rem;width:100%;border-radius:0}
textarea{min-height:150px}
select{appearance:none;-webkit-appearance:none;padding-right:2.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23E6D26B' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
select option{background:var(--green);color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
.req{color:var(--gold)}

/* Footer */
.site-footer{background:var(--green-deep);color:var(--text);padding-top:3.2rem;border-top:2px solid var(--gold)}
.site-footer a{color:var(--gold);text-decoration:none}
.site-footer a:hover{color:var(--white)}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding-bottom:2.2rem}
.plain{list-style:none;padding:0;margin:0}
.plain li{padding:.25rem 0}
.socials{display:flex;gap:1.2rem;flex-wrap:wrap}
.legal{border-top:1px solid var(--line);padding:1.1rem 0;font-size:.88rem;color:var(--muted)}
.legal p{margin:0}

@media (max-width:1000px){
  .nav-toggle{display:block}
  .mainnav{position:absolute;inset:100% 0 auto 0;display:none;flex-direction:column;align-items:flex-start;gap:1rem;background:var(--green-deep);border-bottom:2px solid var(--gold);padding:1.5rem 1.25rem}
  .mainnav.is-open{display:flex}
  .mainnav ul{flex-direction:column;gap:.9rem}
  .split{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- Cookie consent ----------
   Inherits each site's own tokens, so it looks native everywhere. The banner is
   appended to the end of <body> by /consent.js; nothing renders without it,
   which is deliberate - no JavaScript means no cookies and nothing to consent to. */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--green-deep);color:var(--text);border-top:3px solid var(--gold);box-shadow:0 -6px 24px rgba(0,0,0,.28)}
.consent__inner{width:min(100% - 2.5rem,1180px);margin-inline:auto;padding:1.15rem 0;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.consent__text{flex:1 1 28rem;min-width:0}
.consent__h{font-size:1.05rem;margin:0 0 .25em;color:inherit;letter-spacing:0;text-transform:none}
.consent__p{margin:0;font-size:.93rem;line-height:1.5;color:inherit;opacity:.92}
.consent__p a{color:inherit;text-decoration:underline}
.consent__actions{display:flex;flex-wrap:wrap;gap:.6rem;flex:0 0 auto}
.consent__actions .btn{cursor:pointer;font:inherit}
.consent__reject{background:transparent;color:inherit;border-color:currentColor}
.consent :focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media (max-width:640px){
  .consent__inner{padding:1rem 0}
  .consent__actions{width:100%}
  .consent__actions .btn{flex:1 1 auto;text-align:center}
}

/* ---------- booking panel ----------
   Ours, not OpenTable's 224px iframe. Their embed ignores every theme and
   colour parameter they document, so this is built from the site's own type,
   buttons and spacing and hands over to OpenTable only on submit, with the
   date, time and party size already chosen. Nothing third-party loads until
   somebody actually presses the button. */
.booking{border:1px solid rgba(128,128,128,.32);border-radius:6px;padding:1.3rem 1.4rem 1.2rem;margin:1.6rem 0 0}
.booking .kicker{margin:0 0 1rem}
.booking-form{display:grid;grid-template-columns:1fr;gap:.85rem;margin:0}
.booking-form__row{display:block}
.booking-form__row label{display:block;margin:0 0 .35rem;font-size:.9rem;opacity:.85}
.booking-form input[type=date],.booking-form select{width:100%;background-color:#fff;color:#151515;border:1px solid rgba(128,128,128,.42);border-radius:3px;padding:.68rem .8rem;font:inherit;font-size:1rem}
.booking-form select{padding-right:2.6rem}
.booking-form__go{display:block}
.booking-form__go .btn{width:100%;text-align:center;justify-content:center}
.booking__alt{margin:.2rem 0 0;font-size:.86rem;line-height:1.55;opacity:.8}
@media (min-width:620px){
  .booking-form{grid-template-columns:1fr 1fr auto;align-items:end}
  .booking-form__go{grid-column:1 / -1}
}
@media (min-width:900px){
  .booking-form{grid-template-columns:1fr 1fr 1fr}
}

/* legal pages: privacy and cookie policy */
.legal h2{text-align:left;font-size:clamp(1.25rem,2.4vw,1.6rem);margin:2.2rem 0 .6rem}
.legal h2:first-child{margin-top:0}
.legal p{margin:0 0 .9rem}
.legal ul{margin:0 0 1rem;padding-left:1.2rem}
.legal li{margin:0 0 .45rem}
.legal code{font-size:.92em;padding:.1em .35em;border-radius:3px;background:rgba(128,128,128,.16)}
.legal .legal-table{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-size:.95rem}
.legal .legal-table th,.legal .legal-table td{text-align:left;vertical-align:top;padding:.6rem .7rem;border-bottom:1px solid rgba(128,128,128,.28)}
.legal .legal-table th{font-weight:700;border-bottom-width:2px}
.legal .legal-updated{margin-top:2rem;font-size:.9rem;opacity:.75}
@media (max-width:640px){
  .legal .legal-table,.legal .legal-table tbody,.legal .legal-table tr,.legal .legal-table td{display:block;width:100%}
  .legal .legal-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .legal .legal-table tr{padding:.6rem 0;border-bottom:1px solid rgba(128,128,128,.28)}
  .legal .legal-table td{border:0;padding:.15rem 0}
  .legal .legal-table td:first-child{font-weight:700}
}

/* live sport: broadcaster chips. Add a logo path per broadcaster in content.mjs
   and swap the <li> text for an <img> - the layout already allows for it. */
.channels{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .9rem;padding:0}
.channels li{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border:1px solid rgba(128,128,128,.4);border-radius:999px;font-size:.92rem;line-height:1}
.channels li img{display:block;height:1.1rem;width:auto}
.channels-shows{font-size:.95rem;opacity:.8;margin:0 0 .9rem}
