/* Foundation: shared widths and spacing for every template. */
@font-face { font-family:Roboto; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/roboto-400-normal.woff2') format('woff2'); }
@font-face { font-family:Roboto; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/roboto-500-normal.woff2') format('woff2'); }
@font-face { font-family:Roboto; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/roboto-700-normal.woff2') format('woff2'); }
@font-face { font-family:Roboto; font-style:italic; font-weight:400; font-display:swap; src:url('/assets/fonts/roboto-400-italic.woff2') format('woff2'); }
:root {
  --color-text:#262626;
  --color-muted:#6d6d6d;
  --color-green:#2c6c3c;
  --color-background:#f6f6f6;
  --color-surface:#fff;
  --color-border:#dce6de;
  --container-width:1200px;
  --gutter:32px;
  --section-space:48px;
  --grid-gap:28px;
  --card-padding:24px;
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%;scroll-padding-top:100px; }
body { margin:0;color:var(--color-text);background:var(--color-background);font:400 16px/1.65 Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased; }
h1,h2,h3,p,ul,ol,figure,blockquote { margin:0; }
h1,h2,h3 { line-height:1.25;font-weight:700;overflow-wrap:break-word; }
h1 { font-size:32px;letter-spacing:-.5px; }
h2 { font-size:30px; }
h3 { font-size:20px;line-height:1.35; }
p,li,a { overflow-wrap:break-word; }
a { color:inherit;text-underline-offset:3px; }
a:hover { color:var(--color-green); }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:2px solid var(--color-green);outline-offset:4px; }
img { max-width:100%;height:auto;vertical-align:middle; }
svg { vertical-align:middle; }
iframe { display:block;width:100%;max-width:100%;border:0; }
button,input { font:inherit; }
button { cursor:pointer; }
button,input,summary { min-height:44px; }
[hidden] { display:none; }
.container { width:min(var(--container-width),calc(100% - var(--gutter) * 2));margin-inline:auto; }
.page { padding-block:56px 80px; }
.page-heading { margin-bottom:28px; }
.content-flow > * + * { margin-top:20px; }
.content-flow > h2:not(:first-child) { margin-top:36px; }
.content-flow > h3:not(:first-child) { margin-top:28px; }
.content-flow :where(ul,ol):not(.article-grid) { padding-left:24px; }
.content-flow :where(ul,ol):not(.article-grid) > li + li { margin-top:6px; }
.content-flow .lead { font-size:20px;line-height:1.65; }
.text-small { font-size:14px; }
.text-muted { color:var(--color-muted); }
.breadcrumbs ol,.content-flow .breadcrumbs ol { display:flex;flex-wrap:wrap;gap:4px 10px;list-style:none;padding:0; }
.breadcrumbs li { display:inline;min-width:0; }
.breadcrumbs li + li::before { content:'›';margin-right:10px;color:var(--color-muted); }
.content-flow .breadcrumbs li + li { margin-top:0; }
.content-sources { margin-top:36px;padding-top:24px;border-top:1px solid var(--color-border); }
.content-sources h2 { font-size:20px; }
.content-sources ul { font-size:14px; }
.content-panel { background:var(--color-surface);border-radius:32px;padding:56px; }
.tags { display:flex;flex-wrap:wrap;align-items:center;gap:10px; }
.tag { padding:4px 10px;border-radius:8px;font-size:14px;background:#e7e7e7; }
.tag-price { color:#2a6b2d;background:#e2f6e3; }
.screen-reader-text { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.skip-to-content { position:absolute;top:-100px;left:16px;z-index:200;padding:12px 20px;background:var(--color-green);color:#fff; }
.skip-to-content:focus { top:12px;color:#fff; }

/* Header and navigation. The same breakpoint controls CSS and site.js. */
.ez-header { position:relative;z-index:100;background:#fff;border-bottom:1px solid #edf0ed; }
.ez-header-inner { width:min(var(--container-width),calc(100% - var(--gutter) * 2));min-height:104px;margin-inline:auto;display:flex;align-items:center;gap:32px; }
.ez-brand { display:flex;align-items:center;gap:16px;flex:0 0 auto;color:#242724;text-decoration:none; }
.ez-brand img { width:50px;height:50px;flex:none; }
.ez-brand-text { display:flex;flex-direction:column;gap:3px;min-width:0; }
.ez-brand-text strong { font-size:24px;line-height:1.25;letter-spacing:-.3px; }
.ez-brand-text small { color:#737973;font-size:16px;line-height:1.4; }
.ez-main-menu { display:flex;flex:1;align-items:center;justify-content:center;gap:32px; }
.ez-main-menu a { display:flex;align-items:center;gap:12px;color:#202720;text-decoration:none;font-size:18px;font-weight:700;line-height:1.4; }
.ez-main-menu a:hover,.ez-main-menu a[aria-current="page"] { color:var(--color-green); }
.ez-main-menu a svg,.ez-menu-toggle,.ez-menu-cross { display:none; }
.ez-language-switcher { position:relative;flex:none; }
.ez-language-switcher > summary { display:flex;align-items:center;justify-content:center;gap:6px;min-width:56px;min-height:44px;padding:8px;border:1px solid var(--color-border);border-radius:9px;background:#fff;color:#285e35;font-size:13px;font-weight:700;line-height:1.4;list-style:none;cursor:pointer; }
.ez-language-switcher > summary::-webkit-details-marker { display:none; }
.ez-language-switcher[open] > summary { background:#eff5f0;border-color:#b7cdbd; }
.ez-language-switcher[open] > summary svg { transform:rotate(180deg); }
.ez-language-switcher__options { position:absolute;top:calc(100% + 8px);right:0;min-width:176px;padding:6px;border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:0 8px 24px rgb(20 35 24 / 12%); }
.ez-language-switcher__option { display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding:10px 12px;border-radius:7px;font-size:14px;line-height:1.4;text-decoration:none;white-space:nowrap; }
.ez-language-switcher__option > span { color:var(--color-muted);font-size:12px; }
.ez-language-switcher__option[aria-current] { background:#eff5f0;color:var(--color-green);font-weight:700; }
.ez-language-switcher__option[href]:hover { background:#f4f6f4; }
.ez-menu-backdrop { position:fixed;inset:0;z-index:90;width:100%;height:100%;border:0;padding:0;background:rgb(20 35 24 / 20%);cursor:default; }
body.ez-menu-open { overflow:hidden; }

/* Shared cards, buttons and grids. */
.card-grid,.article-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap); }
.article-grid { list-style:none;padding:0; }
.card { min-width:0;display:flex;flex-direction:column;align-items:stretch;background:var(--color-surface);border-radius:16px;padding:var(--card-padding); }
.card h2,.card h3 { font-size:20px;line-height:1.35; }
.card h2 a,.card h3 a { text-decoration:none; }
.card h2 a:hover,.card h3 a:hover { text-decoration:underline; }
.card > .button:last-child { margin-top:auto;align-self:flex-start; }
.card.content-flow > .button:last-child { margin-top:auto; }
.card > p:has(+ .button) { margin-bottom:24px; }
/* City navigation shares the homepage card surface, spacing and grid. */
.city-section { margin-block:32px; }
.city-section h2 { font-size:24px;scroll-margin-top:20px; }
.city-grid,.content-flow .city-grid { list-style:none;padding:0; }
.city-grid > li { min-width:0; }
.content-flow .city-grid > li + li { margin-top:0; }
.city-tile { gap:12px;height:100%;min-height:180px;text-decoration:none; }
.city-tile:hover .city-tile__name { text-decoration:underline;text-underline-offset:3px; }
.city-tile__subtitle { color:var(--color-muted);font-size:14px;line-height:1.5; }
.city-tile__label { color:var(--color-muted);font-size:16px;line-height:1.65; }
.city-tile__destination { display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;color:var(--color-green);font-size:14px;font-weight:500;line-height:1.4; }
.city-tile__destination > span { flex:none;font-size:18px; }
.zone-summary .lead { max-width:80ch; }
.zone-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 0; }
.zone-facts > div { min-width:0;padding:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px; }
.zone-facts dt { color:var(--color-muted);font-size:13px; }
.zone-facts dd { margin:6px 0 0;font-size:16px;font-weight:500;line-height:1.5;overflow-wrap:break-word; }
.zone-map,.zone-details,.zone-related { margin-top:var(--section-space); }
.zone-prose { max-width:80ch; }
.zone-prose h3 { font-size:22px; }
.sticker-cta { flex-direction:row;align-items:center;flex-wrap:wrap;gap:24px; }
.zone-page > .sticker-cta { margin-top:28px; }
.sticker-cta__image { flex:none;width:88px;height:88px;object-fit:contain; }
.sticker-cta__content { flex:1 1 280px;min-width:0; }
.sticker-cta__content h2 { font-size:22px; }
.sticker-cta__content p { margin-top:8px; }
.sticker-cta > .button:last-child { margin-top:0;align-self:center; }
.button { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 18px;background:#262626;color:#fff;border:1px solid transparent;border-radius:8px;text-decoration:none;font-weight:700;font-size:15px;line-height:1.4; }
.button:hover { background:#404040;color:#fff; }
.button-outline { background:transparent;border-color:#262626;color:#262626; }
.button-outline:hover { background:#f0f0f0;color:#262626; }
.button-light { background:#fff;color:#262626; }
.button-light:hover { background:#e8fae6;color:#262626; }
.article-date { color:var(--color-muted);font-size:13px; }
.article-card p { font-size:16px; }
.article-categories { align-self:flex-start;padding:4px 10px;border-radius:8px;font-size:13px;background:#e8fae6; }
.article-card > .article-categories { margin-top:auto; }
.article-card > p:last-of-type { margin-bottom:20px; }
.article-meta { display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px; }
.ez-pagination { display:flex;justify-content:center;gap:8px;margin-top:32px; }
.ez-pagination a { display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 14px;border-radius:8px;background:#fff;text-decoration:none; }
.ez-pagination [aria-current] { color:#fff;background:var(--color-green); }

/* Homepage: original full-width photograph, six topics and news. */
.homepage { padding-block:54px 64px; }
.hero { position:relative;isolation:isolate;overflow:hidden;border-radius:32px;color:#fff;padding:54px; }
.hero-media { position:absolute;inset:0;z-index:-1;display:block;filter:grayscale(1) brightness(.5); }
.hero-media img { width:100%;height:100%;object-fit:cover;object-position:50% 85%; }
.hero-content { max-width:660px; }
.hero h1 { font-size:40px;line-height:1.18;letter-spacing:0; }
.hero .lead { font-size:20px;line-height:1.6; }
.hero-content > * + * { margin-top:28px; }
.home-section { margin-top:var(--section-space); }
.topic-card p { line-height:1.65; }
.section-heading { display:flex;align-items:center;justify-content:space-between;gap:20px; }
.section-heading > a { font-size:14px;font-weight:700;flex:none; }
.about-layout { display:grid;grid-template-columns:3fr 2fr;gap:32px;align-items:start; }
.content-image img { display:block;border-radius:16px; }
.content-image figcaption { font-size:13px;color:var(--color-muted);line-height:1.5;margin-top:10px; }
.sticker-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);max-width:800px; }
.sticker-card { gap:24px; }
.sticker-image { text-align:center; }
.sticker-image img { width:150px;height:150px;object-fit:contain; }
.sticker-card > .content-flow { display:flex;flex:1;flex-direction:column;align-items:stretch; }
.sticker-card .button { margin-top:auto; }
.sticker-card .content-flow > p:last-of-type { margin-bottom:24px; }

/* Article and long-form content. The sidebar moves below at tablet widths. */
.article-layout { display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start; }
.article-main,.article-sidebar { min-width:0; }
.article-heading { margin-bottom:32px; }
.article-heading h1 { font-size:32px;line-height:1.25; }
.article-body { font-size:20px;line-height:1.75; }
.article-body h2 { font-size:30px; }
.article-body h3 { font-size:24px; }
.article-sidebar h2 { font-size:24px; }
.article-sidebar > h2:not(:first-child) { margin-top:32px; }
.search-fields { display:flex;gap:10px;min-width:0; }
.search-fields input { flex:1 1 0;min-width:0;width:0;padding:10px;border:1px solid #aeb6af;border-radius:6px;background:white; }
.search-fields .button { flex:none;font-weight:400; }
.archive-links { padding-left:24px; }
.related { margin-top:40px;padding-top:32px;border-top:1px solid #ddd; }
.related > h2 { font-size:24px; }
.related .card-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:20px; }
.related .card > a { margin-top:auto;padding-top:16px;font-weight:700; }
.related .card p { margin-bottom:16px; }
.table-scroll { width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin; }
.table-scroll table { width:100%;border-collapse:collapse;table-layout:fixed; }
.table-scroll td,.table-scroll th { border:1px solid #ddd;padding:14px;text-align:left;vertical-align:top;overflow-wrap:anywhere; }
.table-scroll th { font-weight:700; }
blockquote { border-left:3px solid #b4cbb9;padding-left:20px; }
.faq-item { padding:20px 24px;background:#fff;border-radius:12px; }
.faq-item summary { cursor:pointer;font-size:20px;font-weight:500;line-height:1.4; }
.faq-item p { margin-top:16px; }
.ez-sitemap { columns:2;column-gap:40px;padding-left:24px; }

/* Footer retains the original three columns and green background. */
.site-footer { color:#fff;background:var(--color-green); }
.footer-columns { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;padding-block:48px; }
.footer-columns > * { min-width:0; }
.footer-columns h2 { font-size:20px;font-weight:500;line-height:1.4;margin-bottom:24px; }
.footer-columns > section:last-child h2 { font-weight:700; }
.site-footer a { color:#c4f2c8;text-decoration:none; }
.site-footer h2 a { color:#fff; }
.site-footer a:hover { color:#fff;text-decoration:underline; }
.site-footer a:focus-visible { outline-color:#c4f2c8; }
.footer-columns nav > a { display:block;margin-top:16px; }
.latest-posts { list-style:none;padding:0; }
.latest-posts li + li { margin-top:20px; }
.latest-posts time { display:block;font-size:13px;color:#c4f2c8;margin-top:4px; }
.footer-bottom { border-top:1px solid #2d853f;padding-block:24px;text-align:center;font-size:14px; }

/* Tablet: one gutter, compact navigation and two equal card columns. */
@media (max-width:1023px) {
  :root { --gutter:24px;--section-space:36px;--grid-gap:20px; }
  .ez-header { position:sticky;top:0; }
  .ez-header-inner { min-height:80px;gap:16px;justify-content:space-between; }
  .ez-language-switcher { margin-left:auto; }
  .ez-brand img { width:44px;height:44px; }
  .ez-brand-text strong { font-size:22px; }
  .ez-brand-text small { font-size:13px; }
  .ez-menu-toggle { display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--color-border);border-radius:9px;background:#fff;color:#285e35; }
  .ez-menu-icon { flex:none;width:22px;height:22px; }
  .ez-nav-open .ez-menu-toggle { background:#eff5f0;border-color:#b7cdbd; }
  .ez-nav-open .ez-menu-bars { display:none; }
  .ez-nav-open .ez-menu-cross { display:block; }
  .ez-main-menu { display:none;position:absolute;top:100%;left:0;right:0;width:100%;max-height:calc(100svh - 80px);padding:8px var(--gutter) 16px;border-bottom:1px solid var(--color-border);border-radius:0 0 16px 16px;background:#fff;box-shadow:0 12px 20px rgb(20 35 24 / 8%);overflow-y:auto; }
  .ez-nav-open .ez-main-menu { display:flex;flex-direction:column;align-items:stretch;gap:0; }
  .ez-main-menu a { justify-content:space-between;min-height:52px;padding:14px 4px;border-bottom:1px solid #edf1ed;font-size:17px;line-height:24px; }
  .ez-main-menu a:last-child { border-bottom:0; }
  .ez-main-menu a svg { display:block;flex:none;width:18px;height:18px;color:#6b806f; }
  .page,.homepage { padding-block:36px 48px; }
  .card-grid,.article-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero { padding:36px;border-radius:24px; }
  .hero h1 { font-size:36px; }
  .content-panel { padding:32px;border-radius:24px; }
  .article-layout { grid-template-columns:minmax(0,1fr);gap:36px; }
  .article-sidebar { background:#fff;padding:24px;border-radius:16px; }
  .article-sidebar form { max-width:440px; }
  .about-layout { grid-template-columns:minmax(0,1fr); }
  .about-layout figure { max-width:620px; }
  .footer-columns { grid-template-columns:repeat(2,minmax(0,1fr));gap:28px; }
  .footer-columns > section:last-child { grid-column:1 / -1; }
  .footer-columns h2 { font-size:19px; }
}
/* Phone: keep 16 px on both sides, including cards and article tables. */
@media (max-width:599px) {
  :root { --gutter:16px;--section-space:28px;--grid-gap:16px;--card-padding:20px; }
  body { font-size:16px; }
  h1 { font-size:28px; }
  h2 { font-size:24px; }
  h3 { font-size:19px; }
  .ez-header-inner { min-height:76px;gap:8px; }
  .ez-brand { gap:10px;min-width:0;flex:0 1 auto; }
  .ez-brand img { width:40px;height:40px; }
  .ez-brand-text strong { white-space:nowrap;font-size:clamp(16px,4.8vw,20px); }
  .ez-brand-text small { font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
  .ez-main-menu { max-height:calc(100svh - 76px); }
  .page,.homepage { padding-block:24px 40px; }
  .page-heading { margin-bottom:24px; }
  .hero { padding:28px 24px;border-radius:20px; }
  .hero h1 { font-size:clamp(27px,7.4vw,32px);line-height:1.18; }
  .hero .lead,.content-flow .lead { font-size:16px;line-height:1.65; }
  .hero-content > * + * { margin-top:20px; }
  .hero .button { width:100%; }
  .card-grid,.article-grid,.sticker-grid,.related .card-grid { grid-template-columns:minmax(0,1fr); }
  .card h2,.card h3 { font-size:19px; }
  .city-section { margin-block:24px; }
  .city-section h2 { font-size:22px; }
  .city-tile { min-height:160px; }
  .sticker-cta { gap:16px; }
  .sticker-cta__image { width:64px;height:64px; }
  .sticker-cta__content { flex-basis:calc(100% - 80px); }
  .sticker-cta__content h2 { font-size:19px; }
  .sticker-cta > .button:last-child { width:100%; }
  .zone-facts { grid-template-columns:minmax(0,1fr);gap:12px; }
  .zone-facts > div { padding:16px; }
  .zone-prose h3 { font-size:20px; }
  .zone-related .section-heading { align-items:flex-start;flex-direction:column;gap:12px; }
  .content-panel { padding:24px 20px;border-radius:20px; }
  .content-flow > h2:not(:first-child) { margin-top:28px; }
  .content-flow > h3:not(:first-child) { margin-top:24px; }
  .article-heading h1 { font-size:28px; }
  .article-body { font-size:17px;line-height:1.75; }
  .article-body h2 { font-size:24px; }
  .article-body h3 { font-size:20px; }
  .article-sidebar { padding:20px; }
  .table-scroll table:has(tr > :nth-child(3)) { min-width:500px; }
  .table-scroll td,.table-scroll th { padding:12px;font-size:15px;line-height:1.5; }
  .faq-item { padding:20px; }
  .faq-item summary { font-size:18px; }
  .ez-sitemap { columns:1; }
  .footer-columns { grid-template-columns:minmax(0,1fr);gap:32px;padding-block:32px; }
  .footer-columns > section:last-child { grid-column:auto; }
  .footer-columns h2 { margin-bottom:16px;font-size:20px; }
  .footer-bottom { padding-block:20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
