/* Responsive editorial rhythm. Research and acceptance criteria: MOBILE-DESIGN.md. */
.leaf-site {overflow-wrap:anywhere}
.leaf-site h1,.leaf-site h2,.leaf-site h3 {text-wrap:balance}
.leaf-site .btn {border-radius:6px;transition:background-color .16s,color .16s,border-color .16s}
.leaf-site .container-xl {padding-inline:clamp(24px,4vw,64px)}
.section-pad {padding-block:clamp(64px,7vw,104px)}
.section-heading {margin-bottom:36px}
.section-heading .kicker,.hero-copy>.kicker,.page-hero .kicker {color:var(--leaf-rust)}
.home-hero {gap:clamp(36px,5vw,72px);padding-block:40px 52px}
.hero-copy h1 {font-size:clamp(4.3rem,6.5vw,6.6rem)}
.hero-photo img {border-radius:150px 12px 12px 12px;height:570px}
.hero-photo figcaption {line-height:1.5;padding-top:14px}
.photo-story>img,.card-media,.gather-photo img {border-radius:10px}
.photo-story>img {height:440px}
.food-side .photo-story>img {height:350px}
.gather-section {padding-block:64px}
.gather-photo img {height:560px}
.card-media {height:250px}
.card-copy {padding-top:22px;min-width:0;overflow-wrap:anywhere}
.card-copy h3 {font-size:clamp(1.8rem,2.5vw,2.4rem);line-height:1.12}
.card-copy>p {font-size:.95rem}
.editorial-card .read-link {color:#006438}
.editorial-card:focus-visible {outline-offset:8px;border-radius:10px}
.page-hero h1 {font-size:clamp(3.2rem,5vw,5rem)}
.page-hero figure>img {border-radius:90px 10px 10px 10px;height:480px}
.journal-header {padding-block:40px 36px}
.journal-header h1 {font-size:clamp(3.5rem,7vw,6rem);margin-block:16px 24px}
.journal-header .lead-copy {font-size:1.05rem;max-width:600px}
.journal-filters {gap:10px;padding-bottom:18px}
.journal-mobile-filter {display:none}
.article-header {padding-block:36px}
.article-header h1 {font-size:clamp(2.7rem,4.8vw,4.8rem);max-width:940px}
.article-header .lead-copy {max-width:740px;font-size:1.08rem}
.article-layout {grid-template-columns:230px minmax(0,740px);gap:60px;padding-top:40px}
.article-figure img {height:auto;max-height:460px;aspect-ratio:3/2;border-radius:10px;object-position:center}
.toc-mobile {display:none}
.toc-desktop>a {display:block;min-height:44px;padding:12px 0;border-bottom:1px solid var(--leaf-line);text-decoration:none}
.prose {max-width:70ch}
.leaf-site p,.leaf-site .text-link,.leaf-site .read-link {overflow-wrap:anywhere}
.prose h2 {text-wrap:pretty}
.leaf-footer .footer-main>div>a:not(.footer-wordmark) {min-height:44px;font-size:.875rem}
.footer-bottom a {min-height:44px}
.leaf-footer .kicker {font-size:.75rem}
.leaf-footer p {font-size:.9rem}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .editorial-card img,.photo-story>img {transition:filter .2s}
 .editorial-card:hover img,.photo-story:hover>img {filter:brightness(1.04)}
}
@media(min-width:768px) and (max-width:1100px){
 .home-hero {gap:32px}
 .hero-copy h1 {font-size:4rem}
 .hero-photo img {height:500px;border-top-left-radius:100px}
 .article-layout {grid-template-columns:180px minmax(0,1fr);gap:32px}
 .page-hero {gap:32px}
 .page-hero h1 {font-size:3.2rem}
}
@media(max-width:767px){
 .leaf-site .container-xl {padding-inline:24px}
 .leaf-nav {min-height:76px;gap:12px;flex-wrap:wrap;padding-block:10px}
 .leaf-brand>span {font-size:1.65rem}
 .leaf-brand img {width:40px;height:44px}
 .leaf-site .mobile-menu summary {min-height:48px;padding:12px 14px;font-size:.875rem}
 .mobile-nav {top:100%;left:16px;right:16px;width:auto;max-width:none;border-radius:10px;box-shadow:0 14px 32px #30333124}
 .home-hero {padding-block:24px 36px;gap:24px}
 .hero-copy>.kicker {font-size:.6875rem;letter-spacing:.12em}
 .hero-copy h1 {font-size:clamp(2.9rem,12.5vw,4.5rem);line-height:.99;margin-block:14px 18px;letter-spacing:-.035em;text-wrap:initial}
 .hero-copy h1 br {display:block!important}
 .hero-copy>p {font-size:1rem;line-height:1.55;margin-bottom:20px;max-width:38ch}
 .hero-copy .btn-list {display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .hero-copy .btn {font-size:.875rem;min-height:52px;padding:10px 12px;justify-content:center;line-height:1.3}
 .hero-copy .btn .icon {display:none}
 .hero-location {font-size:.75rem;line-height:1.5;margin-top:16px}
 .hero-photo img {height:260px;border-radius:88px 8px 8px 8px;object-position:center 55%}
 .hero-photo figcaption {font-size:.75rem;padding-top:10px}
 .welcome-strip>.container-xl {padding-block:32px;gap:24px}
 .welcome-brand {gap:24px}
 .welcome-brand>img {width:88px;height:96px}
 .welcome-brand>p {font-size:2rem;line-height:1.08}
 .welcome-strip div>div {font-size:1rem;line-height:1.65}
 .section-pad {padding-block:56px}
 .section-heading {margin-bottom:24px}
 .section-heading h2,.gather-copy h2 {font-size:2.65rem;line-height:1.05}
 .section-heading p,.gather-copy>p {font-size:1rem;line-height:1.65}
 .section-heading>.text-link {margin-top:12px}
 .photo-story>img {height:340px}
 .food-side .photo-story>img {height:280px}
 .photo-story>div {padding-top:18px}
 .photo-story h3 {font-size:2rem;line-height:1.1}
 .food-editorial {row-gap:36px!important}
 .gather-section {padding-block:32px}
 .gather-photo img {height:300px;object-position:center 53%}
 .gather-copy {padding:28px 0 0}
 .occasion-list strong {font-size:1rem}
 .occasion-list small {font-size:.8125rem;line-height:1.5}
 .occasion-list a {padding-block:20px}
 .card-media {height:220px}
 .card-copy h3 {font-size:2rem;line-height:1.1;margin-block:8px 12px}
 .card-copy>p {font-size:.9375rem;line-height:1.65}
 .journal-grid {row-gap:0!important}
 .journal-item {margin-bottom:0}
 .journal-grid .journal-item {padding-block:24px;border-bottom:1px solid var(--leaf-line)}
 .journal-grid .editorial-card {display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;align-items:start}
 .journal-grid .card-media {height:125px}
 .journal-grid .card-copy {padding-top:0}
 .journal-grid .card-copy h3 {font-size:1.6rem;line-height:1.1}
 .journal-grid .card-copy>p {font-size:.875rem;margin-bottom:8px}
 .journal-grid .card-copy .kicker {font-size:.6875rem}
 .journal-grid .read-link {min-height:44px;font-size:.8125rem}
 .leaf-latest .journal-item+.journal-item {margin-top:28px}
 .visit-section {padding-bottom:40px}
 .visit-photo img {height:240px;border-radius:10px 10px 0 0}
 .visit-copy {padding:28px 24px!important}
 .visit-copy h2 {font-size:2.25rem}
 .opening-times {font-size:.875rem}
 .opening-times>div {flex-wrap:wrap;gap:4px 16px}
 .neighbour-links {font-size:.875rem;gap:6px 20px}
 .neighbour-links a {min-height:44px}
 .page-hero {padding-block:24px 40px;gap:28px}
 .breadcrumb-line {font-size:.8125rem;margin-bottom:20px;gap:8px 16px;line-height:1.5}
 .breadcrumb-line a {padding-block:6px}
 .page-hero h1 {font-size:clamp(2.5rem,10vw,3.6rem);line-height:1.04;margin-block:12px 20px}
 .page-hero figure>img {height:280px;border-radius:64px 8px 8px 8px}
 .page-hero .lead-copy {font-size:1rem;line-height:1.65;margin-bottom:22px}
 .prose h2 {font-size:2rem;line-height:1.15;margin-block:32px 16px}
 .prose {font-size:1rem;line-height:1.75}
 .reading-layout {gap:32px;padding-bottom:48px}
 .journal-header {padding-block:24px 20px}
 .journal-header h1 {font-size:clamp(3rem,12vw,4.2rem);line-height:1;margin-block:12px 20px}
 .journal-header .lead-copy {font-size:1rem;line-height:1.65;margin-bottom:0}
 .journal-filters {gap:8px;padding-bottom:16px}
 .journal-filters {display:none}
 .journal-mobile-filter {display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--leaf-line)}
 .journal-mobile-filter label {font-size:.9375rem;font-weight:500;flex:none}
 .journal-mobile-filter .form-select {min-height:48px;min-width:0;font:inherit;color:var(--leaf-ink);background-color:#fff;border-color:#8c9587;border-radius:6px;padding:10px 36px 10px 14px}
 .leaf-site .filter-button {font-size:.875rem!important;min-height:48px!important;padding:10px 14px!important}
 .filter-status {font-size:.8125rem;padding-top:12px;margin-bottom:0!important}
 .article-header {padding-block:24px;border-bottom:1px solid var(--leaf-line)}
 .article-header h1 {font-size:clamp(2.3rem,9vw,3.2rem);line-height:1.08;margin-block:12px 20px}
 .article-header .lead-copy {font-size:1rem;line-height:1.65;margin-bottom:18px}
 .article-meta {font-size:.75rem;line-height:1.5;margin-top:16px;gap:6px 16px}
 .article-layout {display:flex;flex-direction:column;gap:24px;padding-block:24px 44px}
 .article-toc {width:100%}
 .toc-desktop {display:none}
 .toc-mobile {display:block;border:1px solid #cfc9bf;border-radius:8px;background:#fff}
 .toc-mobile summary {cursor:pointer;padding:14px 18px;min-height:48px;font-weight:500;font-size:.9375rem}
 .toc-mobile nav {padding:0 18px 14px}
 .toc-mobile nav>a {display:block;min-height:44px;padding:12px 0;border-top:1px solid var(--leaf-line);font-size:.875rem;line-height:1.5}
 .article-figure {margin-bottom:28px!important}
 .article-figure img {height:auto;aspect-ratio:3/2;max-height:none}
 .article-figure figcaption {font-size:.8125rem;line-height:1.55}
 .article-note {padding:20px;margin-block:28px}
 .related-section h2 {font-size:2.25rem}
 .contact-band h2 {font-size:2.4rem;line-height:1.08}
 .contact-band .btn {font-size:.9375rem;min-height:48px}
 .footer-main>.col-6 {width:100%}
 .footer-main>div+div {border-top:1px solid #72605b;padding-top:24px}
 .leaf-footer .footer-main>div>a:not(.footer-wordmark) {font-size:.9375rem;min-height:48px}
 .leaf-footer .kicker {font-size:.75rem;margin-bottom:10px}
 .leaf-footer p {font-size:.9375rem;line-height:1.6}
 .footer-bottom {font-size:.8125rem;margin-top:24px}
 .footer-bottom>div {gap:8px 20px}
 .footer-bottom a {min-height:48px}
}
@media(max-width:359px){
 .leaf-site .container-xl {padding-inline:20px}
 .hero-copy h1 {font-size:2.9rem}
 .hero-copy>p {font-size:.9375rem}
 .hero-photo img {height:215px;border-top-left-radius:64px}
 .hero-location {font-size:.6875rem}
 .hero-copy .btn {padding-inline:9px}
 .journal-grid .editorial-card {grid-template-columns:84px minmax(0,1fr);gap:14px}
 .journal-grid .card-media {height:110px}
 .journal-grid .card-copy h3 {font-size:1.45rem}
}
@media(prefers-reduced-motion:reduce){.leaf-site *{transition:none!important}}

/* Toast & Tee: a real product photo and a quiet daily cue. */
.leaf-site .page-hero--toast-tee-reinickendorf figure {align-self:center;max-width:520px;}
.leaf-site .page-hero--toast-tee-reinickendorf figure>img {height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 52%;border-radius:96px 12px 32px 12px;}
.leaf-site .day-greeting {min-height:3.25em;margin:-4px 0 22px;padding:12px 16px;border-inline-start:3px solid var(--leaf-rust);background:#f4eee5;color:var(--leaf-green);font-size:.9rem;line-height:1.55;}
.leaf-site .toast-tea-scene {position:relative;margin-block:-8px 56px;}
.leaf-site .toast-tea-scene>figure:first-child {margin:0;overflow:hidden;border-radius:18px;}
.leaf-site .toast-tea-scene>figure:first-child img {width:100%;height:clamp(260px,32vw,430px);object-fit:cover;object-position:50% 46%;}
.leaf-site .toast-tea-cup {position:absolute;inset-inline-end:clamp(42px,7vw,110px);bottom:-28px;width:165px;margin:0;padding:10px;background:#fff;border-radius:14px;box-shadow:0 18px 40px rgba(20,58,43,.18);}
.leaf-site .toast-tea-cup img {display:block;width:145px;height:auto;border-radius:8px;}
.leaf-site .page-composition--toast-tee-reinickendorf>h2:first-child {margin-top:0;}
.leaf-site .toast-tea-selection {display:grid;grid-template-columns:1.2fr .8fr;gap:1px;margin-block:42px;background:#d8d0c4;border:1px solid #d8d0c4;border-radius:22px;overflow:hidden;}
.leaf-site .toast-tea-selection>section {padding:clamp(24px,4vw,38px);background:#f7f2ea;}
.leaf-site .toast-tea-selection .tea-selection {background:#edf2e8;}
.leaf-site .toast-tea-selection h2 {margin-top:0;}
@media(max-width:767px){
 .leaf-site .page-hero--toast-tee-reinickendorf figure {max-width:none;}
 .leaf-site .page-hero--toast-tee-reinickendorf figure>img {height:auto;aspect-ratio:4/3;border-radius:64px 8px 20px 8px;}
 .leaf-site .day-greeting {min-height:4.5em;margin-bottom:18px;}
 .leaf-site .toast-tea-scene {margin-block:0 48px;padding-inline:24px;}
 .leaf-site .toast-tea-scene>figure:first-child img {height:240px;}
 .leaf-site .toast-tea-cup {inset-inline-end:36px;bottom:-22px;width:132px;padding:8px;}
 .leaf-site .toast-tea-cup img {width:116px;}
 .leaf-site .toast-tea-selection {grid-template-columns:1fr;margin-block:32px;}
}

/* Context photos: one quiet visual anchor in longer venue pages. */
.leaf-site .article-figure--context {
  float: right;
  width: min(43%, 320px);
  margin: 8px 0 28px 38px !important;
  padding: 0;
  shape-outside: margin-box;
}
.leaf-site .article-figure--context img {
  display: block;
  width: 100%;
  height: 220px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 22px 6px 22px 6px;
  box-shadow: 0 16px 34px rgba(13, 44, 33, .14);
}
.leaf-site .article-figure--context figcaption {
  display: grid;
  gap: 3px;
  padding-top: 10px;
  color: var(--leaf-muted);
  font-size: .72rem;
  line-height: 1.45;
}
.leaf-site .article-figure--context figcaption span {
  color: var(--leaf-rust);
  font-size: .66rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.leaf-site .article-figure--context + * { clear: none; }
@media (max-width: 767px) {
  .leaf-site .article-figure--context {
    float: none;
    width: 100%;
    margin: 6px 0 28px !important;
  }
  .leaf-site .article-figure--context img {
    height: auto;
    max-height: 300px;
    aspect-ratio: 4 / 3;
    border-radius: 18px 6px 18px 6px;
  }
  .leaf-site .article-figure--context figcaption { font-size: .75rem; }
}
@media (max-width: 359px) {
  .leaf-site .article-figure--context img { max-height: 240px; }
}

/* Mobile-first safety rails: images may shrink, reading columns may not overflow. */
.leaf-site img,
.leaf-site video,
.leaf-site svg { max-width: 100%; }
.leaf-site .prose,
.leaf-site .article-body,
.leaf-site .reading-layout,
.leaf-site .article-layout { min-width: 0; }
@media (max-width: 767px) {
  .leaf-site .page-hero,
  .leaf-site .home-hero,
  .leaf-site .article-header,
  .leaf-site .journal-header { overflow: clip; }
  .leaf-site .page-hero .btn,
  .leaf-site .article-header .btn { max-width: 100%; white-space: normal; }
}
