
:root {
  --bg: #f8f5ec;
  --paper: rgba(255,255,255,0.82);
  --text: #1d2d22;
  --muted: #5f6d63;
  --line: rgba(29,45,34,0.12);
  --primary: #2a7b4f;
  --primary-2: #9acd32;
  --accent: #f3a530;
  --accent-2: #864b1a;
  --card-shadow: 0 24px 60px rgba(37, 61, 47, 0.08);
  --radius: 24px;
  --hero-radius: 34px;
  --content: 1200px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 0% 0%, rgba(154,205,50,0.12), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(243,165,48,0.10), transparent 32%),
    linear-gradient(180deg, #fbfaf5 0%, #f7f3ea 100%);
  line-height: 1.65;
}
a { color: var(--primary); text-decoration: none; }
a:hover { color: #17472d; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 32px), var(--content)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 40;
  backdrop-filter: blur(16px);
  background: rgba(248,245,236,0.82);
  border-bottom: 1px solid var(--line);
}
.nav-shell { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; }
.brand { display: flex; align-items: center; gap: 14px; }
.brand-mark {
  width: 48px; height: 48px; border-radius: 16px;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow: 0 16px 28px rgba(42,123,79,0.2);
  position: relative; overflow: hidden;
}
.brand-mark::before {
  content: ''; position: absolute; inset: 10px 12px 12px 10px;
  border-radius: 18px 60% 20px 60%; background: rgba(255,255,255,0.9);
  transform: rotate(-18deg);
}
.brand-text strong { display:block; font-size: 1rem; }
.brand-text span { display:block; color: var(--muted); font-size: .88rem; }
.nav-toggle { display:none; border:0; background:#fff; width:48px; height:48px; border-radius:16px; box-shadow: var(--card-shadow); }
.nav-toggle span, .nav-toggle::before, .nav-toggle::after { content:''; display:block; width:22px; height:2px; background: var(--text); margin: 5px auto; transition: .25s ease; }
.nav-toggle.is-open span { opacity:0; }
.nav-toggle.is-open::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open::after { transform: translateY(-7px) rotate(-45deg); }
.primary-nav ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.primary-nav a {
  padding: 10px 14px; border-radius: 999px; color: var(--text); font-weight:600; font-size:.95rem;
}
.primary-nav a.active, .primary-nav a:hover { background: rgba(42,123,79,0.09); color: var(--primary); }
.cta-nav { display:flex; align-items:center; gap:10px; }
.button, button.button, input[type=submit].button {
  appearance:none; border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding: 14px 20px; border-radius: 999px; font-weight:700; font-size:.98rem; transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: 0 16px 28px rgba(42,123,79,0.16);
}
.button:hover { transform: translateY(-2px); }
.button.primary { background: linear-gradient(135deg, var(--primary), #3e9e63); color:#fff; }
.button.secondary { background:#fff; color:var(--text); box-shadow: var(--card-shadow); }
.button.outline { background: transparent; color: var(--primary); border:1px solid rgba(42,123,79,0.24); box-shadow:none; }
.hero { padding: 42px 0 24px; }
.hero-card {
  display:grid; grid-template-columns: 1.05fr .95fr; gap:24px; align-items: stretch;
  background: linear-gradient(180deg, rgba(255,255,255,0.78), rgba(255,255,255,0.62));
  border:1px solid rgba(255,255,255,0.7); border-radius: var(--hero-radius); overflow:hidden; box-shadow: var(--card-shadow);
}
.hero-copy { padding: clamp(24px, 4vw, 54px); }
.eyebrow { display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--primary); background: rgba(42,123,79,0.1); padding:8px 14px; border-radius:999px; }
.hero h1 { font-size: clamp(2.4rem, 5vw, 4.9rem); line-height:1; margin: 18px 0; letter-spacing: -.04em; }
.hero p.lead { font-size: 1.08rem; color:var(--muted); max-width: 64ch; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top: 26px; }
.hero-stats { display:grid; grid-template-columns: repeat(3,1fr); gap:12px; margin-top: 26px; }
.stat {
  padding: 18px; border-radius: 22px; background: rgba(42,123,79,0.06); border:1px solid rgba(42,123,79,0.10);
}
.stat strong { display:block; font-size:1.2rem; }
.stat span { color:var(--muted); font-size:.92rem; }
.hero-figure { min-height: 100%; }
.hero-figure img { width:100%; height:100%; object-fit:cover; }
main section { padding: 34px 0; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom: 22px; }
.section-head h2 { font-size: clamp(1.8rem, 3vw, 3rem); margin:0; letter-spacing:-.03em; }
.section-head p { margin:0; color:var(--muted); max-width: 62ch; }
.grid { display:grid; gap: 18px; }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.card {
  position:relative; background: var(--paper); border:1px solid rgba(255,255,255,0.7); border-radius: var(--radius);
  padding: 24px; box-shadow: var(--card-shadow); overflow:hidden;
}
.card::after {
  content:''; position:absolute; inset:auto -60px -60px auto; width:160px; height:160px; border-radius:50%;
  background: radial-gradient(circle, rgba(243,165,48,0.15), transparent 70%); pointer-events:none;
}
.card h3, .card h4 { margin-top:0; margin-bottom:10px; letter-spacing: -.02em; }
.card p { color: var(--muted); }
.pill-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.pill, .tag { display:inline-flex; align-items:center; gap:8px; background: rgba(42,123,79,0.08); color:var(--primary); font-weight:700; border-radius:999px; padding:8px 12px; font-size:.86rem; }
.product-card .meta { color: var(--muted); font-size:.94rem; }
.product-card .spec { margin-top:12px; font-size: .95rem; color:#34483c; }
.band {
  background: linear-gradient(135deg, rgba(42,123,79,0.12), rgba(243,165,48,0.12));
  border:1px solid rgba(42,123,79,0.10); border-radius: 34px; padding: clamp(24px, 4vw, 38px);
}
.timeline { position:relative; display:grid; gap:16px; }
.timeline-item { display:grid; grid-template-columns: 74px 1fr; gap:16px; align-items:start; }
.timeline-badge {
  width:74px; height:74px; border-radius:22px; background: linear-gradient(135deg, var(--primary), var(--accent)); color:#fff;
  display:grid; place-items:center; font-size:1.25rem; font-weight:800; box-shadow: var(--card-shadow);
}
.faq-list details {
  background: var(--paper); border-radius: 22px; padding: 18px 20px; border:1px solid rgba(255,255,255,0.7); box-shadow: var(--card-shadow);
}
.faq-list { display:grid; gap:14px; }
.faq-list summary { cursor:pointer; font-weight:700; }
.table-wrap { overflow:auto; }
table.spec-table { width:100%; border-collapse: collapse; background: var(--paper); border-radius: 24px; overflow:hidden; box-shadow: var(--card-shadow); }
.spec-table th, .spec-table td { padding: 15px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align: top; }
.spec-table th { background: rgba(42,123,79,0.08); }
.notice { font-size: .92rem; color: var(--muted); }
.contact-strip {
  display:grid; grid-template-columns: 1fr auto; gap:16px; align-items:center;
  background: linear-gradient(135deg, rgba(42,123,79,0.10), rgba(249,202,36,0.12));
  border:1px solid rgba(42,123,79,0.10); border-radius: 30px; padding: 24px;
}
.footer {
  margin-top: 40px; padding: 42px 0 60px; border-top:1px solid var(--line);
}
.footer-grid { display:grid; grid-template-columns: 1.2fr .8fr .8fr; gap:18px; }
.footer ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer p, .footer li, .footer a { color: var(--muted); }
.floating-contact {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
}
.floating-contact .button { border-radius: 18px; padding: 14px 18px; }
.modal {
  position: fixed; inset: 0; background: rgba(21,31,24,0.55); display:none; align-items:center; justify-content:center; z-index: 70; padding: 16px;
}
.modal.is-open { display:flex; }
.modal-panel {
  width:min(760px, 100%); max-height:90vh; overflow:auto; background:#fff; border-radius: 28px; padding:24px; box-shadow: 0 50px 100px rgba(0,0,0,0.18); position:relative;
}
.modal-close { position:absolute; top:16px; right:16px; width:44px; height:44px; border:0; border-radius:14px; background:#f2f1eb; cursor:pointer; }
form.contact-form { display:grid; gap:14px; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px; }
label span { display:block; font-weight:700; margin-bottom: 8px; }
input, select, textarea {
  width:100%; border:1px solid rgba(29,45,34,0.16); border-radius: 16px; padding: 14px 16px; font: inherit; background:#fcfbf8;
}
textarea { min-height: 140px; resize: vertical; }
.hidden-field { position:absolute; left:-9999px; opacity:0; }
.article-card h3 { font-size:1.2rem; }
.article-card p { font-size:.95rem; }
.article-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; }
.kb-filter { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.kb-filter button { background:#fff; border:1px solid var(--line); border-radius:999px; padding:10px 14px; cursor:pointer; font-weight:700; }
.kb-filter button.active { background: rgba(42,123,79,0.09); color: var(--primary); border-color: rgba(42,123,79,0.2); }
.reveal { opacity:0; transform: translateY(24px) scale(.98); transition: opacity .6s ease, transform .6s ease; }
.reveal.in-view { opacity:1; transform: translateY(0) scale(1); }
@media (max-width: 1060px) {
  .hero-card, .footer-grid, .grid.cols-4, .grid.cols-3, .article-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .nav-toggle { display:block; }
  .primary-nav {
    position: absolute; left: 16px; right: 16px; top: calc(100% + 8px); background:#fff; border-radius: 24px; box-shadow: var(--card-shadow); padding: 12px; display:none;
  }
  .primary-nav.is-open { display:block; }
  .primary-nav ul { flex-direction: column; align-items: stretch; }
  .primary-nav a { display:block; }
  .hero-card, .grid.cols-2, .grid.cols-3, .grid.cols-4, .footer-grid, .form-grid, .contact-strip, .article-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(2rem, 12vw, 3.4rem); }
  .hero-stats { grid-template-columns: 1fr; }
}


.product-card { display:flex; flex-direction:column; gap:14px; }
.product-card-media { margin: -24px -24px 0; aspect-ratio: 16/9; overflow:hidden; border-bottom:1px solid var(--line); background: linear-gradient(135deg, rgba(42,123,79,0.10), rgba(243,165,48,0.12)); }
.product-card-media img { width:100%; height:100%; object-fit:cover; display:block; }
.product-title-link { color:inherit; text-decoration:none; }
.product-title-link:hover h3, .product-title-link:focus-visible h3 { color: var(--primary); }
.product-card-footer { margin-top:auto; padding-top:4px; }
.text-link { display:inline-flex; align-items:center; gap:8px; color:var(--primary); font-weight:700; text-decoration:none; }
.text-link:hover, .text-link:focus-visible { text-decoration:underline; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; color:var(--muted); font-size:.95rem; }
.breadcrumbs a { color:var(--primary); text-decoration:none; }
.breadcrumbs a:hover, .breadcrumbs a:focus-visible { text-decoration:underline; }
.info-list { display:grid; gap:12px; }
.info-list .card h3 { margin-bottom:8px; }
.check-list { margin:0; padding-left:18px; color:var(--muted); }
.check-list li + li { margin-top:8px; }
.cta-inline { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }


.form-status-banner {
  position: fixed;
  left: 50%;
  top: 22px;
  transform: translate(-50%, -16px);
  width: min(calc(100% - 32px), 640px);
  padding: 16px 20px;
  border-radius: 18px;
  color: #fff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  z-index: 120;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease, transform .35s ease;
}
.form-status-banner.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}
.form-status-banner.is-success {
  background: linear-gradient(135deg, var(--primary), #3e9e63);
}
.form-status-banner.is-error {
  background: linear-gradient(135deg, #a33a2b, #d0634c);
}
.form-status-banner strong {
  margin-right: 6px;
}
