.local-page { background: var(--paper); }
.home-local { background: var(--paper); }
.home-local-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.home-local-grid a { position: relative; display: flex; min-height: 260px; padding: 30px; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: var(--white); flex-direction: column; transition: transform .35s, background .35s, color .35s; }
.home-local-grid a:nth-child(2), .home-local-grid a:nth-child(3) { background: var(--green-dark); color: #fff; }
.home-local-grid a::after { content: attr(data-mark); position: absolute; right: -12px; bottom: -38px; color: #284b3809; font-family: var(--serif); font-size: 150px; line-height: 1; }
.home-local-grid a:hover { z-index: 1; transform: translateY(-8px) rotate(-.5deg); background: var(--electric); color: var(--ink); }
.home-local-grid small { margin-bottom: auto; color: var(--green); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-local-grid a:nth-child(2) small, .home-local-grid a:nth-child(3) small { color: var(--electric); }
.home-local-grid a:hover small { color: var(--green); }
.home-local-grid strong { max-width: 520px; margin: 42px 0 25px; font-family: var(--serif); font-size: clamp(32px, 4vw, 52px); font-weight: 400; line-height: 1.05; }
.home-local-grid span { font-size: 13px; font-weight: 700; }
.local-page .topbar { margin-bottom: -72px; }
.local-hero { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 760px; padding: 120px 5vw 34px; background: var(--green-dark); color: #fff; }
.local-hero-copy { align-self: center; padding: 70px 5vw 70px 2vw; }
.local-hero .eyebrow { color: var(--electric); }
.local-hero h1 { max-width: 820px; font-size: clamp(54px, 7vw, 102px); }
.local-hero p:not(.eyebrow) { max-width: 650px; margin: 28px 0 34px; color: #f6f3e8c7; font-size: 18px; }
.local-hero-visual { position: relative; min-height: 580px; margin: 20px 0; overflow: hidden; border-radius: 150px 26px 150px 26px; }
.local-hero-visual img { width: 100%; height: 100%; object-fit: cover; }
.local-hero-visual span { position: absolute; right: 22px; bottom: 22px; padding: 10px 15px; border-radius: 999px; background: var(--electric); color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.local-content { background: var(--white); }
.local-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 9vw; align-items: start; }
.local-intro h2 { position: sticky; top: 130px; }
.local-intro-copy { color: var(--muted); font-size: 18px; }
.local-intro-copy p:first-child { margin-top: 0; }
.local-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 60px; }
.local-features article { padding: 30px; border: 1px solid var(--line); border-radius: 26px; background: var(--paper); transition: transform .3s, background .3s; }
.local-features article:hover { transform: translateY(-7px); background: var(--electric); }
.local-features span { color: var(--green); font-size: 12px; font-weight: 800; }
.local-features h3 { margin: 42px 0 16px; font-size: 34px; }
.local-features p { color: var(--muted); }
.local-process { background: var(--green); color: #fff; }
.local-process .section-head > p { color: #ffffffbd; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 45px; border-radius: 28px; overflow: hidden; }
.steps article { padding: 34px; background: #ffffff0d; }
.steps b { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--electric); color: var(--ink); }
.steps h3 { margin: 52px 0 15px; font-size: 34px; }
.steps p { color: #ffffffbf; }
.local-cta { display: grid; grid-template-columns: 1.2fr auto; gap: 40px; align-items: center; background: var(--peach); }
.local-cta h2 { max-width: 850px; }
.local-cta .button { background: var(--ink); border-color: var(--ink); }
.related-services { background: var(--paper); }
.local-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; background: var(--white); }
.faq-heading h2 { max-width: 650px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { padding: 0; border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 25px 42px 25px 0; cursor: pointer; list-style: none; font-family: var(--serif); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.2; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; top: 24px; color: var(--green); font-family: var(--sans); font-size: 26px; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { max-width: 760px; margin: -4px 48px 25px 0; color: var(--muted); }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.related-grid a { display: flex; min-height: 180px; padding: 25px; border-radius: 24px; background: var(--white); flex-direction: column; justify-content: space-between; border: 1px solid var(--line); transition: .3s; }
.related-grid a:hover { transform: translateY(-5px); border-color: var(--green); }
.related-grid strong { font-family: var(--serif); font-size: 28px; font-weight: 400; }
.related-grid span { color: var(--green); }
.local-page footer .brand > span:first-child { background: transparent; }
@media (max-width: 950px) { .local-hero { grid-template-columns: 1fr; padding-inline: 20px; } .local-hero-copy { padding: 75px 4vw 40px; } .local-hero-visual { min-height: 520px; margin: 0; } .local-intro, .local-faq { grid-template-columns: 1fr; } .local-intro h2 { position: static; } .local-features, .steps { grid-template-columns: 1fr; } .local-cta { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .home-local-grid { grid-template-columns: 1fr; } .home-local-grid a { min-height: 220px; padding: 24px; } .home-local-grid a:hover { transform: none; } .local-hero { min-height: auto; padding: 104px 10px 10px; } .local-hero-copy { padding: 62px 5vw 38px; } .local-hero h1 { font-size: clamp(46px, 14vw, 62px); } .local-hero-visual { min-height: 430px; border-radius: 70px 20px 70px 20px; } .local-features { margin-top: 35px; } .related-grid { grid-template-columns: 1fr; } }

/* Concrete menu details keep the established editorial style. */
.sample-menu { background: var(--paper); }
.tasting-list { list-style: none; margin: 30px 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 44px; }
.tasting-list li { padding: 24px 0; border-top: 1px solid var(--line); }
.tasting-list span { font-size: 12px; color: var(--green); text-transform: uppercase; letter-spacing: .12em; }
.tasting-list p { margin: 12px 0 0; font-family: var(--serif); font-size: clamp(22px,2.3vw,30px); line-height: 1.35; }
.menu-enquiry { display: flex; gap: 32px; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 28px; }
.menu-enquiry p { max-width: 680px; color: var(--muted); }
.menu-enquiry .button { flex-shrink: 0; }
.summary-note { color: var(--muted); font-size: 14px; line-height: 1.5; }
@media (max-width: 700px) { .tasting-list { grid-template-columns: 1fr; } .menu-enquiry { flex-direction: column; align-items: flex-start; gap: 16px; } }
