/* ---------- 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:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/bebas-neue-400.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/barlow-semi-condensed-400.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/barlow-semi-condensed-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/barlow-semi-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/barlow-semi-condensed-700.woff2') format('woff2')}

/* The Montford - palette and type read from the live Elementor kit, 23 September 2026.
   Slate #31444C, dusty blue #91ADB7, coral #FF6F61, sand #B7A99A,
   Bebas Neue for display and Barlow Semi Condensed for body. */

:root{
  --slate:#31444C; --slate-deep:#26353c; --slate-panel:#3b515a;
  --blue:#91ADB7; --coral:#FF6F61; --coral-deep:#e05b4e; --sand:#B7A99A;
  --paper:#F5F5F5; --white:#fff; --ink:#31444C;
  --text:#2c3a41; --muted:rgba(44,58,65,.7); --line:rgba(49,68,76,.16);
  --display:"Bebas Neue",system-ui,sans-serif;
  --body:"Barlow Semi Condensed",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);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:400;line-height:1;margin:0 0 .35em;color:var(--slate);letter-spacing:.5px}
h1{font-size:clamp(2.6rem,6.5vw,4.4rem)}
h2{font-size:clamp(2rem,4.4vw,3.2rem)}
h3{font-size:1.7rem}
p{margin:0 0 1.1em}
a{color:var(--coral-deep)}
a:hover{color:var(--slate)}

.kicker{font-family:var(--body);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;font-size:.78rem;color:var(--coral-deep);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(--coral);color:var(--white);padding:.75rem 1.25rem;z-index:100}
.skip:focus{left:0;top:0}

/* Buttons - coral fill, white text, 3px radius, as on the live kit */
.btn{display:inline-block;white-space:nowrap;font-family:var(--body);font-weight:700;font-size:15px;letter-spacing:.5px;text-transform:uppercase;text-decoration:none;padding:14px 28px;border-radius:3px;background:var(--coral);color:var(--white);border:2px solid var(--coral);line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease}
.btn:hover{background:transparent;color:var(--coral-deep);border-color:var(--coral-deep)}
.btn--ghost{background:transparent;color:var(--white);border-color:var(--white)}
.btn--ghost:hover{background:var(--white);color:var(--slate)}
.btn--dark{background:var(--coral);color:var(--white);border-color:var(--coral)}
.btn--dark:hover{background:transparent;color:var(--coral-deep);border-color:var(--coral-deep)}
.btn--ghost-dark{background:transparent;color:var(--slate);border-color:var(--slate)}
.btn--ghost-dark:hover{background:var(--slate);color:var(--white)}
.btn--ghost-cta{background:transparent;color:var(--white);border-color:var(--white)}
.btn--ghost-cta:hover{background:var(--white);color:var(--slate)}
.btn--sm{padding:10px 18px;font-size:13px}
.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(--slate);color:var(--white);font-size:.78rem;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(--white);border-bottom:1px solid var(--line)}
.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:54px;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:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate);text-decoration:none;white-space:nowrap}
.mainnav ul a:hover,.mainnav ul a[aria-current]{color:var(--coral-deep)}
/* the header button is an <a> inside .mainnav: keep it on the button palette */
.mainnav .btn{background:var(--coral);color:var(--white);border-color:var(--coral)}
.mainnav .btn:hover{background:transparent;color:var(--coral-deep);border-color:var(--coral-deep)}
.nav-toggle{display:none;background:none;border:0;padding:.5rem;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--slate);margin:5px 0}

/* Hero */
.hero{min-height:74vh;display:grid;place-items:center;text-align:center;padding:5rem 0;background-size:cover;background-position:center}
.hero h1,.hero .lead{color:var(--white)}
.hero .kicker{color:var(--blue)}
.hero__inner{max-width:880px}
.hero .btns{justify-content:center}

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

/* Sections */
.section{padding:clamp(3rem,7vw,5rem) 0}
.section--panel{background:var(--paper);border-block:1px solid var(--line)}
.section--cta{background:var(--slate);color:var(--white)}
.section--cta h2{color:var(--white)}
.section--cta p{color:rgba(255,255,255,.86)}
.section--cta .btn{background:var(--coral);color:var(--white);border-color:var(--coral)}
.section--cta .btn:hover{background:transparent;color:var(--white);border-color:var(--white)}
.section.tall{min-height:58vh;display:grid;place-items:center}
.pagehead{padding:clamp(3rem,7vw,4.5rem) 0 1.8rem;background:var(--slate);border-bottom:4px solid var(--coral)}
.pagehead h1{color:var(--white)}
.pagehead .lead{color:rgba(255,255,255,.86)}
.pagehead .kicker{color:var(--blue)}

.split{display:grid;gap:clamp(2rem,5vw,3.5rem);align-items:center;grid-template-columns:1fr 1fr}
.split--flip .split__media{order:-1}
.split__media img{width:100%;height:100%;max-height:560px;object-fit:cover;display:block;border-radius:3px}
.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;border-radius:3px}

/* 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(240px,1fr))}
.card{background:var(--white);border:1px solid var(--line);border-radius:3px;overflow:hidden;display:flex;flex-direction:column}
.card--plain{padding:1.5rem 1.4rem}
.card--plain h3{color:var(--slate);margin-bottom:.3em}
.card--plain p:last-child{margin-bottom:0}
.deal{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--coral);border-radius:3px;padding:1.5rem 1.4rem}
.section--panel .deal{background:var(--white)}
.deal__when{font-size:.76rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--coral-deep);margin:0 0 .5em}
.deal h3{margin:0 0 .3em}
.deal p:last-child{margin-bottom:0}
.more{font-family:var(--body);font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;border-bottom:2px solid var(--coral);padding-bottom:2px}
.more:hover{border-bottom-color:var(--slate)}

.badges{list-style:none;padding:0;margin:0 0 1.6rem;display:flex;flex-wrap:wrap;gap:.5rem}
.badges li{font-size:.78rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate);border:1px solid var(--line);border-radius:3px;padding:.5rem .85rem;background:var(--paper)}

.notice{border:1px dashed var(--coral);border-radius:3px;padding:1.15rem 1.3rem;margin:1.6rem 0;color:var(--muted);font-size:.93rem;background:rgba(255,111,97,.07);text-align:left}
.notice.small{font-size:.85rem;padding:.85rem 1rem}
.notice p:last-child{margin-bottom:0}
.site-footer .notice{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.07);color:rgba(255,255,255,.78)}

/* Forms */
.form-block{background:var(--paper);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(--slate)}
input,select,textarea{background:var(--white);border:1px solid var(--line);color:var(--ink);padding:.85rem .9rem;font:inherit;font-size:1rem;width:100%;border-radius:3px}
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='%23E05B4E' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
input:focus,select:focus,textarea:focus{outline:2px solid var(--coral);outline-offset:1px}
.req{color:var(--coral-deep)}

/* Footer */
.site-footer{background:var(--slate);color:var(--white);padding-top:3.2rem}
.site-footer .kicker{color:var(--blue)}
.site-footer a{color:var(--white);text-decoration:none}
.site-footer a:hover{color:var(--coral)}
.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}
.legal{border-top:1px solid rgba(255,255,255,.2);padding:1.1rem 0;font-size:.86rem;color:rgba(255,255,255,.72)}
.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(--white);border-bottom:1px solid var(--line);padding:1.5rem 1.25rem}
  .mainnav.is-open{display:flex}
  .mainnav ul{flex-direction:column;gap:.9rem}
  .split{grid-template-columns:1fr}
  .split--flip .split__media{order:0}
}
@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(--slate);color:#ffffff;border-top:3px solid var(--coral);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(--coral);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}
}

.menu-head { text-align: left; margin: 2.6rem 0 .6rem; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.menu-head__price { font-size: .75em; opacity: .75; white-space: nowrap; }
.menu-list { margin: 0; }
.menu-item { padding: .7rem 0; border-bottom: 1px solid rgba(128,128,128,.25); }
.menu-item dt { font-weight: 600; margin: 0; }
.menu-item dd { margin: .25rem 0 0; opacity: .85; font-size: .95rem; }
.menu-note { margin: 1.8rem 0 0; opacity: .8; font-size: .95rem; }

/* ---------- 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}
}
