/* The original teapot silhouettes, traced as a small repeating SVG. */
:root{--brand-print:url('/assets/teapot-pattern.svg');--brand-red:#ad282e}
body>header{background:#f1eadb;border-bottom:1px solid #d5c8b5}
body>header>.brand{height:96px;background-size:390px 390px;background-repeat:repeat;background-position:center 15%}
body>header nav{min-height:80px;gap:27px;padding:12px 24px 12px 5vw;justify-content:center}
body>header nav a{display:block;position:relative;padding:12px 0;background:transparent;border:0;box-shadow:none;font-family:'Veteran Typewriter','Courier New',monospace;font-size:1.13rem;line-height:1.2;white-space:nowrap;text-decoration:none;transition:color .15s}
body>header nav a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--brand-red);scale:0 1;transform-origin:left;transition:scale .15s}
body>header nav a:hover,body>header nav a[aria-current]{color:var(--brand-red);text-decoration:none}
body>header nav a:hover::after,body>header nav a[aria-current]::after{scale:1 1}
body>header .basket-button{display:flex;align-items:center;justify-content:center;gap:8px;border:0;padding:12px 0;margin-right:5vw;font-family:'Veteran Typewriter','Courier New',monospace}
body>header .basket-button::before{content:'';width:19px;height:23px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 28'%3E%3Cpath d='M3 9h18l1 17H2L3 9Z M7 9V6a5 5 0 0 1 10 0v3' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat}
body>header .basket-button span{margin-left:0}
body>header .basket-button span{background:var(--brand-red);color:var(--paper)}
footer{padding-bottom:0;--footer-inset:5vw}
footer::after{display:none}
.footer-brand-print{display:flex;align-items:center;justify-content:center;height:84px;margin:32px calc(-1 * var(--footer-inset)) 0;background:#d93837 var(--brand-print) center 15%/390px 390px repeat}
.footer-brand-print .brand .logo-art{width:320px;height:40px}
.footer-brand-print .brand .logo-art img{width:332px;left:-7px;top:-36px;filter:brightness(0) invert(1)}
@media(min-width:1600px){footer{--footer-inset:max(5vw,calc((100vw - 1450px)/2))}}
.button{background:var(--brand-red);border-color:var(--brand-red);color:white}
.button:hover{background:#842026;border-color:#842026}
.button.outline,.button.press-more{background:transparent;color:var(--ink);border-color:var(--line)}
.button.outline:hover,.button.press-more:hover{background:#f3e9df;border-color:var(--brand-red)}
.photo-card h3{color:var(--brand-red)}
.community-story blockquote{border-left-color:var(--brand-red)}
.catalogue-nav button[aria-selected=true],.menu-tabs button[aria-selected=true]{text-decoration-color:var(--brand-red)}
a:hover{text-decoration-color:var(--brand-red)}

/* Centre the introduction in the photograph, with the actions along its lower edge. */
.hero.hero-new{height:auto;min-height:0;max-height:none;padding:0;background:#fffaf0;overflow:hidden}
.hero-postcard{position:relative;inset:auto;border:0;background:transparent;box-shadow:none;overflow:hidden}
.hero-new .hero-picture{position:relative;display:block;width:100%;height:clamp(420px,calc(100svh - 177px),900px);overflow:hidden}
/* Keep the courtyard's original light and colour. */
.hero-new .hero-background{position:absolute;inset:0;width:100%;height:100%;z-index:auto;object-position:50% 65%;filter:none}
.hero.hero-new:after{display:none}
.hero-introduction{position:absolute;z-index:1;top:44%;left:50%;transform:translate(-50%,-50%);width:min(860px,90%);padding:0;background:transparent;color:#fffaf0;border:0;text-align:center;text-shadow:0 1px 2px #17130de6,0 3px 12px #17130dcc,0 0 28px #17130d80;box-shadow:none}
.hero-introduction h1{font-family:'Veteran Typewriter','Courier New',monospace;font-weight:400;font-size:clamp(2.3rem,4.1vw,3.6rem);letter-spacing:-.025em;line-height:1.12;margin:0;text-wrap:balance}
.hero-introduction h1 span{white-space:nowrap}
.hero-introduction p{max-width:700px;margin:20px auto 0;font-size:1.25rem;line-height:1.5;text-wrap:pretty}
/* Soft shadows follow the lettering, leaving the photograph bright and unfiltered. */
.hero-postcard::after{content:none}
.hero-actions{position:absolute;z-index:1;left:50%;bottom:36px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:16px;margin:0;text-shadow:none}
.hero-actions .button{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:15px 27px;white-space:nowrap;font-family:'Veteran Typewriter','Courier New',monospace;font-size:1.15rem;line-height:1.2;background:#fffaf0;border:1px solid #fffaf0;color:#30312d;box-shadow:0 4px 16px #211a1233}
.hero-actions .button:hover{background:#fff;border-color:#fff;color:#171813}
.hero-actions .button-secondary{background:var(--brand-red);border-color:var(--brand-red);color:#fffaf0}
.hero-actions .button-secondary:hover{background:#842026;border-color:#842026;color:#fffaf0}
.hero-actions .button:focus-visible{outline:3px solid #fffaf0;outline-offset:5px}

/* One faint wallpaper stays aligned through the page and footer. */
body{position:relative;isolation:isolate;background:#f7f2e6}
body::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/assets/teapot-pattern-soft.svg') 90px -65px/540px 540px repeat;opacity:.024}
.pattern-surface{position:relative;isolation:auto;overflow:visible;background:transparent}
.pattern-surface::before{content:none}
#main,#main>section:not(.hero),#main>article,#main>.press-opening,#main>.press-opening>section{background:transparent}
#main>section,#main>.press-opening>section{border:0}
#main>section:not(:first-child),#main>.press-opening>section+section{border-top:1px solid var(--line)}
.section-head,.press-archive-heading{padding-bottom:24px;border-bottom:1px solid var(--line)}
.press-lead{padding-top:35px}
.press-lead img{height:auto;aspect-ratio:4/5;object-position:center 60%}
.press-card-owners img{object-position:center 22%}
.press-mention{margin:0 5% 30px;padding:20px 24px;border-left:3px solid var(--brand-red);background:#fffaf0}
.press-mention h2{font-size:1.7rem;margin:0 0 10px}
.press-mention p{margin:0;font-size:1rem}
.press-mention>.text-link{display:inline-block;margin-top:14px}
footer{border-top:1px solid var(--line)}
.press-opening{padding:0;border:0}
.page-intro.pattern-intro,.shop-heading.pattern-intro,.story-intro.pattern-intro,.blog-intro{padding:55px 5% 35px;border:0}
.visit-intro{display:block;background:#f7f2e6}
.visit-intro p{margin-top:23px;font-size:1.14rem}
.pattern-intro h1,.blog-article h1{font-family:'Veteran Typewriter','Courier New',monospace;font-weight:400;letter-spacing:-.025em;line-height:1.1;font-size:clamp(3rem,6vw,5.3rem)}
.menu-afternoon-feature{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,3.5vw,48px);align-items:center}
.menu-afternoon-photo{margin:0;min-width:0}
.menu-afternoon-photo img{display:block;width:100%;height:auto;aspect-ratio:2458/2885;object-fit:cover;border:0;box-shadow:none}
.menu-afternoon-copy{display:grid;gap:24px;min-width:0}
.menu-afternoon-copy h2{font-size:clamp(2.2rem,3.5vw,3rem);line-height:1.1;margin:0;text-wrap:balance}
.menu-afternoon-copy p{margin:0;max-width:none;font-size:1rem;line-height:1.7}
.menu-afternoon-copy .menu-afternoon-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;line-height:1.2}
.menu-afternoon-price strong{font-size:2rem;font-weight:400;font-variant-numeric:tabular-nums}
.menu-afternoon-price span{font-size:.95rem;color:var(--muted)}
.menu-afternoon-copy .menu-afternoon-note{padding-top:20px;border-top:1px solid var(--line);font-size:.94rem;color:var(--muted)}
.menu-afternoon-actions{display:grid;justify-items:start;gap:18px}
.menu-afternoon-actions .button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 22px;line-height:1.4;text-align:center}
.menu-afternoon-actions .text-link{font-size:.95rem;line-height:1.5;text-underline-offset:5px}
@media(min-width:781px) and (max-width:1100px){.menu-afternoon-feature{grid-template-columns:minmax(0,1fr)}.menu-afternoon-photo{max-width:500px}.menu-afternoon-photo img{aspect-ratio:5/4;object-position:center 45%}.menu-afternoon-copy{max-width:580px}}
@media(max-width:780px){.menu-afternoon-feature{grid-template-columns:minmax(0,1fr);gap:28px}.menu-afternoon-photo img{aspect-ratio:2458/2885}.menu-afternoon-copy{gap:22px}.menu-afternoon-copy h2{font-size:2.5rem}.menu-afternoon-actions{justify-items:stretch}.menu-afternoon-actions .button{width:100%}.menu-afternoon-actions .text-link{justify-self:start}}
.designer-credit{display:block;margin-top:6px}
.afternoon-photo{background:#fffdf7;box-shadow:0 3px 9px #332d1515}
.afternoon-photo img{height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 60%}
.responsive-photo{display:block}
.page-intro.menu-intro{display:block}
.menu-intro p{max-width:580px;margin-top:20px;font-size:1.14rem}
#main>section.visit-page{padding-top:28px;border-top:0}
.map-container{position:relative;overflow:hidden}
.map-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#f3f1e9;text-align:center;padding:25px}
.map-loading[hidden]{display:none}
.map-loading p{margin:0}
.map-loading a{font-size:.95rem}
.map-loading::before{content:'';width:24px;height:24px;border:2px solid #d7cebf;border-top-color:var(--brand-red);border-radius:50%;animation:map-loading 1s linear infinite}
@keyframes map-loading{to{rotate:1turn}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .photo-card,.blog-card .blog-photo,.catalogue-photo{transition:translate .25s ease,box-shadow .25s ease}
  .photo-card:hover,.blog-card .blog-photo:hover{translate:0 -4px}
  .button{transition:background-color .18s,border-color .18s,translate .18s}
  .button:hover{translate:0 -1px}
}

.home-blog{background:#f7f2e6;border-top:1px solid var(--line)}
.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.blog-card{min-width:0}
.blog-photo{display:block;overflow:hidden}
.blog-photo img{width:100%;height:330px;object-position:center 35%;transition:transform .3s}
.blog-photo:hover img{transform:scale(1.025)}
.blog-card h2,.blog-card h3{font-size:2rem;margin:25px 0 15px;line-height:1.25}
.blog-card h2 a,.blog-card h3 a{text-decoration:none}
.blog-card h2 a:hover,.blog-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--brand-red)}
.blog-card p{font-size:1.05rem;max-width:550px}
.blog-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}
.blog-card-bottom>span{font-size:.88rem;color:var(--muted)}
.blog-intro p{margin-top:23px;font-size:1.14rem}
.blog-index{padding-top:25px}
.blog-article{padding:45px 5% 75px}
.blog-article-heading{max-width:1000px;margin:0 auto 35px}
.blog-article-heading h1{margin:25px 0}
.blog-byline{font-size:.9rem;color:var(--muted)}
.blog-article-image{width:100%;max-width:1000px;height:500px;margin:0 auto 45px;object-position:center 35%}
.blog-article-body{max-width:740px;margin:auto;font-size:1.14rem;line-height:1.8}
.blog-article-body p{max-width:none}
.blog-article-body .blog-source-note{font-size:.9rem;padding-top:25px;border-top:1px solid var(--line);margin-top:30px}
.blog-article-body .button{margin-top:30px}
@media(max-width:1150px){body>header nav{gap:21px;padding-left:3vw;padding-right:20px}body>header nav a{font-size:1.05rem}body>header .basket-button{margin-right:3vw;font-size:.96rem}}
@media(max-width:1050px){
  body>header{grid-template-columns:1fr auto}
  body>header .nav-toggle{display:flex;align-items:center;gap:12px;grid-column:1;grid-row:2;justify-self:start;min-height:48px;margin:13px 0 16px 5vw;padding:11px 18px;font-family:'Veteran Typewriter','Courier New',monospace;font-size:1.08rem;border:0;background:transparent;box-shadow:none}
  body>header .nav-toggle::before{content:'';width:19px;height:13px;background:linear-gradient(var(--brand-red),var(--brand-red)) top/100% 1px no-repeat,linear-gradient(var(--brand-red),var(--brand-red)) center/100% 1px no-repeat,linear-gradient(var(--brand-red),var(--brand-red)) bottom/100% 1px no-repeat}
  body>header .nav-toggle[aria-expanded=true]{background:transparent;color:var(--brand-red)}
  
  body>header .basket-button{grid-column:2;grid-row:2;font-size:.95rem;min-height:44px;border:0;padding:8px 0}
  body>header nav{display:none;grid-column:1/-1;grid-row:3;min-height:0;margin:0;padding:0 5vw 23px;gap:12px;order:initial}
  body>header nav.open{display:grid;grid-template-columns:1fr 1fr}
  body>header nav a{padding:15px 0;font-size:1.12rem;min-height:54px;border-bottom:1px solid var(--line);text-align:left}
  body>header nav a[href='/afternoon-tea/'],body>header nav a[href='/shop/']{max-width:none}

}
@media(max-width:780px){
  body>header>.brand{height:84px;background-size:290px 290px;background-position:center top}
  .footer-brand-print{height:76px;background-size:290px 290px}
  .footer-brand-print .brand .logo-art{width:280px;height:34px}
  .footer-brand-print .brand .logo-art img{width:290px;left:-6px;top:-32px}
  .hero.hero-new{height:auto;min-height:0;max-height:none;padding:0;overflow:hidden}
  .hero-postcard{inset:auto}
  .hero-new .hero-picture{height:clamp(380px,calc(100svh - 164px),800px)}
  .hero-introduction{top:42%}
  .hero-introduction h1{font-size:clamp(1.9rem,8.3vw,2.4rem);line-height:1.12}
  .hero-introduction p{font-size:1.08rem;line-height:1.45;margin-top:16px}
  .hero-actions{left:5%;right:5%;bottom:28px;transform:none;gap:12px}
  .hero-actions .button{flex:1;min-width:0;min-height:52px;padding:14px 9px;font-size:1.05rem}
  .hero-new .hero-background{object-position:50% 65%}
  .blog-grid{grid-template-columns:1fr;gap:40px}
  .blog-photo img{height:300px}
  .blog-card h2,.blog-card h3{font-size:1.9rem;margin-top:22px}
  .blog-card-bottom{gap:14px;flex-wrap:wrap}
  .page-intro.pattern-intro,.shop-heading.pattern-intro,.story-intro.pattern-intro,.blog-intro{padding:35px 5% 30px}
  .menu-intro p{margin-top:18px;font-size:1.05rem}
  #main>section.visit-page{padding-top:20px}
  .pattern-intro h1,.blog-article h1{font-size:2.8rem}
  .blog-article{padding:25px 5% 45px}
  .blog-article-image{height:330px;margin-bottom:30px}
  .blog-article-body{font-size:1.05rem}
}
@media(max-width:360px) and (max-height:650px){
  .hero-new .hero-picture{min-height:460px}
  .hero-introduction{top:24px;transform:translateX(-50%)}
  .hero-introduction h1{font-size:1.8rem}
  .hero-introduction p{font-size:1rem;line-height:1.4;margin-top:14px}
}
@media(prefers-reduced-motion:reduce){.blog-photo:hover img{transform:none}body>header nav a::after{transition:none}.map-loading::before{animation:none}}

/* Sue’s shop collection and Harriet’s kitchen notes. */
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.78rem;color:var(--brand-red)}
.catalogue-detail .eyebrow{font-size:.78rem;margin:0 0 17px}
.shop-china{background:#fffdf7}
.shop-china>picture>img{height:330px;object-fit:contain;background:white}
.china-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.china-details img{height:185px;width:100%;object-fit:contain;background:white}
.shop-preview-note{margin-top:22px!important;font-size:.88rem!important;line-height:1.6}
.shop-price-list{width:100%;border-collapse:collapse;margin:15px 0}
.shop-price-list th,.shop-price-list td{padding:9px 0;border-bottom:1px solid var(--line);font-weight:400;text-align:left;font-size:.94rem}
.shop-price-list td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.basket-total{display:flex;justify-content:space-between;gap:20px;padding:22px 0 8px;font-size:1.25rem}
.social-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:25px}
.social-actions .button{margin:0}
.baking-story-link{display:block;width:fit-content;margin-top:18px}
.recipe-eyebrow{margin-top:36px}
.recipe-intro{max-width:1100px;margin:45px auto 65px;display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center}
.recipe-intro h2{font-size:clamp(2.2rem,4vw,3.5rem);margin-bottom:26px}
.recipe-intro p{font-size:1.12rem;line-height:1.8}
.recipe-intro .signature{margin-top:22px;font-family:'Veteran Typewriter','Courier New',monospace;font-size:1.7rem}
.recipe-intro .button{margin-top:25px}
.recipe-owner-photo{height:440px;width:100%;object-position:center 27%;border:10px solid #fffdf7;box-shadow:0 3px 12px #332d1520;transform:rotate(1.5deg)}
.recipe-article .blog-article-body{max-width:960px}
.baking-tips{padding:0 0 40px}
.baking-tips h2{font-size:2.5rem;margin-bottom:25px}
.baking-tips ul{padding-left:22px;columns:2;column-gap:45px}
.baking-tips li{break-inside:avoid;margin:0 0 18px;padding-left:5px}
.recipe-card{padding:38px;background:#fffdf7;border:1px solid #d9ccba;scroll-margin-top:25px;margin-bottom:40px}
.recipe-card-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}
.recipe-card-heading h2{font-size:2.8rem;margin-top:14px}
.recipe-card-heading .button{margin-top:0;white-space:nowrap;font-size:.95rem}
.recipe-card .recipe-meta{font-size:.9rem;color:var(--muted);margin:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}
.recipe-ingredients{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:30px 0}
.recipe-card h3{font-size:1.65rem;margin-bottom:16px}
.recipe-ingredients ul{padding-left:20px;margin:0}
.recipe-ingredients li{padding:4px 0;font-size:1rem}
.recipe-steps{list-style:none;counter-reset:recipe;padding:0;margin-top:20px}
.recipe-steps li{counter-increment:recipe;position:relative;padding:0 0 25px 48px}
.recipe-steps li::before{content:counter(recipe);position:absolute;left:0;top:0;font-family:Georgia,serif;font-size:1.65rem;color:var(--brand-red)}
.recipe-good-luck{font-family:'Veteran Typewriter','Courier New',monospace;font-size:1.25rem}
@media(max-width:780px){
 .shop-china>picture>img{height:260px}
 .china-details img{height:160px}
 .recipe-intro{grid-template-columns:1fr;gap:30px;margin:30px auto 45px}
 .recipe-owner-photo{height:360px;max-width:450px;margin:auto}
 .baking-tips ul{columns:1}
 .recipe-card{padding:24px 18px;margin-left:-5px;margin-right:-5px}
 .recipe-card-heading{display:block}
 .recipe-card-heading h2{font-size:2.2rem}
 .recipe-card-heading .button{margin-top:24px}
 .recipe-ingredients{grid-template-columns:1fr;gap:25px}
 .recipe-steps li{padding-left:35px}
 .recipe-intro h2 br,.recipe-card-heading h2 br{display:none}
}
@media(prefers-reduced-motion:reduce){.recipe-owner-photo{transform:none}}
@media print{
 body:has(.recipe-article){background:white}
 body:has(.recipe-article)::before,body:has(.recipe-article)>header,body:has(.recipe-article)>footer,body:has(.recipe-article)>dialog,body:has(.recipe-article)>.skip,body:has(.recipe-article)>#notice{display:none!important}
 .recipe-article{padding:0}.recipe-article .blog-article-heading,.recipe-intro,.baking-tips,.recipe-article .blog-article-body>p,.recipe-article .blog-article-body>.button,[data-print-recipe]{display:none!important}
 .recipe-card{border:0;padding:0;margin:0;background:white}.recipe-card-heading h2{font-size:26pt}.recipe-card h3{font-size:15pt}
 .recipe-card .recipe-meta,.recipe-ingredients li,.recipe-steps li{font-size:10pt;line-height:1.45}.recipe-ingredients{margin:20px 0}.recipe-steps li{padding-bottom:12px;break-inside:avoid}
}
