:root { --forest:#123f2a; --green:#217449; --leaf:#5c9f47; --mint:#dceebc; --mist:#eff4e5; --cream:#fbfaf5; --ink:#18342a; --white:#ffffff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; line-height:1.58; }
a { color:inherit; text-decoration:none; }
.site-header { position:sticky; top:0; z-index:50; max-width:none; height:78px; padding:0 clamp(20px,5vw,78px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #dce6d8; background:#fbfaf5e9; backdrop-filter:blur(13px); }
.brand { max-width:250px; color:var(--forest); font-size:1.05rem; font-weight:700; letter-spacing:-.5px; line-height:1.05; }
.navigation { display:flex; align-items:center; gap:28px; color:#365246; font-size:.9rem; font-weight:700; }
.navigation a { transition:color .2s ease; }.navigation a:hover { color:var(--green); }.nav-cta { padding:10px 19px; border-radius:999px; color:#fff; background:var(--forest); }
.menu-button { display:none; padding:5px; border:0; background:transparent; color:var(--forest); font-size:1.6rem; }
.eyebrow { margin:0 0 13px; color:var(--green); font-size:.73rem; font-weight:700; letter-spacing:1.7px; text-transform:uppercase; }
h1,h2 { margin:0; font-family:"Playfair Display",serif; letter-spacing:-1.7px; line-height:1.03; } h1 { max-width:680px; font-size:clamp(3.25rem,6vw,6.1rem); } h1 em { color:var(--leaf); font-style:normal; } h2 { font-size:clamp(2.3rem,4vw,4rem); }
.hero { position:relative; isolation:isolate; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; max-width:1370px; min-height:650px; margin:auto; padding:76px clamp(24px,6vw,88px) 96px; }
.hero:after { position:absolute; z-index:-1; right:-10%; bottom:45px; width:45%; height:58%; border-radius:45% 55% 0 0; background:var(--mint); content:""; }
.hero-text { max-width:570px; margin:28px 0; color:#4a6358; font-size:1.06rem; }
.hero-actions { display:flex; align-items:center; gap:28px; }.button { display:inline-block; padding:14px 23px; border:0; border-radius:3px; font:700 .92rem "DM Sans",sans-serif; cursor:pointer; transition:transform .2s ease,background .2s ease; }.button:hover { transform:translateY(-2px); }.button-primary { color:#fff; background:var(--forest); box-shadow:0 12px 22px #123f2a24; }.text-link { color:var(--forest); font-size:.9rem; font-weight:700; }.text-link span { margin-left:5px; color:var(--green); font-size:1.2rem; }
.hero-stats { display:flex; gap:0; margin-top:58px; border-top:1px solid #ccdaca; }.hero-stats div { display:grid; flex:1; padding:17px 18px 0 0; }.hero-stats strong { color:var(--forest); font-size:1.35rem; }.hero-stats span { color:#688076; font-size:.73rem; }
.hero-art { position:relative; justify-self:end; width:min(100%,440px); aspect-ratio:1; overflow:hidden; border-radius:50% 50% 10px 10px; background:#fff; box-shadow:28px 28px 0 var(--green); }.home-logo { width:100%; height:100%; display:block; object-fit:cover; }
.hero-art > :not(.home-logo) { display:none; }
.section { padding:120px clamp(24px,6vw,88px); }.section-heading { max-width:630px; margin:0 0 52px; }.section-heading > p:last-child, .about-copy > p:not(.eyebrow) { color:#587066; }
.products { position:relative; overflow:hidden; color:#edf5e3; background:var(--forest); }.products:before { position:absolute; top:-250px; right:-150px; width:510px; height:510px; border:1px solid #74b75b55; border-radius:50%; box-shadow:0 0 0 65px #74b75b12,0 0 0 130px #74b75b0b; content:""; }.products .section-heading { position:relative; z-index:1; }.products .eyebrow { color:#9bce75; }.products .section-heading > p:last-child { color:#b7c9bb; }
.product-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; max-width:1260px; margin:auto; }.product-card { min-height:230px; padding:25px 20px; border:1px solid #b5d19d2b; border-radius:12px; background:#ffffff08; transition:transform .22s ease,background .22s ease; }.product-card:hover { transform:translateY(-7px); background:#ffffff14; }.product-card:nth-child(2),.product-card:nth-child(7) { background:#2f8052; }.product-card:nth-child(5n+1) { border-radius:45px 12px 12px 12px; }.product-icon { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:#e5f3c5; font-size:1.15rem; }.product-card h3 { margin:22px 0 9px; color:#fff; font-size:1.05rem; line-height:1.2; }.product-card p { margin:0; color:#c4d4c4; font-size:.82rem; line-height:1.55; }
.about { display:grid; grid-template-columns:minmax(300px,.86fr) 1.14fr; gap:clamp(45px,8vw,110px); align-items:center; max-width:1300px; margin:auto; background:var(--cream); }.about-visual { position:relative; height:auto; aspect-ratio:1/1.14; overflow:hidden; border-radius:190px 190px 18px 18px; background:#d8eac2; }.about-visual:before { position:absolute; inset:18px; z-index:1; border:1px solid #599b4570; border-radius:175px 175px 10px 10px; content:""; }.about-logo { width:100%; height:100%; display:block; object-fit:cover; }.quote-card { display:none; }.about-copy { padding:20px 0; }.about-copy p { max-width:650px; }.technology-list { display:flex; flex-wrap:wrap; gap:8px; margin:25px 0; }.technology-list h3 { width:100%; margin:0 0 4px; color:var(--forest); font-size:.9rem; }.technology-list span { padding:6px 11px; border:1px solid #c8ddba; border-radius:999px; color:var(--green); background:#fff; font-size:.76rem; font-weight:700; }.vision-mission { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:28px 0; border:1px solid #d7e5cb; }.vision-mission div { padding:18px; }.vision-mission div + div { border-left:1px solid #d7e5cb; }.vision-mission h3 { margin:0 0 7px; color:var(--green); font-size:.88rem; text-transform:uppercase; letter-spacing:1px; }.vision-mission p { margin:0; font-size:.82rem; }.button-outline { border:1px solid var(--forest); color:var(--forest); background:transparent; }
.team { position:relative; overflow:hidden; background:linear-gradient(135deg,#f0f5e6 0%,#fffdf8 53%,#dce9c8 100%); }.team:before { position:absolute; top:0; left:0; width:100%; height:7px; background:linear-gradient(90deg,var(--forest),var(--leaf),#a0c94d); content:""; }.centered { margin-right:auto; margin-left:auto; text-align:center; }.team-grid { display:grid; grid-template-columns:repeat(3,minmax(220px,1fr)); gap:20px; max-width:1124px; margin:auto; }.team-member { padding:26px 22px 24px; border:1px solid #dbe6d4; border-radius:12px; background:#fff; box-shadow:0 13px 28px #1c422110; text-align:center; transition:transform .22s ease,box-shadow .22s ease; }.team-member:hover { transform:translateY(-5px); box-shadow:0 20px 36px #1c42211c; }.member-photo { width:145px; height:145px; display:block; margin:auto; border:5px solid var(--mist); border-radius:50%; object-fit:cover; object-position:center; }.team-grid h3 { margin:15px 0 2px; color:var(--forest); font-size:1.08rem; }.team-grid p { margin:0; color:#63796e; font-size:.85rem; }.team-grid .member-role { margin-bottom:10px; color:var(--green); font-weight:700; }.student-team { max-width:1124px; margin:85px auto 0; padding-top:72px; border-top:1px dashed #a9c49b; }.student-team .section-heading { margin-bottom:33px; }.student-grid { grid-template-columns:repeat(3,minmax(220px,1fr)); }
.contact { display:grid; grid-template-columns:.9fr 1.1fr; gap:75px; align-items:center; max-width:none; min-height:350px; color:#fff; background:var(--forest); }.contact .eyebrow { color:#afd676; }.contact > div > p:last-child { color:#c2d5c4; }.contact form { display:grid; }.contact a { width:max-content; max-width:100%; padding:17px 22px; border:1px solid #a9cf7d; color:#e6f3d6 !important; background:#ffffff0c; font-weight:700; font-size:clamp(.85rem,2vw,1.1rem) !important; word-break:break-word; }.contact label,.contact input,.contact textarea,.contact button,.form-message { display:none; }
footer { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:none; padding:33px clamp(24px,6vw,88px); background:#0c2d1e; color:#b6c9b9; font-size:.8rem; }.brand + p { margin:0; } footer .brand { color:#e7f1e0; } footer div { display:flex; gap:16px; } footer div a:hover { color:#b2d978; }
@media (max-width:980px) { .product-grid { grid-template-columns:repeat(3,1fr); }.hero { grid-template-columns:1fr; }.hero-art { justify-self:start; }.hero:after { right:-20%; width:70%; }.about { grid-template-columns:1fr; }.about-visual { max-width:440px; }.contact { grid-template-columns:1fr; gap:25px; }.navigation { gap:16px; } }
@media (max-width:700px) { .site-header { height:68px; }.brand { max-width:185px; font-size:.91rem; }.menu-button { display:block; }.navigation { position:absolute; top:60px; right:18px; display:none; min-width:170px; padding:15px; border:1px solid #dbe7d4; border-radius:12px; background:#fff; box-shadow:0 16px 30px #17312522; flex-direction:column; align-items:stretch; gap:12px; }.navigation.open { display:flex; }.nav-cta { text-align:center; }.hero { min-height:unset; padding-top:64px; }.hero-art { width:100%; box-shadow:14px 14px 0 var(--green); }.hero-stats { gap:5px; }.hero-stats div { padding-right:8px; }.section { padding-top:80px; padding-bottom:80px; }.product-grid,.team-grid,.student-grid { grid-template-columns:1fr; }.product-card { min-height:auto; }.vision-mission { grid-template-columns:1fr; }.vision-mission div + div { border-top:1px solid #d7e5cb; border-left:0; }.contact { min-height:unset; }.contact a { width:100%; }.contact,.section { padding-right:24px; padding-left:24px; } footer { flex-direction:column; text-align:center; } }
