@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/plus-jakarta-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/plus-jakarta-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/dm-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/dm-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Shared visual system: contemporary typography and generous reading sizes. */
@font-face { font-family: 'Material Icons'; src: url('../fonts/MaterialIcons-Regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: block; }
:root {
  --display: 'Plus Jakarta Sans', Arial, sans-serif;
  --sans: 'DM Sans', Arial, sans-serif;
  --forest: #214d3f; --deep: #102f27; --ink: #203b32; --muted: #4f645b;
  --paper: #f6f7f2; --white: #fff; --sage: #e9efe5; --lime: #c9e4b4;
  --copper: #64834b; --line: #d9e2d6; --gutter: clamp(24px,5vw,88px);
  --anchor-gap: clamp(24px,min(7vw,12svh),112px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; scroll-padding-top: calc(var(--header-height,100px) + var(--index-height,0px)); }
/* Leave breathing room above section links, including native navigation without JavaScript. */
main [id] { scroll-margin-top: var(--anchor-gap); }
/* Only reserve additional end space when an anchor would otherwise hit the page bottom. */
.site-footer::after { content: ''; display: block; height: var(--anchor-end-space,0px); }
body { margin: 0; font: 400 1.125rem/1.75 var(--sans); color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body.lightbox-open { overflow: hidden; }
[hidden] { display: none !important; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
button, a, input, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #729451; outline-offset: 5px; }
::selection { background: var(--lime); color: var(--deep); }
h1, h2, h3, h4, p, figure { margin: 0; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 650; line-height: 1.16; letter-spacing: -.045em; overflow-wrap: anywhere; text-wrap: balance; }
h1 { font-size: clamp(2.75rem,5.4vw,5.2rem); }
h2 { font-size: clamp(2.1rem,3.45vw,3.6rem); }
h3 { font-size: clamp(1.45rem,2vw,2rem); letter-spacing: -.03em; }
h1 em, h2 em, h3 em { font-style: normal; font-weight: inherit; color: var(--forest); }
ul { list-style: none; margin: 0; padding: 0; }
.wrap { width: min(100% - var(--gutter)*2,1400px); margin-inline: auto; }
.wrap > *, .header-inner > *, .intro-grid > *, .community-grid > *, .catalog-intro > *, .detail-grid > *, .directions-grid > *, .footer-grid > *, .product-card-label > * { min-width: 0; }
.section { padding-block: clamp(76px,7vw,112px); }
.eyebrow { display: block; color: var(--forest); font: 650 .875rem/1.5 var(--sans); letter-spacing: .095em; text-transform: uppercase; margin-bottom: 22px; }
.eyebrow::before { content: ''; display: inline-block; width: 24px; height: 3px; margin: 0 12px 4px 0; background: currentColor; opacity: .65; border-radius: 2px; }
.copy { color: var(--muted); overflow-wrap: anywhere; }
.copy p + p { margin-top: 1.2em; }
.copy a { text-decoration: underline; text-underline-offset: 4px; }
.copy i { color: var(--ink); }
.lede { font-size: 1.25rem; }
.arrow { font: 400 1.35rem/1 var(--sans); display: inline-block; flex-shrink: 0; transition: transform .2s; }
a:hover .arrow { transform: translate(2px,-2px); }
.button, .text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 54px; font-size: 1rem; font-weight: 650; line-height: 1.5; }
.button { padding: 15px 24px; color: white; background: var(--forest); border: 1px solid var(--forest); border-radius: 12px; transition: background .2s, border-color .2s, box-shadow .2s; }
.button:hover { background: #143d30; border-color: #143d30; box-shadow: 0 5px 18px #17352918; }
.button-light { color: var(--deep); background: var(--lime); border-color: var(--lime); }
.button-light:hover { background: #d9edc9; color: var(--deep); border-color: #d9edc9; }
.button-outline { background: transparent; color: var(--forest); border-color: #a8bba3; }
.button-outline:hover { color: white; }
.text-link { padding: 12px 0; border-bottom: 2px solid currentColor; }
.text-link:hover { color: #55753f; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 30px; }
.skip-link { position: fixed; z-index: 200; top: 10px; left: 20px; max-width: calc(100% - 40px); padding: 12px 20px; background: white; transform: translateY(calc(-100% - 20px)); }
.skip-link:focus { transform: none; }

/* Header and navigation. */
.topbar { color: #e3ecdf; background: var(--deep); font-size: .875rem; }
.topbar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 38px; }
.topbar a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-header { position: sticky; top: 0; z-index: 30; background: #f6f7f2f5; border-bottom: 1px solid #d9e2d699; backdrop-filter: blur(16px); transition: box-shadow .2s; }
.site-header.is-scrolled { box-shadow: 0 5px 24px #102f270b; }
.header-inner { display: flex; align-items: center; gap: 26px; min-height: 102px; }
.wordmark { flex-shrink: 0; display: flex; align-items: center; min-width: 0; }
.brand-logo { display: block; width: 100%; height: auto; }
.site-header .wordmark { flex: 1 1 240px; min-width: 240px; max-width: 360px; min-height: 48px; }
.site-header .brand-logo { mix-blend-mode: multiply; }
.main-nav { display: flex; align-items: center; gap: 23px; margin-left: auto; }
.main-nav > a { display: inline-flex; align-items: center; min-height: 48px; font-size: 1rem; font-weight: 550; line-height: 1.35; position: relative; }
.main-nav > a::after { content: ''; position: absolute; left: 0; bottom: 2px; height: 2px; width: 0; background: var(--forest); transition: width .2s; }
.main-nav > a:hover::after, .main-nav > a[aria-current]::after { width: 100%; }
.main-nav > .mobile-shop { display: none; }
.header-tools { display: flex; align-items: center; gap: 18px; }
.languages { display: flex; align-items: center; gap: 2px; font-size: .875rem; font-weight: 600; }
.languages a { display: grid; place-items: center; min-height: 44px; min-width: 31px; border-radius: 8px; color: var(--muted); }
.languages a[aria-current], .languages a:hover { color: var(--deep); background: #e3eade; }
.shop-link { white-space: nowrap; font-size: .9375rem; padding-inline: 19px; }
.menu-toggle { display: none; width: 48px; height: 48px; padding: 0; background: white; border: 1px solid var(--line); border-radius: 10px; flex-shrink: 0; flex-direction: column; justify-content: center; align-items: center; gap: 6px; }
.menu-toggle span { width: 21px; height: 2px; background: var(--forest); transition: transform .2s; }
.menu-toggle[aria-expanded=true] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.menu-backdrop { position: fixed; inset: 0; z-index: 25; background: #102f2780; backdrop-filter: blur(4px); }
.section-nav { position: sticky; top: var(--header-height,103px); z-index: 20; background: #f6f7f2f5; backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.section-nav .wrap { display: flex; align-items: center; gap: 32px; min-height: 72px; }
.section-nav .wrap > span { font-size: .9375rem; color: var(--muted); flex-shrink: 0; }
.section-nav-links { display: flex; align-items: stretch; gap: 16px; min-width: 0; overflow-x: auto; scrollbar-width: thin; }
.section-nav a { display: flex; align-items: center; min-height: 72px; padding-inline: 8px; font-size: 1rem; font-weight: 600; white-space: nowrap; border-bottom: 3px solid transparent; }
.section-nav a:hover, .section-nav a[aria-current] { border-color: var(--forest); }
.section-nav a:focus-visible { outline-offset: -3px; border-radius: 8px; }

/* Hero: clear sans-serif headlines and the existing landscape photographs. */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--deep); color: white; min-height: 710px; }
.hero-image { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#0c2922ed 0%,#0c2922b8 35%,#0c29223d 76%),linear-gradient(0deg,#0c2922b3,transparent 50%); }
.hero-main { padding-block: clamp(68px,6.3vw,104px) 145px; }
.hero h1 { max-width: 920px; line-height: 1.09; font-weight: 700; letter-spacing: -.055em; text-wrap: initial; }
.hero h1 em { color: var(--lime); }
.hero .eyebrow { color: #e3efd9; }
.hero-description { max-width: 570px; margin-top: 28px; color: #f1f5ec; font-size: 1.1875rem; line-height: 1.7; overflow-wrap: anywhere; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 28px; margin-top: 32px; }
.hero-actions .text-link { color: white; }
.hero-bottom { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 25px; border-top: 1px solid #ffffff40; font-size: .9375rem; color: #e0eadb; }
.hero-bottom > a { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; }
.scroll-line { height: 26px; width: 2px; background: var(--lime); }
.hero-place { display: flex; flex-wrap: wrap; gap: 24px; }
.hero-place span + span { border-left: 1px solid #ffffff50; padding-left: 24px; }
.hero-visit { position: absolute; right: max(var(--gutter),calc((100vw - 1400px)/2)); bottom: 145px; width: 260px; padding: 27px; background: #f6f7f2f5; color: var(--ink); border-radius: 20px; box-shadow: 0 16px 44px #102f2733; transition: transform .2s; }
.hero-visit:hover { transform: translateY(-4px); }
.hero-visit > span:first-child { font-size: .9375rem; font-weight: 650; }
.hero-visit strong { display: block; font: 650 1.65rem/1.25 var(--display); letter-spacing: -.04em; margin-block: 20px 26px; }
.hero-visit-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .9375rem; }
.inner-hero { min-height: 430px; }
.inner-hero .hero-main { padding-block: 65px 75px; }
.inner-hero h1 { font-size: clamp(2.5rem,4.6vw,4.5rem); max-width: 1040px; }
.inner-hero .hero-description { max-width: 660px; }
.breadcrumb { display: flex; align-items: center; gap: 15px; margin-bottom: 30px; color: #e3ecdf; font-size: 1rem; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 5px; }
.breadcrumb span { opacity: .7; }
.page-monastero .hero-image { object-position: center 43%; }
.page-prodotti-monastici .hero-image { object-position: center 54%; }
.page-contatti .hero-image { object-position: center 43%; }

/* Home sections. */
.route-index { padding-block: 26px; background: #eaf0e5; }
.route-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.route-link { display: grid; grid-template-columns: 32px minmax(0,1fr) 24px; align-items: center; gap: 16px; padding: 25px 23px; border: 1px solid #dae3d4; border-radius: 16px; background: #ffffffbf; transition: background .2s, border-color .2s; }
.route-link:hover { background: white; border-color: #a8bc9a; }
.route-label { font: 650 .8125rem/1.5 var(--sans); color: #5e7850; letter-spacing: .065em; text-transform: uppercase; overflow-wrap: anywhere; }
.route-link strong { font: 650 1.1875rem/1.4 var(--display); letter-spacing: -.03em; }
.route-link small { display: block; margin-top: 5px; font-size: .9375rem; line-height: 1.45; color: var(--muted); }
.intro-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(44px,6vw,96px); }
.intro-copy h2 { margin-bottom: 28px; }
.image-composition { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; }
.image-composition .main-photo { grid-column: 1/12; grid-row: 1; width: 100%; aspect-ratio: .98; object-fit: cover; border-radius: 24px; }
.image-composition .inset-photo { grid-column: 6/-1; grid-row: 2; width: 100%; margin-top: -42%; aspect-ratio: 1.3; object-fit: cover; border: 7px solid var(--paper); border-radius: 20px; box-shadow: 0 15px 35px #18352514; }
.image-note { grid-column: 1/6; grid-row: 2; padding: 16px 16px 0 0; font-size: .9375rem; color: var(--muted); line-height: 1.5; }
.photo-caption, .gallery-caption { margin-top: 20px; font-size: 1rem; color: var(--muted); }
.quote-section { position: relative; isolation: isolate; overflow: hidden; padding-block: 90px; background: var(--forest); color: white; }
.quote-photo { position: absolute; inset: 0 0 0 auto; z-index: -1; width: 54%; height: 100%; object-fit: cover; object-position: center 45%; opacity: .45; mask-image: linear-gradient(90deg,transparent,#000 70%); }
.quote-section p { max-width: 1020px; font: 600 clamp(2rem,4.1vw,4rem)/1.22 var(--display); letter-spacing: -.045em; }
.quote-section .eyebrow { color: var(--lime); margin: 24px 0 0; }
.quote-section .eyebrow::before { display: none; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 40px; }
.section-heading h2 { max-width: 950px; }
.section-heading > .text-link { flex-shrink: 0; }
.products-section { background: var(--sage); }
.product-teasers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.product-card { display: block; padding: 12px; background: white; border: 1px solid #dbe3d5; border-radius: 20px; transition: transform .25s, box-shadow .25s; }
.product-card:hover { transform: translateY(-5px); box-shadow: 0 16px 32px #153e2a12; }
.product-card-photo { overflow: hidden; border-radius: 12px; background: #fafbf7; }
.product-card img { width: 100%; aspect-ratio: 1.25; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s; }
.product-card:hover img { transform: scale(1.035); }
.product-card-label { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 15px 20px; }
.product-card-label h3 { font-size: 1.6rem; }
.product-card-label small { display: block; color: var(--muted); font-size: .9375rem; line-height: 1.45; margin-bottom: 8px; }
.product-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; color: var(--muted); font-size: 1.0625rem; margin-top: 32px; }
.scout-section { display: grid; grid-template-columns: 1fr 1fr; width: min(100% - var(--gutter)*2,1400px); margin: 90px auto; overflow: hidden; background: var(--forest); color: white; border-radius: 24px; }
.scout-section > img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; }
.scout-copy { padding: clamp(34px,4.5vw,72px); align-self: center; }
.scout-copy h2 { margin-bottom: 28px; font-size: clamp(2rem,2.7vw,3rem); }
.scout-copy h2 em, .scout-copy .eyebrow { color: var(--lime); }
.scout-copy .copy { color: #e0eadc; }
.scout-copy .text-link { color: white; }
/* Ordering help is available in the same place on every page. */
.help-strip { background: #f0f2ea; border-block: 1px solid var(--line); }
.help-grid { display: flex; flex-wrap: wrap; align-items: stretch; gap: 20px; padding-block: clamp(28px,4vw,52px); }
.help-card { display: flex; flex: 1 1 19rem; flex-direction: column; min-width: 0; gap: 18px; padding: clamp(22px,2.4vw,32px); background: #fafbf7; border: 1px solid #d9dfd2; border-radius: 14px; box-shadow: 0 5px 18px #17352904; transition: border-color .2s, box-shadow .2s; }
.help-card-bank { background: #e6ecdc; border-color: #cbd6be; }
.help-card-header { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; min-width: 0; }
.help-icon { display: grid; place-items: center; flex: 0 0 3rem; width: 3rem; height: 3rem; color: var(--forest); background: #e8eedf; border-radius: 12px; }
.help-card-bank .help-icon { background: #f9fbf5; }
.help-icon svg { display: block; width: 1.625rem; height: 1.625rem; }
.help-card h3 { flex: 1 1 min-content; min-width: 0; font-size: 1.1875rem; line-height: 1.4; letter-spacing: -.02em; overflow-wrap: break-word; text-wrap: pretty; }
.help-card-copy { color: var(--muted); font-size: 1rem; font-weight: 400; line-height: 1.7; overflow-wrap: anywhere; text-wrap: pretty; }
.help-card-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 16px; border-top: 1px solid #d9dfd2; color: var(--forest); font-size: .9375rem; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.help-card-bank .help-card-action { border-color: #c9d4bd; }
.help-card:is(:hover,:focus-visible) { color: var(--ink); border-color: #8b9e77; box-shadow: 0 9px 26px #1735290d; }
.help-card:is(:hover,:focus-visible) .help-card-action { text-decoration: underline; text-underline-offset: 4px; }

.community-section { background: #edf2e9; }
.community-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; gap: clamp(40px,6vw,96px); }
.community-copy h2 { margin-bottom: 28px; }
.map-panel { display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: var(--deep); color: white; }
.map-experience { display: flex; flex-direction: column; flex: 1; }
.map-preview { flex: 1; position: relative; isolation: isolate; }
.map-preview > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.map-preview::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg,#102f27f2,#102f27ce); }
.map-intro { padding: clamp(28px,3vw,46px); }
.map-intro .eyebrow { color: var(--lime); }
.map-intro h3 { font-size: clamp(1.65rem,2.4vw,2.2rem); margin-bottom: 22px; }
.map-intro p { font-size: 1.0625rem; color: #e3ecdf; line-height: 1.7; }
.map-load { display: flex; margin-top: 24px; background: var(--lime); border-color: var(--lime); color: var(--deep); text-align: left; }
.map-load:hover { background: #d9edc9; border-color: #d9edc9; color: var(--deep); }
.map-intro small { display: block; margin-top: 19px; font-size: .9375rem; line-height: 1.6; color: #dae5d5; }
.map-intro noscript { font-size: 1rem; }
.map-stage { height: 430px; background: #e5ece0; }
.map-stage iframe { display: block; width: 100%; height: 100%; border: 0; }
.map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; background: #e8efe2; color: var(--ink); padding: 12px 22px; font-size: .9375rem; }
.map-close { min-height: 44px; border: 0; background: transparent; text-decoration: underline; text-underline-offset: 4px; flex-shrink: 0; }
.map-caption { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 24px 30px; border-top: 1px solid #ffffff25; font-size: 1rem; }
.map-caption span { display: block; color: #d2e1cc; font-size: .9375rem; }
.map-caption > a { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-weight: 550; }

/* Story, gallery, product catalogue. */
.monastery-story { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); align-items: start; gap: clamp(40px,6vw,90px); }
.monastery-story h2 { position: sticky; top: calc(var(--header-height,103px) + var(--index-height,73px)); }
.story-copy .copy > p:first-child { padding: 30px; margin-bottom: 30px; font-size: 1.25rem; line-height: 1.7; color: var(--forest); background: var(--sage); border-radius: 18px; }
.gallery-section { padding-top: 16px; }
.photo-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.gallery-link { display: block; position: relative; overflow: hidden; border-radius: 16px; background: #e4ecde; }
.gallery-link img { width: 100%; aspect-ratio: 1.1; object-fit: cover; object-position: center 38%; transition: transform .35s; }
.gallery-link:hover img { transform: scale(1.035); }
.gallery-link .zoom { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; font-size: 0; background: #fffffff0; color: var(--forest); }
/* Draw the decorative plus independently of the font's baseline. */
.gallery-link .zoom::before, .gallery-link .zoom::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: currentColor; }
.gallery-link .zoom::before { width: 16px; height: 2px; }
.gallery-link .zoom::after { width: 2px; height: 16px; }
.photo-grid .gallery-link:nth-child(1), .photo-grid .gallery-link:nth-child(10) { grid-column: span 2; grid-row: span 2; }
.photo-grid .gallery-link:nth-child(1) img, .photo-grid .gallery-link:nth-child(10) img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
.catalog-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 70px; align-items: center; }
.catalog-intro .copy { margin-top: 28px; }
.catalog-art { display: grid; grid-template-columns: 1fr 1fr; background: white; padding: 18px; gap: 10px; border: 1px solid var(--line); border-radius: 24px; }
.catalog-art img { aspect-ratio: 1; width: 100%; object-fit: contain; border-radius: 10px; }
.product-detail { border-top: 1px solid var(--line); }
.product-detail:nth-of-type(even) { background: white; }
.detail-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: clamp(40px,6vw,90px); align-items: start; }
.detail-images { display: grid; gap: 20px; position: sticky; top: calc(var(--header-height,103px) + var(--index-height,73px)); }
.detail-images .gallery-link img { aspect-ratio: 4/3; }
.detail-images.two-images .gallery-link:nth-child(2) { width: 74%; margin-left: auto; }
.detail-copy h2 { margin-bottom: 28px; font-size: clamp(2rem,3vw,3.1rem); }
.catalog-gallery { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.catalog-gallery .gallery-link { background: white; border: 1px solid var(--line); padding: 14px; }
.catalog-gallery img { aspect-ratio: 1.1; object-fit: contain; }
.purchase-section { background: var(--forest); color: white; }
.purchase-section .eyebrow { color: var(--lime); }
.purchase-section .section-heading > p { max-width: 330px; color: #e0eadc; }
.purchase-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.purchase-card { position: relative; display: block; padding: clamp(30px,3.5vw,50px); padding-right: 75px; background: var(--paper); color: var(--ink); border-radius: 20px; transition: background .2s, transform .2s; }
.purchase-card:hover { background: white; transform: translateY(-3px); }
.purchase-kind { display: inline-block; padding: 5px 10px; border-radius: 7px; font-size: .9375rem; color: var(--forest); background: #e2ebd9; }
.purchase-card h3 { font-size: clamp(1.55rem,2vw,2rem); margin-block: 24px 16px; }
.purchase-card p { max-width: 40ch; color: var(--muted); }
.purchase-card > .arrow { position: absolute; top: 38px; right: 30px; font-size: 1.65rem; }

/* Contacts: readable cards, form controls and directions. */
.directions { background: #e8efe2; }
.directions-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 80px; align-items: start; }
.directions h2 { margin-bottom: 28px; }
.directions details { background: white; border: 1px solid #d4e0cc; border-radius: 16px; padding-inline: 28px; }
.directions details + details { margin-top: 15px; }
.directions summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 86px; padding-block: 22px; font: 650 1.15rem/1.45 var(--display); letter-spacing: -.025em; cursor: pointer; list-style: none; }
.directions summary::-webkit-details-marker { display: none; }
.directions summary::after { content: '+'; font: 400 1.6rem/1 var(--sans); flex-shrink: 0; }
.directions details[open] summary::after { content: '−'; }
.directions details .copy { padding-block: 5px 28px; }

/* Footer and photo viewer. */
.site-footer { background: var(--deep); color: #dae6d6; padding-top: 70px; }
.footer-heading { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid #ffffff26; }
.footer-heading .wordmark { width: min(100%,480px); padding: 18px 22px; border: 1px solid #e4e9df; border-radius: 8px; background: white; box-shadow: 0 8px 24px #071e171a; }
.footer-heading .eyebrow { max-width: 360px; margin: 0; color: var(--lime); font-size: .875rem; text-align: right; }
.footer-heading .eyebrow::before { display: none; }
.footer-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.8fr) minmax(0,1fr); gap: 60px; padding-block: 46px; }
.footer-about { color: #c1d1bc; font-size: 1rem; line-height: 1.8; }
.footer-title { color: #f2f6ed; font: 650 .9375rem/1.5 var(--sans); letter-spacing: .07em; text-transform: uppercase; margin-bottom: 24px; }
.footer-socials { display: flex; align-items: center; gap: 20px; margin-top: 26px; }
.footer-socials img { max-width: 140px; object-fit: contain; }
.funding-links { display: flex; flex-direction: column; align-items: start; gap: 18px; }
.funding-links a { display: block; max-width: 260px; width: 100%; }
.funding-links img { width: 100%; height: auto; }
.footer-contact { font-size: 1rem; overflow-wrap: anywhere; }
.footer-contact li + li { margin-top: 20px; }
.footer-contact-row { display: flex; gap: 13px; }
.footer-contact-icon { flex-shrink: 0; }
.footer-contact a:hover, .footer-bottom a:hover { color: var(--lime); }
.material-icons-location_on, .material-icons-phone, .material-icons-email { font: 400 20px/1.5 'Material Icons'; -webkit-font-smoothing: antialiased; }
.material-icons-location_on::before { content: '\e0c8'; }
.material-icons-phone::before { content: '\e0cd'; }
.material-icons-email::before { content: '\e0be'; }
.footer-bottom { border-top: 1px solid #ffffff26; padding-block: 32px; font-size: .9375rem; line-height: 1.7; color: #bfceba; overflow-wrap: anywhere; }
.footer-bottom a { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom img { display: inline-block; vertical-align: middle; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px clamp(32px,4vw,64px); }
.footer-identity { flex: 1.15 1 24rem; min-width: 0; }
.footer-copyright { max-width: 44ch; color: #e8eee2; font-size: 1rem; font-weight: 600; line-height: 1.6; }
.footer-company { display: grid; gap: 6px; margin-top: 12px; font-size: .875rem; }
.copyright-pec { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .35em; max-width: 100%; }
.copyright-pec > a { min-width: 0; max-width: 100%; }
.footer-resources { display: flex; flex: 1 1 22rem; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; }
.footer-resources .footer-faq { margin: 0; color: #e8eee2; font-size: 1rem; font-weight: 550; line-height: 1.6; }
.footer-resources .footer-faq > a { align-items: flex-start; }
.footer-privacy > a { display: inline-block; padding-block: 6px; font-size: .875rem; }
.footer-notice { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 20px 40px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #ffffff26; }
.cookie-notice { flex: 1 1 38rem; min-width: 0; color: #bfceba; font-size: .875rem; line-height: 1.75; overflow-wrap: anywhere; }
.footer-credit { display: flex; flex: 0 1 auto; flex-wrap: wrap; align-items: baseline; gap: 0 .35em; min-width: 0; max-width: 100%; font-size: .875rem; }
.footer-credit > a { white-space: nowrap; }
.back-to-top { --back-to-top-inset: 20px; position: fixed; z-index: 24; right: calc(max(var(--back-to-top-inset),env(safe-area-inset-right)) + var(--back-to-top-shift-x,0px)); bottom: calc(max(var(--back-to-top-inset),env(safe-area-inset-bottom)) + var(--back-to-top-shift-y,0px)); display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid #ffffff80; border-radius: 6px; background: var(--deep); color: white; box-shadow: 0 4px 16px #102f2733; text-decoration: none; }
.back-to-top:is(:hover,:focus-visible) { background: var(--forest); color: white; }
.back-to-top-icon { display: block; width: 24px; height: 24px; }
body:is(.menu-open,.lightbox-open) > .back-to-top { visibility: hidden; pointer-events: none; }
.lightbox { width: 100vw; height: 100%; height: 100dvh; max-width: 100vw; max-height: 100%; max-height: 100dvh; margin: 0; padding: 0; border: 0; inset: 0; background: #0b211b; color: white; overflow: auto; overscroll-behavior: contain; }
.lightbox::backdrop { background: #0b211bf5; }
.lightbox-inner { height: 100%; min-height: min-content; display: grid; grid-template-rows: auto minmax(140px,1fr) auto; gap: 22px; padding: max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)); }
.lightbox-top, .lightbox-bottom { display: flex; align-items: center; justify-content: space-between; gap: 22px; font-size: 1rem; }
.lightbox-top { position: sticky; top: env(safe-area-inset-top,0px); z-index: 1; background: #0b211b; }
.lightbox-top > span { margin-right: auto; }
.lightbox-original { display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; text-decoration: underline; text-underline-offset: 4px; }
.lightbox-image { width: 100%; height: 100%; min-height: 0; object-fit: contain; touch-action: pan-y; transition: opacity .15s; }
.lightbox-image.is-loading { opacity: .25; }
.lightbox button { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-width: 50px; min-height: 50px; border: 1px solid #ffffff60; border-radius: 12px; color: white; background: transparent; font-size: 1.5rem; line-height: 1; }
.lightbox button:hover { background: #ffffff18; }
.lightbox button:disabled { opacity: .3; }
.lightbox-close { font-size: 1.9rem !important; }
.lightbox-controls { display: flex; flex-shrink: 0; gap: 12px; }
.lightbox-controls svg { display: block; width: 1em; height: 1em; flex-shrink: 0; }
.lightbox-caption { min-width: 0; max-width: 72%; overflow-wrap: anywhere; color: #dae5d4; font-size: 1rem; line-height: 1.5; }
.form-response { min-height: 100svh; display: grid; place-items: center; padding: 28px; }
.form-response > main { max-width: 720px; padding: clamp(28px,5vw,65px); background: white; border: 1px solid var(--line); border-radius: 22px; }
.form-response h1 { font-size: clamp(2rem,4vw,3rem); margin-bottom: 25px; }
.form-response p { color: var(--muted); }

/* Breakpoints are shared with the menu behavior in the site script. */
@media (min-width:1241px) and (max-width:1450px) {
  .header-inner { gap: 12px; }
  .main-nav { gap: 12px; }
  .main-nav > a { font-size: .9375rem; }
  .header-tools { gap: 12px; }
  .shop-link { padding-inline: 16px; }
}
@media (max-width:1240px) {
  .menu-toggle { display: flex; }
  .menu-toggle[aria-expanded=true] { background: var(--deep); border-color: var(--deep); }
  .menu-toggle[aria-expanded=true] span { background: #fff; }
  .header-tools { margin-left: auto; }
  .languages { gap: 2px; padding: 3px; border: 1px solid #dfe5d8; border-radius: 11px; background: #eef1e8; }
  .languages a { min-width: 34px; border-radius: 7px; }
  .languages a[aria-current] { background: #fff; box-shadow: 0 1px 4px #102f2712; }
  .menu-backdrop { background: #102f273d; backdrop-filter: blur(3px); }
  body.menu-open .site-header { background: #faf9f5; }
  .main-nav { display: none; position: absolute; inset: calc(100% + 8px) var(--gutter) auto auto; width: min(420px,calc(100% - var(--gutter)*2)); margin: 0; padding: 12px; background: #faf9f5; border: 1px solid #dbe2d3; border-radius: 16px; box-shadow: 0 20px 48px #102f2729, 0 3px 10px #102f270a; max-height: max(0px,calc(100dvh - var(--header-bottom,103px) - 16px - env(safe-area-inset-bottom))); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #a3b19b transparent; scroll-padding-block: 12px; }
  .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .main-nav > a { flex-shrink: 0; justify-content: space-between; gap: 16px; min-height: 54px; padding: 14px 16px; border: 0; border-radius: 9px; font: 550 1.125rem/1.4 var(--display); letter-spacing: -.015em; overflow-wrap: anywhere; transition: background-color .18s, color .18s; }
  .main-nav > a:hover { color: var(--deep); background: #edf1e7; }
  .main-nav > a[aria-current] { color: var(--deep); background: #e6eddc; font-weight: 700; }
  .main-nav > a:focus-visible { outline-offset: -3px; }
  .main-nav > a:not(.mobile-shop)::after { content: ''; display: block; position: static; flex: 0 0 7px; width: 7px; height: 7px; border: solid currentColor; border-width: 1.5px 1.5px 0 0; background: transparent; transform: rotate(45deg); opacity: .6; transition: none; }
  .main-nav.is-open > .mobile-shop { display: flex; justify-content: space-between; margin-top: 8px; color: #fff; background: var(--deep); }
  .main-nav.is-open > .mobile-shop:hover { background: var(--forest); }
  .main-nav > .mobile-shop::after { display: none; }
  .main-nav > .mobile-shop .arrow { color: var(--lime); }
  .hero-visit { display: none; }
  .hero { min-height: 650px; }
  .hero h1 { font-size: clamp(3rem,6.2vw,4.8rem); }
  .inner-hero { min-height: 390px; }
  .inner-hero h1 { font-size: clamp(2.5rem,4.8vw,4.2rem); }
  .route-link { padding: 24px 18px; grid-template-columns: 26px minmax(0,1fr) 20px; gap: 12px; }
  .route-link strong { font-size: 1.125rem; }
  .intro-grid, .community-grid, .catalog-intro, .detail-grid, .directions-grid { gap: 40px; }
  .footer-grid { gap: 35px; }
}
@media (max-width:1000px) {
  .intro-grid, .community-grid, .catalog-intro { grid-template-columns: minmax(0,1fr); gap: 45px; }
  .image-composition { width: min(100%,660px); margin-inline: auto; }
  .intro-copy { order: -1; }
  .catalog-art { max-width: 650px; margin-inline: auto; }
  .scout-copy { padding: 34px; }
  .scout-copy h2 { font-size: 1.9rem; }
  .footer-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 42px; }
  .footer-heading .eyebrow { max-width: 100%; text-align: left; }
  .footer-funding { grid-column: 1/-1; grid-row: 2; }
  .funding-links { flex-direction: row; align-items: center; }
}
@media (max-width:760px) {
  :root { --gutter: 24px; }
  body { font-size: 1.0625rem; line-height: 1.75; }
  h2 { font-size: clamp(1.9rem,6.5vw,2.6rem); line-height: 1.2; }
  h3 { font-size: 1.4rem; }
  .section { padding-block: 65px; }
  .eyebrow { font-size: .8125rem; letter-spacing: .07em; margin-bottom: 20px; }
  .button, .text-link { font-size: 1rem; gap: 22px; }
  .button { padding-inline: 19px; }
  .topbar .wrap { min-height: 32px; justify-content: center; padding-block: 6px; font-size: .8125rem; line-height: 1.4; text-align: center; }
  .top-location { display: none; }
  .header-inner { min-height: 88px; gap: 12px; }
  .header-tools { gap: 9px; }
  .header-tools > .shop-link { display: none; }
  .languages { font-size: .8125rem; gap: 0; }
  .languages a { min-width: 29px; }
  .menu-toggle { width: 44px; height: 44px; }
  .section-nav .wrap { width: 100%; padding-inline: var(--gutter); min-height: 60px; gap: 0; }
  .section-nav .wrap > span { display: none; }
  .section-nav-links { width: 100%; gap: 14px; }
  .section-nav a { min-height: 60px; font-size: .9375rem; }
  .hero { min-height: 680px; }
  .hero .hero-main { padding-block: 54px 135px; }
  .hero h1 { max-width: 100%; font-size: clamp(2.1rem,7.9vw,3.7rem); line-height: 1.16; letter-spacing: -.05em; }
  .hero .eyebrow { font-size: .8125rem; }
  .hero-image { object-position: 60% center; }
  .hero::before { background: linear-gradient(90deg,#0c2922d6,#0c29226e),linear-gradient(0deg,#0c2922d9,transparent 75%); }
  .hero-description { font-size: 1.0625rem; line-height: 1.7; margin-top: 26px; }
  .hero-actions { gap: 15px 24px; margin-top: 28px; }
  .hero-actions .button { width: 100%; }
  .hero-bottom { font-size: .9375rem; padding-block: 18px; gap: 15px; }
  .hero-place { display: flex; flex-direction: column; gap: 5px; }
  .hero-place span + span { padding: 0; border: 0; }
  .hero-bottom > a { font-size: 0; min-width: 35px; justify-content: center; gap: 0; }
  .inner-hero { min-height: 360px; }
  .inner-hero .hero-main { padding-block: 42px 52px; }
  .inner-hero h1 { font-size: clamp(2rem,7.7vw,3.3rem); text-wrap: balance; }
  .breadcrumb { font-size: .9375rem; margin-bottom: 26px; }
  .route-index { padding-block: 20px; }
  .route-grid { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .route-link { padding: 20px; grid-template-columns: 27px minmax(0,1fr) 24px; gap: 13px; }
  .route-link strong { font-size: 1.125rem; }
  .route-link small { font-size: .9375rem; }
  .image-composition .main-photo { aspect-ratio: 1.1; border-radius: 18px; }
  .image-composition .inset-photo { border-width: 5px; border-radius: 14px; }
  .image-note { font-size: .875rem; padding-right: 12px; }
  .quote-section { padding-block: 60px; }
  .quote-section p { font-size: clamp(1.9rem,6.6vw,2.6rem); }
  .quote-photo { width: 85%; }
  .section-heading { flex-direction: column; align-items: start; gap: 22px; margin-bottom: 30px; }
  .product-teasers { grid-template-columns: minmax(0,1fr); gap: 17px; }
  .product-card { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); padding: 12px; gap: 18px; align-items: center; border-radius: 16px; }
  .product-card img { aspect-ratio: .95; }
  .product-card-label { padding: 12px 6px 12px 0; gap: 8px; }
  .product-card-label h3 { font-size: 1.3rem; }
  .product-card-label small { font-size: .9375rem; line-height: 1.5; }
  .product-card-label > .arrow { display: none; }
  .product-summary { grid-template-columns: minmax(0,1fr); gap: 18px; font-size: 1.0625rem; }
  .scout-section { grid-template-columns: minmax(0,1fr); margin-block: 65px; border-radius: 18px; }
  .scout-section > img { min-height: 0; height: auto; aspect-ratio: 1.4; max-height: 380px; }
  .scout-copy { padding: 32px 25px 36px; }
  .scout-copy h2 { font-size: 1.9rem; }
  .community-grid { gap: 34px; }
  .map-panel { border-radius: 18px; }
  .map-intro { padding: 30px 25px; }
  .map-intro h3 { font-size: 1.65rem; }
  .map-intro p { font-size: 1.0625rem; }
  .map-load { width: 100%; gap: 15px; }
  .map-caption { padding: 22px 25px; }
  .map-stage { height: 350px; }
  .map-toolbar { padding-inline: 18px; flex-wrap: wrap; gap: 4px 16px; }
  .monastery-story { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .monastery-story h2 { position: static; }
  .story-copy .copy > p:first-child { padding: 24px; font-size: 1.125rem; }
  .gallery-section { padding-top: 0; }
  .photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .photo-grid .gallery-link:nth-child(1), .photo-grid .gallery-link:nth-child(10) { grid-column: 1/-1; grid-row: auto; }
  .photo-grid .gallery-link:nth-child(1) img, .photo-grid .gallery-link:nth-child(10) img { position: static; height: auto; aspect-ratio: 1.5; }
  .gallery-link { border-radius: 12px; }
  .gallery-link .zoom { width: 38px; height: 38px; right: 9px; bottom: 9px; }
  .catalog-art { gap: 5px; padding: 8px; border-radius: 18px; }
  .detail-grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .detail-images { position: static; order: 2; grid-template-columns: 1fr 1fr; gap: 12px; }
  .detail-images .gallery-link:only-child { grid-column: 1/-1; }
  .detail-images.two-images .gallery-link:nth-child(2) { width: 100%; margin-top: 24px; }
  .detail-copy h2 { font-size: clamp(1.9rem,6.6vw,2.6rem); }
  .catalog-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .catalog-gallery .gallery-link { padding: 8px; }
  .purchase-grid { grid-template-columns: minmax(0,1fr); gap: 17px; }
  .purchase-card { border-radius: 16px; padding: 28px 55px 30px 25px; }
  .purchase-card > .arrow { right: 22px; top: 32px; }
  .purchase-card h3 { margin-block: 21px 14px; font-size: 1.45rem; }
  .purchase-kind { font-size: .875rem; }
  .directions-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .directions details { padding-inline: 23px; }
  .directions summary { min-height: 78px; font-size: 1.0625rem; }
  .footer-heading { flex-direction: column; align-items: start; gap: 27px; }
  .footer-heading .eyebrow { text-align: left; }
  .footer-grid { grid-template-columns: minmax(0,1fr); gap: 40px; }
  .footer-funding { grid-column: auto; grid-row: auto; }
  .funding-links { flex-direction: column; align-items: start; }
  .funding-links a { max-width: 260px; }
  .back-to-top { --back-to-top-inset: 12px; width: 48px; height: 48px; }
  .footer-bottom { padding-bottom: calc(30px + env(safe-area-inset-bottom)); }
  .footer-resources { padding-top: 18px; border-top: 1px solid #ffffff17; }
  .lightbox-inner { padding-left: max(16px,env(safe-area-inset-left)); padding-right: max(16px,env(safe-area-inset-right)); }
  .lightbox-top > span { display: none; }
  .lightbox-original { font-size: .9375rem; margin-right: auto; }
  .lightbox-caption { font-size: .9375rem; max-width: 60%; }
  .lightbox-controls { gap: 8px; }
  .lightbox button { min-width: 44px; min-height: 48px; }
}
@media (max-width:359px) {
  :root { --gutter: 18px; }
  .header-inner { gap: 8px; }
  .header-tools { gap: 6px; }
  .languages a { min-width: 27px; }
  .menu-toggle { width: 42px; }
  .hero h1 { font-size: 2rem; }
  .hero .eyebrow { letter-spacing: .04em; }
  .hero .eyebrow::before { width: 18px; margin-right: 9px; }
  .product-card { gap: 12px; }
  .product-card-label h3 { font-size: 1.2rem; }
  .lightbox-bottom { flex-direction: column; align-items: stretch; gap: 8px; }
  .lightbox-caption { max-width: none; }
  .lightbox-controls { align-self: flex-end; }
}
@media (max-height:600px) and (min-width:600px) {
  .main-nav.is-open > a { min-height: 48px; font-size: 1.0625rem; padding-block: 10px; }
  .hero { min-height: 560px; }
  .hero .hero-main { padding-top: 45px; }
  .inner-hero { min-height: 340px; }
  .inner-hero .hero-main { padding-block: 40px; }
  .detail-images, .monastery-story h2 { position: static; }
}
/* Landscape-led composition: photographs retain their own space beside the copy. */
:root {
  --paper: #f7f6f0;
  --sage: #eef0e7;
  --line: #daddcf;
}
.site-header, .section-nav { background: #f7f6f0f5; }
h1, h2, h3, h4 { letter-spacing: -.035em; }
.button { border-radius: 8px; }
.hero {
  display: grid;
  grid-template-columns: minmax(0,1.03fr) minmax(0,1fr);
  column-gap: clamp(32px,4vw,64px);
  width: min(100% - var(--gutter)*2,1400px);
  min-height: 0;
  margin: 30px auto 0;
  overflow: visible;
  background: transparent;
  color: var(--ink);
}
.hero::before { display: none; }
.hero > * { min-width: 0; }
.hero .hero-image {
  position: relative;
  inset: auto;
  z-index: auto;
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-position: 54% center;
  border-radius: 8px 32px 8px 8px;
}
.hero .hero-main {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  margin: 0;
  padding-block: clamp(40px,4.2vw,65px);
}
.hero h1 {
  font-size: clamp(2.65rem,4.4vw,4.4rem);
  line-height: 1.13;
  letter-spacing: -.035em;
}
.hero h1 em { color: #64734b; }
.hero .eyebrow { color: var(--forest); }
.hero-description { color: var(--muted); margin-top: 26px; }
.hero-actions { gap: 14px 25px; }
.hero-actions .button-light { background: var(--forest); border-color: var(--forest); color: white; }
.hero-actions .button-light:hover { background: var(--deep); border-color: var(--deep); }
.hero-actions .text-link { color: var(--forest); }
.hero-bottom {
  position: static;
  grid-column: 1/-1;
  grid-row: 2;
  width: 100%;
  margin-top: 26px;
  padding-block: 20px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.hero-place span + span { border-color: #bfc9b6; }
.scroll-line { background: var(--forest); }
.hero-visit {
  position: relative;
  inset: auto;
  z-index: 1;
  display: block;
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-self: end;
  width: min(280px,calc(100% - 48px));
  margin: 24px;
  padding: 24px;
  background: #f7f6f0f5;
  backdrop-filter: blur(12px);
  border: 1px solid #ffffffaa;
  border-radius: 8px;
  box-shadow: 0 12px 36px #102f2726;
}
.hero-visit strong { margin-block: 14px 20px; font-size: 1.5rem; }
.inner-hero { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); margin-bottom: 30px; }
.inner-hero > .wrap { grid-column: 1; grid-row: 1; width: 100%; margin: 0; }
.inner-hero .hero-main { padding-block: 40px 48px; }
.inner-hero h1 { font-size: clamp(2.45rem,4.1vw,4rem); }
.inner-hero .hero-image { min-height: 380px; max-height: 620px; align-self: stretch; }
.breadcrumb { color: var(--muted); margin-bottom: 32px; }

/* Quieter dividers and a more varied rhythm between sections. */
.route-index { padding: 0; background: transparent; }
.route-grid { gap: 0; border-block: 1px solid var(--line); }
.route-link { padding: 29px 25px; border: 0; border-right: 1px solid var(--line); border-radius: 0; background: transparent; }
.route-link:first-child { padding-left: 0; }
.route-link:last-child { border-right: 0; }
.route-link:hover { background: #ebeee3; }
.route-label { color: #69794f; }
.image-composition .main-photo { border-radius: 8px 28px 8px 8px; }
.image-composition .inset-photo { border-radius: 8px; box-shadow: 0 15px 35px #18352512; }
.intro-copy .copy > p:first-child { font-size: 1.22rem; line-height: 1.65; color: var(--ink); }
.quote-section {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
  width: min(100% - var(--gutter)*2,1400px);
  min-height: 330px;
  margin-inline: auto;
  padding: 0;
  border-radius: 8px;
  background: var(--deep);
}
.quote-section .wrap { grid-column: 1; grid-row: 1; width: 100%; padding: clamp(35px,4.5vw,70px); align-self: center; }
.quote-section p { font-size: clamp(2.2rem,3.5vw,3.4rem); }
.quote-photo { position: static; grid-column: 2; grid-row: 1; width: 100%; height: 100%; min-height: 0; max-height: 430px; opacity: 1; mask-image: none; object-position: center 55%; }
.products-section { background: transparent; padding-bottom: clamp(50px,5vw,80px); }
.product-teasers { align-items: start; gap: 28px; }
.product-card { padding: 14px; border-color: #dedfd2; border-radius: 8px; box-shadow: 0 8px 26px #17352904; }
.product-card-photo { border-radius: 5px; background: #f5f3e9; }
.product-card-label { padding: 25px 12px 17px; }
.product-card-label > .arrow { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 6px; }
.product-summary { margin-top: 36px; padding-top: 27px; border-top: 1px solid var(--line); }
.scout-section { margin-top: 0; border-radius: 8px; background: var(--deep); }
.community-section { background: var(--sage); }
.map-panel { border-radius: 8px; }
.map-preview::after { background: linear-gradient(120deg,#102f27f2,#102f27b8); }
.story-copy .copy > p:first-child { border-left: 3px solid #83966a; border-radius: 0 8px 8px 0; }
.gallery-link { border-radius: 8px; }
.gallery-link .zoom { border-radius: 6px; }
.catalog-art { background: #eceee3; border: 0; border-radius: 8px; padding: 20px; gap: 16px; }
.catalog-art img { background: white; border-radius: 5px; }
.catalog-gallery .gallery-link { border-radius: 8px; }
.purchase-section { background: var(--deep); }
.purchase-card { border-radius: 8px; border-top: 4px solid #adc192; }
.directions { background: var(--sage); }
.directions details { border-radius: 8px; }
.directions details[open] { border-color: #829a73; }
.site-footer { border-top: 6px solid #9baf7c; }

@media (min-width:761px) {
  .product-card:nth-child(2) { margin-top: 40px; }
  .product-card:not(:nth-child(2)) { margin-bottom: 40px; }
}
@media (min-width:761px) and (max-width:1000px) {
}
@media (max-width:1000px) {
  .hero { grid-template-columns: minmax(0,1fr); gap: 0; margin-top: 20px; }
  .hero .hero-main { padding-block: 35px 42px; }
  .hero h1 { font-size: clamp(2.65rem,6.3vw,4rem); }
  .hero .hero-image { grid-column: 1; grid-row: 2; height: clamp(280px,48vw,430px); min-height: 0; object-position: center 48%; }
  .hero-visit { grid-column: 1; grid-row: 2; }
  .hero-bottom { grid-row: 3; margin-top: 22px; }
  .inner-hero .hero-main { padding-block: 28px 38px; }
  .inner-hero h1 { font-size: clamp(2.4rem,5.8vw,3.8rem); }
  .inner-hero .hero-image { height: 300px; }
  .route-link { padding-inline: 18px; }
  .quote-section .wrap { padding: 36px; }
  .quote-section p { font-size: 2.25rem; }
  .product-teasers { gap: 18px; }
  .product-card-label { padding-inline: 5px; gap: 12px; }
  .product-card-label h3 { font-size: 1.4rem; }
  .product-card-label > .arrow { width: 34px; height: 34px; }
}
@media (max-width:760px) {
  .hero { margin-top: 10px; }
  .hero .hero-main { padding-block: 30px 35px; }
  .hero h1 { font-size: clamp(2.1rem,7.9vw,3.7rem); line-height: 1.16; }
  .hero .hero-image { height: clamp(250px,65vw,380px); border-radius: 6px 24px 6px 6px; }
  .hero-description { font-size: 1.0625rem; margin-top: 22px; }
  .hero-actions { margin-top: 25px; }
  .hero-visit { display: none; }
  .hero-bottom { margin-top: 18px; padding-block: 16px; }
  .inner-hero { margin-bottom: 24px; }
  .inner-hero .hero-main { padding-block: 24px 30px; }
  .inner-hero h1 { font-size: clamp(2rem,7.7vw,3.3rem); }
  .inner-hero .hero-image { height: clamp(200px,50vw,300px); }
  .breadcrumb { margin-bottom: 22px; }
  .route-grid { gap: 0; }
  .route-link, .route-link:first-child { padding: 23px 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .route-link:last-child { border-bottom: 0; }
  .intro-copy .copy > p:first-child { font-size: 1.125rem; }
  .quote-section { grid-template-columns: minmax(0,1fr); min-height: 0; }
  .quote-section .wrap { padding: 38px 26px; }
  .quote-section p { font-size: clamp(1.9rem,6.6vw,2.6rem); }
  .quote-photo { grid-column: 1; grid-row: 2; height: 230px; object-position: center 65%; }
  .product-card { border-radius: 8px; }
  .product-card-label { padding: 12px 6px 12px 0; }
  .product-card-label h3 { font-size: 1.3rem; }
  .product-card-label > .arrow { display: none; }
  .catalog-art { padding: 10px; gap: 10px; }
}
@media (max-width:359px) {
  .hero h1 { font-size: 2rem; }
  .inner-hero h1 { font-size: 1.9rem; }
  .quote-section .wrap { padding-inline: 22px; }
  .product-card-label h3 { font-size: 1.2rem; }
}

/* Let the content use the full height on short windows and at high page zoom. */
@media (max-height:500px) {
  .site-header { position: relative; }
  .section-nav { position: relative; top: auto; }
  .lightbox-inner { gap: 8px; padding: max(8px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
}
/* Keep a real image area when the caption and controls require scrolling. */
@media (max-height:300px) {
  .lightbox-inner { grid-template-rows: auto minmax(100px,1fr) auto; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
/* Direct contacts: a clear invitation, generous panels and practical details. */
.contact-hero .hero-main { padding-block: 48px; }
.contact-hero .hero-image { min-height: 440px; max-height: 680px; }
.contact-hero .hero-actions { gap: 22px; }
.contact-territory { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: .9375rem; }
.contact-hub { padding-top: 80px; }
.contact-intro { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); align-items: end; gap: 48px; margin-bottom: 42px; }
.contact-intro h2 { font-size: clamp(2.2rem,3.65vw,3.5rem); }
.contact-intro > p { max-width: 430px; justify-self: end; color: var(--muted); font-size: 1.125rem; }
.contact-panels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.contact-call-panel, .contact-email-panel { min-width: 0; padding: clamp(28px,3.2vw,48px); border-radius: 8px; }
.contact-call-panel { background: var(--deep); color: white; }
.contact-email-panel { background: #fff; border: 1px solid var(--line); }
.contact-panel-top { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 26px; }
.contact-panel-top .eyebrow { margin: 0; font-size: .8125rem; letter-spacing: .065em; }
.contact-panel-top .eyebrow::before { display: none; }
.contact-call-panel .eyebrow, .contact-call-panel .contact-icon { color: #d2e3bd; }
.contact-icon { flex-shrink: 0; }
.contact-panels h3 { font-size: clamp(1.5rem,2.4vw,2rem); letter-spacing: -.035em; }
.contact-phone-list { margin-top: 28px; }
.contact-phone-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 96px; padding-block: 18px; border-bottom: 1px solid #ffffff30; }
.contact-phone-link > span:first-child { min-width: 0; }
.contact-phone-link small { display: block; color: #d0ddca; font-size: .9375rem; margin-bottom: 7px; }
.contact-phone-link strong { display: block; font: 650 clamp(1.25rem,2.1vw,1.95rem)/1.35 var(--display); letter-spacing: -.025em; white-space: nowrap; }
.contact-phone-link .arrow { font-size: 1.6rem; }
.contact-hours { margin-top: 30px; }
.contact-hours h4 { font: 600 1rem/1.5 var(--sans); letter-spacing: 0; margin-bottom: 20px; }
.contact-hours ul { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,7rem),1fr)); gap: 12px; }
.contact-hours li { min-width: 0; }
.contact-hours li span { display: block; color: #d0ddca; font-size: .875rem; margin-bottom: 5px; }
.contact-hours li strong { display: block; font-size: 1rem; font-weight: 600; line-height: 1.5; white-space: nowrap; font-variant-numeric: tabular-nums; }
.contact-email-list { margin-top: 28px; }
.contact-email-item { padding-block: 24px; border-top: 1px solid var(--line); }
.contact-email-item h4 { font: 650 1.0625rem/1.45 var(--display); letter-spacing: -.02em; }
.contact-email-item p { margin-top: 6px; color: var(--muted); font-size: 1rem; }
.contact-email-item a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; margin-top: 14px; color: var(--forest); font-size: clamp(1rem,1.5vw,1.25rem); font-weight: 600; line-height: 1.6; }
.contact-email-item a > span:first-child { min-width: 0; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.contact-address-panel { display: grid; grid-template-columns: minmax(120px,.55fr) minmax(0,1.45fr) auto; align-items: center; gap: 28px; margin-top: 24px; padding: 34px 38px; border: 1px solid #d1d8c8; border-left: 4px solid var(--forest); border-radius: 8px; background: #ecefe5; }
.contact-address-heading { display: flex; flex-direction: column; align-items: start; gap: 16px; color: var(--forest); }
.contact-address-heading .eyebrow { margin: 0; font-size: .8125rem; letter-spacing: .065em; }
.contact-address-heading .eyebrow::before { display: none; }
.contact-address-copy { min-width: 0; }
.contact-address-copy h3 { font-size: clamp(1.35rem,2vw,1.8rem); }
.contact-address-copy address { margin-top: 10px; color: var(--muted); font-size: 1rem; font-style: normal; }
.contact-address-panel .text-link { justify-self: end; }
.contact-company { margin-top: 24px; padding: clamp(24px,2.5vw,36px); border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.contact-company > h3 { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line); color: var(--forest); font-size: 1.125rem; line-height: 1.4; letter-spacing: -.02em; }
.contact-company dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 0; }
.contact-company dl > div { min-width: 0; }
.contact-company dl > div + div { padding-inline-start: 24px; border-inline-start: 1px solid var(--line); }
.contact-company dt { font-size: .875rem; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; }
.contact-company dd { margin: 8px 0 0; color: var(--ink); font-size: 1.125rem; font-weight: 650; line-height: 1.5; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.page-contatti .directions-grid { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: clamp(32px,5vw,76px); }
.directions-intro.is-sticky { position: sticky; top: calc(var(--header-height,103px) + var(--index-height,73px) + 24px); align-self: start; }
.page-contatti .directions h2 { font-size: clamp(2.2rem,3.5vw,3.3rem); margin-bottom: 20px; }
.contact-route-intro { color: var(--muted); margin-bottom: 22px; max-width: 380px; }
.page-contatti .directions-grid > div:last-child { min-width: 0; }
.page-contatti .directions details { border-color: #d5ddce; }
.page-contatti .directions details[open] { border-color: #739069; box-shadow: 0 10px 26px #183d2908; }
.page-contatti .directions summary { display: grid; grid-template-columns: minmax(0,1fr) 1.625rem; gap: 18px; font-size: 1rem; letter-spacing: .015em; }
.direction-heading { display: grid; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.direction-label { color: #58744e; font: 650 .8125rem/1.5 var(--sans); letter-spacing: .065em; text-transform: uppercase; }
.direction-title { display: block; }
.contact-visit .community-grid { align-items: stretch; gap: clamp(36px,5vw,78px); }
.contact-visit .community-copy { align-self: center; }
.contact-visit .community-copy h2 { font-size: clamp(2rem,2.7vw,2.8rem); }
.contact-visit .map-panel { border: 1px solid #254638; }
@media (min-width:761px) and (max-width:1100px) {
  .contact-panels { gap: 18px; }
  .contact-call-panel, .contact-email-panel { padding: 28px; }
  .contact-hours ul { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .contact-hours li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 18px; }
  .contact-hours li span { margin: 0; }
}
@media (max-width:1000px) {
  .contact-hero .hero-image { min-height: 0; height: clamp(250px,45vw,380px); }
  .contact-hero .hero-main { padding-block: 32px 16px; }
  .contact-address-panel { grid-template-columns: minmax(0,1fr) auto; }
  .contact-address-heading { grid-column: 1/-1; flex-direction: row; align-items: center; }
}
@media (max-width:900px) {
  .page-contatti .directions-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:760px) {
  .contact-hero .hero-main { padding-top: 20px; }
  .contact-hero .hero-actions { align-items: stretch; gap: 12px; }
  .contact-hero .hero-actions .button { width: auto; }
  .contact-territory { display: block; margin-top: 24px; padding-top: 18px; font-size: .875rem; }
  .contact-territory span { display: block; }
  .contact-territory span + span { margin-top: 4px; }
  .contact-hub { padding-top: 58px; }
  .contact-intro { grid-template-columns: minmax(0,1fr); gap: 22px; margin-bottom: 30px; }
  .contact-intro h2 { font-size: clamp(1.9rem,7vw,2.65rem); }
  .contact-intro > p { justify-self: start; font-size: 1.0625rem; }
  .contact-panels { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .contact-call-panel, .contact-email-panel { padding: 28px; }
  .contact-panel-top { gap: 14px; margin-bottom: 22px; }
  .contact-phone-link strong { font-size: clamp(1.25rem,5.6vw,1.75rem); }
  .contact-hours ul { gap: 10px; }
  .contact-hours li strong { font-size: .9375rem; }
  .contact-email-item a { font-size: 1.125rem; }
  .contact-address-panel { grid-template-columns: minmax(0,1fr); gap: 22px; padding: 28px; margin-top: 18px; }
  .contact-address-panel .text-link { justify-self: start; }
  .contact-company { margin-top: 18px; }
  .contact-company > h3 { margin-bottom: 20px; padding-bottom: 16px; }
  .contact-company dl { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .contact-company dl > div + div { padding: 16px 0 0; border-inline-start: 0; border-top: 1px solid var(--line); }
  .page-contatti .directions summary { gap: 12px; grid-template-columns: minmax(0,1fr) 1.375rem; font-size: .9375rem; }
}
@media (max-width:480px) {
  .contact-hours ul { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .contact-hours li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .contact-hours li span { margin: 0; }
  .contact-hours li strong { font-size: 1rem; }
}
@media (max-width:389px) {
  .contact-call-panel, .contact-email-panel, .contact-address-panel { padding: 24px 22px; }
}
@media (max-width:359px) {
  .contact-phone-link .arrow { display: none; }
  .contact-phone-link strong { font-size: 1.25rem; }
  .contact-email-item a { font-size: 1rem; gap: 10px; }
}

/* Links keep a readable foreground on both pale and dark surfaces. */
:root { --link-hover: #173e31; }
.site-footer, .topbar, .scout-copy, .map-panel, .lightbox, .contact-call-panel { --link-hover: #edf5d8; }
a:is(:hover,:focus-visible), .text-link:is(:hover,:focus-visible) { color: var(--link-hover); }
:is(.copy,.breadcrumb,.footer-contact,.footer-bottom,.map-caption,.map-intro,.contact-phone-list) a:is(:hover,:focus-visible) { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; }
.button:is(:hover,:focus-visible) { color: #fff; background: #143d30; border-color: #143d30; }
.button-light:is(:hover,:focus-visible), .map-load:is(:hover,:focus-visible) { color: #102f27; background: #d9edc9; border-color: #d9edc9; }
.hero-actions .button-light:is(:hover,:focus-visible) { color: #fff; background: #102f27; border-color: #102f27; }
.button-outline:is(:hover,:focus-visible) { color: #fff; background: #143d30; border-color: #143d30; }
.site-footer .wordmark:is(:hover,:focus-visible), .footer-contact a:is(:hover,:focus-visible), .footer-bottom a:is(:hover,:focus-visible) { color: #edf5d8; }
.map-toolbar { --link-hover: #173e31; }
.map-close:is(:hover,:focus-visible) { color: #173e31; text-decoration-thickness: 2px; }
.lightbox-original:is(:hover,:focus-visible) { text-decoration-thickness: 2px; }
.contact-email-item a:is(:hover,:focus-visible) > span:first-child { text-decoration-thickness: 2px; }
.contact-phone-link:is(:hover,:focus-visible) small { color: #edf5d8; }

/* Editorial landscape system: generous photographs and clear, distinct sections. */
:root { --paper: #faf9f5; --sage: #e9eddf; --line: #d9dfd2; --ink: #1e3b31; }
.site-header, .section-nav { background: #faf9f5f5; }
.section { padding-block: clamp(76px,7.5vw,116px); }
.copy { max-width: 68ch; text-wrap: pretty; }
.eyebrow { letter-spacing: .1em; }
.button { border-radius: 6px; box-shadow: 0 3px 0 #102f2709; }
.header-inner { min-height: 96px; }
.section-nav .wrap { min-height: 70px; }
.section-nav-links { gap: 8px; padding-block: 8px; }
.section-nav a { min-height: 48px; padding-inline: 18px; border: 0; border-radius: 6px; }
.section-nav a:is(:hover,:focus-visible) { background: #e6ebdf; color: #173e31; }
.section-nav a[aria-current] { background: var(--forest); color: white; }
.section-nav a[aria-current]:is(:hover,:focus-visible) { background: var(--deep); color: white; }

/* Fit below the header, cap excessive photo growth on tall screens, and allow enlarged text to grow. */
.page-index .hero { grid-template-columns: minmax(0,1fr); grid-template-rows: auto minmax(8rem,1fr) auto; gap: 0; margin-top: 0; min-height: min(calc(100vh - var(--home-chrome-height,135px)),81rem); min-height: min(calc(100svh - var(--home-chrome-height,135px)),81rem); }
.page-index .hero .hero-main { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); gap: clamp(12px,2svh,22px) clamp(28px,4vw,64px); grid-column: 1; grid-row: 1; padding-block: clamp(16px,3.5svh,42px) clamp(16px,3svh,34px); }
.page-index .hero-main > .eyebrow { grid-column: 1/-1; margin: 0; }
.page-index .hero h1 { grid-column: 1; grid-row: 2/4; font-size: clamp(2rem,min(4.6vw,7.5svh),5rem); line-height: 1.1; font-weight: 650; letter-spacing: -.045em; }
.page-index .hero-description { grid-column: 2; grid-row: 2; align-self: end; margin-top: 0; max-width: 48ch; font-size: clamp(1rem,1.9svh,1.1875rem); line-height: 1.55; }
.page-index .hero-actions { grid-column: 2; grid-row: 3; align-self: start; margin-top: 0; }
.page-index .hero .hero-image { position: absolute; inset: 0; grid-column: 1/2; grid-row: 2/3; height: 100%; border-radius: 12px; object-position: center 58%; }
.page-index .hero-visit { position: relative; inset: auto; grid-column: 1/2; grid-row: 2/3; width: 270px; max-width: calc(100% - 32px); margin: 16px; padding: 18px; border-radius: 8px; background: #faf9f5f5; }
.page-index .hero-visit strong { margin-block: 8px 12px; font-size: 1.25rem; }
.page-index .hero-bottom { grid-row: 3; margin-top: 0; border-top: 0; padding-block: clamp(8px,1.5svh,18px); }
.hero h1 em { color: #617445; }

/* Inner pages share a light architectural frame around text and photography. */
.inner-hero { background: var(--sage); border: 1px solid #e0e5d8; border-radius: 12px; overflow: hidden; column-gap: 0; margin-block: 30px; }
.inner-hero > .wrap { padding-inline: clamp(28px,3.5vw,54px); align-self: center; }
.inner-hero .hero-main, .contact-hero .hero-main { padding-block: 44px; }
.inner-hero .hero-image, .contact-hero .hero-image { border-radius: 0; max-height: none; height: 100%; min-height: 390px; object-position: center; }
.inner-hero h1 { font-size: clamp(2.3rem,3.9vw,4.05rem); }
.breadcrumb { margin-bottom: 26px; }
.contact-territory { border-color: #cad3be; }

/* Three clear entry points, with room for translated labels. */
.route-index { padding-bottom: 12px; }
.route-grid { gap: 16px; border: 0; }
.route-link, .route-link:first-child, .route-link:last-child { grid-template-columns: minmax(0,1fr) 30px; gap: 20px 18px; padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; transition: background .2s, border-color .2s; }
.route-label { grid-column: 1; grid-row: 1; }
.route-link > div { grid-column: 1/-1; grid-row: 2; }
.route-link > .arrow { grid-column: 2; grid-row: 1; justify-self: end; }
.route-link strong { font-size: clamp(1.15rem,1.65vw,1.5rem); }
.route-link:is(:hover,:focus-visible) { background: #edf1e6; border-color: #8b9e77; }
.image-composition .main-photo { border-radius: 10px; }
.image-composition .inset-photo { border-width: 9px; border-radius: 10px; }
.image-note { padding-top: 22px; }
.intro-copy h2, .community-copy h2 { line-height: 1.15; }
/* The quotation sets the height; the portrait fills its own cropped panel. */
.quote-section { display: flex; flex-wrap: wrap; min-height: clamp(270px,24vw,340px); border: 1px solid #214d3f; border-radius: 12px; margin-bottom: clamp(76px,7.5vw,116px); }
.quote-copy { flex: 1.2 1 20rem; min-width: 0; min-height: 0; margin: 0; padding: clamp(30px,4vw,56px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 22px; }
.quote-copy::before { content: ''; width: 42px; height: 3px; flex-shrink: 0; background: var(--lime); border-radius: 2px; }
.quote-copy blockquote { min-width: 0; max-width: 100%; margin: 0; }
.quote-section p { font-weight: 500; font-size: clamp(2rem,3.2vw,3.3rem); line-height: 1.25; overflow-wrap: anywhere; text-wrap: balance; }
.quote-section .eyebrow { margin: 0; font-size: .8125rem; line-height: 1.6; }
.quote-visual { position: relative; flex: .8 1 13.333333rem; min-width: 0; min-height: clamp(180px,35vw,210px); overflow: hidden; }
.quote-photo { position: absolute; inset: 0; z-index: auto; width: 100%; height: 100%; min-height: 0; max-height: none; object-position: center 20%; }
.quote-visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,#102f272e,transparent 35%); }
.section-heading { align-items: end; margin-bottom: 46px; }
.section-heading h2 { line-height: 1.13; }

/* Products: an orderly display, natural tones and legible card labels. */
.products-section { background: var(--sage); border-block: 1px solid #dde3d4; }
.product-teasers { align-items: stretch; gap: 24px; }
.product-teasers .product-card { margin-block: 0; padding: 0; border: 1px solid #dbe0d3; border-radius: 10px; overflow: hidden; box-shadow: 0 9px 30px #17352906; }
.product-card-photo { border-radius: 0; background: #f8f6ef; border-bottom: 1px solid #e6e7dc; }
.product-card img { aspect-ratio: 1.28; }
.product-card-label { padding: 26px; gap: 18px; }
.product-card-label h3 { font-size: clamp(1.4rem,2vw,1.8rem); }
.product-card-label > .arrow { border: 0; color: white; background: var(--forest); border-radius: 6px; }
.product-summary { margin-top: 38px; padding-top: 30px; gap: clamp(30px,5vw,76px); }
.scout-section { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); margin-block: clamp(76px,7.5vw,116px); border-radius: 12px; }
.scout-copy { padding: clamp(32px,4.5vw,66px); }
.scout-copy .eyebrow { padding-bottom: 20px; border-bottom: 1px solid #ffffff30; }

/* Story, products and galleries retain every original photograph. */
.monastery-story { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.monastery-story > div:first-child { border-top: 2px solid #7c9164; padding-top: 24px; }
.story-copy .copy > p:first-child { padding: clamp(26px,3vw,44px); border: 1px solid #dae1d0; border-left: 4px solid #819466; border-radius: 0 10px 10px 0; background: #edf1e6; font-size: 1.1875rem; }
.story-copy .actions { gap: 12px; padding-top: 30px; border-top: 1px solid var(--line); }
.gallery-section { background: #edf0e6; }
.photo-grid { gap: 20px; }
.gallery-link { border-radius: 10px; }
.gallery-link .zoom { background: #faf9f5f5; color: var(--deep); border: 1px solid #ffffff80; border-radius: 6px; box-shadow: 0 3px 12px #102f271a; }
.gallery-link:is(:hover,:focus-visible) .zoom { background: var(--deep); color: white; }
.gallery-caption { border-top: 1px solid #ced7c2; padding-top: 20px; margin-top: 28px; }
.catalog-art { padding: 0; gap: 16px; background: transparent; }
.catalog-art img { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px; }
.catalog-art img:nth-child(even) { translate: 0 24px; }
.catalog-intro { padding-bottom: 24px; }
.product-detail { background: var(--paper); }
.product-detail:nth-of-type(even) { background: #f0f2e9; }
.detail-copy h2 { border-bottom: 1px solid #cfd8c5; padding-bottom: 26px; }
.detail-copy .copy > p:first-child { color: var(--ink); font-size: 1.1875rem; line-height: 1.7; }
.detail-images { gap: 20px; }
.detail-images .gallery-link img { aspect-ratio: 1.5; }
.catalog-gallery { gap: 20px; }
.catalog-gallery .gallery-link { padding: 18px; border-color: #dce2d3; border-radius: 10px; box-shadow: 0 6px 22px #17352905; }
.catalog-gallery img { mix-blend-mode: multiply; }
.purchase-section .section-heading { align-items: end; }
.purchase-card { border: 1px solid #dfe5d3; border-radius: 10px; padding: clamp(32px,4vw,58px); }
.purchase-kind { padding: 0; background: transparent; border-radius: 0; font-weight: 600; letter-spacing: .07em; }
.purchase-card h3 { margin-top: 38px; }
.purchase-card > .arrow { top: 30px; right: 30px; }
.purchase-card p { max-width: none; padding-top: 20px; border-top: 1px solid #d1dac7; }

/* A visible landscape above the map makes the visit section easier to scan. */
.community-section { background: #e9eddf; overflow-anchor: none; }
.community-copy { align-self: center; }
.map-panel { border: 1px solid #183c2e; border-radius: 12px; box-shadow: 0 14px 40px #1735290b; }
.map-preview > img { position: static; z-index: auto; height: 180px; object-position: center 54%; }
.map-preview::after { display: none; }
.map-intro { padding: clamp(26px,3vw,42px); }
.map-intro h3 { font-size: clamp(1.6rem,2.2vw,2rem); }
.map-load { scroll-margin-block: 16px; }
.map-stage { flex: 1; min-height: 430px; }
.map-caption { padding: 24px 30px; background: #173c30; }
.contact-call-panel, .contact-email-panel { border-radius: 12px; }
.contact-email-panel { box-shadow: 0 12px 30px #17352905; }
.contact-address-panel { border-radius: 10px; background: #e9eddf; }
.contact-intro h2 { line-height: 1.14; }
.directions details { border-radius: 10px; }
.site-footer { border-top: 4px solid #a8b991; padding-top: 80px; }
.footer-heading { padding-bottom: 44px; }
.footer-title { padding-bottom: 16px; border-bottom: 1px solid #ffffff26; }

@media (max-height:850px) {
  .detail-images, .monastery-story h2 { position: static; }
}
@media (max-width:1100px) and (min-width:761px) {
  .product-card-label { padding: 22px 18px; }
  .product-card-label > .arrow { width: 32px; height: 36px; }
  .route-link, .route-link:first-child, .route-link:last-child { padding: 24px; }
}
@media (max-width:1000px) {
  .route-grid { grid-template-columns: minmax(0,1fr); }
  .page-index .hero .hero-main { column-gap: 28px; }
  .page-index .hero-actions { gap: 10px 18px; }
  .page-index .hero-actions :is(.button,.text-link) { gap: 14px; min-height: 44px; padding-block: 10px; }
  .page-index .hero-visit { display: none; }
  .inner-hero > .wrap { padding-inline: 34px; }
  .inner-hero .hero-main, .contact-hero .hero-main { padding-block: 34px; }
  .inner-hero .hero-image, .contact-hero .hero-image { min-height: 0; height: clamp(260px,38vw,360px); }
  .inner-hero h1 { font-size: clamp(2.3rem,5.5vw,3.8rem); }
  .catalog-art { width: min(100%,620px); }
}
@media (max-width:760px) {
  .header-inner { min-height: 82px; }
  .section { padding-block: 64px; }
  .section-nav .wrap { min-height: 64px; }
  .section-nav-links { gap: 4px; }
  .section-nav a { padding-inline: 14px; }
  .page-index .hero { min-height: calc(100vh - var(--home-chrome-height,115px)); min-height: calc(100svh - var(--home-chrome-height,115px)); grid-template-rows: auto minmax(5rem,1fr) auto; }
  .page-index .hero .hero-main { grid-template-columns: minmax(0,1fr); gap: clamp(8px,1.6svh,16px); padding-block: clamp(12px,2svh,22px); }
  .page-index .hero h1 { grid-row: auto; font-size: clamp(1.5rem,min(7.8vw,5.1svh),3.25rem); line-height: 1.12; }
  .page-index .hero-description { grid-column: 1; grid-row: auto; font-size: 1rem; line-height: 1.45; }
  .page-index .hero-actions { grid-column: 1; grid-row: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: 12px; }
  .page-index .hero-actions :is(.button,.text-link) { width: 100%; min-height: 44px; padding: 8px 10px; gap: 8px; font-size: .875rem; line-height: 1.35; }
  .page-index .hero-actions .text-link { padding-inline: 0; }
  .page-index .hero .hero-image { height: 100%; border-radius: 8px; }
  .page-index .hero-bottom { padding-block: 6px; gap: 10px; font-size: .8125rem; line-height: 1.4; }
  .page-index .hero-place { gap: 2px; }
  .inner-hero { margin-block: 18px 24px; border-radius: 10px; }
  .inner-hero > .wrap { padding-inline: 24px; }
  .inner-hero .hero-main, .contact-hero .hero-main { padding-block: 28px; }
  .inner-hero h1 { font-size: clamp(2rem,7.5vw,3.2rem); }
  .inner-hero .hero-image, .contact-hero .hero-image { height: clamp(220px,52vw,300px); }
  .route-grid { gap: 10px; }
  .route-link, .route-link:first-child, .route-link:last-child { grid-template-columns: minmax(0,1fr) 22px; gap: 12px 14px; padding: 22px; }
  .route-link > div { grid-column: 1/-1; grid-row: 2; }
  .route-link > .arrow { grid-column: 2; grid-row: 1; }
  .route-link strong { font-size: 1.125rem; }
  .image-composition .inset-photo { border-width: 6px; }
  .quote-section { margin-bottom: 64px; border-radius: 10px; }
  .section-heading { align-items: start; margin-bottom: 32px; }
  .product-teasers { gap: 16px; }
  .product-teasers .product-card { padding: 12px; gap: 18px; }
  .product-card-photo { border: 0; border-radius: 6px; }
  .product-card img { aspect-ratio: .95; }
  .product-card-label { padding: 12px 8px 12px 0; gap: 8px; }
  .product-card-label h3 { font-size: 1.3rem; }
  .product-summary { gap: 22px; margin-top: 28px; padding-top: 26px; }
  .scout-section { grid-template-columns: minmax(0,1fr); margin-block: 64px; }
  .scout-copy { padding: 32px 26px 38px; }
  .monastery-story { grid-template-columns: minmax(0,1fr); }
  .monastery-story > div:first-child { padding-top: 20px; }
  .story-copy .copy > p:first-child { font-size: 1.125rem; padding: 26px; }
  .photo-grid, .catalog-gallery { gap: 12px; }
  .catalog-art { gap: 12px; }
  .catalog-art img { padding: 5px; }
  .catalog-art img:nth-child(even) { translate: 0 14px; }
  .catalog-intro { padding-bottom: 14px; }
  .detail-copy .copy > p:first-child { font-size: 1.125rem; }
  .detail-copy h2 { padding-bottom: 22px; }
  .detail-images { gap: 12px; }
  .detail-images .gallery-link img { aspect-ratio: 1.15; }
  .detail-images .gallery-link:only-child img { aspect-ratio: 1.5; }
  .catalog-gallery .gallery-link { padding: 10px; }
  .purchase-section .section-heading { align-items: start; }
  .purchase-card { padding: 28px 26px; }
  .purchase-kind { display: block; padding-right: 32px; font-size: .875rem; line-height: 1.6; }
  .purchase-card h3 { margin-top: 28px; }
  .purchase-card > .arrow { right: 24px; top: 29px; }
  .map-preview > img { height: 170px; }
  .map-intro { padding: 28px 25px; }
  .map-caption { padding: 22px 25px; }
  .map-stage { min-height: 350px; }
  .contact-hub { padding-top: 58px; }
  .site-footer { padding-top: 60px; }
}
@media (max-width:600px) {
  .quote-section { min-height: 0; }
  .quote-copy { flex-basis: 100%; padding: 30px 26px; gap: 18px; }
  .quote-section p { font-size: clamp(1.9rem,6.8vw,2.6rem); }
  .quote-visual { flex-basis: 100%; }
  .quote-photo { height: 100%; object-position: center 15%; }
  .quote-visual::after { background: linear-gradient(180deg,#102f272e,transparent 40%); }
}
@media (max-width:359px) {
  .inner-hero > .wrap { padding-inline: 20px; }
  .inner-hero h1 { font-size: 1.85rem; }
  .route-link, .route-link:first-child, .route-link:last-child { padding: 20px 16px; gap: 10px; }
  .product-teasers .product-card { gap: 12px; }
  .product-card-label h3 { font-size: 1.2rem; }
  .scout-copy, .quote-copy { padding-inline: 22px; }
  .story-copy .copy > p:first-child { padding-inline: 22px; }
}

/* Use the width of landscape phones instead of stacking a second screen of content. */
@media (max-height:680px) and (min-width:500px) and (orientation:landscape) {
  .page-index .topbar { display: none; }
  .page-index .header-inner { min-height: 64px; }
  .page-index .hero { min-height: calc(100vh - var(--home-chrome-height,65px)); min-height: calc(100svh - var(--home-chrome-height,65px)); grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); grid-template-rows: 1fr auto; column-gap: 20px; }
  .page-index .hero .hero-main { display: grid; grid-template-columns: minmax(0,1fr); gap: 4px; padding-block: 8px; align-content: center; }
  .page-index .hero-main > .eyebrow { font-size: .75rem; }
  .page-index .hero h1 { grid-row: auto; font-size: clamp(1.5rem,3.5vw,1.85rem); }
  .page-index .hero-description { grid-column: 1; grid-row: auto; font-size: 1rem; line-height: 1.35; }
  .page-index .hero-actions { grid-column: 1; grid-row: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-items: stretch; }
  .page-index .hero-actions :is(.button,.text-link) { width: 100%; min-height: 44px; padding: 6px 10px; gap: 8px; font-size: .875rem; line-height: 1.3; }
  .page-index .hero-actions .text-link { padding-inline: 0; }
  .page-index .hero .hero-image { grid-column: 2/3; grid-row: 1/2; inset-block: 10px; height: calc(100% - 20px); }
  .page-index .hero-bottom { grid-column: 1/-1; grid-row: 2; padding-block: 4px; font-size: .75rem; line-height: 1.4; }
  .page-index .hero-place { flex-direction: row; gap: 12px; }
  .page-index .hero-place span + span { padding-left: 12px; }
  .page-index .hero-bottom > a { min-height: 32px; }
  .page-index .hero-visit { display: none; }
}
/* Compact phones keep every introduction and action visible without shrinking body text. */
@media (max-width:760px) and (max-height:640px) {
  .page-index .topbar { display: none; }
  .page-index .header-inner { min-height: 64px; }
  .page-index .hero { min-height: calc(100vh - var(--home-chrome-height,65px)); min-height: calc(100svh - var(--home-chrome-height,65px)); }
  .page-index .hero .hero-main { padding-block: 8px; gap: 6px; }
  .page-index .hero h1 br, .page-index .hero-description br { display: none; }
  .page-index .hero-bottom > a { min-height: 32px; }
}
/* Very low landscape windows put the description and actions below the photo and title. */
@media (min-width:500px) and (max-width:760px) and (max-height:360px) {
  .page-index .hero { grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); grid-template-rows: auto auto auto auto auto; gap: 4px 16px; padding-top: 6px; }
  .page-index .hero .hero-main { display: contents; }
  .page-index .hero-main > .eyebrow { grid-column: 1; grid-row: 1; }
  .page-index .hero h1 { grid-column: 1; grid-row: 2; font-size: 1.5rem; align-self: start; }
  .page-index .hero .hero-image { grid-column: 2/3; grid-row: 1/3; inset: 0; height: 100%; }
  .page-index .hero-description { grid-column: 1/-1; grid-row: 3; }
  .page-index .hero-actions { grid-column: 1/-1; grid-row: 4; }
  .page-index .hero-bottom { grid-column: 1/-1; grid-row: 5; }
}
@media (min-width:761px) and (max-height:360px) {
  .page-index .hero h1 { font-size: 1.5rem; }
  .page-index .hero h1 br, .page-index .hero-description br { display: none; }
}
@media (max-height:750px) {
  .page-index .hero-visit { display: none; }
}

/* Let translated labels reflow at enlarged text sizes. */
.footer-heading { flex-wrap: wrap; }
.wordmark { max-width: 100%; overflow-wrap: anywhere; }
.header-inner { flex-wrap: wrap; row-gap: 8px; padding-block: 4px; }
@media (max-width:480px) {
  .header-inner { row-gap: 4px; padding-block: 4px; }
  .site-header .wordmark { flex: 0 0 100%; width: 100%; min-width: 0; max-width: 100%; min-height: 44px; justify-content: center; }
  .site-header .brand-logo { max-width: 360px; }
  .header-tools { width: 100%; justify-content: space-between; margin-left: 0; }
  .footer-heading .wordmark { padding: 14px 16px; }
  .page-index .hero { grid-template-rows: auto minmax(4.5rem,1fr) auto; }
}
@media (max-width:480px) and (max-height:560px) {
  .page-index .hero { grid-template-rows: auto minmax(2.5rem,1fr) auto; }
}
/* A single header row leaves more reading space; languages stay in the phone menu. */
@media (max-width:760px) {
  .site-header.has-menu-languages .header-inner { flex-wrap: nowrap; gap: 12px; min-height: 64px; padding-block: 8px; }
  .site-header.has-menu-languages .wordmark { flex: 1 1 0; width: auto; min-width: 0; max-width: 300px; min-height: 44px; justify-content: flex-start; }
  .site-header.has-menu-languages .brand-logo { max-width: 300px; }
  .site-header.has-menu-languages .header-tools { flex: 0 0 auto; width: auto; gap: 0; margin-left: auto; }
  .site-header.has-menu-languages .menu-toggle { width: 44px; height: 44px; }
  .site-header.has-menu-languages .main-nav { padding: 8px; border-radius: 12px; }
  .site-header.has-menu-languages .main-nav.is-open { gap: 3px; }
  .site-header.has-menu-languages .main-nav > a { min-height: 44px; padding: 10px 12px; font-size: 1rem; }
  .site-header.has-menu-languages .main-nav > .mobile-shop { margin-top: 4px; }
  .main-nav > .languages { flex: 0 0 auto; align-self: stretch; gap: 8px; padding: 4px; margin-top: 4px; }
  .main-nav > .languages a { flex: 1; min-width: 44px; min-height: 44px; }
  .section-nav .wrap { min-height: 52px; }
  .section-nav-links { padding-block: 4px; }
  .section-nav a { min-height: 44px; padding-inline: 12px; font-size: .875rem; }
}
.contact-phone-link strong { white-space: normal; overflow-wrap: anywhere; }
.button, .text-link { max-width: 100%; overflow-wrap: anywhere; }
.section-heading > * { min-width: 0; max-width: 100%; }
.eyebrow { overflow-wrap: anywhere; }
@media (max-width:480px) {
  .contact-hours li { flex-wrap: wrap; gap: 4px 12px; }
  .contact-hours li strong { white-space: normal; overflow-wrap: anywhere; }
}

/* Page-specific questions remain readable and usable without JavaScript. */
.faq-section { background: #f3f4ec; border-top: 1px solid var(--line); }
.faq-layout { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); align-items: start; gap: clamp(36px,5vw,76px); }
.faq-intro h2 { margin-bottom: 24px; }
.faq-intro > .copy { max-width: 44ch; font-size: 1.0625rem; }
.faq-intro > .text-link { margin-top: 24px; }
.faq-list { min-width: 0; }
.faq-item { background: white; border: 1px solid var(--line); border-radius: 10px; }
.faq-item + .faq-item { margin-top: 12px; }
.faq-item[open] { border-color: #8b9e77; }
.faq-item summary { display: block; padding: 24px 28px; cursor: pointer; list-style: none; border-radius: 9px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-item summary:is(:hover,:focus-visible) { background: #edf1e6; }
.faq-question { display: grid; grid-template-columns: minmax(0,1fr) 1.625rem; align-items: center; gap: 18px; font: 650 clamp(1.0625rem,1.2vw,1.1875rem)/1.5 var(--display); letter-spacing: -.015em; text-wrap: pretty; }
.faq-question > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.faq-icon { position: relative; width: 1.625rem; height: 1.625rem; color: var(--forest); }
.faq-icon::before, .faq-icon::after { content: ''; position: absolute; top: 50%; left: 50%; width: .875rem; height: 2px; background: currentColor; transform: translate(-50%,-50%); }
.faq-icon::after { transform: translate(-50%,-50%) rotate(90deg); }
.faq-item[open] .faq-icon::after { display: none; }
.faq-answer { padding: 0 28px 26px; font-size: 1rem; line-height: 1.75; }
.footer-faq { margin-bottom: 18px; }
.footer-faq > a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width:1000px) {
  .faq-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .faq-intro > .copy { max-width: 60ch; }
}
@media (max-width:480px) {
  .faq-item summary { padding: 20px 18px; }
  .faq-question { gap: 12px; }
  .faq-answer { padding: 0 18px 22px; }
}

/* Long-form copy: readable line lengths, distinct introductions and unhurried paragraphs. */
@media screen {
  .copy.reading-copy { max-width: 62ch; font-size: clamp(1.0625rem,1rem + .14vw,1.125rem); line-height: 1.8; text-align: start; text-wrap: pretty; }
  .copy.reading-copy > p + p { margin-block-start: 1.25em; }
  .copy.reading-copy > p.reading-lead { margin-block: 0 1.6rem; padding-inline-start: clamp(16px,2vw,24px); border-inline-start: 3px solid #8b9e77; color: var(--ink); font-size: clamp(1.125rem,1.05rem + .25vw,1.3125rem); font-weight: 500; line-height: 1.65; }
  .copy.reading-copy > p.reading-note { padding: clamp(16px,2vw,24px); border: 1px solid #d2dac7; border-radius: 10px; background: #ffffff70; color: var(--ink); font-size: 1rem; line-height: 1.75; }
  .story-copy .copy.reading-copy > p.reading-lead { padding: clamp(20px,3vw,32px); font-weight: 400; }
  .scout-copy .copy.reading-copy { color: #e0eadc; }
}

@media print {
  .directions-intro.is-sticky { position: static; }
  .site-footer::after { display: none; }
  .site-header, .topbar, .section-nav, .menu-backdrop, .hero-visit, .lightbox, .map-load, .back-to-top { display: none !important; }
  body { background: white; color: black; font-size: 11pt; }
  .wrap { width: 100%; }
  .section { padding-block: 24px; }
  .hero, .inner-hero { display: block; width: 100%; min-height: 0; background: white; color: black; }
  .page-index .hero { min-height: 0; }
  .hero::before, .hero-image, .hero-bottom { display: none; }
  .hero .hero-main, .inner-hero .hero-main { padding-block: 28px; }
  .hero h1, .inner-hero h1 { font-size: 30pt; }
  .hero h1 em { color: #214d3f; }
  .site-footer { background: white; color: black; border-top: 1px solid #aaa; }
  .purchase-card, .product-card { break-inside: avoid; }
}
