@font-face{font-family:Adventor;src:url("adventor-bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Lato;src:url("lato-regular.woff2") format("woff2");font-weight:400;font-display:swap}
:root{--paper:#FFFAF2;--ink:#174B35;--secondary:#44594D;--hint:#44594D;--error:#97273C;--pink:#F8C5D4;--button:#174B35;--button-text:#FFFAF2;--button-hover:#103C29;--control-border:#687467;--disabled:#EFE8DE;--focus:#174B35;--body-font:Lato,Arial,sans-serif;--heading-font:Adventor,"Arial Rounded MT Bold",sans-serif;--heading-weight:700}
*{box-sizing:border-box}
html{scroll-padding-top:1.5rem}
body{margin:0;font-size:1rem;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}
body,input,select,textarea,button{font-family:var(--body-font)}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--heading-font);font-weight:var(--heading-weight);line-height:1.12}
h1{font-size:clamp(3.5rem,7.2vw,6.5rem);letter-spacing:-.045em}
h2{font-size:clamp(2.2rem,4.5vw,3.8rem);letter-spacing:-.035em}
h3{font-size:clamp(1.4rem,2.4vw,1.8rem);letter-spacing:-.025em}
p+p{margin-top:1rem}
a{color:inherit;text-underline-offset:.23em;text-decoration-thickness:1px}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
a:active,button:active{filter:brightness(.9)}
img{display:block;width:100%;max-width:100%;height:auto}
iframe{display:block;width:100%;max-width:100%;border:0}
button,input,select,textarea{font-size:1rem}
button,select,summary{cursor:pointer}
button,a,input,select,textarea,summary{touch-action:manipulation}
[hidden]{display:none!important}
.skip{position:absolute;z-index:3;inset:8px auto auto 8px;padding:12px;background:var(--paper);color:var(--ink);transform:translateY(-180%)}
.skip:focus{transform:translateY(0)}
.masthead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px max(20px,calc((100% - 1200px)/2));background:var(--ink);color:var(--paper)}
.masthead a:focus-visible,footer a:focus-visible,.market-feature a:focus-visible{outline-color:var(--paper)}
.brand{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1;min-height:44px;justify-content:center;font-family:var(--heading-font);font-size:2rem;letter-spacing:-.065em}
.brand span{font-family:var(--body-font);font-size:.72rem;letter-spacing:.12em;margin:5px 0 0 2px}
nav{display:flex;flex-wrap:wrap;gap:4px 12px}
nav a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;font-size:.875rem;text-decoration:none}
nav a:hover{text-decoration:underline}
.section{padding:3.25rem max(20px,calc((100% - 1200px)/2))}
.section-label{font-size:.875rem;margin-bottom:1rem}
.section-heading>p:not(.section-label){margin-top:1.25rem;max-width:35rem;color:var(--secondary)}
.opening{display:grid;background:var(--pink)}
.opening-copy{padding:2rem 20px 2.25rem;align-self:center}
.location{font-size:.875rem;margin-bottom:1.25rem}
.intro{max-width:32rem;margin:1.5rem 0;font-size:1.0625rem;line-height:1.65}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 22px;border:2px solid transparent;border-radius:8px;background:var(--button);color:var(--button-text);font-weight:bold;font-size:1rem;line-height:1.4;text-align:center;text-decoration:none;transition:background-color .15s,color .15s;max-width:100%}
.button:hover{background:var(--button-hover)}
.opening-hours{font-size:.875rem;margin-top:1.5rem}
.opening-hours strong{margin-left:12px}
.opening-photo{min-width:0}
.opening-photo img{aspect-ratio:4/5;object-fit:cover}
.opening-photo figcaption{padding:12px 20px;font-size:.8125rem;line-height:1.5;background:var(--ink);color:var(--paper)}
.text-link{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding-block:8px;font-size:.9375rem;line-height:1.5;max-width:100%;overflow-wrap:anywhere}
.text-link:hover{text-decoration-thickness:2px}
.small{font-size:.9375rem;color:var(--secondary)}
.catalogue .section-heading{margin-bottom:2.5rem}
.catalogue-list{border-top:2px solid var(--ink)}
.catalogue-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:1.75rem 0;border-bottom:1px solid #C0C6B8}
.row-no{font-size:.8125rem;padding-top:5px}
.catalogue-row p{font-size:.9375rem;margin-top:.75rem;color:var(--secondary)}
.catalogue-row .text-link{margin-top:.5rem}
.cake-strip{margin:1.5rem 0 0}
.catalogue-note{font-size:.875rem;color:var(--secondary);margin-top:1.25rem}
.market-feature{background:var(--ink);color:var(--paper);display:grid}
.market-feature>div{padding:2.25rem 20px 2.75rem;align-self:center}
.market-feature h2{margin-bottom:1.25rem}
.market-feature p:not(.section-label){max-width:28rem}
.market-feature .light{background:var(--paper);color:var(--ink);margin-top:1.5rem}
.market-feature .light:hover{background:var(--pink)}
.market-feature img{height:100%;aspect-ratio:900/634;object-fit:cover}
.reviews{display:grid;gap:1.5rem;border-bottom:1px solid #C0C6B8}
.rating{font-size:4.5rem;letter-spacing:-.06em}
.rating span{display:block;font-family:var(--body-font);font-size:.9375rem;font-weight:400;letter-spacing:0;line-height:1.5;margin-top:.5rem}
.review-themes{font-size:.9375rem;max-width:42rem}
.order-section{background:var(--pink);display:grid;gap:2.5rem}
.order-intro>p:not(.section-label){max-width:31rem;margin-top:1.25rem}
.order-intro>.text-link{margin-top:1rem}
.enquiry-form{min-width:0}
.form-note{font-size:.875rem;margin-bottom:1.5rem}
.field{margin-bottom:1.25rem;min-width:0}
.field label{display:block;margin-bottom:8px;font-size:.9375rem;font-weight:bold}
input,select,textarea{display:block;max-width:100%;width:100%;min-width:0;min-height:48px;border:1px solid var(--control-border);border-radius:4px;padding:12px;color:var(--ink);background:var(--paper);line-height:1.5}
select{padding-right:30px}
textarea{resize:vertical;min-height:110px}
input[type=date]{min-width:0;min-height:51px}
input:disabled,select:disabled{opacity:1;background:var(--disabled);color:var(--hint)}
.hint,.error{display:block;font-size:.8125rem;line-height:1.6;margin-top:6px}
.hint{color:var(--hint)}
.error{color:var(--error);font-weight:bold}
[aria-invalid=true]{border:2px solid var(--error)}
.quantity-summary{padding:12px 0;border-top:1px solid var(--control-border);border-bottom:1px solid var(--control-border);font-size:.9375rem}
.form-status{font-size:.9375rem;margin:1rem 0;min-height:1.5em}
.form-status.has-errors{color:var(--error);font-weight:bold}
.enquiry-form>.button{width:100%}
.draft-result{margin-top:1.5rem;border-top:1px solid var(--control-border);padding-top:1.25rem}
.draft-result p{font-size:.9375rem}
.draft-result summary{min-height:44px;padding:10px 0;font-size:.9375rem}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--body-font);font-size:.875rem;line-height:1.7;padding:16px;background:var(--paper);margin:8px 0 0}
.noscript{font-size:.9375rem;margin-top:1.5rem}
.gallery-heading{margin-bottom:2rem}
.gallery-grid{display:grid;gap:1.5rem}
.gallery figcaption{font-size:.8125rem;padding-top:8px;color:var(--secondary)}
.gallery img{aspect-ratio:4/3;object-fit:cover}
.visit{display:grid;gap:2rem;background:#EEEEDD}
.visit-details{margin:2rem 0 1rem}
.visit-details>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;margin-top:1.2rem}
.visit-details dt{font-size:.8125rem;color:var(--secondary)}
.visit-details dd{margin:0;font-size:.9375rem;max-width:25rem}
.visit iframe{height:320px;align-self:center}
footer{padding:2.25rem max(20px,calc((100% - 1200px)/2));display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 3rem;background:var(--ink);color:var(--paper)}
footer p{font-size:.8125rem;width:100%}
footer>a:not(.brand){display:inline-flex;min-height:44px;align-items:center;font-size:.875rem}
footer .brand{margin-right:auto}
main,section,article,div{min-width:0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media(min-width:38rem){
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-grid figure:first-child{grid-column:1/-1}
.opening-copy{padding:2.75rem 32px}
.market-feature>div{padding:3rem 32px}
.section{padding-block:4rem}
.masthead{padding-block:18px}
.visit-details>div{grid-template-columns:100px minmax(0,1fr)}
}
@media(min-width:52rem){
.opening{grid-template-columns:1.05fr 1fr}
.opening-copy{padding:3rem 32px 3rem max(32px,calc((100vw - 1200px)/2))}
.opening h1{font-size:clamp(3.6rem,6.5vw,6.25rem)}
.opening-photo{display:flex;flex-direction:column}
.opening-photo img{flex:1;min-height:0;height:100%;aspect-ratio:auto;object-fit:cover}
.market-feature{grid-template-columns:1.1fr 1fr}
.market-feature>div{padding:3rem max(32px,calc((100vw - 1200px)/2)) 3rem 3rem}
.reviews{grid-template-columns:.75fr 1.25fr;gap:3rem}
.visit{grid-template-columns:1fr 1fr}
.visit iframe{height:420px}
.order-section{grid-template-columns:1fr 1fr;gap:3rem}
.catalogue{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}
.catalogue .section-heading{margin:0}
.section{padding-block:5rem}
.gallery-grid{grid-template-columns:1.5fr 1fr 1fr;align-items:start}
.gallery-grid figure:first-child{grid-column:auto}
.gallery-grid figure:not(:first-child) img{aspect-ratio:3/4}
}
