:root{
  --bg: #eef3ec;
  --bg-alt: #e4ede3;
  --surface: rgba(255,255,255,0.78);
  --surface-strong: #ffffff;
  --surface-soft: rgba(246,250,245,0.92);
  --text: #203128;
  --text-soft: #5b6f64;
  --heading: #132119;
  --line: rgba(34,78,53,0.12);
  --line-strong: rgba(34,78,53,0.2);
  --green-900: #193a2a;
  --green-700: #2e6a49;
  --green-600: #3f8358;
  --green-500: #5ea66d;
  --blue-500: #5d8fa8;
  --blue-300: #bfd9e4;
  --sand: #d5c6ad;
  --sand-soft: #efe7da;
  --success: #dcefe2;
  --error: #f7dfd9;
  --shadow-lg: 0 24px 60px rgba(20,43,31,0.12);
  --shadow-md: 0 16px 34px rgba(20,43,31,0.08);
  --shadow-sm: 0 10px 24px rgba(20,43,31,0.06);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --radius-sm: 12px;
  --container: 1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:"Manrope","Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(94,166,109,0.18), transparent 32%),
    radial-gradient(circle at top right, rgba(93,143,168,0.18), transparent 28%),
    linear-gradient(180deg, #f7faf5 0%, #edf3eb 38%, #eaf1e8 100%);
}

img{max-width:100%; display:block}
a{color:inherit}
button,input,textarea{font:inherit}
h1,h2,h3,h4{
  margin:0;
  color:var(--heading);
  font-family:"Fraunces","Georgia",serif;
  line-height:1.08;
  font-weight:700;
}
p{margin:0}
ul{margin:0; padding:0}

.container{
  width:min(var(--container), calc(100% - 32px));
  margin-inline:auto;
}

.site-chrome{
  position:relative;
  isolation:isolate;
}

.site-chrome::before,
.site-chrome::after{
  content:"";
  position:fixed;
  inset:auto;
  width:320px;
  height:320px;
  border-radius:50%;
  pointer-events:none;
  z-index:-1;
  filter:blur(20px);
}

.site-chrome::before{
  top:-80px;
  left:-120px;
  background:rgba(94,166,109,0.12);
}

.site-chrome::after{
  right:-80px;
  bottom:10%;
  background:rgba(93,143,168,0.12);
}

.site-header{
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(20px);
  background:rgba(247,250,245,0.75);
  border-bottom:1px solid rgba(34,78,53,0.1);
}

.header-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:16px;
  text-decoration:none;
  min-width:0;
}

.brand-logo{
  width:72px;
  height:72px;
  border-radius:22px;
  object-fit:cover;
  box-shadow:var(--shadow-md);
  border:1px solid rgba(255,255,255,0.7);
}

.brand-copy{
  display:grid;
  gap:4px;
  min-width:0;
}

.brand-kicker{
  color:var(--green-700);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.74rem;
  font-weight:800;
}

.brand-name{
  font-size:clamp(1.15rem, 2.2vw, 1.7rem);
  font-weight:800;
  color:var(--heading);
  line-height:1.12;
}

.brand-tagline{
  color:var(--text-soft);
  font-size:.95rem;
}

.header-cta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.page-shell{
  width:min(var(--container), calc(100% - 32px));
  margin:0 auto;
  padding:28px 0 56px;
  display:grid;
  grid-template-columns:minmax(280px, 320px) minmax(0, 1fr);
  gap:28px;
  align-items:start;
}

.site-nav{
  position:relative;
}

.nav-toggle{
  display:none;
  width:100%;
  border:1px solid var(--line);
  background:rgba(255,255,255,0.76);
  color:var(--heading);
  padding:14px 16px;
  border-radius:18px;
  box-shadow:var(--shadow-sm);
  font-weight:700;
  text-align:left;
}

.nav-panel{
  position:sticky;
  top:102px;
  display:grid;
  gap:18px;
  padding:18px;
  border:1px solid rgba(255,255,255,0.58);
  border-radius:var(--radius-xl);
  background:var(--surface);
  backdrop-filter:blur(24px);
  box-shadow:var(--shadow-lg);
}

.nav-block{
  display:grid;
  gap:12px;
}

.nav-title,
.eyebrow,
.section-kicker,
.meta-label{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.74rem;
  font-weight:800;
  color:var(--green-700);
}

.nav-list{
  list-style:none;
  display:grid;
  gap:8px;
}

.nav-list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 15px;
  text-decoration:none;
  border-radius:16px;
  color:var(--text);
  font-weight:700;
  background:rgba(255,255,255,0.44);
  border:1px solid transparent;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

.nav-list a::after{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(46,106,73,0.18);
  flex:0 0 auto;
}

.nav-list a:hover,
.nav-list a:focus-visible{
  transform:translateX(2px);
  background:rgba(255,255,255,0.78);
  border-color:rgba(46,106,73,0.14);
}

.nav-list a.active{
  color:var(--green-900);
  background:linear-gradient(135deg, rgba(94,166,109,0.18), rgba(191,217,228,0.22));
  border-color:rgba(46,106,73,0.16);
}

.nav-list a.active::after{
  background:var(--green-700);
}

.nav-note{
  display:grid;
  gap:6px;
  padding:16px;
  border-radius:20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(247,250,245,0.92), rgba(233,242,236,0.92));
  color:var(--text-soft);
  box-shadow:var(--shadow-sm);
}

.nav-note strong{
  color:var(--heading);
}

.nav-note--highlight{
  position:relative;
  overflow:hidden;
}

.nav-note--highlight::after{
  content:"";
  position:absolute;
  inset:auto -20px -40px auto;
  width:120px;
  height:120px;
  border-radius:50%;
  background:rgba(93,143,168,0.14);
}

.nav-login{
  display:grid;
  gap:14px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(34,78,53,0.1);
  box-shadow:var(--shadow-sm);
}

.login-head,
.nav-login--welcome{
  display:grid;
  gap:6px;
}

.nav-login h2{
  font-size:1.2rem;
}

.login-intro{
  color:var(--text-soft);
  font-size:.93rem;
  line-height:1.5;
}

.nav-member-links{
  list-style:none;
  display:grid;
  gap:8px;
}

.nav-member-links a{
  display:block;
  padding:11px 13px;
  border-radius:14px;
  text-decoration:none;
  background:var(--surface-soft);
  border:1px solid var(--line);
  font-weight:700;
}

.nav-member-links a:hover,
.nav-member-links a:focus-visible{
  border-color:rgba(46,106,73,0.2);
  background:#fff;
}

.nav-login-actions{
  display:grid;
}

.site-main{
  display:grid;
  gap:24px;
}

.hero{
  position:relative;
}

.hero-surface{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(260px, .95fr);
  gap:26px;
  padding:34px;
  border-radius:36px;
  border:1px solid rgba(255,255,255,0.52);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.8), rgba(245,249,243,0.92)),
    linear-gradient(150deg, rgba(94,166,109,0.14), rgba(93,143,168,0.1));
  box-shadow:var(--shadow-lg);
  backdrop-filter:blur(18px);
}

.hero-surface::before{
  content:"";
  position:absolute;
  top:-70px;
  right:-40px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(191,217,228,0.72) 0%, rgba(191,217,228,0) 70%);
}

.hero-surface::after{
  content:"";
  position:absolute;
  left:-40px;
  bottom:-90px;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(94,166,109,0.18) 0%, rgba(94,166,109,0) 72%);
}

.hero-copy,
.hero-panel{
  position:relative;
  z-index:1;
}

.hero-copy{
  display:grid;
  align-content:start;
  gap:18px;
}

.hero-copy h1{
  font-size:clamp(2.2rem, 4.8vw, 4.3rem);
  max-width:12ch;
}

.hero-text{
  max-width:62ch;
  color:var(--text-soft);
  font-size:1.04rem;
  line-height:1.7;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.hero-panel{
  display:grid;
  gap:18px;
  align-content:start;
}

.hero-stats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.stat-card{
  display:grid;
  gap:6px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,0.74);
  border:1px solid rgba(34,78,53,0.08);
  box-shadow:var(--shadow-sm);
}

.stat-card strong{
  font-size:1.7rem;
  color:var(--green-900);
  line-height:1;
}

.stat-card span{
  color:var(--text-soft);
  font-size:.92rem;
}

.hero-facts{
  list-style:none;
  display:grid;
  gap:10px;
}

.hero-facts li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:13px 15px;
  border-radius:18px;
  background:rgba(23,50,35,0.05);
  border:1px solid rgba(34,78,53,0.08);
  line-height:1.5;
  color:var(--text);
}

.hero-facts li::before{
  content:"";
  width:10px;
  height:10px;
  margin-top:.45rem;
  border-radius:50%;
  flex:0 0 auto;
  background:linear-gradient(135deg, var(--green-600), var(--blue-500));
}

.section{
  display:block;
}

.section-inner{
  position:relative;
  overflow:hidden;
  display:grid;
  gap:24px;
  padding:30px;
  border-radius:var(--radius-xl);
  background:var(--surface);
  border:1px solid rgba(255,255,255,0.56);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(18px);
}

.section-inner::before{
  content:"";
  position:absolute;
  inset:auto -70px -90px auto;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(213,198,173,0.28), transparent 70%);
  pointer-events:none;
}

.section-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(260px, .8fr);
  gap:22px;
  align-items:start;
}

.section-copy{
  display:grid;
  gap:14px;
}

.section-copy p,
.card p,
.legal-content p,
.timeline-copy p{
  color:var(--text-soft);
  line-height:1.7;
}

.section-copy h2,
.section-copy h1{
  font-size:clamp(1.8rem, 3vw, 2.7rem);
}

.cards{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}

.card{
  position:relative;
  display:grid;
  gap:12px;
  padding:22px;
  border-radius:24px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,0.9), rgba(246,250,245,0.84));
  box-shadow:var(--shadow-sm);
}

.card h2,
.card h3{
  font-size:1.35rem;
}

.card-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(94,166,109,0.18), rgba(93,143,168,0.22));
  color:var(--green-900);
  font-weight:800;
}

.card-list,
.list{
  padding-left:18px;
  color:var(--text-soft);
  line-height:1.6;
}

.card-list li,
.list li{
  margin-bottom:8px;
}

.pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,0.76);
  border:1px solid var(--line);
  color:var(--text);
  font-weight:700;
  font-size:.92rem;
}

.feature-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}

.feature-card{
  display:grid;
  gap:12px;
  padding:24px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(239,247,241,0.92));
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}

.feature-card strong{
  font-size:1.05rem;
  color:var(--heading);
}

.metrics{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
}

.metric{
  display:grid;
  gap:6px;
  padding:18px 20px;
  border-radius:20px;
  background:rgba(28,64,44,0.04);
  border:1px solid rgba(34,78,53,0.08);
}

.metric strong{
  font-size:1.8rem;
  color:var(--green-900);
}

.metric span{
  color:var(--text-soft);
}

.timeline{
  display:grid;
  gap:14px;
}

.timeline-item{
  display:grid;
  grid-template-columns:92px minmax(0, 1fr);
  gap:16px;
  align-items:start;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,0.82);
  border:1px solid var(--line);
}

.timeline-date{
  display:grid;
  place-items:center;
  gap:4px;
  padding:14px 10px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(94,166,109,0.18), rgba(93,143,168,0.18));
  text-align:center;
  color:var(--green-900);
  font-weight:800;
}

.timeline-date strong{
  font-size:1.3rem;
  line-height:1;
}

.timeline-copy{
  display:grid;
  gap:8px;
}

.timeline-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:var(--text-soft);
  font-size:.92rem;
}

.parcel-layout{
  display:grid;
  grid-template-columns:minmax(250px, .8fr) minmax(0, 1.2fr);
  gap:18px;
}

.parcel-list{
  list-style:none;
  display:grid;
  gap:10px;
}

.parcel-list a{
  display:grid;
  gap:4px;
  padding:14px 16px;
  text-decoration:none;
  border-radius:18px;
  background:rgba(255,255,255,0.72);
  border:1px solid var(--line);
}

.parcel-list a:hover,
.parcel-list a:focus-visible{
  background:#fff;
  border-color:rgba(46,106,73,0.18);
}

.parcel-list a[aria-current="page"]{
  background:linear-gradient(135deg, rgba(94,166,109,0.18), rgba(191,217,228,0.18));
  border-color:rgba(46,106,73,0.14);
}

.detail-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
}

.detail-item{
  display:grid;
  gap:4px;
  padding:16px;
  border-radius:18px;
  background:rgba(247,250,245,0.92);
  border:1px solid var(--line);
}

.detail-item span{
  color:var(--text-soft);
  font-size:.88rem;
}

.detail-item strong{
  font-size:1rem;
  color:var(--heading);
}

.image-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:12px;
}

.image-tile{
  overflow:hidden;
  margin:0;
  border-radius:18px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}

.image-tile img{
  width:100%;
  height:170px;
  object-fit:cover;
}

.contact-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(260px, .85fr);
  gap:22px;
}

.contact-card{
  display:grid;
  gap:14px;
}

.info-stack{
  display:grid;
  gap:12px;
}

.info-row{
  display:grid;
  gap:4px;
  padding:16px 18px;
  border-radius:18px;
  background:rgba(255,255,255,0.78);
  border:1px solid var(--line);
}

.info-row strong{
  color:var(--heading);
}

.legal-content{
  max-width:860px;
  display:grid;
  gap:16px;
}

.legal-content h1{
  font-size:clamp(2rem, 3.2vw, 3rem);
}

.legal-content h2{
  margin-top:10px;
  font-size:1.28rem;
}

.legal-content h3{
  font-size:1rem;
  color:var(--heading);
}

.form{
  display:grid;
  gap:16px;
}

.field{
  display:grid;
  gap:8px;
}

label{
  font-weight:700;
  color:var(--heading);
}

input,
textarea,
select{
  width:100%;
  border:1px solid rgba(34,78,53,0.14);
  background:rgba(255,255,255,0.82);
  color:var(--text);
  padding:14px 15px;
  border-radius:16px;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

input:focus,
textarea:focus,
select:focus{
  border-color:rgba(46,106,73,0.28);
  box-shadow:0 0 0 5px rgba(94,166,109,0.12);
  background:#fff;
}

textarea{
  resize:vertical;
  min-height:140px;
}

.password-wrap{
  position:relative;
}

.pw-toggle{
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%);
  border:none;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(46,106,73,0.1);
  color:var(--green-900);
  font-weight:800;
  cursor:pointer;
}

.field-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.checkbox{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--text-soft);
  font-size:.94rem;
}

.checkbox input{
  width:18px;
  height:18px;
  padding:0;
}

.hint,
.muted{
  color:var(--text-soft);
  font-size:.92rem;
}

.form-alert{
  display:none;
  padding:13px 15px;
  border-radius:16px;
  font-weight:600;
}

.form-alert.ok{
  display:block;
  background:var(--success);
  border:1px solid rgba(63,131,88,0.16);
  color:var(--green-900);
}

.form-alert.err{
  display:block;
  background:var(--error);
  border:1px solid rgba(166,85,70,0.16);
  color:#7e3021;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:12px 20px;
  border-radius:999px;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  font-weight:800;
  transition:transform .16s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.btn:hover,
.btn:focus-visible{
  transform:translateY(-1px);
}

.btn.primary{
  color:#fff;
  background:linear-gradient(135deg, var(--green-700), var(--green-600));
  box-shadow:0 14px 28px rgba(46,106,73,0.2);
}

.btn.primary:hover,
.btn.primary:focus-visible{
  box-shadow:0 18px 34px rgba(46,106,73,0.24);
}

.btn.ghost{
  color:var(--green-900);
  background:rgba(255,255,255,0.68);
  border-color:rgba(34,78,53,0.12);
}

.btn.ghost:hover,
.btn.ghost:focus-visible{
  background:#fff;
  border-color:rgba(34,78,53,0.18);
}

.btn.full{
  width:100%;
}

.btn.small{
  min-height:40px;
  padding:10px 16px;
  font-size:.92rem;
}

.table-wrap{
  overflow-x:auto;
}

.table{
  width:100%;
  min-width:560px;
  border-collapse:collapse;
  background:rgba(255,255,255,0.86);
  border-radius:20px;
  overflow:hidden;
}

.table th,
.table td{
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}

.table th{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--text-soft);
}

.table tr:last-child td{
  border-bottom:none;
}

.upload-progress{
  width:100%;
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(46,106,73,0.1);
}

.upload-progress__bar{
  width:0;
  height:100%;
  background:linear-gradient(90deg, var(--green-700), var(--blue-500));
}

.link{
  color:var(--green-900);
  text-decoration:none;
  font-weight:700;
}

.link:hover,
.link:focus-visible{
  text-decoration:underline;
}

.site-footer{
  padding:26px 0 42px;
}

.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:22px 24px;
  border-radius:28px;
  background:rgba(19,33,25,0.9);
  color:rgba(244,248,242,0.92);
  box-shadow:var(--shadow-lg);
}

.footer-brand{
  font-weight:800;
  margin-bottom:6px;
}

.footer-copy{
  max-width:58ch;
  color:rgba(244,248,242,0.72);
  line-height:1.6;
}

.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  justify-content:flex-end;
}

.footer-nav .link{
  color:rgba(244,248,242,0.92);
}

.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;
}

:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(94,166,109,0.16);
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
  }
}

@media (max-width: 1080px){
  .page-shell{
    grid-template-columns:1fr;
  }

  .nav-toggle{
    display:block;
  }

  .nav-panel{
    position:static;
    display:none;
  }

  .nav-panel.show{
    display:grid;
  }
}

@media (max-width: 920px){
  .hero-surface,
  .section-grid,
  .parcel-layout,
  .contact-grid{
    grid-template-columns:1fr;
  }

  .hero-copy h1{
    max-width:none;
  }

  .timeline-item{
    grid-template-columns:1fr;
  }

  .timeline-date{
    justify-self:start;
    min-width:88px;
  }
}

@media (max-width: 720px){
  .header-content{
    flex-direction:column;
    align-items:flex-start;
  }

  .header-cta{
    width:100%;
    justify-content:flex-start;
  }

  .hero-surface,
  .section-inner{
    padding:24px;
  }

  .hero-stats{
    grid-template-columns:1fr 1fr;
  }

  .footer-inner{
    flex-direction:column;
  }

  .footer-nav{
    justify-content:flex-start;
  }
}

@media (max-width: 560px){
  .container,
  .page-shell{
    width:min(var(--container), calc(100% - 20px));
  }

  .page-shell{
    padding-top:18px;
    gap:18px;
  }

  .brand{
    align-items:flex-start;
  }

  .brand-logo{
    width:60px;
    height:60px;
    border-radius:18px;
  }

  .brand-tagline{
    font-size:.88rem;
  }

  .hero-surface,
  .section-inner,
  .nav-panel,
  .nav-login{
    border-radius:24px;
  }

  .hero-surface,
  .section-inner{
    padding:20px;
  }

  .hero-stats{
    grid-template-columns:1fr;
  }

  .cards,
  .feature-grid,
  .metrics{
    grid-template-columns:1fr;
  }

  .btn{
    width:100%;
  }

  .hero-actions{
    display:grid;
  }
}
