:root {
  --green-950: #0a2a22;
  --green-900: #10382d;
  --green-800: #174b3c;
  --green-650: #2a6a55;
  --green-100: #dbe8e1;
  --lime: #c7db80;
  --paper: #f6f5ef;
  --white: #ffffff;
  --ink: #18221e;
  --muted: #68736e;
  --line: rgba(24, 34, 30, 0.16);
  --serif: "Noto Serif TC", "Songti TC", "PMingLiU", serif;
  --sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --shell: 1180px;
  --radius: 2px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.shell {
  width: min(calc(100% - 48px), var(--shell));
  margin-inline: auto;
}

.section { padding: 120px 0; }
.section-dark { background: var(--green-950); color: var(--white); }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 200;
  padding: 10px 16px;
  background: var(--white);
  color: var(--green-950);
  transform: translateY(-160%);
}

.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(10, 42, 34, 0.94);
  color: var(--white);
  backdrop-filter: blur(16px);
}

.header-inner { height: 78px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 13px; }

.brand-mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.65);
  font-family: var(--serif);
  font-size: 20px;
}

.brand-copy { display: grid; line-height: 1.15; }
.brand-copy strong { font-size: 15px; letter-spacing: .12em; }
.brand-copy small { margin-top: 5px; color: rgba(255,255,255,.56); font-size: 9px; letter-spacing: .22em; }
.site-nav { display: flex; align-items: center; gap: 30px; font-size: 14px; letter-spacing: .06em; }
.site-nav a { color: rgba(255,255,255,.78); transition: color .2s ease; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--white); }

.site-nav .nav-cta {
  padding: 9px 18px;
  border: 1px solid rgba(255,255,255,.5);
  color: var(--white);
}

.menu-button { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; }
.menu-button span:not(.sr-only) { display: block; width: 22px; height: 1px; margin: 5px auto; background: var(--white); transition: transform .2s ease, opacity .2s ease; }

.hero { position: relative; overflow: hidden; padding: 90px 0 106px; }
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: linear-gradient(to bottom, black, transparent 92%);
  pointer-events: none;
}

.hero-grid { position: relative; display: grid; grid-template-columns: 1.03fr .97fr; gap: 74px; align-items: center; }
.eyebrow { margin: 0 0 22px; color: var(--green-650); font-size: 12px; font-weight: 700; letter-spacing: .22em; }
.eyebrow.light { color: var(--lime); }

h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 600; }

h1 {
  margin-bottom: 28px;
  font-size: clamp(42px, 5.1vw, 72px);
  line-height: 1.22;
  letter-spacing: -.025em;
}

h1 span { color: var(--lime); }
h2 { margin-bottom: 28px; font-size: clamp(34px, 4vw, 54px); line-height: 1.3; letter-spacing: -.02em; }
h3 { line-height: 1.45; }
.hero-intro { max-width: 650px; margin-bottom: 32px; color: rgba(255,255,255,.73); font-size: 17px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border: 1px solid transparent;
  font-weight: 700;
  letter-spacing: .05em;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-primary { background: var(--lime); color: var(--green-950); }
.button-primary:hover, .button-primary:focus-visible { background: #d5e79a; }
.button-ghost { border-color: rgba(255,255,255,.4); color: var(--white); }
.button-ghost:hover, .button-ghost:focus-visible { border-color: var(--white); background: rgba(255,255,255,.07); }

.hero-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 48px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.16); }
.hero-facts li { display: grid; gap: 2px; padding: 22px 16px 0 0; }
.hero-facts strong { color: var(--white); font-family: var(--serif); font-size: 23px; }
.hero-facts span { color: rgba(255,255,255,.53); font-size: 12px; }

.hero-visual { position: relative; margin: 0; padding: 18px 18px 0 0; }
.hero-visual::before { content: ""; position: absolute; inset: 0 0 52px 44px; border: 1px solid rgba(199,219,128,.45); }
.hero-visual img { position: relative; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; filter: saturate(.72) contrast(1.04); }
.hero-visual figcaption { position: relative; width: calc(100% - 34px); margin: -44px 0 0 34px; padding: 20px 24px; background: var(--paper); color: var(--ink); box-shadow: 0 18px 50px rgba(0,0,0,.18); }
.hero-visual figcaption span { display: block; margin-bottom: 3px; color: var(--green-650); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.hero-visual figcaption strong { font-family: var(--serif); font-size: 17px; }

.belief-strip { border-bottom: 1px solid var(--line); background: var(--lime); color: var(--green-950); }
.belief-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.belief-inner p { margin: 0; font-family: var(--serif); font-size: 20px; font-weight: 700; }
.belief-inner span { font-size: 9px; font-weight: 700; letter-spacing: .22em; opacity: .65; }

.split-layout { display: grid; grid-template-columns: .86fr 1.14fr; gap: 100px; }
.about-copy { max-width: 670px; }
.about-copy p { color: var(--muted); }
.about-copy .lead { color: var(--ink); font-family: var(--serif); font-size: 23px; line-height: 1.7; }
.quote-block { margin-top: 40px; padding: 28px 0 0 28px; border-top: 1px solid var(--line); border-left: 3px solid var(--green-650); }
.quote-block span { color: var(--green-650); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.quote-block blockquote { margin: 8px 0 0; font-family: var(--serif); font-size: 21px; }

.services { padding-top: 110px; background: #ecefe9; }
.heading-row { display: grid; grid-template-columns: 1.35fr .65fr; gap: 70px; align-items: end; margin-bottom: 58px; }
.heading-row h2 { margin-bottom: 0; }
.heading-row > p { margin: 0 0 7px; color: var(--muted); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { min-height: 390px; padding: 32px 30px 36px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.35); transition: background .25s ease, transform .25s ease; }
.service-card:hover { z-index: 1; background: var(--white); transform: translateY(-5px); box-shadow: 0 24px 50px rgba(28,49,40,.08); }
.card-number { display: block; margin-bottom: 42px; color: var(--green-650); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.service-card h3 { min-height: 60px; margin-bottom: 16px; font-family: var(--serif); font-size: 22px; }
.service-card p { color: var(--muted); font-size: 15px; }
.service-card ul { margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid var(--line); list-style: none; }
.service-card li { position: relative; padding-left: 15px; color: #44514b; font-size: 13px; }
.service-card li::before { content: ""; position: absolute; left: 0; top: .82em; width: 5px; height: 1px; background: var(--green-650); }

.local-section { position: relative; overflow: hidden; }
.local-section::after { content: "松山"; position: absolute; right: -3vw; bottom: -100px; color: rgba(255,255,255,.025); font-family: var(--serif); font-size: min(30vw, 380px); font-weight: 700; line-height: 1; pointer-events: none; }
.local-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .85fr 1.15fr; gap: 110px; align-items: start; }
.local-grid .section-heading { position: sticky; top: 120px; }
.local-grid .section-heading > p:last-child { max-width: 430px; color: rgba(255,255,255,.63); }
.area-list { border-top: 1px solid rgba(255,255,255,.2); }
.area-list article { display: grid; grid-template-columns: 54px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.area-list article > span { color: var(--lime); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.area-list h3 { margin-bottom: 3px; font-family: var(--serif); font-size: 22px; }
.area-list p { margin: 0; color: rgba(255,255,255,.56); font-size: 14px; }

.process-list { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.process-list li { min-height: 230px; padding: 26px 18px 24px 0; border-right: 1px solid var(--line); }
.process-list li:not(:first-child) { padding-left: 20px; }
.process-list li:last-child { border-right: 0; }
.process-list span { display: block; margin-bottom: 60px; color: var(--green-650); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.process-list strong { display: block; margin-bottom: 8px; font-family: var(--serif); font-size: 19px; }
.process-list p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }

.decision-section { background: #dfe7df; }
.decision-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; }
.decision-cards { display: grid; gap: 14px; }
.decision-cards article { padding: 30px 34px; border: 1px solid rgba(16,56,45,.18); background: rgba(255,255,255,.48); }
.decision-label { margin-bottom: 12px; color: var(--green-650); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.decision-cards h3 { margin-bottom: 10px; font-family: var(--serif); font-size: 21px; }
.decision-cards article > p:last-child { margin: 0; color: var(--muted); font-size: 14px; }

.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 110px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 25px 46px 25px 0; cursor: pointer; list-style: none; font-family: var(--serif); font-size: 18px; font-weight: 700; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 3px; top: 22px; color: var(--green-650); font-family: var(--sans); font-size: 24px; font-weight: 300; transition: transform .2s ease; }
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list details p { max-width: 720px; padding: 0 34px 24px 0; color: var(--muted); }

.contact-section { padding: 112px 0; }
.contact-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 100px; align-items: center; }
.contact-copy > p:last-child { max-width: 600px; color: rgba(255,255,255,.64); }
.contact-card { padding: 34px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.05); }
.contact-name { display: block; margin-bottom: 22px; color: rgba(255,255,255,.62); font-size: 12px; letter-spacing: .12em; }
.contact-action { display: grid; grid-template-columns: 1fr auto; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.contact-action span { grid-column: 1; color: var(--lime); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.contact-action strong { grid-column: 1; font-family: var(--serif); font-size: 28px; }
.contact-action b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--lime); font-size: 27px; transition: transform .2s ease; }
.contact-action:hover b { transform: translate(3px, -3px); }
.contact-meta { margin-top: 24px; }
.contact-meta p { display: grid; grid-template-columns: 90px 1fr; margin-bottom: 8px; font-size: 13px; }
.contact-meta span { color: rgba(255,255,255,.42); }
.contact-meta strong { color: rgba(255,255,255,.78); font-weight: 500; }

.site-footer { padding: 42px 0 92px; background: #071f19; color: rgba(255,255,255,.62); }
.footer-grid { display: grid; grid-template-columns: .72fr 1.35fr .55fr; gap: 54px; align-items: start; }
.footer-grid > div:first-child strong { color: var(--white); font-family: var(--serif); font-size: 18px; }
.footer-grid p { margin-bottom: 5px; font-size: 11px; line-height: 1.7; }
.copyright { white-space: nowrap; }
.footer-end { display: grid; gap: 22px; }
.social-links { display: grid; gap: 5px; font-size: 11px; }
.social-links a { transition: color .2s ease; }
.social-links a:hover, .social-links a:focus-visible { color: var(--lime); }
.mobile-contact { display: none; }

.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .62s ease, transform .62s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

:focus-visible { outline: 3px solid var(--lime); outline-offset: 4px; }

@media (max-width: 980px) {
  .section { padding: 90px 0; }
  .hero-grid, .split-layout, .local-grid, .decision-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; gap: 54px; }
  .hero { padding-top: 70px; }
  .hero-copy { max-width: 720px; }
  .hero-visual { max-width: 720px; }
  .heading-row { grid-template-columns: 1fr; gap: 22px; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .local-grid .section-heading { position: static; }
  .process-list { grid-template-columns: repeat(3, 1fr); }
  .process-list li:nth-child(3) { border-right: 0; }
  .process-list li:nth-child(n+4) { border-top: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 1fr 1.5fr; }
  .copyright { grid-column: 1 / -1; }
}

@media (max-width: 740px) {
  .shell { width: min(calc(100% - 32px), var(--shell)); }
  .section { padding: 72px 0; }
  .header-inner { height: 68px; }
  .menu-button { display: block; color: var(--white); }
  .site-nav { position: fixed; inset: 68px 0 auto; display: grid; gap: 0; padding: 16px; background: var(--green-950); border-top: 1px solid rgba(255,255,255,.12); transform: translateY(-130%); opacity: 0; pointer-events: none; transition: transform .24s ease, opacity .24s ease; }
  .site-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; box-shadow: 0 20px 40px rgba(0,0,0,.24); }
  .site-nav a { padding: 13px 8px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .site-nav .nav-cta { margin-top: 12px; text-align: center; }
  .menu-button[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(6px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-of-type(3) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-of-type(4) { transform: translateY(-6px) rotate(-45deg); }
  .hero { padding: 58px 0 76px; }
  .hero-grid { gap: 45px; }
  h1 { font-size: clamp(38px, 12vw, 54px); }
  h2 { font-size: 34px; }
  .hero-intro { font-size: 16px; }
  .hero-actions .button { width: 100%; }
  .hero-facts { gap: 10px; }
  .hero-facts strong { font-size: 20px; }
  .hero-facts span { font-size: 10px; line-height: 1.45; }
  .hero-visual { padding: 10px 10px 0 0; }
  .hero-visual::before { inset: 0 0 44px 22px; }
  .hero-visual figcaption { width: calc(100% - 16px); margin-left: 16px; padding: 15px 17px; }
  .hero-visual figcaption strong { font-size: 15px; }
  .belief-inner { min-height: 72px; }
  .belief-inner p { font-size: 16px; }
  .belief-inner span { display: none; }
  .split-layout, .decision-grid, .faq-grid, .contact-grid { gap: 36px; }
  .about-copy .lead { font-size: 20px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; }
  .card-number { margin-bottom: 26px; }
  .process-list { grid-template-columns: repeat(2, 1fr); }
  .process-list li, .process-list li:nth-child(3) { border-right: 1px solid var(--line); border-top: 1px solid var(--line); }
  .process-list li:nth-child(odd) { padding-left: 0; }
  .process-list li:nth-child(even) { padding-left: 18px; border-right: 0; }
  .process-list span { margin-bottom: 35px; }
  .decision-cards article { padding: 25px 22px; }
  .contact-section { padding: 78px 0 104px; }
  .contact-card { padding: 24px; }
  .contact-action strong { font-size: 24px; }
  .contact-meta p { grid-template-columns: 1fr; gap: 1px; margin-bottom: 13px; }
  .footer-grid { grid-template-columns: 1fr; gap: 25px; }
  .copyright { grid-column: auto; }
  .mobile-contact { position: fixed; z-index: 90; right: 14px; bottom: 14px; left: 14px; display: grid; grid-template-columns: .72fr 1.28fr; padding-bottom: env(safe-area-inset-bottom); }
  .mobile-contact a { display: flex; min-height: 50px; align-items: center; justify-content: center; background: var(--lime); color: var(--green-950); font-weight: 800; letter-spacing: .08em; box-shadow: 0 12px 30px rgba(0,0,0,.24); }
  .mobile-contact .mobile-phone { border-right: 1px solid rgba(10,42,34,.25); background: var(--white); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Readable, content-first local profile */
.brand-copy small,.hero-facts span,.card-number,.eyebrow,.decision-label {font-size: .875rem;}
.service-card p,.service-card li,.area-list p,.process-list p,.decision-cards article > p:last-child,.contact-meta p {font-size:1rem;}
.footer-grid p,.social-links,.contact-name {font-size:.875rem;}
.image-note {display:block;margin-top:8px;font-size:.875rem;color:#526159;}
.hero-visual figcaption span {font-size:.875rem;}
.hero h1 {font-size:clamp(2.25rem,4.2vw,3.75rem);line-height:1.4;}
.contact-meta strong {overflow-wrap:anywhere;}
.js .reveal {opacity:1;transform:none;}
@media(max-width:740px){.site-nav:not(.is-open){visibility:hidden;}.hero h1{font-size:clamp(2rem,8vw,2.8rem);}.hero-facts span{font-size:.875rem;}.menu-open .mobile-contact{display:none;}}

.hero-visual img{aspect-ratio:1283 / 1275;height:auto;object-fit:contain;filter:none;}
.hero-grid{gap:48px;}.hero-visual{align-self:center;}
.community-section{background:#e8eee8;}
.community-topline{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);font-size:1rem;}
.community-topline a{text-decoration:underline;text-underline-offset:4px;}
.community-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.community-grid article{padding:28px;background:#fff;}
.community-grid h3{font-family:var(--serif);font-size:1.35rem;}
.community-grid p{margin:0;}.community-footnote{font-size:.875rem;margin:24px 0;color:#526159;}
.community-cta{background:var(--green-900);color:white;}
@media(max-width:980px){.site-nav{gap:16px;}.community-grid{grid-template-columns:1fr;}}

/* Songdun identity: original logo files, transparent margins clipped in layout. */
:root{--green-950:#252d1b;--green-900:#343d27;--green-800:#424b31;--green-650:#566044;--green-100:#e8ebe3;--lime:#e0e7c7;--paper:#fafbf8;}
.site-header{background:rgba(37,45,27,.97);}
.songdun-logo{display:block;position:relative;overflow:hidden;flex-shrink:0;}
.songdun-logo img{position:absolute;max-width:none;height:auto;}
.logo-white{width:164px;aspect-ratio:1097 / 293;}
.logo-white img{width:109.389%;left:-4.558%;top:-150.512%;}
.logo-green{width:190px;max-width:100%;aspect-ratio:1135 / 376;}
.logo-green img{width:105.727%;left:-2.731%;top:-109.841%;}
.brand-copy{border-left:1px solid rgba(255,255,255,.3);padding-left:14px;}
.brand-copy small{font-size:.75rem;letter-spacing:.08em;}
.site-nav{gap:20px;}.header-inner{gap:20px;}
.services,.community-section{background:#eef0e9;}.decision-section{background:#e4e8da;}
.site-footer{background:#252d1b;}
.footer-logo-panel{display:inline-block;background:#fafbf8;padding:14px 16px;margin-bottom:18px;max-width:100%;}
.footer-grid > div:first-child > strong{display:block;}
@media(min-width:741px) and (max-width:1100px){.logo-white{width:124px;}.site-nav{gap:12px;}.brand-copy strong{font-size:14px;letter-spacing:0;}.brand-copy small{display:none;}}
@media(max-width:740px){.logo-white{width:120px;}.brand{gap:10px;}.brand-copy{padding-left:10px;}.brand-copy strong{font-size:14px;letter-spacing:.02em;}.brand-copy small{font-size:.625rem;}.header-inner{gap:8px;}.menu-button{flex-shrink:0;}}
@media(max-width:360px){.logo-white{width:100px;}.brand-copy small{display:none;}}

/* Career experience is presented through the questions it helps clients answer. */
.experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:0;list-style:none;padding:0;margin:0;}
.experience-grid li{display:grid;grid-template-rows:auto auto 1fr auto;min-width:0;padding-top:22px;border-top:2px solid var(--green-800);}
.experience-label{display:flex;align-items:center;gap:14px;margin:0;color:var(--green-800);font-size:1rem;font-weight:700;}
.experience-label span{font-size:.875rem;letter-spacing:.08em;}
.experience-grid h3{font-family:var(--serif);font-size:1.5rem;line-height:1.6;margin:24px 0 18px;}
.experience-grid li>p:not(.experience-label){color:#526047;}
.experience-body{margin:0;}
.experience-question{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);font-weight:600;}
@supports(grid-template-rows:subgrid){@media(min-width:741px){.experience-grid li{grid-row:span 4;grid-template-rows:subgrid;row-gap:0;}}}
.training-history{display:grid;grid-template-columns:1fr 2fr;gap:32px;align-items:start;margin-top:48px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.training-history h3{font-family:var(--serif);font-size:1.35rem;margin-bottom:8px;}
.training-history p{font-size:.875rem;color:#526047;margin:0;}
.training-history ul{margin:0;padding-left:1.25em;display:grid;gap:8px;color:#526047;}
.work-photos{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(0,1fr);gap:32px;align-items:start;margin-top:48px;}
.work-photo{min-width:0;margin:0;}
.work-photo img{width:100%;height:auto;}
.work-photo figcaption{margin-top:16px;color:#526047;font-size:.875rem;line-height:1.75;}
.work-photo figcaption strong{display:block;margin-bottom:4px;color:var(--green-950);font-size:1rem;}
.work-photo figcaption span{display:block;}
.story-photo{margin-top:28px;}
.story-grid{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:72px;align-items:center;margin-top:72px;padding:48px;background:#eef0e9;scroll-margin-top:100px;}
.story-copy{min-width:0;}
.story-copy h3{font-family:var(--serif);font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.5;margin-bottom:24px;}
.story-copy>p:not(.eyebrow){color:#526047;}
.story-copy blockquote{margin:28px 0;padding:0 0 0 20px;border-left:3px solid var(--green-800);font-family:var(--serif);font-size:1.5rem;}
.story-copy cite{display:block;margin-top:8px;color:#526047;font-family:var(--sans);font-size:.875rem;font-style:normal;}
.story-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;font-weight:700;text-decoration:underline;text-underline-offset:5px;}
.story-link:focus-visible{outline-color:var(--green-800);}

/* Watercolor-style edges soften the original photographs without blurring their content. */
.photo-wash{position:relative;isolation:isolate;}
.photo-wash::before{content:"";position:absolute;z-index:-1;inset:-1.5%;pointer-events:none;background:radial-gradient(ellipse at 12% 24%,rgba(145,167,112,.28),transparent 58%),radial-gradient(ellipse at 87% 77%,rgba(191,172,123,.22),transparent 56%);filter:blur(10px);border-radius:12% 8% 14% 6%;}
.photo-wash img{border-radius:12px;}
@supports((mask-image:url("/assets/photo-watercolor-mask.svg")) or (-webkit-mask-image:url("/assets/photo-watercolor-mask.svg"))){
  .photo-wash img{border-radius:0;-webkit-mask-image:url("/assets/photo-watercolor-mask.svg");mask-image:url("/assets/photo-watercolor-mask.svg");-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha;}
}
.hero-visual{padding:0;}
.hero-visual::before{content:none;}
.hero-visual figcaption{width:auto;margin:12px 0 0;padding:4px 18px 0;background:transparent;box-shadow:none;color:var(--white);}
.hero-visual figcaption span{color:var(--lime);}
.hero-visual .image-note{color:rgba(255,255,255,.78);}
.work-photo figcaption{padding-inline:12px;}
@media(max-width:980px){.experience-grid{column-gap:24px;}.experience-grid h3{font-size:1.25rem;}.work-photos{gap:24px;}.story-grid{gap:32px;padding:32px;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);}}
@media(max-width:740px){.experience-grid{grid-template-columns:1fr;grid-auto-rows:1fr;gap:36px;}.experience-grid h3{font-size:1.5rem;margin-top:16px;}.training-history{grid-template-columns:1fr;gap:20px;}.work-photos{grid-template-columns:1fr;gap:32px;}.story-grid{grid-template-columns:1fr;gap:32px;margin-top:48px;padding:24px;}}

/* Eight featured entries share one responsive grid. */
.community-profiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.community-profile{display:flex;flex-direction:column;padding:24px;background:var(--paper);border-top:3px solid var(--green-800);min-width:0;}
.community-stage{font-size:.875rem;color:var(--green-650);font-weight:700;margin-bottom:22px;}
.community-profile h3{font-family:var(--serif);font-size:1.65rem;margin-bottom:18px;}
.community-profile>p:not(.community-stage){color:#526047;}
.community-image{margin:0;min-width:0;}
.community-image img{display:block;width:100%;height:auto;background:#fbf8f1;}
.community-image figcaption{margin-top:12px;color:#526047;font-size:.875rem;line-height:1.8;overflow-wrap:anywhere;}
.community-image-card{margin:0 0 24px;}
.community-image-card img{aspect-ratio:3 / 2;object-fit:contain;}
.community-image-detail{margin-bottom:44px;}
.community-image-notice{display:block;margin-top:6px;}
.community-read{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);text-decoration:underline;text-underline-offset:5px;line-height:1.8;font-weight:600;}
@supports(grid-template-rows:subgrid){
  @media(min-width:741px){
    .community-profile{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;}
    .community-read{margin-top:0;}
  }
}
.community-profile a:focus-visible,.related-communities a:focus-visible,.guide-body a:focus-visible,.guide-facts a:focus-visible{outline-color:var(--green-800);}
.guide-hero{padding:36px 0 64px;}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:.875rem;color:#e0e7c7;margin-bottom:48px;}
.breadcrumbs a{text-decoration:underline;text-underline-offset:4px;}
.guide-hero h1{font-size:clamp(2rem,5vw,3.75rem);line-height:1.4;}
.guide-title-sub{display:block;font-size:clamp(1.25rem,2.4vw,1.8rem);margin-top:16px;line-height:1.6;}
.guide-intro{max-width:850px;color:#e0e7d7;font-size:1.125rem;}
.guide-byline{margin:26px 0 0;color:#d0d8c9;font-size:.875rem;}
.guide-byline a{text-decoration:underline;text-underline-offset:4px;}
.guide-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr);gap:72px;padding-top:72px;padding-bottom:72px;align-items:start;}
.guide-facts{background:#eef0e9;padding:28px;min-width:0;}
.guide-facts h2{font-size:1.6rem;margin-bottom:24px;}
.guide-facts dl{margin:0;}.guide-facts dl>div{border-top:1px solid var(--line);padding:16px 0;}
.guide-facts dt{font-size:.875rem;color:#566044;margin-bottom:5px;}
.guide-facts dd{margin:0;overflow-wrap:anywhere;}
.guide-note{font-size:.875rem;color:#526047;margin:20px 0 0;}
.guide-topic{margin-bottom:44px;}.guide-topic:last-child{margin-bottom:0;}
.guide-topic h2{font-size:clamp(1.5rem,2.2vw,1.875rem);line-height:1.55;margin-bottom:18px;}
.guide-topic>p{color:#526047;line-height:1.95;}
.guide-sources{border-top:1px solid var(--line);padding-top:30px;}
.guide-sources ul{padding-left:1.2em;}.guide-sources li{margin-bottom:12px;}
.guide-sources a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere;}
.guide-sources>p{font-size:.875rem;}
.guide-contact{padding:64px 0;}.guide-contact h2{font-size:clamp(1.75rem,3vw,2.5rem);}
.guide-contact p:not(.eyebrow){color:#d0d8c9;}
.related-communities{padding-top:40px;padding-bottom:56px;}.related-communities>p{font-weight:700;}
.related-communities>div{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px;}
.related-communities>div>a{display:inline-flex;min-height:44px;align-items:center;border:1px solid var(--line);padding:8px 16px;}
.related-communities>a{text-decoration:underline;text-underline-offset:4px;}
@media(max-width:980px){.community-profiles{grid-template-columns:repeat(2,minmax(0,1fr));}.guide-layout{gap:32px;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);}}
@media(max-width:740px){.community-profiles{grid-template-columns:1fr;}.community-profile{padding:26px;}.guide-layout{grid-template-columns:1fr;padding-top:40px;padding-bottom:40px;}.guide-hero{padding-bottom:44px;}.breadcrumbs{margin-bottom:32px;}.guide-intro{font-size:1rem;}.guide-contact{padding:48px 0;}}

.recruitment-section{background:#eef0e9;}
.recruitment-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:center;}
.recruitment-photo{max-width:400px;width:100%;justify-self:center;}
.recruitment-copy{min-width:0;}
.recruitment-copy>p:not(.eyebrow){color:#526047;}
.recruitment-values{list-style:none;padding:0;margin:28px 0;}
.recruitment-values li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:12px 0;border-bottom:1px solid var(--line);}
.recruitment-values strong{color:var(--green-800);}
.recruitment-values span{color:#526047;}
.recruitment-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0;}
.recruitment-paths h3{font-size:1.125rem;margin-bottom:10px;}
.recruitment-paths p{color:#526047;margin:0;}
.recruitment-note{font-size:.875rem;line-height:1.8;margin:16px 0 0;}
@media(max-width:980px){
  .recruitment-grid{gap:32px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);}
  .recruitment-copy h2{font-size:clamp(1.75rem,4vw,2.5rem);}
  .recruitment-paths{grid-template-columns:1fr;gap:18px;}
  .menu-button{display:block;color:var(--white);flex-shrink:0;}
  .site-nav{position:fixed;inset:78px 0 auto;display:grid;gap:0;padding:16px;background:var(--green-950);border-top:1px solid rgba(255,255,255,.12);transform:translateY(-130%);opacity:0;pointer-events:none;transition:transform .24s ease,opacity .24s ease;max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain;}
  .site-nav:not(.is-open){visibility:hidden;}
  .site-nav.is-open{visibility:visible;transform:translateY(0);opacity:1;pointer-events:auto;box-shadow:0 20px 40px rgba(0,0,0,.24);}
  .site-nav a{padding:13px 8px;border-bottom:1px solid rgba(255,255,255,.1);}
  .site-nav .nav-cta{margin-top:12px;text-align:center;}
  .menu-button[aria-expanded="true"] span:nth-of-type(2){transform:translateY(6px) rotate(45deg);}
  .menu-button[aria-expanded="true"] span:nth-of-type(3){opacity:0;}
  .menu-button[aria-expanded="true"] span:nth-of-type(4){transform:translateY(-6px) rotate(-45deg);}
  .menu-open .mobile-contact{display:none;}
}
@media(max-width:740px){
  .recruitment-grid{grid-template-columns:1fr;gap:32px;}
  .recruitment-copy{grid-row:1;}
  .recruitment-copy h2{font-size:2rem;}
  .recruitment-values li{gap:12px;}
  .recruitment-copy .button{width:100%;}
  .site-nav{inset-block-start:68px;max-height:calc(100dvh - 68px);}
}
