/* =============================================================
   LARREN — Landscape Research and Restoration Network
   Main Stylesheet
   Design: Earth tones — deep forest, ochre, warm stone
   Typefaces: Fraunces (display) + Inter (body)
============================================================= */

:root {
  --forest:      #1e3a2f;
  --moss:        #2d5a3d;
  --leaf:        #4a7c59;
  --ochre:       #c47c2b;
  --ochre-light: #e8a84a;
  --earth:       #8b6344;
  --slate:       #4a5568;
  --stone:       #f0ece4;
  --white:       #ffffff;
  --dark:        #0f1e17;
  --gray:        #6b7280;
  --gray-light:  #e5e7e3;
  --shadow-sm:   0 2px 8px rgba(30,58,47,.08);
  --shadow-md:   0 6px 24px rgba(30,58,47,.14);
  --shadow-lg:   0 16px 48px rgba(30,58,47,.20);
  --radius:      8px;
  --radius-lg:   16px;
  --transition:  .3s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Inter',system-ui,sans-serif;background:var(--stone);color:var(--dark);line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}

::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--gray-light)}
::-webkit-scrollbar-thumb{background:var(--leaf);border-radius:3px}

.container{width:min(1160px,92%);margin-inline:auto}
.section-pad{padding:6rem 0}
.text-center{text-align:center}

.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ochre);display:block;margin-bottom:.7rem}
.section-title{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.9rem,3.8vw,2.8rem);font-weight:700;color:var(--forest);line-height:1.15;margin-bottom:.9rem}
.section-title.white{color:var(--white)}
.section-body{font-size:1.02rem;color:var(--slate);max-width:620px;line-height:1.8}
.section-body.white{color:rgba(255,255,255,.72)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.75rem 1.6rem;border-radius:var(--radius);font-family:'Inter',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;border:2px solid transparent;transition:var(--transition);text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--moss);color:var(--white);border-color:var(--moss)}
.btn-primary:hover{background:var(--forest);border-color:var(--forest);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-ochre{background:var(--ochre);color:var(--white);border-color:var(--ochre)}
.btn-ochre:hover{background:#a86720;transform:translateY(-1px);box-shadow:0 6px 20px rgba(196,124,43,.3)}
.btn-outline{background:transparent;color:var(--forest);border-color:var(--forest)}
.btn-outline:hover{background:var(--forest);color:var(--white)}
.btn-outline-white{background:transparent;color:var(--white);border-color:rgba(255,255,255,.6)}
.btn-outline-white:hover{background:rgba(255,255,255,.12);border-color:var(--white)}
.btn-sm{padding:.55rem 1.1rem;font-size:.82rem}

/* TOP BAR */
#top-bar{background:var(--forest);color:rgba(255,255,255,.75);padding:.45rem 1rem;text-align:center;font-size:.8rem;position:relative;z-index:1001}
#top-bar a{color:var(--ochre-light);font-weight:600}
#top-bar .close-bar{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:.9rem}

/* NAVBAR */
#navbar{position:sticky;top:0;z-index:1000;background:rgba(240,236,228,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(30,58,47,.1);transition:box-shadow var(--transition)}
#navbar.scrolled{box-shadow:var(--shadow-md)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}
.nav-logo{display:flex;align-items:center;gap:.8rem}
.nav-logo-mark{width:40px;height:40px;background:var(--forest);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-logo-mark svg{width:24px;height:24px;fill:var(--ochre)}
.nav-logo-text .org-name{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--forest);line-height:1.1}
.nav-logo-text .org-sub{font-size:.62rem;color:var(--gray);letter-spacing:.04em}
.nav-links{display:flex;align-items:center;gap:.1rem}
.nav-links a{padding:.48rem .85rem;font-size:.875rem;font-weight:500;color:var(--slate);border-radius:var(--radius);transition:var(--transition)}
.nav-links a:hover,.nav-links a.active{color:var(--forest);background:rgba(30,58,47,.08)}
.nav-dropdown{position:relative}
.nav-dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:var(--transition);z-index:100}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown-menu a{display:block;padding:.6rem 1rem;font-size:.85rem;color:var(--slate);transition:background var(--transition)}
.nav-dropdown-menu a:hover{background:var(--stone);color:var(--forest)}
.nav-cta{margin-left:.8rem}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:4px}
.hamburger span{display:block;height:2px;border-radius:2px;background:var(--forest);transition:var(--transition)}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
#mobile-nav{display:none;position:fixed;inset:0;z-index:999}
#mobile-nav.open{display:block}
.mob-overlay{position:absolute;inset:0;background:rgba(15,30,23,.5)}
.mob-drawer{position:absolute;top:0;right:0;width:min(300px,90vw);height:100%;background:var(--white);padding:5rem 1.5rem 2rem;display:flex;flex-direction:column;gap:.3rem;animation:drawerIn .3s ease;overflow-y:auto}
@keyframes drawerIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.mob-drawer a{display:flex;align-items:center;gap:.7rem;padding:.75rem 1rem;font-size:.95rem;font-weight:500;color:var(--dark);border-radius:var(--radius);border-left:3px solid transparent;transition:var(--transition)}
.mob-drawer a:hover,.mob-drawer a.active{background:var(--stone);border-left-color:var(--moss);color:var(--forest)}
.mob-drawer a i{color:var(--moss);width:16px}
.mob-divider{height:1px;background:var(--gray-light);margin:.5rem 0}
.mob-btn-primary{background:var(--moss)!important;color:var(--white)!important;border-radius:var(--radius)!important;justify-content:center;border-left:none!important;margin-top:.3rem}
.mob-btn-primary:hover{background:var(--forest)!important}

/* PAGE HERO */
.page-hero{background:linear-gradient(135deg,var(--forest) 0%,#0f2018 60%,#070f0b 100%);padding:6.5rem 0 5.5rem;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 80% 20%,rgba(74,124,89,.2) 0%,transparent 70%),radial-gradient(ellipse 40% 60% at 10% 80%,rgba(196,124,43,.1) 0%,transparent 70%);pointer-events:none}
.page-hero-inner{position:relative;z-index:1}
.page-hero h1{font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;color:var(--white);line-height:1.1;margin-bottom:.7rem}
.page-hero p{font-size:1rem;color:rgba(255,255,255,.68);max-width:560px;line-height:1.75}
.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:rgba(255,255,255,.45);margin-bottom:1rem}
.breadcrumb a{color:rgba(255,255,255,.6);transition:color .2s}
.breadcrumb a:hover{color:var(--ochre-light)}
.breadcrumb i{font-size:.55rem}

/* CAROUSEL */
.carousel-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.carousel-bg .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.carousel-bg .slide.active{opacity:1}
.carousel-bg .slide img{width:100%;height:100%;object-fit:cover;display:block}
.carousel-bg::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(15,30,23,.82) 0%,rgba(30,58,47,.72) 50%,rgba(7,15,11,.68) 100%);pointer-events:none}
.carousel-dots{position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);display:flex;gap:.45rem;z-index:10}
.carousel-dots .dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.3);border:none;cursor:pointer;padding:0;transition:var(--transition)}
.carousel-dots .dot.active{background:var(--ochre);transform:scale(1.3)}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}
.team-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--gray-light);transition:var(--transition)}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.team-photo{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center top;display:block;background:var(--gray-light)}
.team-body{padding:1.4rem}
.team-name{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:700;color:var(--forest);margin-bottom:.25rem}
.team-role{font-size:.75rem;color:var(--ochre);font-weight:600;margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.05em}
.team-inst{font-size:.8rem;color:var(--gray);line-height:1.5;margin-bottom:.7rem}
.team-bio{font-size:.83rem;color:var(--slate);line-height:1.65}
.team-expand{display:none}
.team-expand.show{display:block;margin-top:.5rem}
.read-more-btn{background:none;border:none;cursor:pointer;color:var(--moss);font-size:.82rem;font-weight:600;padding:.4rem 0;display:flex;align-items:center;gap:.3rem;transition:color var(--transition);margin-top:.5rem;font-family:'Inter',sans-serif}
.read-more-btn:hover{color:var(--forest)}

/* INTERVENTIONS */
.intervention-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem}
.int-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--gray-light);transition:var(--transition)}
.int-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.int-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.int-card-body{padding:1.2rem}
.int-card h3{font-family:'Fraunces',serif;font-size:.97rem;color:var(--forest);margin-bottom:.35rem}
.int-card p{font-size:.82rem;color:var(--slate);line-height:1.6}

/* WHAT WE DO */
.wedo-item{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding:4rem 0;border-bottom:1px solid var(--gray-light)}
.wedo-item:last-child{border-bottom:none}
.wedo-item.reverse .wedo-content{order:2}
.wedo-item.reverse .wedo-visual{order:1}
.wedo-img{width:100%;aspect-ratio:4/3;border-radius:var(--radius-lg);object-fit:cover;display:block;box-shadow:var(--shadow-md)}
.wedo-title{font-family:'Fraunces',serif;font-size:1.6rem;font-weight:700;color:var(--forest);margin-bottom:.8rem}
.wedo-body{font-size:.97rem;color:var(--slate);line-height:1.8}

/* OBJECTIVES */
.obj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.obj-card{background:var(--white);border-radius:var(--radius-lg);padding:1.8rem;border-left:4px solid var(--moss);box-shadow:var(--shadow-sm);transition:var(--transition)}
.obj-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.obj-icon{font-size:1.5rem;color:var(--moss);margin-bottom:.7rem;display:block}
.obj-card h3{font-family:'Fraunces',serif;font-size:.97rem;color:var(--forest);margin-bottom:.35rem}
.obj-card p{font-size:.82rem;color:var(--slate);line-height:1.65}

/* STATS */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--forest)}
.stat-item{padding:2.5rem 1.5rem;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.stat-item:last-child{border-right:none}
.stat-num{font-family:'Fraunces',serif;font-size:2.8rem;font-weight:700;color:var(--ochre-light);line-height:1;display:block}
.stat-lbl{font-size:.76rem;color:rgba(255,255,255,.55);margin-top:.3rem;line-height:1.4}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:start}
.contact-info-card{background:var(--forest);border-radius:var(--radius-lg);padding:2.5rem;color:var(--white)}
.contact-info-card h3{font-family:'Fraunces',serif;font-size:1.4rem;margin-bottom:.5rem}
.contact-info-card>p{color:rgba(255,255,255,.6);font-size:.9rem;margin-bottom:2rem}
.contact-item{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1.2rem}
.c-icon{width:38px;height:38px;background:rgba(255,255,255,.1);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--ochre);font-size:.95rem;flex-shrink:0}
.contact-item h4{font-size:.78rem;color:var(--ochre);font-weight:600;margin-bottom:.15rem}
.contact-item p,.contact-item a{font-size:.88rem;color:rgba(255,255,255,.75)}
.contact-item a:hover{color:var(--ochre-light)}

/* FORM */
.form-card{background:var(--white);border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-md)}
.form-card h2{font-family:'Fraunces',serif;font-size:1.6rem;color:var(--forest);margin-bottom:.3rem}
.form-desc{font-size:.88rem;color:var(--gray);margin-bottom:2rem}
.form-row{display:grid;gap:1rem;margin-bottom:1rem}
.form-row.cols-2{grid-template-columns:1fr 1fr}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group label{font-size:.8rem;font-weight:600;color:var(--dark)}
.form-group label .req{color:#e05252;margin-left:2px}
.form-group input,.form-group select,.form-group textarea{padding:.72rem .95rem;border:1.5px solid var(--gray-light);border-radius:var(--radius);font-family:'Inter',sans-serif;font-size:.9rem;color:var(--dark);background:var(--stone);outline:none;width:100%;transition:border-color var(--transition),box-shadow var(--transition)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--moss);box-shadow:0 0 0 3px rgba(45,90,61,.12);background:var(--white)}
.form-group textarea{resize:vertical;min-height:110px}
.form-success{display:none;text-align:center;padding:2.5rem 1rem}
.form-success.show{display:block}
.success-icon{width:64px;height:64px;background:rgba(45,90,61,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.8rem;color:var(--moss)}

/* FOOTER */
footer{background:var(--dark);color:var(--white);padding:4.5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-brand p{font-size:.84rem;color:rgba(255,255,255,.45);margin-top:.8rem;line-height:1.7;max-width:280px}
.footer-col h4{font-size:.78rem;font-weight:700;color:var(--ochre);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.footer-col ul{display:flex;flex-direction:column;gap:.45rem}
.footer-col ul li a{font-size:.84rem;color:rgba(255,255,255,.45);transition:color var(--transition);display:flex;align-items:center;gap:.4rem}
.footer-col ul li a:hover{color:var(--ochre-light)}
.footer-col ul li a i{font-size:.6rem;color:var(--ochre)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:1.8rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{font-size:.78rem;color:rgba(255,255,255,.3)}
.social-links{display:flex;gap:.6rem;margin-top:1rem}
.social-link{width:35px;height:35px;background:rgba(255,255,255,.08);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:.85rem;transition:var(--transition)}
.social-link:hover{background:var(--ochre);color:var(--dark);transform:translateY(-2px)}

/* UTILS */
#back-to-top{position:fixed;bottom:1.8rem;right:1.8rem;z-index:500;width:42px;height:42px;background:var(--forest);color:var(--white);border:none;cursor:pointer;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;transform:translateY(8px);transition:var(--transition);font-size:.9rem}
#back-to-top.show{opacity:1;transform:translateY(0)}
#back-to-top:hover{background:var(--moss)}
#toast{position:fixed;bottom:4.5rem;right:1.8rem;z-index:600;background:var(--forest);color:var(--white);padding:.9rem 1.4rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:.88rem;display:flex;align-items:center;gap:.7rem;transform:translateX(120%);transition:transform .4s cubic-bezier(.34,1.56,.64,1);max-width:320px}
#toast.show{transform:translateX(0)}
#toast i{color:var(--ochre)}
#page-loader{position:fixed;inset:0;z-index:9999;background:var(--forest);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.2rem;transition:opacity .6s ease,visibility .6s ease}
#page-loader.hidden{opacity:0;visibility:hidden}
.loader-wordmark{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--white)}
.loader-wordmark span{color:var(--ochre)}
.loader-bar{width:180px;height:2px;background:rgba(255,255,255,.15);border-radius:1px;overflow:hidden}
.loader-fill{height:100%;background:var(--ochre);border-radius:1px;animation:loadBar 1.3s ease forwards}
@keyframes loadBar{from{width:0}to{width:100%}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem}

/* RESPONSIVE */
@media(max-width:1000px){.footer-grid{grid-template-columns:1fr 1fr}.stats-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .nav-links,.nav-cta{display:none}.hamburger{display:flex}
  .grid-2{grid-template-columns:1fr}
  .wedo-item{grid-template-columns:1fr;gap:2rem}
  .contact-grid{grid-template-columns:1fr}
  .form-row.cols-2{grid-template-columns:1fr}
}
@media(max-width:640px){
  .section-pad{padding:4rem 0}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .stats-strip{grid-template-columns:1fr 1fr}
}


/* ============ UPDATE: LOGO ============ */
.nav-logo-img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--white);box-shadow:0 0 0 2px rgba(30,58,47,.15)}
.footer-logo-img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--white)}
.loader-logo{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px rgba(255,255,255,.25)}

/* ============ UPDATE: CAROUSEL ON EVERY PAGE ============ */
.page-hero .carousel-bg::after{background:linear-gradient(90deg,rgba(15,30,23,.9) 0%,rgba(15,30,23,.72) 45%,rgba(15,30,23,.38) 100%)}
.page-hero .carousel-dots{bottom:1.4rem}
.carousel-dots .dot{position:relative}
.carousel-dots .dot::after{content:'';position:absolute;inset:-10px -3px}   /* taller tap target, no overlap with neighbouring dots */

/* ============ UPDATE: TEAM (Who We Are) ============ */
.team-photo{aspect-ratio:4/5;object-position:center 15%}
.team-spec{font-size:.72rem;font-weight:700;color:var(--forest);text-transform:none;letter-spacing:.02em;margin:.2rem 0 .45rem}
.team-bio p+p{margin-top:.6rem}
.team-card{display:flex;flex-direction:column}
.team-body{display:flex;flex-direction:column;flex:1}
.read-more-btn:focus-visible,.site-chips a:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}

/* ============ UPDATE: WHAT WE DO ============ */
.site-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.site-chips a{padding:.4rem .9rem;border:1px solid var(--gray-light);background:var(--white);border-radius:999px;font-size:.8rem;font-weight:500;color:var(--forest);transition:var(--transition)}
.site-chips a:hover{background:var(--forest);color:var(--white);border-color:var(--forest)}
.wedo-item{scroll-margin-top:90px}
.wedo-img{aspect-ratio:4/3;object-position:center}
.intro-block{max-width:760px}

/* ============ UPDATE: CTA BANNER (shared) ============ */
.cta-banner{background:linear-gradient(135deg,var(--moss),var(--forest));padding:5rem 0;text-align:center}
.cta-banner h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.5vw,2.6rem);color:var(--white);margin-bottom:.6rem}
.cta-banner p{color:rgba(255,255,255,.65);font-size:1rem;max-width:500px;margin:0 auto 2rem}
.cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
@media(max-width:640px){.cta-btns{flex-direction:column;align-items:center}}

/* ============ ACCESSIBILITY ============ */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .carousel-bg .slide{transition:none}
}


/* ============ UPDATE: ABOUT PAGE ============ */
.bg-white{background:var(--white)}
.about-lead{font-size:1.12rem;color:var(--forest);line-height:1.8;font-family:'Fraunces',Georgia,serif}
.wedo-body+.wedo-body{margin-top:1rem}
.check-list{margin-top:1.1rem;display:flex;flex-direction:column;gap:.95rem}
.check-list li{display:flex;gap:.8rem;font-size:.95rem;color:var(--slate);line-height:1.7}
.check-list li i{color:var(--moss);margin-top:.4rem;flex-shrink:0}
.check-list li b{color:var(--forest)}
.principles{position:relative;padding:5.5rem 0;background:var(--forest) center/cover no-repeat;color:var(--white)}
.principles::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,30,23,.9),rgba(30,58,47,.82))}
.principles .container{position:relative}
.principle-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:2.2rem}
.principle{border-left:3px solid var(--ochre);padding-left:1.4rem}
.principle span{display:block;font-size:.8rem;font-weight:600;color:var(--ochre-light);margin-bottom:.4rem}
.principle p{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.3rem,2.6vw,1.75rem);line-height:1.3;font-weight:700}
.step-num{font-family:'Fraunces',serif;font-size:2.4rem;font-weight:700;color:var(--ochre);line-height:1;display:block;margin-bottom:.5rem}
.body-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.2rem}
.obj-card h3 b{font-weight:700}
@media(max-width:900px){.principle-grid{grid-template-columns:1fr}.body-grid{grid-template-columns:1fr}}

/* ============ UPDATE: CONTACT / GET INVOLVED ============ */
.involve-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.2rem}
@media(max-width:1000px){.involve-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.involve-grid{grid-template-columns:1fr}}
.contact-info-card .contact-item a{word-break:break-word}
.form-group select{appearance:auto}
.form-status{min-height:1.4rem;margin-top:.9rem;font-size:.88rem;color:var(--moss);font-weight:500}
.form-status.err{color:#c0392b}
.form-card .btn[disabled]{opacity:.65;cursor:wait}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}


/* ============ ABOUT PAGE — typographic layout (no photos) ============ */
.facts{display:grid;grid-template-columns:1.2fr 1.4fr 1.3fr 1.3fr;background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:-3rem;position:relative;z-index:5;overflow:hidden}
.fact{padding:1.5rem 1.6rem;border-right:1px solid var(--gray-light)}
.fact:last-child{border-right:none}
.fact dt{font-size:.74rem;font-weight:600;color:var(--ochre);margin-bottom:.35rem}
.fact dd{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;font-weight:700;color:var(--forest);line-height:1.35}

.about-row{display:grid;grid-template-columns:1fr 1.7fr;gap:4rem;padding:3.8rem 0;border-top:1px solid var(--gray-light)}
.about-row:first-child{border-top:none}
.about-row .section-title{margin-bottom:0}
.about-row .prose p{font-size:1.02rem;color:var(--slate);line-height:1.85;max-width:640px}
.about-row .prose p+p{margin-top:1rem}
.about-row .prose .about-lead{font-size:1.22rem;color:var(--forest);line-height:1.75}
.pullquote{margin-top:1.8rem;border-left:3px solid var(--ochre);padding:.3rem 0 .3rem 1.3rem;font-family:'Fraunces',Georgia,serif;font-size:1.25rem;font-weight:700;color:var(--forest);line-height:1.4;max-width:560px}
.pullquote small{display:block;font-family:'Inter',sans-serif;font-size:.74rem;font-weight:600;color:var(--gray);margin-top:.4rem}

.vision-panel{display:grid;grid-template-columns:1fr 1.5fr;gap:3rem;background:linear-gradient(135deg,var(--moss),var(--forest));color:var(--white);border-radius:var(--radius-lg);padding:3.2rem;box-shadow:var(--shadow-md)}
.vision-panel .section-title{color:var(--white);margin-bottom:0}
.vision-panel p{font-size:1.02rem;line-height:1.85;color:rgba(255,255,255,.82)}
.vision-panel p+p{margin-top:1rem}
.vision-panel p:first-child{font-family:'Fraunces',Georgia,serif;font-size:1.25rem;line-height:1.6;color:var(--white)}

.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.4rem}
.pillar{background:var(--white);border:1px solid var(--gray-light);border-top:3px solid var(--moss);border-radius:var(--radius-lg);padding:1.8rem;box-shadow:var(--shadow-sm)}
.pillar i{font-size:1.4rem;color:var(--moss);margin-bottom:.9rem;display:block}
.pillar h3{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--forest);margin-bottom:.45rem}
.pillar p{font-size:.9rem;color:var(--slate);line-height:1.7}

.obj-list{margin-top:2.4rem;background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:0 2rem}
.obj-row{display:grid;grid-template-columns:52px 1fr 1.7fr;gap:1.5rem;align-items:center;padding:1.6rem 0;border-top:1px solid var(--gray-light)}
.obj-row:first-child{border-top:none}
.obj-ico{width:52px;height:52px;border-radius:50%;background:rgba(30,58,47,.08);color:var(--moss);display:flex;align-items:center;justify-content:center;font-size:1.15rem}
.obj-row h3{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--forest);line-height:1.3}
.obj-row p{font-size:.92rem;color:var(--slate);line-height:1.7}

.principles{padding:5rem 0}
.principles-head{max-width:620px}

.op-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.4rem;counter-reset:op}
.op{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);position:relative}
.op .step-num{margin-bottom:.8rem}
.op h3{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--forest);margin-bottom:.5rem}
.op p{font-size:.92rem;color:var(--slate);line-height:1.7}

@media(max-width:1000px){.facts{grid-template-columns:1fr 1fr}.fact:nth-child(2){border-right:none}.fact:nth-child(-n+2){border-bottom:1px solid var(--gray-light)}}
@media(max-width:900px){
  .about-row{grid-template-columns:1fr;gap:1.2rem;padding:2.8rem 0}
  .vision-panel{grid-template-columns:1fr;gap:1.4rem;padding:2.2rem}
  .pillars,.op-grid{grid-template-columns:1fr}
  .obj-row{grid-template-columns:52px 1fr;gap:1rem 1.2rem}
  .obj-row p{grid-column:1 / -1}
  .obj-list{padding:0 1.4rem}
}
@media(max-width:520px){.facts{grid-template-columns:1fr;margin-top:-2rem}.fact{border-right:none;border-bottom:1px solid var(--gray-light)}.fact:last-child{border-bottom:none}}


/* ============ ABOUT: intro with map ============ */
.intro-split{display:grid;grid-template-columns:1fr 1.15fr;gap:3rem;align-items:start}
.map-card{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;position:sticky;top:96px}
.map-card iframe{display:block;width:100%;height:440px;border:0;background:var(--gray-light)}
.map-cap{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.9rem 1.2rem;font-size:.85rem;color:var(--slate)}
.map-cap b{font-family:'Fraunces',Georgia,serif;color:var(--forest);font-size:.98rem;display:block;line-height:1.3}
.map-cap a{font-weight:600;color:var(--moss);white-space:nowrap}
.map-cap a:hover{color:var(--forest)}
.intro-text .block+.block{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--gray-light)}
.intro-text .section-title{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.6rem}
.intro-text p{font-size:1rem;color:var(--slate);line-height:1.8}
.intro-text p+p{margin-top:.8rem}
.intro-text .about-lead{font-size:1.12rem;color:var(--forest);font-family:'Fraunces',Georgia,serif;line-height:1.7}
@media(max-width:900px){
  .intro-split{grid-template-columns:1fr;gap:1.8rem}
  .map-card{position:static}
  .map-card iframe{height:320px}
}


/* ============ PLAN OF ACTION — timeline ============ */
.poa-intro{max-width:760px}
.poa-intro p{font-size:1.05rem;color:var(--slate);line-height:1.85}
.poa-section{background:linear-gradient(135deg,#1a4a31 0%,#16402b 55%,#123624 100%);padding:4.5rem 0 4rem;color:var(--white)}
.timeline{max-width:1040px;margin-inline:auto}
.tl-item{display:grid;grid-template-columns:110px 36px 1fr;grid-template-areas:"date mark card";align-items:start;position:relative;padding-bottom:2.4rem}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:'';position:absolute;left:127px;top:.9rem;bottom:-.9rem;width:2px;background:rgba(255,255,255,.16)}
.tl-item:last-child::before{bottom:.9rem}
.tl-date{grid-area:date;text-align:right;padding-right:.2rem;line-height:1.15}
.tl-date small{display:block;font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ochre-light)}
.tl-date b{display:block;font-family:'Fraunces',Georgia,serif;font-size:2rem;font-weight:900;color:var(--white);line-height:1.05;margin:.1rem 0}
.tl-date em{display:block;font-style:normal;font-size:.7rem;font-weight:600;letter-spacing:.1em;color:var(--ochre-light)}
.tl-mark{grid-area:mark;position:relative;height:100%}
.tl-mark::after{content:'';position:absolute;left:12px;top:.55rem;width:10px;height:10px;border-radius:50%;background:var(--ochre-light);z-index:2}
.tl-item.current .tl-mark::after{left:10px;top:.45rem;width:14px;height:14px;box-shadow:0 0 0 6px rgba(232,168,74,.25)}
.tl-card{grid-area:card;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:1.5rem 1.7rem}
.tl-card h3{font-family:'Inter',sans-serif;font-size:1.05rem;font-weight:700;color:var(--white);margin-bottom:.4rem;line-height:1.35}
.tl-card p{font-size:.93rem;color:rgba(255,255,255,.66);line-height:1.7;max-width:760px}
.tl-chip{display:inline-block;margin-top:.9rem;padding:.28rem .75rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.chip-now{background:rgba(232,168,74,.22);color:#f2c777}
.chip-plan{background:rgba(76,194,127,.16);color:#58cb88}
.chip-key{background:rgba(224,100,90,.2);color:#f19288}
.chip-ongoing{background:rgba(90,190,200,.18);color:#6fd0da}
.poa-note{max-width:1040px;margin:2.4rem auto 0;padding-left:146px;font-size:.82rem;color:rgba(255,255,255,.5);line-height:1.6}
@media(max-width:700px){
  .tl-item{grid-template-columns:28px 1fr;grid-template-areas:"mark date" "mark card";row-gap:.5rem}
  .tl-item::before{left:13px}
  .tl-mark::after{left:8px;top:.35rem}
  .tl-item.current .tl-mark::after{left:6px;top:.3rem}
  .tl-date{text-align:left;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
  .tl-date b{font-size:1.4rem;margin:0}
  .tl-card{padding:1.2rem 1.25rem}
  .poa-note{padding-left:28px}
}


/* ============ WHAT WE DO — heading, then picture, then text on mobile ============ */
.wedo-item{grid-template-columns:1fr 1fr;grid-template-rows:1fr auto auto 1fr;column-gap:4rem;row-gap:0;align-items:start}
.wedo-item .wedo-title{grid-column:1;grid-row:2;margin-bottom:.8rem}
.wedo-item .wedo-body{grid-column:1;grid-row:3}
.wedo-item .wedo-visual{grid-column:2;grid-row:1 / 5;align-self:center}
.wedo-item.reverse .wedo-title,.wedo-item.reverse .wedo-body{grid-column:2}
.wedo-item.reverse .wedo-visual{grid-column:1}
@media(max-width:900px){
  .wedo-item{grid-template-columns:1fr;grid-template-rows:auto;gap:0;padding:2.6rem 0}
  .wedo-item .wedo-title,.wedo-item.reverse .wedo-title{grid-column:1;grid-row:1;margin-bottom:1rem}
  .wedo-item .wedo-visual,.wedo-item.reverse .wedo-visual{grid-column:1;grid-row:2;margin-bottom:1.2rem}
  .wedo-item .wedo-body,.wedo-item.reverse .wedo-body{grid-column:1;grid-row:3}
}


/* ============ PICTURE ANIMATIONS ============ */
/* 1. Shared frame: clips the zoom and gives a lift + shadow */
.wedo-visual,.img-zoom{position:relative;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease}
.wedo-visual .wedo-img,.img-zoom img{box-shadow:none;border-radius:0;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s ease}
/* a thin ochre line draws along the bottom edge */
.wedo-visual::before,.img-zoom::before{content:'';position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--ochre-light);z-index:2;transition:width .6s ease}

/* 2. Entrance: pictures settle from a slight zoom as they scroll into view */
.wedo-visual.reveal:not(.visible) .wedo-img,.img-zoom.reveal:not(.visible) img,.reveal:not(.visible) .img-zoom img{transform:scale(1.12)}

/* 3. Hover (mouse) and press (touch) */
@media(hover:hover){
  .wedo-visual:hover,.img-zoom:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
  .wedo-visual:hover .wedo-img,.img-zoom:hover img{transform:scale(1.08);filter:saturate(1.12) contrast(1.03)}
  .wedo-visual:hover::before,.img-zoom:hover::before{width:100%}
  .team-card:hover .team-photo,.int-card:hover img{transform:scale(1.07);filter:saturate(1.1)}
}
.wedo-visual:active .wedo-img,.img-zoom:active img{transform:scale(1.05)}
.team-photo,.int-card img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease}
.int-card{overflow:hidden}

/* 4. Header carousel: slow Ken Burns drift on the active picture */
.carousel-bg .slide img{transform:scale(1)}
.carousel-bg .slide.active img{animation:kenburns 9s ease-out forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09)}}

@media(prefers-reduced-motion:reduce){
  .wedo-visual,.img-zoom,.wedo-visual img,.img-zoom img,.team-photo,.int-card img{transition:none!important}
  .wedo-visual:hover,.img-zoom:hover{transform:none}
  .wedo-visual:hover .wedo-img,.img-zoom:hover img,.team-card:hover .team-photo,.int-card:hover img{transform:none;filter:none}
  .wedo-visual.reveal:not(.visible) .wedo-img,.reveal:not(.visible) .img-zoom img{transform:none}
  .carousel-bg .slide.active img{animation:none}
}
