/* Reference-inspired visual layer: editorial spacing, vertical copy, warm paper and red accents. */
body { background:#f7f3ed; color:#4a4642; }
.demo-notice { color:#fff; background:#2f2826; letter-spacing:.14em; }
.site-header { background:rgb(247 243 237 / 94%); border-bottom-color:rgb(47 40 38 / 12%); }
.brand-mark { background:transparent; border:2px solid var(--color-primary); }
.brand-mark::after { border-color:var(--color-primary); border-top-color:transparent; }
.global-nav li a { letter-spacing:.06em; }
.nav-cta,.button { border-radius:999px; }

.hero { display:block; min-height:min(760px,calc(100svh - 112px)); padding:26px clamp(24px,3vw,48px) 40px; overflow:hidden; background:#f7f3ed; }
.hero-media { inset:26px clamp(250px,20vw,330px) 110px clamp(24px,3vw,48px); overflow:hidden; border-radius:28px; }
.hero-media::after { position:absolute; inset:0; background:linear-gradient(180deg,transparent 62%,rgb(32 24 20 / 28%)); content:""; }
.hero-media img { object-position:center 48%; }
.hero-overlay { display:none; }
.hero-content { position:absolute; z-index:2; inset:26px clamp(22px,3vw,48px) 110px auto; width:clamp(210px,18vw,282px); padding:32px 8px 26px; }
.hero h1 { max-width:none; margin:0 auto; color:#25201e; font-size:clamp(2.25rem,3.45vw,3.8rem); font-weight:700; line-height:1.45; letter-spacing:.13em; text-shadow:none; writing-mode:vertical-rl; }
.hero-kicker { position:absolute; right:8px; bottom:24px; margin:0; color:#776d66; font-family:var(--font-serif); font-size:.78rem; letter-spacing:.16em; writing-mode:vertical-rl; }
.hero-tree { position:absolute; right:60px; bottom:22px; width:74px; height:92px; }
.hero-tree span,.hero-tree span::before,.hero-tree span::after { position:absolute; border-radius:52% 48% 48% 52%; background:#e5b945; content:""; }
.hero-tree span { width:58px; height:72px; left:8px; }
.hero-tree span::before { width:35px; height:54px; left:-14px; top:17px; transform:rotate(-24deg); }
.hero-tree span::after { width:31px; height:49px; right:-13px; top:25px; transform:rotate(22deg); }
.hero-tree i { position:absolute; z-index:2; width:7px; height:58px; left:34px; bottom:0; background:#85522f; transform:rotate(3deg); }
.hero-actions { position:absolute; z-index:3; bottom:44px; left:clamp(48px,6vw,92px); width:min(720px,calc(100% - 390px)); display:flex; align-items:end; justify-content:space-between; gap:26px; }
.hero-lead { max-width:390px; margin:0; color:#fff; font-family:var(--font-serif); font-size:1rem; font-weight:600; text-shadow:0 2px 14px rgb(0 0 0 / 44%); }
.button--accent { color:#fff; background:var(--color-primary); border-color:var(--color-primary); }
.button--accent:hover { color:#fff; background:#8f2827; border-color:#8f2827; }
.button--ghost-light { color:#fff; border-color:rgb(255 255 255 / 75%); background:rgb(45 36 31 / 28%); }

.choice-section,.values-section { background:#f7f3ed; }
.choice-card,.service-card,.faq-list details { border-radius:16px; }
.choice-card { border-color:rgb(47 40 38 / 12%); box-shadow:none; }
.about-section { background:#fff; }
.split-media img,.activity-card,.service-card__image,.recruit-section .split-media img { border-radius:22px; }
.split-media::before { border-radius:26px; }
.services-section,.faq-section { background:#efeae3; }
.service-card { border:0; box-shadow:0 18px 45px rgb(47 40 38 / 8%); }
.service-type { border-radius:999px; }
.recruit-section,.contact-section { background:#322b28; }
.section-heading h2,.split-copy h2,.contact-copy h2,.service-card h3,.choice-copy strong { letter-spacing:.08em; }

.line-contact { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; margin-top:18px; padding:16px 18px; color:#203228; background:#fff; border-radius:16px; }
.line-contact__icon { display:grid; width:54px; height:54px; place-items:center; color:#fff; background:#06c755; border-radius:50%; font-size:.68rem; font-weight:800; letter-spacing:-.03em; }
.line-contact div { display:flex; min-width:0; flex-direction:column; gap:2px; }
.line-contact small { color:#50705d; font-size:.78rem; font-weight:700; }
.line-contact strong { color:#26332c; font-size:.92rem; line-height:1.55; }
.line-contact__status { padding:6px 10px; color:#496454; background:#eaf8ef; border-radius:999px; font-size:.72rem; font-weight:700; white-space:nowrap; }
.footer-credits { display:flex; align-items:center; gap:18px; }
.footer-credits p { margin:0; }
.footer-credits a { text-decoration:underline; text-underline-offset:4px; }
.footer-credits a:hover { color:#fff; }

@media (max-width:900px) {
  .hero { min-height:720px; padding:18px 18px 34px; }
  .hero-media { inset:18px 132px 128px 18px; border-radius:22px; }
  .hero-content { inset:18px 12px 128px auto; width:126px; padding-top:22px; }
  .hero h1 { font-size:clamp(1.85rem,6vw,2.55rem); letter-spacing:.08em; }
  .hero-kicker { display:none; }
  .hero-tree { right:25px; bottom:10px; transform:scale(.78); transform-origin:bottom right; }
  .hero-actions { right:24px; bottom:38px; left:34px; width:auto; }
}

@media (max-width:640px) {
  .hero { min-height:650px; }
  .hero-media { inset:14px 98px 168px 14px; }
  .hero-content { width:94px; inset:14px 7px 168px auto; }
  .hero h1 { font-size:1.62rem; line-height:1.52; }
  .hero-tree { display:none; }
  .hero-actions { display:block; right:22px; bottom:34px; left:22px; }
  .hero-lead { margin-bottom:16px; color:#3e3733; font-size:.92rem; text-shadow:none; }
  .hero-actions .button-group { gap:8px; }
  .hero-actions .button { min-height:48px; padding-inline:15px; font-size:.82rem; }
  .hero-actions .button--ghost-light { color:#342c28; border-color:#a89e95; background:transparent; }
  .line-contact { grid-template-columns:auto 1fr; padding:14px; }
  .line-contact__status { grid-column:2; justify-self:start; }
  .footer-credits { align-items:flex-start; flex-direction:column; gap:4px; }
}
