:root {
  --pine: #203b34;
  --deep: #172c28;
  --sage: #7d927f;
  --cream: #f4f2eb;
  --paper: #fbfaf6;
  --ink: #273630;
  --muted: #617069;
  --line: #d7dcd1;
  --gold: #bd9c5c;
  --header-height: 94px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 'DM Sans', Arial, sans-serif; }
a { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, .serif { font-family: 'Libre Baskerville', Georgia, serif; font-weight: 400; line-height: 1.2; }
h2 { font-size: clamp(2rem, 3.6vw, 3.5rem); letter-spacing: -.035em; }
h3 { font-size: 1.35rem; line-height: 1.3; }
p { max-width: 65ch; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.wrap { width: min(1260px, calc(100% - 64px)); margin-inline: auto; }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 700; color: var(--gold); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; max-width: 100%; padding: 13px 20px; border: 1px solid currentColor; text-decoration: none; text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; font-weight: 700; transition: background .2s, color .2s; }
.button:hover, .button:focus-visible { background: var(--gold); border-color: var(--gold); color: var(--deep); }
.arrow { font-size: 1.15rem; line-height: 1; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 20px; padding: 12px 18px; background: var(--paper); color: var(--deep); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

/* A stable banner keeps the full wordmark and navigation readable while scrolling. */
.nav { position: fixed; z-index: 50; inset: 0 0 auto; background: #102a27; color: #fff; border-bottom: 1px solid #ffffff24; }

/* Three decorative clumps frame the header brand. */
.banner-grass { position: absolute; z-index: -1; inset: auto 0 0; height: 30px; opacity: .85; pointer-events: none; }
.grass-clump { position: absolute; bottom: 0; height: 100%; background-position: center bottom; background-size: contain; background-repeat: no-repeat; }
.grass-clump--left { left: max(0px,calc(var(--banner-brand-left,32px) - 80px)); width: max(12px,min(67.5px,calc(var(--banner-brand-left,32px) - 10px))); background-image: url('banner-clump-left.svg'); }
.grass-clump--right-one { left: calc(var(--banner-brand-right,250px) + 16px); width: 37.5px; background-image: url('banner-clump-right-one.svg'); }
.grass-clump--right-two { left: calc(var(--banner-brand-right,250px) + 82px); width: 53.75px; background-image: url('banner-clump-right-two.svg'); }
.banner-grass::after { content: ''; position: absolute; inset: auto 0 0; height: 1.2px; background: #f7c600; }
@media (max-width: 760px) {
  .banner-grass { height: 17px; opacity: .8; }
  .grass-clump--right-one { width: 21.25px; }
  .grass-clump--right-two { left: calc(var(--banner-brand-right,200px) + 62px); width: 30.46px; }
}

/* Golden reeds and grasses, as selected for the main banner. */
.banner-reeds { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; mask-image:linear-gradient(90deg,transparent 25%,#000 55%); -webkit-mask-image:linear-gradient(90deg,transparent 25%,#000 55%); }
.banner-reeds-fade { position: absolute; inset: 0; mask-image: linear-gradient(to bottom, transparent 0%, transparent 20%, #000 72%, #000 100%); -webkit-mask-image: linear-gradient(to bottom, transparent 0%, transparent 20%, #000 72%, #000 100%); }
.banner-reeds span { position:absolute; bottom:-20px; width:65px; border-left:1.5px solid #f7c600; border-radius:70% 0 0 0; transform-origin:bottom left; opacity:.7; }
.banner-reeds span:nth-child(1) { left:38%; height:83px; transform:rotate(-20deg); }
.banner-reeds span:nth-child(2) { left:45%; height:120px; transform:rotate(13deg); }
.banner-reeds span:nth-child(3) { left:52%; height:95px; transform:rotate(-12deg); }
.banner-reeds span:nth-child(4) { left:58%; height:140px; transform:rotate(19deg); }
.banner-reeds span:nth-child(5) { left:64%; height:110px; transform:rotate(-22deg); }
.banner-reeds span:nth-child(6) { left:70%; height:145px; transform:rotate(7deg); }
.banner-reeds span:nth-child(7) { left:77%; height:91px; transform:rotate(-15deg); }
.banner-reeds span:nth-child(8) { left:82%; height:130px; transform:rotate(24deg); }
.banner-reeds span:nth-child(9) { left:89%; height:117px; transform:rotate(-7deg); }
.banner-reeds span:nth-child(10) { left:95%; height:150px; transform:rotate(18deg); }
@media (min-width: 761px) {
  .banner-reeds span { border: 0; border-radius: 0; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2065%20150%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M46%201%20C21%201%201%2048%201%20105%20L1%20151%22%20fill%3D%22none%22%20stroke%3D%22%23f7c600%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3C%2Fsvg%3E") 0 0 / 100% 100% no-repeat; }
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; min-height: var(--header-height); gap: 32px; }
.brand { flex-shrink: 0; display: flex; align-items: center; gap: 12px; text-decoration: none; line-height: 1; }
.brand img { width: 42px; height: 52px; object-fit: contain; }
.brand-text { font-family: 'Libre Baskerville', Georgia, serif; font-size: 1.65rem; letter-spacing: .02em; }
.brand-text small { display: block; margin-top: 8px; font: 600 .58rem/1.3 'DM Sans', Arial, sans-serif; letter-spacing: .24em; text-transform: uppercase; white-space: nowrap; }
.links { display: flex; align-items: center; gap: clamp(16px, 1.7vw, 26px); }
.links a { display: flex; align-items: center; min-height: 44px; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; font-weight: 700; white-space: nowrap; }
.links a:hover, .links a[aria-current] { text-decoration: underline; text-underline-offset: 7px; }
.menu-button { display: none; align-items: center; justify-content: center; min-width: 64px; min-height: 44px; padding: 8px 12px; background: #102a27d9; color: #fff; border: 1px solid #ffffff80; font: 700 .8rem 'DM Sans', Arial, sans-serif; }

.hero { position: relative; display: flex; align-items: center; min-height: 700px; height: 100svh; max-height: 960px; background: var(--deep); color: #fff; }
.hero-image { position: absolute; inset: 0; overflow: hidden; background: #102a27; pointer-events: none; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease-in-out; }
.hero-slide.is-active { opacity: 1; }
.hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(var(--photo-brightness,1.1)) contrast(1.14) saturate(1.1); }
.hero-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#000000b8 0%,#000000a3 45%,#00000038 100%), linear-gradient(0deg,#0003,transparent 65%), rgba(0,0,0,calc(var(--photo-shade,.1) * .3)); }
.hero-slide--restored-landscape img { object-position: var(--photo-position, center); }
.hero-slide--frog { background: var(--photo-background) right center/cover; }
.hero-slide--frog img { left: -20%; width: 116%; max-width: none; mask-image: linear-gradient(90deg,#000 94%,transparent); }
.hero-slide--frog::before { content: ''; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg,transparent 58%,rgba(0,0,0,.06) 70%,rgba(0,0,0,.26) 100%); }
/* Restore the original full-flower scale with photographic edge fill. */
.hero-slide--persoonia::before { content: ''; position: absolute; inset: 0; background: var(--photo-background) center/cover; filter: brightness(1.1) contrast(1.14) saturate(1.1); }
.hero-slide--persoonia img { inset: auto; left: 50%; top: calc(50% + var(--header-height)/2); width: auto; height: auto; max-width: 100%; max-height: calc(100% - var(--header-height)); transform: translate(-50%,-50%); object-fit: contain; object-position: center; mask-image: linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent),linear-gradient(180deg,transparent,#000 4%,#000 96%,transparent); mask-composite: intersect; }
.hero-slide--coast img { object-position: center; }
.hero-slide--tree img { object-position: center; }
.hero-slide--sunset img { transform: rotate(-2.28deg) scale(1.06); }
.hero-photo-controls { position: absolute; z-index: 2; right: max(32px,calc((100% - 1320px)/2)); bottom: 14px; display: none; align-items: center; gap: 8px; padding: 2px 6px 2px 12px; border: 1px solid #ffffff45; border-radius: 24px; background: #102a27cc; color: #fff; }
.hero-photo-controls[hidden] { display: none; }
.hero-photo-toggle { min-height: 40px; padding: 6px 8px; border: 0; background: transparent; color: inherit; font: 500 .73rem 'DM Sans',Arial,sans-serif; cursor: pointer; }
.hero-photo-picker { display: flex; align-items: center; }
.hero-photo-dot { display: grid; place-items: center; width: 28px; height: 40px; padding: 0; border: 0; border-radius: 14px; background: transparent; cursor: pointer; }
.hero-photo-dot span { width: 6px; height: 6px; border: 1px solid #fff; border-radius: 50%; }
.hero-photo-dot[aria-pressed="true"] span { background: #fff; }
.hero-photo-toggle:focus-visible,.hero-photo-dot:focus-visible { outline: 2px solid #f7c600; outline-offset: -2px; }
.hero-photo-toggle:hover { text-decoration: underline; }
.hero-content { position: relative; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); align-items: center; gap: 7%; padding-block: calc(var(--header-height) + 44px) 64px; }
.hero-copy { min-width: 0; }
.hero .eyebrow { color: #d7c393; }
.hero h1.hero-wordmark { margin: 24px 0 28px; font-size: clamp(70px,7.5vw,112px); letter-spacing: -.055em; line-height: 1; }
.hero-wordmark span { display: block; margin-top: 18px; font: 500 .38em/1.15 'DM Sans', Arial, sans-serif; letter-spacing: .27em; text-transform: uppercase; }
.hero p.hero-tagline { margin-bottom: 20px; color: #fff; font: 400 clamp(22px,2.3vw,30px)/1.4 'Libre Baskerville', Georgia, serif; }
.hero p.hero-description { max-width: 540px; margin-bottom: 8px; color: #f3f3e9; font-size: 1rem; }
.hero .button { margin-top: 20px; }
.hero-bird { width: min(100%,340px); justify-self: center; filter: drop-shadow(0 4px 20px #102a274d); }
.hero-logo-shimmer { position: relative; aspect-ratio: 340/418; }
.hero-logo-shimmer img { width: 100%; height: auto; }
.hero-logo-shimmer::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(45deg,transparent 43%,#ffd447 47%,#ffca05 49%,#ffe86a 51%,#ffd447 54%,transparent 58%); background-size: 300% 300%; background-position: 100% 0%; mask: url('bird-white.svg') center/contain no-repeat; -webkit-mask: url('bird-white.svg') center/contain no-repeat; animation: hero-bird-sweep 8s ease-in-out infinite; }
@keyframes hero-bird-sweep { 0%,10% { background-position: 100% 0%; } 90%,100% { background-position: 0% 100%; } }

.intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.36fr); gap: 10%; padding-block: 110px 105px; }
.intro h2 { max-width: 500px; margin: 18px 0 0; }
.intro-copy { padding-top: 29px; }
.intro-copy p:first-child { color: var(--pine); font-size: 1.28rem; line-height: 1.55; }
.intro-copy p { color: var(--muted); }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 40px; }
.section-head h2 { margin: 12px 0 0; }
.section-head p { max-width: 470px; margin: 0; color: var(--muted); }
.services { padding-block: 105px 115px; background: var(--cream); }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #cbd2c6; border-left: 1px solid #cbd2c6; }
.service { display: flex; flex-direction: column; min-width: 0; border-right: 1px solid #cbd2c6; border-bottom: 1px solid #cbd2c6; background: var(--paper); }
.service-image { position: relative; height: 190px; overflow: hidden; background: #d3d8ce; }
.service-image img { width: 100%; height: 100%; object-fit: cover; }
.service-body { flex: 1; padding: 26px 30px 34px; }
.service-num { color: #647866; font-size: .75rem; letter-spacing: .14em; }
.service h3 { margin: 24px 0 14px; color: var(--pine); font-family: 'Libre Baskerville', Georgia, serif; font-weight: 400; }
.service p { margin: 0; color: var(--muted); font-size: .94rem; }
.service p + p { margin-top: 14px; }
.service:nth-child(1) .service-image img { object-position: center 55%; }
.service:nth-child(2) .service-image img { object-position: 35% center; }
.service:nth-child(4) .service-image img { object-position: center 51%; }
.featured-services { display: grid; grid-column: 1/-1; grid-auto-rows: 1fr; }
.service-feature { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 530px; }
.service-feature .service-image { height: 100%; min-height: 100%; }
.service-feature .service-image img { position: absolute; inset: 0; object-position: 78% 50%; }
.service-feature .service-body { display: flex; flex-direction: column; justify-content: center; padding: 36px clamp(28px,3.4vw,48px); }
.service-feature h3 { font-size: clamp(1.5rem,2.3vw,2.25rem); }
.service-threatened .service-image img { object-position: center 53%; }
@media (min-width: 761px) {
  .service-predator { min-height: 0; align-self: start; }
  .service-predator .service-image { height: auto; min-height: 0; align-self: center; background: none; }
  .service-predator .service-image picture { display: block; }
  .service-predator .service-image img { display: block; position: static; width: 100%; height: auto; object-fit: contain; object-position: center; }
}
.flower-caption { position: absolute; right: 24px; bottom: 18px; z-index: 1; color: #fff; font: 400 1rem/1.2 'DM Sans', Arial, sans-serif; text-align: right; text-shadow: 0 1px 4px #0009; pointer-events: none; }
.ruby-caption { left: 24px; right: auto; text-align: left; }

.feature { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); background: var(--pine); color: #fff; }
.feature-photo { position: relative; min-height: 570px; overflow: hidden; }
.feature-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.feature-content { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 90px clamp(40px,7vw,110px); }
.feature-content h2 { margin: 15px 0 25px; }
.feature-content p { color: #d9e3d9; }
.feature-content .button { align-self: start; margin-top: 20px; }
.feature.reverse { background: #e9e9dd; color: var(--pine); }
.feature.reverse .feature-photo { order: 2; }
.feature.reverse .feature-content p { color: #58695f; }
.feature.reverse .eyebrow { color: #85703b; }
#flora .acknowledgement-rock { align-self: center; width: 60%; max-width: 240px; margin: 56px 0 0; mask: url('wave-rock-edge-mask.svg') center/100% 100% no-repeat; -webkit-mask: url('wave-rock-edge-mask.svg') center/100% 100% no-repeat; }
.acknowledgement-rock img { width: 100%; height: auto; }
#flora .landscape-acknowledgement { margin: 32px 0 0; }
.acknowledgement-title { display: block; margin-bottom: 8px; font-weight: 700; }

.about { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1fr); align-items: start; gap: 10%; padding-block: 80px; }
.about h2 { margin: 16px 0 0; }
.about p { color: var(--muted); }
.about p.lead { color: var(--pine); font-size: 1.22rem; }
.about-portrait-row { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1fr); align-items: center; gap: 22px; margin-top: 28px; }
.about-portrait { width: 100%; max-width: 220px; height: auto; }
.about-quote { margin: 0; color: var(--pine); font: 400 1.25rem/1.5 'Cormorant Garamond', Georgia, serif; }
.credentials { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px; margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--line); }
.credentials strong { display: block; color: var(--pine); font: 400 1.15rem/1.4 'Libre Baskerville', Georgia, serif; }
.credentials span { display: block; margin-top: 6px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.gallery { padding-block: 105px 116px; background: var(--cream); }
.gallery-grid { display: grid; grid-template-columns: 1.3fr .85fr .85fr; grid-template-rows: 295px 295px; gap: 12px; }
.gallery-grid figure { position: relative; margin: 0; overflow: hidden; background: #d6d8c9; }
.gallery-grid figure:first-child { grid-row: span 2; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
#fieldwork .gallery-grid img[src="assets/fauna.webp"],
#fieldwork .gallery-grid img[src="assets/flower.webp"] { filter: brightness(.8); }
.gallery-grid figure:hover img { transform: scale(1.04); }
.gallery-grid figcaption { position: absolute; inset: auto 0 0; padding: 35px 18px 15px; background: linear-gradient(transparent,#15251fbd); color: #fff; font-size: .78rem; letter-spacing: .04em; }

.contact { position: relative; isolation: isolate; overflow: hidden; padding-block: 110px; background: var(--deep); color: #fff; }
.contact-roots { position: absolute; z-index: 0; left: -28px; top: -90px; width: min(54vw,640px); height: calc(100% + 180px); object-fit: cover; object-position: left center; opacity: .5; pointer-events: none; mask-image: linear-gradient(to right,#000 0%,#000 36%,#0009 65%,transparent 100%); -webkit-mask-image: linear-gradient(to right,#000 0%,#000 36%,#0009 65%,transparent 100%); }
.contact .wrap { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10%; align-items: end; }
.contact h2 { max-width: 620px; margin: 15px 0 0; }
.contact h2, .contact .eyebrow { text-shadow: 0 2px 12px #172c28; }
.contact p { color: #cddbd2; }
.contact .button { margin-top: 20px; }
.contact .mail { font-size: 1.15rem; text-underline-offset: 5px; overflow-wrap: anywhere; }
.footer { padding-block: 30px; background: #10231e; color: #bbcec2; font-size: .78rem; }
.footer .wrap { display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.footer a { text-underline-offset: 4px; }
.footer-brand { display: flex; align-items: center; gap: 14px; }
.footer-bird { flex-shrink: 0; width: 38px; height: 47px; object-fit: contain; }
.copyright-date { white-space: nowrap; }
.footer .linkedin-link { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; text-decoration: none; }
.linkedin-icon { flex: none; width: 16px; height: 16px; object-fit: cover; border-radius: 23%; }
.linkedin-link:hover { text-decoration: underline; }

@media (max-width: 1120px) {
  :root { --header-height: 84px; }
  .brand img { width: 38px; height: 47px; }
  .brand-text { font-size: 1.5rem; }
  .menu-button { display: inline-flex; }
  .links { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; padding: 16px 32px 24px; background: var(--deep); border-bottom: 1px solid #ffffff30; }
  .links.open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .links a { min-height: 46px; font-size: .82rem; }
  .hero-content { gap: 5%; }
  .hero h1.hero-wordmark { font-size: clamp(62px,8vw,88px); }
  .service-body { padding: 24px; }
  .feature-content { padding: 64px 40px; }
}
@media (max-width: 900px) {
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about { gap: 6%; }
  .about-portrait-row { grid-template-columns: 1fr; gap: 20px; }
  .about-portrait { max-width: 200px; }
  .about-quote { max-width: 26ch; }
}
@media (max-width: 760px) {
  :root { --header-height: 80px; }
  .wrap { width: min(560px,calc(100% - 40px)); }
  .nav-inner { width: calc(100% - 40px); gap: 16px; }
  .brand-text { font-size: 1.45rem; }
  .brand-text small { font-size: .52rem; }
  .links { padding-inline: 20px; }
  .hero { min-height: 0; height: auto; max-height: none; }
  .hero-slide--lizard { background: var(--photo-background) center/cover; }
  .hero-slide--lizard::before { content: ''; position: absolute; inset: 0; background: var(--photo-background) center/cover; filter: brightness(var(--photo-brightness,1.1)) contrast(1.14) saturate(1.1); }
  .hero-slide--lizard img { object-position: var(--lizard-head-position, 50%) var(--lizard-head-position-y, 130px); mask-image: linear-gradient(to bottom,transparent var(--lizard-head-position-y, 130px),#000 calc(var(--lizard-head-position-y, 130px) + 72px)); -webkit-mask-image: linear-gradient(to bottom,transparent var(--lizard-head-position-y, 130px),#000 calc(var(--lizard-head-position-y, 130px) + 72px)); }
  .hero-slide--frog img { left: 0; width: 100%; object-position: var(--frog-head-position, 40%) var(--frog-head-position-y, 90px); mask-image: none; }
  .hero-slide--restored-landscape img { object-position: var(--photo-position-mobile, center); }
  .hero-slide::after { background: linear-gradient(180deg,#00000059 0%,#000000a3 40%,#000000b3 100%), rgba(0,0,0,calc(var(--photo-shade,.1) * .3)); }
  .hero-photo-controls { right: 20px; bottom: 10px; gap: 3px; padding-left: 6px; }
  .hero-photo-dot { width: 24px; }
  .hero-content { grid-template-columns: minmax(0,1fr); gap: 24px; padding-block: calc(var(--header-height) + 32px) 78px; }
  .hero-copy { order: 1; }
  .hero-bird { order: 0; justify-self: start; width: 98px; }
  .hero h1.hero-wordmark { margin: 20px 0 26px; font-size: clamp(52px,15.7vw,80px); }
  .hero-wordmark span { margin-top: 14px; }
  .hero p.hero-tagline { font-size: clamp(20px,5.7vw,26px); }
  .hero .eyebrow { font-size: .67rem; letter-spacing: .15em; }
  .intro, .about, .contact .wrap { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .intro, .about { padding-block: 72px; }
  .intro-copy { padding-top: 0; }
  .section-head { display: block; margin-bottom: 32px; }
  .section-head p { margin-top: 18px; }
  .services, .gallery { padding-block: 72px; }
  .featured-services { grid-auto-rows: auto; }
  .service-feature { grid-template-columns: minmax(0,1fr); min-height: 0; }
  .service-feature .service-image { min-height: 0; height: auto; aspect-ratio: 4/3; }
  .service-feature .service-body { padding: 28px; }
  .service-threatened .service-image { order: -1; }
  .service-feature h3 { font-size: 1.5rem; }
  .feature, .feature.reverse { grid-template-columns: minmax(0,1fr); }
  .feature-photo, .feature.reverse .feature-photo { order: 0; min-height: 0; height: auto; aspect-ratio: 4/3; }
  .feature-content { padding: 64px max(24px,calc((100vw - 560px)/2)); }
  #flora .acknowledgement-rock { width: 58%; max-width: 210px; margin-top: 44px; }
  .about-portrait-row { grid-template-columns: minmax(0,.95fr) minmax(0,1fr); gap: 24px; }
  .about-quote { font-size: 1.25rem; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 280px 220px 220px; gap: 10px; }
  .gallery-grid figure:first-child { grid-column: span 2; grid-row: auto; }
  .contact { padding-block: 72px; }
  .contact-roots { left: -35px; top: -45px; width: 95%; height: calc(100% + 90px); opacity: .3; }
  .footer .wrap { flex-direction: column; align-items: start; gap: 22px; }
}
@media (max-width: 520px) {
  .service-grid { grid-template-columns: minmax(0,1fr); }
  .service-image { height: auto; aspect-ratio: 16/9; }
  .service-image img { position: absolute; inset: 0; }
  .service-body, .service-feature .service-body { padding: 26px 24px 30px; }
  .service h3 { margin: 20px 0 14px; }
  .flower-caption { right: 16px; bottom: 14px; font-size: .875rem; }
  .ruby-caption { left: 16px; right: auto; }
  .gallery-grid { gap: 8px; grid-template-rows: 230px 180px 180px; }
  .gallery-grid figcaption { padding: 28px 12px 12px; font-size: .72rem; }
  .credentials { gap: 20px; }
  .about-portrait-row { gap: 20px; }
  .footer .company-details { display: inline-block; margin-top: 3px; }
}
@media (max-width: 360px) {
  .wrap, .nav-inner { width: calc(100% - 32px); }
  .brand { gap: 9px; }
  .brand img { width: 32px; height: 40px; }
  .brand-text { font-size: 1.28rem; }
  .brand-text small { font-size: .46rem; }
  .hero p.hero-tagline { font-size: 19px; }
  .hero .eyebrow { letter-spacing: .1em; font-size: .63rem; }
  .about-quote { font-size: 1.12rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero-logo-shimmer::after { display: none; }
  .hero-slide { transition: none; }
}

@media (max-width: 760px) {
  #fieldwork .gallery-grid figure:nth-child(2) picture { display: block; width: 100%; height: 100%; }
  #fieldwork .gallery-grid img[src="assets/fauna.webp"] { position: absolute; inset: auto auto 0 50%; width: clamp(100%,293.333px,121.212%); max-width: none; height: auto; transform: translateX(-50%); }
  #fieldwork .gallery-grid figure:hover img[src="assets/fauna.webp"] { transform: translateX(-50%) scale(1.04); }
}
@media (max-width: 520px) {
  #fieldwork .gallery-grid img[src="assets/fauna.webp"] { width: clamp(100%,240px,121.212%); }
}
