/* Shared component rules. Page styles own colours and artwork, not type scale.
   Hero lead: any direct introductory paragraph, excluding the eyebrow.
   Do not use :last-child: a following CTA must not alter the typography. */
.menu-page>.menu-download{padding:0 5vw 48px}
.menu-page>.menu-download .button.dark{background:var(--ink);color:var(--cream)}
:root{
  --cg-lead-size:clamp(18px,1.6vw,22px);
  --cg-lead-line:1.45;
  --cg-lead-width:560px;
  --cg-lead-gap:28px;
  --cg-page-title:clamp(72px,11vw,160px);
  --cg-page-title-long:clamp(54px,7.2vw,112px);
  --cg-section-title:clamp(34px,4vw,58px);
  --cg-cta-title:clamp(42px,6vw,86px);
  --cg-weight-body:400;
  --cg-weight-lead:700;
}
.events-hero>p:not(.eyebrow),
.contact-hero>p:not(.eyebrow),
.menu-hero>p:not(.eyebrow),
.cg-special-copy .cg-special-intro{
  font-size:var(--cg-lead-size);
  line-height:var(--cg-lead-line);
  font-weight:var(--cg-weight-lead);
  letter-spacing:normal;
  max-width:var(--cg-lead-width);
  margin:var(--cg-lead-gap) 0 0;
}
.events-hero>p:not(.eyebrow)+.button,
.contact-hero>p:not(.eyebrow)+.button,
.menu-hero>p:not(.eyebrow)+.button,
.cg-special-copy .cg-special-intro+.menu-actions{margin-top:28px}
@media(max-width:600px){:root{--cg-lead-gap:22px}}
/* Mobile hero introductions have a deliberate reading measure and balanced lines. */
@media(max-width:760px){
 body main :is(.events-hero,.contact-hero,.menu-hero)>p:not(.eyebrow),
 body main .cg-special-copy .cg-special-intro,
 body main .hero-copy>.intro{width:86%;max-width:28ch;text-wrap:pretty}
}
/* Interior page titles: one scale, one documented long-title variant. */
.menu-hero h1,.events-hero h1,.contact-hero h1,.cg-special-copy h1{
  font-family:Arial,Helvetica,sans-serif;font-size:var(--cg-page-title);
  font-weight:950;line-height:.9;letter-spacing:-.065em;margin:0;
  word-break:normal;overflow-wrap:normal;
}
.cg-special-copy h1{max-width:100%}
.tone-brunch .cg-special-copy h1{font-size:var(--cg-page-title-long)}
.menu-section>header h2{font-size:var(--cg-section-title);line-height:1;letter-spacing:-.045em;margin:0;overflow-wrap:normal}
.venue-cta h2,.cg-special-page .venue-cta h2{font-size:var(--cg-cta-title);line-height:.95;letter-spacing:-.055em}
.event-list-copy h2{font-size:clamp(36px,6vw,86px);line-height:1.05;letter-spacing:-.045em;overflow-wrap:normal}
.event-single-copy{container-type:inline-size;min-width:0}
.event-single-copy h1{font-size:clamp(32px,14cqw,140px);line-height:.95;letter-spacing:-.055em;word-break:normal;overflow-wrap:normal}
.contact-grid :is(.booking-panel,.enquiry-panel)>h2{font-size:var(--cg-cta-title);line-height:.95;letter-spacing:-.055em;margin:0 0 28px}
.contact-grid :is(.booking-panel,.enquiry-panel){padding:56px 5vw}
.booking-panel>.button.primary{margin:12px 0 8px}
.booking-panel>.cg-booking-note{max-width:440px;margin:12px 0 0;font-weight:400}
.booking-panel>.contact-details{padding-top:24px;margin-top:28px;border-top:1px solid #17171750;gap:12px}
.booking-panel>.contact-details p{margin:8px 0 0;line-height:1.5}
.enquiry-panel .cg-enquiry-form{margin-top:0;gap:18px}
.enquiry-panel .cg-enquiry-form .cg-form-help{margin:0 0 4px;font-weight:400}
.enquiry-panel .cg-enquiry-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.enquiry-panel .cg-enquiry-form>*{grid-column:1/-1;min-width:0}
.enquiry-panel .cg-enquiry-form label:has(input[name=name]),.enquiry-panel .cg-enquiry-form label:has(input[name=email]){grid-column:auto}
@media(max-width:1000px){.enquiry-panel .cg-enquiry-form{grid-template-columns:1fr}}
@media(max-width:760px){:root{--cg-page-title:clamp(58px,17vw,96px);--cg-page-title-long:clamp(42px,11.5vw,68px)}}
@media(max-width:480px){.event-list-card{grid-template-columns:minmax(0,1fr)}.event-list-copy{min-width:0;padding:22px}.event-list-image{min-width:0}.event-list-copy h2{font-size:36px}}
/* Public content buttons. These three variants own all visual treatment;
   page selectors may position buttons, but must not recolour or shadow them. */
:root{--cg-button-fill:linear-gradient(100deg,#ff5a2b,#ff376d);--cg-button-ink:#171717;--cg-button-paper:#f2eadc}
body main .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 22px;border:2px solid var(--cg-button-ink);border-radius:0;font:900 12px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;text-decoration:none;box-shadow:none;transition:transform .15s ease,filter .15s ease;max-width:100%;text-align:center}
body main .button.primary{background:var(--cg-button-fill);color:var(--cg-button-ink);border-color:var(--cg-button-ink)}
body main .button.ghost{background:var(--cg-button-paper);color:var(--cg-button-ink);border-color:var(--cg-button-ink)}
body main .button.dark{background:var(--cg-button-ink);color:var(--cg-button-paper);border-color:var(--cg-button-paper)}
body main .button:hover{box-shadow:none;transform:translateY(-2px);filter:brightness(1.04)}
body main .button:focus-visible{outline:3px solid #ff376d;outline-offset:4px}
@media(prefers-reduced-motion:reduce){body main .button{transition:none}body main .button:hover{transform:none}}
/* Copy hierarchy: hero leads are bold; section descriptions are regular.
   Eyebrows, item names, prices, navigation and controls retain their own roles. */
body main .hero-copy>.intro{font-weight:var(--cg-weight-lead);line-height:1.45}
body main :is(.food-lead,.cg-plan-copy,.venue-intro,.venue-features article,.venue-practical,.venue-cta,.venue-gallery-copy,.booking-panel,.event-list-copy)>p:not(.eyebrow):not(.cg-booking-note){font-weight:var(--cg-weight-body);line-height:1.6}
body main :is(.food-lead,.cg-plan-copy)>p:not(.eyebrow){font-size:18px;max-width:54ch}
body main :is(.item-description,.menu-list article) p{font-weight:var(--cg-weight-body);line-height:1.5}
body main .menu-section>header p{font-weight:var(--cg-weight-body);line-height:1.5;max-width:100%;text-wrap:pretty}
/* Offer links share an arrow column regardless of title or price length. */
.home .menu-list article>div{min-width:0}
.home .menu-list article h3 a{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%}
.home .menu-list article h3 a .cg-arrow-icon{flex:0 0 1em;margin-left:auto}
/* What’s On hero palette; individual events use their dashboard colour. */
.events-page .events-hero{
 --sport-green:#176348;
 --sport-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'%3E%3Cpath fill='%237dc99b' fill-opacity='.24' d='M0 500 500 0 1000 500 1000 1000 500 500 0 1000Z'/%3E%3C/svg%3E");
}
body .events-page .events-hero{background:var(--sport-green)}
body .events-page .events-hero:before{background-image:var(--sport-chevron)!important}
body .cg-event-coloured :is(.cg-archive-date,.eyebrow,.event-stage>p):empty{display:none}
@media(min-width:521px){
 .home .menu-list article{grid-template-columns:45px minmax(0,1fr);row-gap:8px}
 .home .menu-list article>strong{grid-column:2;justify-self:start}
}
