@import url('acv-home.css');

body.acv-site {
  min-height: 100vh;
  background: var(--acv-cream);
}

.acv-site .acv-site-header { position: sticky; top: 0; background: var(--acv-forest); }
.acv-site .acv-header-inner { min-height: 82px; }
.acv-site .acv-navigation { z-index: 20; }

.acv-page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4.2rem, 8vw, 7rem) 0 clamp(4.7rem, 8vw, 7.6rem);
  background: var(--acv-forest);
  color: #fff;
}

.acv-page-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,44,30,.97) 0%, rgba(5,44,30,.9) 48%, rgba(5,44,30,.77) 100%), url('../images/coffee_team_bg.jpg') 65% 52% / cover no-repeat; }
.acv-page-hero .acv-shell { position: relative; z-index: 1; }
.acv-page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr); gap: clamp(2rem, 7vw, 7.5rem); align-items: center; }
.acv-page-hero-copy { position: relative; z-index: 1; }
.acv-page-hero h1 { max-width: 11ch; margin: 0; font-family: var(--acv-display); font-size: clamp(3rem, 6vw, 5.65rem); font-weight: 600; letter-spacing: -.04em; line-height: .97; }
.acv-page-hero p { max-width: 57ch; margin: 1.25rem 0 0; color: rgba(255,255,255,.76); font-size: 1.02rem; }

.acv-page-hero-visual { position: relative; justify-self: end; width: min(100%, 445px); height: clamp(310px, 29vw, 430px); isolation: isolate; }
.acv-page-hero-visual::before { content: ''; position: absolute; z-index: -1; inset: 1.5rem 1.65rem 0 0; border: 1px solid rgba(255,255,255,.2); border-radius: 30px 30px 104px 30px; transform: translate(-1.15rem, 1.15rem); }
.acv-page-hero-photo { position: absolute; margin: 0; overflow: hidden; box-shadow: 0 20px 44px rgba(1,27,17,.32); }
.acv-page-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acv-page-hero-photo--main { inset: 0 0 2.25rem 2.7rem; border-radius: 30px 30px 110px 30px; }
.acv-page-hero-photo--main img { object-position: 50% 57%; }
.acv-page-hero-photo--detail { bottom: 0; left: 0; width: 44%; height: 45%; border: 6px solid var(--acv-forest); border-radius: 23px 23px 23px 4px; }
.acv-page-hero-photo--detail img { object-position: 50% 43%; }
.acv-page-hero--experience .acv-page-hero-photo--main img { object-position: 47% 48%; }
.acv-page-hero--gallery .acv-page-hero-photo--main img { object-position: 56% 62%; }
.acv-page-hero--contact .acv-page-hero-photo--main img { object-position: 43% 55%; }

@keyframes acv-page-hero-heading-arrive {
  from { opacity: 0; transform: translateY(.9rem); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes acv-page-hero-photo-unfurl {
  from { opacity: .2; clip-path: inset(0 0 100% 0 round 30px 30px 110px 30px); transform: translateY(1.25rem) scale(1.035); }
  to { opacity: 1; clip-path: inset(0 0 0 0 round 30px 30px 110px 30px); transform: translateY(0) scale(1); }
}

@keyframes acv-page-hero-detail-arrive {
  from { opacity: 0; clip-path: inset(16% 0 84% 0 round 23px 23px 23px 4px); transform: translate(-.8rem, 1rem) rotate(-2deg); }
  to { opacity: 1; clip-path: inset(0 0 0 0 round 23px 23px 23px 4px); transform: translate(0) rotate(0); }
}

@media (prefers-reduced-motion: no-preference) {
  .acv-site .acv-page-hero h1 { animation: acv-page-hero-heading-arrive .58s var(--acv-ease-out) .04s both; }
  .acv-site .acv-page-hero p { animation: acv-page-hero-heading-arrive .5s var(--acv-ease-out) .15s both; }
  .acv-site .acv-page-hero-photo--main { animation: acv-page-hero-photo-unfurl .72s var(--acv-ease-out) .08s both; transform-origin: 50% 100%; }
  .acv-site .acv-page-hero-photo--detail { animation: acv-page-hero-detail-arrive .58s var(--acv-ease-out) .3s both; transform-origin: 50% 100%; }
}

.acv-page-main { padding: var(--acv-space) 0; }
.acv-page-main--paper { background: var(--acv-paper); }
.acv-page-main--forest { position: relative; isolation: isolate; background: linear-gradient(rgba(5,44,30,.92), rgba(5,44,30,.94)), url('../images/coffee_counter_bg.jpg') center / cover no-repeat; color: #fff; }
.acv-page-main--forest .acv-shell, .acv-page-main--roast .acv-shell { position: relative; z-index: 1; }
.acv-page-main--roast { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(90deg, rgba(5,44,30,.96) 0%, rgba(5,44,30,.89) 58%, rgba(5,44,30,.78) 100%), url('../images/coffee_shop_bg.jpg') 66% center / cover no-repeat; color: #fff; }
.acv-page-main--roast::after { content: ''; position: absolute; right: clamp(1rem, 5vw, 5rem); bottom: -4rem; width: min(22vw, 19rem); height: min(29vw, 25rem); background: url('../images/banner_coffee_bag.png') center bottom / contain no-repeat; opacity: .19; pointer-events: none; }
.acv-page-main--forest h2, .acv-page-main--forest h3 { color: #fff; }
.acv-page-main--roast h2 { color: #fff; }

.acv-section-title { max-width: 13ch; margin: 0; color: var(--acv-forest-deep); font-family: var(--acv-display); font-size: clamp(2.35rem, 4.5vw, 4.5rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.01; }
.acv-page-main--forest .acv-section-title { color: #fff; }
.acv-page-main--roast .acv-section-title { color: #fff; }
.acv-section-intro { max-width: 52ch; margin: 1.35rem 0 0; color: var(--acv-muted); }
.acv-page-main--forest .acv-section-intro { color: rgba(255,255,255,.7); }
.acv-page-main--roast .acv-section-intro { color: rgba(255,255,255,.75); }

.acv-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: clamp(3rem, 9vw, 9rem); align-items: center; }
.acv-split--reverse { grid-template-columns: minmax(320px, .9fr) minmax(0, 1fr); }
.acv-split--reverse > :first-child { order: 2; }
.acv-split--reverse > :last-child { order: 1; }

.acv-prose { max-width: 67ch; }
.acv-prose p { margin: 0 0 1.05rem; color: var(--acv-muted); }
.acv-prose p:last-child { margin-bottom: 0; }
.acv-page-main--forest .acv-prose p { color: rgba(255,255,255,.72); }
.acv-page-main--roast .acv-prose p { color: rgba(255,255,255,.76); }
.acv-page-main--roast .acv-media figcaption { color: rgba(255,255,255,.68); }
.acv-page-main--roast .acv-button--dark, .acv-availability--roast .acv-button--dark { background: var(--acv-terracotta); color: var(--acv-forest-deep); }
.acv-page-main--roast .acv-button--dark:hover, .acv-availability--roast .acv-button--dark:hover { background: #f18c3a; color: var(--acv-forest-deep); }
.acv-prose a { color: var(--acv-forest); text-decoration: underline; text-decoration-color: var(--acv-terracotta); text-decoration-thickness: 2px; text-underline-offset: .23em; }

.acv-media { margin: 0; }
.acv-media img { width: 100%; height: min(52vw, 540px); object-fit: cover; box-shadow: var(--acv-shadow); }
.acv-media--tall img { height: min(58vw, 625px); }
.acv-media--a img { border-radius: 32px 32px 118px 32px; }
.acv-media--b img { border-radius: 110px 32px 32px 32px; }
.acv-media--c img { border-radius: 32px 112px 32px 32px; }
.acv-media figcaption { max-width: 31ch; margin: .9rem 0 0; color: var(--acv-muted); font-size: .87rem; }

.acv-rule-list { margin: 2rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--acv-line); }
.acv-rule-list li { display: grid; grid-template-columns: minmax(105px, .32fr) 1fr; gap: 1rem; padding: 1.05rem 0; border-bottom: 1px solid var(--acv-line); color: var(--acv-muted); }
.acv-rule-list strong { color: var(--acv-forest); font-family: var(--acv-display); font-size: 1.4rem; line-height: 1.1; }
.acv-page-main--forest .acv-rule-list { border-color: rgba(255,255,255,.2); }
.acv-page-main--forest .acv-rule-list li { border-color: rgba(255,255,255,.2); color: rgba(255,255,255,.68); }
.acv-page-main--forest .acv-rule-list strong { color: #fff; }

.acv-block-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 3rem; border-top: 1px solid rgba(255,255,255,.24); }
.acv-block-item { min-height: 180px; padding: 1.55rem 1.4rem 1.7rem; border-right: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); }
.acv-block-item:nth-child(3n) { border-right: 0; }
.acv-block-item h3 { margin: 0 0 .45rem; font-family: var(--acv-display); font-size: 1.78rem; font-weight: 600; }
.acv-block-item p { margin: 0; color: rgba(255,255,255,.68); font-size: .93rem; }

.acv-purpose { display: grid; grid-template-columns: minmax(280px, .86fr) minmax(360px, 1.14fr); gap: clamp(3rem, 10vw, 10rem); align-items: start; }
.acv-purpose .acv-section-intro { margin-bottom: 0; }
.acv-purpose-statements { border-top: 1px solid var(--acv-line); }
.acv-purpose-statement { padding: 1.5rem 0 1.65rem; border-bottom: 1px solid var(--acv-line); }
.acv-purpose-statement h3 { margin: 0; color: var(--acv-forest); font-family: var(--acv-display); font-size: clamp(1.8rem, 3vw, 2.55rem); font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.acv-purpose-statement p { max-width: 41ch; margin: .75rem 0 0; color: var(--acv-muted); font-size: 1.02rem; }

.acv-experience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 3vw, 2.75rem); margin-top: 3.5rem; }
.acv-experience { padding-top: 1.3rem; border-top: 1px solid var(--acv-line); }
.acv-experience img { width: 100%; height: 245px; margin-bottom: 1.25rem; border-radius: 18px; object-fit: cover; }
.acv-experience h3 { margin: 0 0 .55rem; color: var(--acv-forest); font-family: var(--acv-display); font-size: 1.8rem; letter-spacing: -.025em; }
.acv-experience p { margin: 0; color: var(--acv-muted); }

.acv-gallery-showcase { margin-top: clamp(2.5rem, 5vw, 4.4rem); border-top: 1px solid var(--acv-line); }
.acv-gallery-stage-head { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; padding: 1.15rem 0 .95rem; color: var(--acv-forest); }
.acv-gallery-stage-head > p { margin: 0; }
.acv-gallery-stage-head > p:first-child { font-family: var(--acv-display); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 600; letter-spacing: -.025em; }
.acv-gallery-count { flex: none; color: var(--acv-muted); font-size: .82rem; font-variant-numeric: tabular-nums; }
.acv-gallery-count strong { color: var(--acv-rust); font-size: 1rem; }
.acv-gallery-stage { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(230px, .55fr); height: min(46vw, 530px); min-height: 0; overflow: hidden; border-radius: 30px 30px 112px 30px; background: var(--acv-forest-deep); box-shadow: var(--acv-shadow); }
.acv-gallery-feature { position: relative; min-height: 100%; padding: 0; overflow: hidden; border: 0; background: #102b20; color: #fff; cursor: zoom-in; text-align: left; }
.acv-gallery-feature img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acv-gallery-feature span { position: absolute; right: 1rem; bottom: 1rem; padding: .55rem .7rem; background: rgba(5,44,30,.88); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: 0; transform: translateY(.35rem); transition: opacity .2s ease, transform .2s var(--acv-ease-out); }
.acv-gallery-feature:hover span, .acv-gallery-feature:focus-visible span { opacity: 1; transform: translateY(0); }
.acv-gallery-feature.is-changing img { animation: acv-gallery-photo-develop .62s var(--acv-ease-out); }
.acv-gallery-details { display: flex; flex-direction: column; justify-content: flex-end; gap: 2rem; padding: clamp(1.5rem, 3vw, 2.7rem); background: linear-gradient(155deg, rgba(146,167,78,.18), transparent 48%), var(--acv-forest); color: #fff; }
.acv-gallery-details > p { max-width: 25ch; margin: 0; color: rgba(255,255,255,.76); font-size: 1rem; line-height: 1.6; }
.acv-gallery-controls, .acv-gallery-lightbox-controls { display: flex; flex-wrap: wrap; gap: .6rem; }
.acv-gallery-controls button, .acv-gallery-lightbox button { min-height: 38px; padding: .55rem .75rem; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; background: transparent; color: #fff; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.acv-gallery-controls button:hover, .acv-gallery-controls button:focus-visible, .acv-gallery-lightbox button:hover, .acv-gallery-lightbox button:focus-visible { border-color: var(--acv-terracotta); background: var(--acv-terracotta); color: var(--acv-forest-deep); }
.acv-gallery-rail { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, 82px); grid-auto-columns: clamp(100px, 13vw, 160px); gap: .65rem; margin-top: 1rem; padding: 0 0 .65rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline proximity; scrollbar-color: var(--acv-rust) var(--acv-paper); }
.acv-gallery-rail button { position: relative; padding: 0; overflow: hidden; border: 0; border-radius: 12px; background: var(--acv-forest-deep); cursor: pointer; scroll-snap-align: start; }
.acv-gallery-rail img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .73; transition: opacity .2s ease, transform .32s var(--acv-ease-out); }
.acv-gallery-rail button:hover img, .acv-gallery-rail button:focus-visible img, .acv-gallery-rail button.is-active img { opacity: 1; transform: scale(1.06); }
.acv-gallery-rail button.is-active::after { content: ''; position: absolute; inset: 0; border: 3px solid var(--acv-terracotta); border-radius: inherit; pointer-events: none; }
.acv-gallery-rail button:focus-visible { outline: 3px solid var(--acv-forest); outline-offset: 3px; }
.acv-gallery-lightbox { width: min(94vw, 1120px); max-width: none; max-height: 94vh; padding: 0; overflow: visible; border: 0; background: transparent; color: #fff; }
.acv-gallery-lightbox::backdrop { background: rgba(2,19,12,.89); backdrop-filter: blur(5px); }
.acv-gallery-lightbox-inner { position: relative; }
.acv-gallery-lightbox figure { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .38fr); max-height: 82vh; margin: 0; overflow: hidden; border-radius: 20px; background: var(--acv-forest); box-shadow: 0 24px 70px rgba(0,0,0,.45); }
.acv-gallery-lightbox figure > img { width: 100%; height: min(75vh, 720px); object-fit: contain; background: #061d14; }
.acv-gallery-lightbox figcaption { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.4rem, 4vw, 3rem); background: linear-gradient(150deg, rgba(146,167,78,.17), transparent 48%), var(--acv-forest); }
.acv-gallery-lightbox h2 { margin: 0; color: #fff; font-family: var(--acv-display); font-size: clamp(1.9rem, 3.4vw, 3.1rem); font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.acv-gallery-lightbox figcaption p { margin: 1rem 0 0; color: rgba(255,255,255,.75); line-height: 1.6; }
.acv-gallery-lightbox-close { position: absolute; z-index: 1; top: .8rem; right: .8rem; }
.acv-gallery-lightbox-controls { justify-content: center; margin-top: .85rem; }
@keyframes acv-gallery-photo-develop { from { clip-path: inset(0 100% 0 0); filter: saturate(.78) brightness(.82); transform: scale(1.035); } to { clip-path: inset(0 0 0 0); filter: saturate(1) brightness(1); transform: scale(1); } }

.acv-updates-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem) clamp(1.15rem, 3vw, 2.2rem); margin-top: clamp(2.8rem, 5vw, 4.5rem); }
.acv-update-index-entry { display: flex; flex-direction: column; min-width: 0; padding-top: 1.1rem; border-top: 1px solid var(--acv-line); }
.acv-update-index-entry:first-child { grid-column: span 2; }
.acv-update-index-entry figure { margin: 0 0 1.3rem; overflow: hidden; }
.acv-update-index-entry figure img { width: 100%; height: 250px; object-fit: cover; transition: transform .45s var(--acv-ease-out), filter .3s ease; }
.acv-update-index-entry:first-child figure img { height: 360px; }
.acv-update-index-entry:nth-child(3n + 1) figure { border-radius: 28px 28px 92px 28px; }
.acv-update-index-entry:nth-child(3n + 2) figure { border-radius: 88px 28px 28px 28px; }
.acv-update-index-entry:nth-child(3n) figure { border-radius: 28px 88px 28px 28px; }
.acv-update-index-entry:hover figure img, .acv-update-index-entry:focus-within figure img { transform: scale(1.04); filter: saturate(1.08); }
.acv-update-index-entry h2 { margin: 0; color: var(--acv-forest); font-family: var(--acv-display); font-size: clamp(1.75rem, 2.6vw, 2.45rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.02; }
.acv-update-index-entry:not(:first-child) h2 { font-size: clamp(1.55rem, 2.1vw, 1.9rem); }
.acv-update-index-entry h2 a:hover, .acv-update-index-entry h2 a:focus-visible { color: var(--acv-rust); }
.acv-update-index-entry p { margin: .75rem 0 0; color: var(--acv-muted); }
.acv-update-index-entry .acv-text-link { display: inline-block; margin-top: 1rem; color: var(--acv-forest); font-size: .78rem; font-weight: 700; letter-spacing: .055em; text-decoration: underline; text-decoration-color: var(--acv-terracotta); text-decoration-thickness: 2px; text-underline-offset: .28em; text-transform: uppercase; }
.acv-update-reading { grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr); }
.acv-update-reading .acv-article-content { max-width: 720px; }
.acv-update-reading .acv-article-content > .acv-update-lead { color: var(--acv-forest); font-size: clamp(1.2rem, 2vw, 1.48rem); font-weight: 500; line-height: 1.55; }
.acv-update-reading .acv-media { margin: 2.4rem 0; }
.acv-update-reading .acv-media img { height: min(57vw, 520px); }
.acv-update-aside { align-self: start; padding: 1.45rem; border-radius: 15px; background: var(--acv-paper); }
.acv-update-aside strong { display: block; color: var(--acv-forest); font-family: var(--acv-display); font-size: 1.5rem; line-height: 1.05; }
.acv-update-aside p { margin: .7rem 0 0; color: var(--acv-muted); font-size: .92rem; }
.acv-update-aside .acv-text-link { display: inline-block; margin-top: 1rem; color: var(--acv-forest); font-size: .75rem; font-weight: 700; letter-spacing: .055em; text-decoration: underline; text-decoration-color: var(--acv-terracotta); text-decoration-thickness: 2px; text-underline-offset: .28em; text-transform: uppercase; }

.acv-contact-grid { display: grid; grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr); gap: clamp(2.4rem, 9vw, 9rem); align-items: start; }
.acv-contact-list { margin: 2rem 0 0; padding: 0; list-style: none; }
.acv-contact-list li { padding: 1.05rem 0; border-top: 1px solid var(--acv-line); }
.acv-contact-list strong { display: block; color: var(--acv-forest); font-family: var(--acv-display); font-size: 1.35rem; font-weight: 600; }
.acv-contact-list span, .acv-contact-list a { color: var(--acv-muted); font-size: .95rem; }
.acv-form { padding: clamp(1.35rem, 3.5vw, 2.5rem); background: var(--acv-paper); border-radius: 24px 24px 24px 4px; box-shadow: 0 18px 40px rgba(0,0,0,.08); }
.acv-form h2 { margin: 0; color: var(--acv-forest); font-family: var(--acv-display); font-size: 2.2rem; line-height: 1; }
.acv-form p { margin: .8rem 0 1.5rem; color: var(--acv-muted); }
.acv-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.acv-form label { display: grid; gap: .4rem; color: var(--acv-forest); font-size: .77rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.acv-form input, .acv-form textarea { width: 100%; min-height: 50px; padding: .75rem .85rem; border: 1px solid var(--acv-line); border-radius: 10px; background: #fffdf8; color: var(--acv-ink); font: inherit; }
.acv-form textarea { min-height: 144px; resize: vertical; }
.acv-form .acv-field-full { grid-column: 1 / -1; }
.acv-form .acv-button { margin-top: 1.25rem; }

.acv-availability { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .7fr); gap: clamp(2rem, 8vw, 8rem); align-items: center; padding: clamp(2rem, 5vw, 4.5rem); background: var(--acv-paper); border-radius: 30px 30px 110px 30px; }
.acv-availability h2 { margin: 0; color: var(--acv-forest); font-family: var(--acv-display); font-size: clamp(2.5rem, 4.5vw, 4.2rem); line-height: 1; letter-spacing: -.04em; }
.acv-availability p { max-width: 45ch; margin: 1.1rem 0 0; color: var(--acv-muted); }
.acv-availability img { width: 100%; height: 270px; border-radius: 20px; object-fit: cover; }
.acv-availability--roast { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(90deg, rgba(5,44,30,.96), rgba(5,44,30,.8)), url('../images/coffee_team_bg.jpg') center / cover no-repeat; color: #fff; }
.acv-availability--roast > * { position: relative; z-index: 1; }
.acv-availability--roast::after { content: ''; position: absolute; z-index: 0; right: 29%; bottom: -3.7rem; width: 15rem; height: 17rem; background: url('../images/coffee_bag2.png') center bottom / contain no-repeat; opacity: .24; pointer-events: none; }
.acv-availability--roast h2 { color: #fff; }
.acv-availability--roast p { color: rgba(255,255,255,.76); }

.acv-map { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(390px, 1.28fr); gap: clamp(3rem, 9vw, 9rem); align-items: center; }
.acv-map .acv-section-intro { max-width: 34ch; }
.acv-map .acv-button { margin-top: .55rem; }
.acv-map-frame { min-height: 380px; overflow: hidden; border-radius: 32px 32px 32px 110px; box-shadow: var(--acv-shadow); }
.acv-map-frame iframe { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; }

.acv-journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.acv-journal-entry { display: flex; flex-direction: column; min-height: 100%; padding-bottom: 1.4rem; border-bottom: 1px solid var(--acv-line); }
.acv-journal-entry img { width: 100%; height: 245px; margin-bottom: 1.25rem; border-radius: 18px; object-fit: cover; }
.acv-journal-entry h2 { margin: 0; color: var(--acv-forest); font-family: var(--acv-display); font-size: 2rem; font-weight: 600; line-height: 1.04; }
.acv-journal-entry p { margin: .9rem 0 1.1rem; color: var(--acv-muted); }
.acv-text-link { margin-top: auto; color: var(--acv-forest); font-size: .8rem; font-weight: 700; letter-spacing: .055em; text-decoration: underline; text-decoration-color: var(--acv-terracotta); text-decoration-thickness: 2px; text-underline-offset: .28em; text-transform: uppercase; }
.acv-article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr); gap: clamp(2rem, 8vw, 8rem); }
.acv-article-content { max-width: 68ch; }
.acv-article-content > p { color: var(--acv-muted); font-size: 1.08rem; }
.acv-article-content h2 { margin: 2.3rem 0 .9rem; color: var(--acv-forest); font-family: var(--acv-display); font-size: 2.2rem; line-height: 1; }
.acv-article-aside { align-self: start; padding: 1.45rem; border-radius: 15px; background: var(--acv-paper); }
.acv-article-aside strong { display: block; color: var(--acv-forest); font-family: var(--acv-display); font-size: 1.5rem; line-height: 1.05; }
.acv-article-aside p { margin: .65rem 0 0; color: var(--acv-muted); font-size: .9rem; }

.acv-empty { max-width: 760px; margin: 0 auto; padding: clamp(3rem, 8vw, 7rem) 0; text-align: center; }
.acv-empty .acv-section-title { max-width: none; }
.acv-empty p { max-width: 49ch; margin: 1.4rem auto 2rem; color: var(--acv-muted); }
.acv-empty-mark { margin-bottom: 1.1rem; color: var(--acv-rust); font-family: var(--acv-display); font-size: clamp(5rem, 14vw, 11rem); font-weight: 600; letter-spacing: -.08em; line-height: .72; }

.acv-site-footer { margin-top: 0; }

@media (max-width: 900px) {
  .acv-site .acv-navigation { top: 82px; }
  .acv-page-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(245px, .67fr); gap: clamp(1.5rem, 4vw, 3.2rem); }
  .acv-page-hero-visual { width: min(100%, 365px); height: clamp(300px, 38vw, 390px); }
  .acv-split, .acv-split--reverse, .acv-contact-grid, .acv-availability, .acv-article, .acv-purpose, .acv-map, .acv-update-reading { grid-template-columns: 1fr; }
  .acv-split--reverse > :first-child, .acv-split--reverse > :last-child { order: initial; }
  .acv-media img, .acv-media--tall img { height: min(90vw, 580px); }
  .acv-block-grid, .acv-experience-grid, .acv-journal-grid { grid-template-columns: 1fr 1fr; }
  .acv-block-item:nth-child(3n) { border-right: 1px solid rgba(255,255,255,.24); }
  .acv-block-item:nth-child(2n) { border-right: 0; }
  .acv-gallery-stage { grid-template-columns: minmax(0, 1.2fr) minmax(215px, .8fr); height: min(57vw, 530px); }
  .acv-gallery-details { gap: 1.25rem; }
  .acv-updates-index { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .acv-site .acv-navigation { top: 76px; }
  .acv-page-hero { padding: 3.7rem 0 3.8rem; }
  .acv-page-hero-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .acv-page-hero-visual { justify-self: start; width: min(100%, 380px); height: min(98vw, 410px); }
  .acv-page-hero h1 { font-size: clamp(3rem, 14vw, 4.45rem); }
  .acv-page-hero p { font-size: .95rem; }
  .acv-section-title { font-size: clamp(2.3rem, 11vw, 3.4rem); }
  .acv-rule-list li { grid-template-columns: 1fr; gap: .35rem; }
  .acv-block-grid, .acv-experience-grid, .acv-journal-grid { grid-template-columns: 1fr; }
  .acv-block-item, .acv-block-item:nth-child(2n), .acv-block-item:nth-child(3n) { min-height: auto; border-right: 0; }
  .acv-form-grid { grid-template-columns: 1fr; }
  .acv-form .acv-field-full { grid-column: auto; }
  .acv-gallery-stage-head { align-items: flex-end; gap: 1rem; }
  .acv-gallery-stage-head > p:first-child { max-width: 15ch; }
  .acv-gallery-stage { grid-template-columns: 1fr; grid-template-rows: minmax(310px, 95vw) auto; height: auto; min-height: 0; border-radius: 22px 22px 74px 22px; }
  .acv-gallery-details { gap: 1.35rem; padding: 1.4rem 1.35rem 1.6rem; }
  .acv-gallery-details > p { max-width: 36ch; }
  .acv-gallery-rail { grid-template-rows: repeat(2, 70px); grid-auto-columns: 112px; gap: .55rem; margin-top: .7rem; }
  .acv-gallery-lightbox { width: min(96vw, 560px); }
  .acv-gallery-lightbox figure { display: block; max-height: 88vh; border-radius: 16px; }
  .acv-gallery-lightbox figure > img { width: 100%; height: min(58vh, 560px); }
  .acv-gallery-lightbox figcaption { padding: 1.35rem 1.25rem; }
  .acv-gallery-lightbox figcaption p { margin-top: .7rem; font-size: .92rem; }
  .acv-updates-index { grid-template-columns: 1fr; gap: 2.1rem; }
  .acv-update-index-entry:first-child { grid-column: auto; }
  .acv-update-index-entry:first-child figure img, .acv-update-index-entry figure img { height: min(92vw, 390px); }
  .acv-availability { padding: 1.5rem; border-radius: 22px 22px 75px 22px; }
  .acv-availability img { height: 210px; }
  .acv-page-main--roast::after, .acv-availability--roast::after { display: none; }
}
