*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --ink:#142016; --deep:#192b1c; --forest:#213b25; --bark:#243028;
  --moss:#3d5c38; --sage:#6b8f63; --mist:#a8c4a0; --frost:#d4e4cf;
  --linen:#f2ede4; --parchment:#e8e1d4; --gold:#c4a24a; --gold-lt:#e8d49a;
  --white:#faf8f4; --text:#1a1a16; --muted:#5c5c50; --subtle:#8c8c7c;
  --leaf:#5a9e2f; --leaf-dk:#3a6c1a;
}
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--linen); color:var(--text); min-height:100vh; -webkit-font-smoothing:antialiased; }

.nav { position:sticky; top:0; z-index:100; background:rgba(10,26,13,0.95); backdrop-filter:blur(16px); border-bottom:1px solid rgba(107,143,99,0.12); padding:1.1rem 3rem; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { text-decoration:none; display:flex; align-items:center; }
.nav-links { display:flex; gap:2.5rem; list-style:none; }
.nav-links a { font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:#ffffff; text-decoration:none; font-weight:400; transition:color 0.3s; }
.nav-links a:hover { color:#5a9e2f; opacity:1; }
.nav-dropdown { position:relative; }
.nav-dropdown > a { cursor:pointer; user-select:none; }
.nav-dropdown-menu { display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--forest); border:1px solid rgba(107,143,99,0.2); min-width:230px; z-index:200; padding:0.6rem 0; }
.nav-dropdown-menu::before { content:''; position:absolute; top:-12px; left:0; right:0; height:12px; }
.nav-dropdown.open .nav-dropdown-menu { display:block; }
.nav-dropdown:hover .nav-dropdown-menu { display:block; }
.nav-dropdown-menu a { display:block; padding:0.65rem 1.4rem; font-size:0.75rem; color:#ffffff; text-decoration:none; letter-spacing:0.03em; opacity:1; transition:background 0.2s, color 0.2s; text-transform:none; }
.nav-dropdown-menu a:hover { background:rgba(118,179,59,0.15); color:var(--frost); }
.nav-cta { font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; padding:0.6rem 1.5rem; border:1px solid rgba(118,179,59,0.45); color:#a8d878; text-decoration:none; font-weight:400; transition:all 0.3s; }
.nav-cta:hover { background:#5a9e2f; border-color:#5a9e2f; color:#fff; }
.nav-accent { height:1px; background:linear-gradient(to right, transparent, rgba(118,179,59,0.3), transparent); }

/* HERO */
.hero { height:calc(100vh - 65px); min-height:600px; position:relative; display:flex; align-items:center; overflow:hidden; }
@supports (height:100svh) { .hero { height:calc(100svh - 65px); } }
.hero-bg { position:absolute; inset:0; background:linear-gradient(to bottom right, rgba(15,28,17,0.70) 0%, rgba(15,28,17,0.25) 55%, rgba(15,28,17,0.45) 100%), url('skog.webp') center/cover no-repeat; filter:brightness(1.1) saturate(1.1); animation:slowZoom 14s ease-out forwards; }
@keyframes slowZoom { from{transform:scale(1.06)} to{transform:scale(1.0)} }
.hero-inner { position:relative; z-index:2; max-width:1140px; margin:0 auto; padding:0 3rem; width:100%; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; }
.hero-eyebrow { font-size:0.65rem; letter-spacing:0.3em; text-transform:uppercase; color:#8fbf80; font-weight:500; display:block; margin-bottom:1.5rem; opacity:0; animation:fadeUp 0.8s 0.3s forwards; }
.hero-title { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(3.2rem,5.5vw,5.5rem); line-height:1.0; letter-spacing:-0.01em; color:var(--white); margin-bottom:1rem; opacity:0; animation:fadeUp 0.8s 0.5s forwards; }
.hero-title em { font-style:italic; color:#c0ddb5; display:block; }
.hero-divider { width:40px; height:1px; background:var(--leaf); margin:1.8rem 0; opacity:0; animation:fadeUp 0.8s 0.7s forwards; }
.hero-desc { font-size:1rem; line-height:1.8; font-weight:300; color:#ffffff; max-width:480px; margin-bottom:2.5rem; opacity:0; animation:fadeUp 0.8s 0.9s forwards; }
.hero-actions { display:flex; gap:1.2rem; align-items:center; opacity:0; animation:fadeUp 0.8s 1.1s forwards; }
.hero-right { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:1px; opacity:0; animation:fadeUp 0.8s 1s forwards; }
.hero-stat { background:rgba(10,26,13,0.82); border:1px solid rgba(107,143,99,0.3); backdrop-filter:blur(12px); padding:1.5rem 2rem; text-align:right; width:100%; }
.hero-stat-num { font-family:'Cormorant Garamond',serif; font-size:2.8rem; font-weight:300; color:#ffffff; line-height:1; text-shadow:0 1px 4px rgba(0,0,0,0.3); }
.hero-stat-label { font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:#8fbf80; margin-top:0.3rem; display:block; }
.hero-scroll { position:absolute; bottom:calc(5rem + env(safe-area-inset-bottom, 0px)); left:50%; transform:translateX(-50%); z-index:2; opacity:0; animation:fadeUp 0.8s 1.5s forwards; }
@media(max-width:900px) { .hero-scroll { bottom:calc(6rem + env(safe-area-inset-bottom, 0px)); } }
.scroll-arrow { width:28px; height:28px; animation:bounce 2s 2s ease-in-out infinite; }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }
@keyframes drop { from{top:-60px} to{top:60px} }
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }

/* BAND */
.band { background:var(--ink); border-top:1px solid rgba(61,92,56,0.12); border-bottom:1px solid rgba(61,92,56,0.12); padding:2rem 3rem; display:flex; gap:0; overflow-x:auto; }
.band-item { flex:1; min-width:160px; text-align:center; padding:0.5rem 2rem; border-right:1px solid rgba(0,0,0,0.07); }
.band-item:last-child { border-right:none; }
.band-num { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:300; color:var(--white); line-height:1; }
.band-label { font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage); font-weight:500; display:block; margin-top:0.3rem; }

/* HOW IT WORKS */
.how { padding:8rem 3rem; background:#1a2e1e; }
.how-inner { max-width:1140px; margin:0 auto; }
.how-header { text-align:center; margin-bottom:5rem; }
.how-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(107,143,99,0.1); }
.how-step { background:#1e3325; padding:3rem 2.5rem; position:relative; }
.how-step::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:transparent; transition:background 0.3s; }
.how-step:hover::before { background:var(--sage); }
.how-num { font-family:'Cormorant Garamond',serif; font-size:5rem; font-weight:300; color:rgba(168,196,160,0.25); line-height:1; margin-bottom:1.5rem; }
.how-title { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; color:var(--frost); margin-bottom:0.8rem; }
.how-desc { font-size:0.83rem; color:var(--mist); line-height:1.8; font-weight:300; }
.how-step.accent { background:#5a9e2f; color:#fff !important; }
.how-step.accent .how-num { color:rgba(255,255,255,0.2) !important; }
.how-step.accent .how-title { color:#fff !important; font-weight:400; }
.how-step.accent .how-desc { color:rgba(255,255,255,0.88) !important; }

/* AUDIENCES */
.audiences { display:grid; grid-template-columns:1fr 1fr; }
.aud { padding:7rem 5rem; }
.aud-owner { background:var(--linen); }
.aud-owner .aud-list li { color:var(--muted); }
.aud-owner .aud-list li::before { background:var(--sage); }
.aud-corp  { background:var(--deep); }
.aud-list { list-style:none; margin:2rem 0 2.5rem; display:flex; flex-direction:column; gap:0.9rem; }
.aud-list li { display:flex; align-items:flex-start; gap:0.9rem; font-size:0.85rem; color:var(--mist); font-weight:300; line-height:1.6; }
.aud-list li::before { content:''; width:5px; height:5px; background:var(--sage); border-radius:50%; flex-shrink:0; margin-top:6px; }
.aud-corp .aud-list li::before { background:var(--gold); }

/* CO2 HIGHLIGHT */
.co2-section { padding:8rem 3rem; background:#1a2e1e; }
.co2-inner { max-width:1140px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.co2-stats { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(107,143,99,0.1); }
.co2-stat { background:#1a2e1e; border:1px solid rgba(107,143,99,0.15); padding:2rem; text-align:center; }
.co2-stat-num { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:300; color:var(--white); line-height:1; }
.co2-stat-label { font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage); margin-top:0.4rem; display:block; }
.co2-note { font-size:0.68rem; color:rgba(168,196,160,0.4); margin-top:1rem; font-style:italic; line-height:1.5; }

/* ABOUT */
.about-section { display:grid; grid-template-columns:1fr 1fr; min-height:560px; }
.about-img { background:url('https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?w=900&q=85') center/cover; position:relative; }
.about-img::after { content:''; position:absolute; inset:0; background:rgba(10,26,13,0.10); }
.about-content { background:#1e3325; color:var(--frost); padding:6rem 5rem; display:flex; flex-direction:column; justify-content:center; }
.about-content .eyebrow { color:var(--sage); }
.about-h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,3vw,2.8rem); font-weight:300; color:var(--white); line-height:1.15; margin-bottom:1.5rem; }
.about-h2 em { font-style:italic; color:var(--mist); }
.about-p { font-size:0.9rem; line-height:1.85; font-weight:300; color:var(--mist); margin-bottom:1rem; }
.about-link { display:inline-flex; align-items:center; gap:0.6rem; margin-top:1.5rem; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--mist); text-decoration:none; font-weight:500; border-bottom:1px solid rgba(168,196,160,0.3); padding-bottom:2px; transition:gap 0.3s; }
.about-link:hover { gap:1rem; color:var(--frost); }

/* TOOLS */
.tools-section { padding:8rem 3rem; background:var(--linen); }
.tools-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(107,143,99,0.12); max-width:1140px; margin:3rem auto 0; }
.tool-card { background:var(--deep); padding:2.5rem; text-decoration:none; display:block; border-top:2px solid transparent; transition:border-color 0.3s, background 0.3s; color:inherit; }
.tool-card:hover { border-top-color:#5a9e2f; background:rgba(118,179,59,0.1); }
.tool-icon { width:40px; height:40px; background:rgba(107,143,99,0.1); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; }
.tool-cat { font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:#8fbf80; font-weight:500; display:block; margin-bottom:0.5rem; }
.tool-name { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:300; color:var(--white); margin-bottom:0.6rem; }
.tool-desc { font-size:0.8rem; color:#cde0c5; line-height:1.7; font-weight:300; }
.tool-cta { display:block; margin-top:1.2rem; font-size:0.68rem; letter-spacing:0.1em; color:#5a9e2f; font-weight:500; transition:color 0.2s; }
.tool-card:hover .tool-cta { color:#7ac240; }

/* TESTIMONIALS */
.testimonials { padding:8rem 3rem; background:#1e3325; }
.test-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; background:transparent; max-width:1140px; margin:3rem auto 0; }
.test-card { background:#1a2e1e; padding:2.5rem; position:relative; border:1px solid rgba(107,143,99,0.15); }
.test-quote { font-family:'Cormorant Garamond',serif; font-size:5rem; font-weight:300; color:rgba(107,143,99,0.15); line-height:0.8; margin-bottom:1rem; }
.test-text { font-size:0.9rem; line-height:1.8; color:var(--mist); font-weight:300; font-style:italic; margin-bottom:1.5rem; }
.test-author strong { font-size:0.82rem; font-weight:500; color:var(--frost); display:block; }
.test-author span { font-size:0.72rem; color:var(--sage); }

/* CONTACT */
.contact { padding:8rem 3rem; background:var(--linen); }
.contact-inner { max-width:1140px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:7rem; align-items:start; }
.contact-info .eyebrow { color:var(--moss); }
.contact-h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,3.5vw,3rem); font-weight:300; color:var(--forest); line-height:1.15; margin-bottom:1.2rem; }
.contact-h2 em { font-style:italic; color:var(--moss); }
.contact-p { font-size:0.88rem; color:var(--muted); line-height:1.8; font-weight:300; margin-bottom:2.5rem; }
.contact-detail { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.contact-detail .lbl { font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--moss); width:60px; flex-shrink:0; font-weight:500; }
.contact-detail a, .contact-detail span { font-size:0.88rem; color:var(--text); text-decoration:none; font-weight:300; transition:color 0.3s; }
.contact-detail a:hover { color:var(--forest); }
.form { display:flex; flex-direction:column; gap:1rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-input, .form-textarea {
  width:100%; padding:0.9rem 1.1rem;
  background:rgba(26,46,30,0.05); border:1px solid rgba(61,92,56,0.25);
  color:var(--text); font-family:'DM Sans',sans-serif; font-size:0.88rem; font-weight:300;
  outline:none; transition:border-color 0.3s;
}
.form-input::placeholder, .form-textarea::placeholder { color:rgba(26,46,30,0.35); }
.form-input:focus, .form-textarea:focus { border-color:var(--sage); }
.form-textarea { height:120px; resize:none; }

/* FOOTER */
.footer { background:var(--ink); border-top:1px solid rgba(107,143,99,0.08); padding:5rem 3rem 2.5rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; max-width:1140px; margin:0 auto 3rem; }
.footer-logo-text { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; letter-spacing:0.12em; text-transform:uppercase; color:var(--mist); display:block; margin-bottom:1rem; }
.footer-tagline { font-size:0.8rem; color:var(--mist); line-height:1.8; font-weight:300; max-width:240px; }
.footer-col h4 { font-size:0.6rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--sage); font-weight:500; margin-bottom:1.2rem; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:0.55rem; }
.footer-col ul li a { font-size:0.8rem; color:#8fbf80; text-decoration:none; font-weight:300; transition:color 0.3s; }
.footer-col ul li a:hover { color:var(--mist); }
.footer-bottom { border-top:1px solid rgba(107,143,99,0.08); padding-top:1.5rem; display:flex; justify-content:space-between; align-items:center; max-width:1140px; margin:0 auto; }
.footer-bottom p, .footer-bottom a { font-size:0.7rem; color:#6aaa5a; font-weight:300; text-decoration:none; }

/* COOKIE */
.cookie-banner { position:fixed; bottom:0; left:0; right:0; z-index:999; background:var(--ink); border-top:1px solid rgba(107,143,99,0.15); padding:1.2rem 3rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; transform:translateY(100%); transition:transform 0.4s ease; }
.cookie-banner.show { transform:translateY(0); }
.cookie-text { font-size:0.8rem; line-height:1.6; font-weight:300; color:var(--mist); flex:1; min-width:200px; }
.cookie-text a { color:var(--gold-lt); }
.cookie-actions { display:flex; gap:0.7rem; flex-shrink:0; }
.cookie-accept { background:#5a9e2f; color:var(--white); border:none; padding:0.55rem 1.3rem; font-family:'DM Sans',sans-serif; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; }
.cookie-decline { background:transparent; color:rgba(168,196,160,0.4); border:1px solid rgba(107,143,99,0.2); padding:0.55rem 1.1rem; font-family:'DM Sans',sans-serif; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; }

/* HAMBURGER */
.nav-toggle { display:none; flex-direction:column; justify-content:space-between; width:24px; height:17px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0; }
.nav-toggle span { display:block; width:100%; height:1.5px; background:#ffffff; transition:transform 0.25s, opacity 0.25s; transform-origin:center; }
.nav.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7.75px) rotate(45deg); }
.nav.nav-open .nav-toggle span:nth-child(2) { opacity:0; }
.nav.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7.75px) rotate(-45deg); }

/* RESPONSIVE */
@media(max-width:900px) {
  .nav { padding:0.9rem 1.5rem; flex-wrap:wrap; }
  .nav-toggle { display:flex; margin-left:auto; }
  .nav-links { display:none; order:10; width:100%; flex-direction:column; gap:0;
    border-top:1px solid rgba(107,143,99,0.1); margin-top:0.4rem; padding-bottom:0.5rem; }
  .nav.nav-open .nav-links { display:flex; }
  .nav-links li { border-bottom:1px solid rgba(107,143,99,0.08); }
  .nav-links a { display:block; padding:0.8rem 0; font-size:0.78rem; }
  .nav-cta { display:none; }
  .nav-dropdown-menu { position:static; transform:none; box-shadow:none; border:none;
    border-left:2px solid rgba(107,143,99,0.2); margin-left:1rem; padding:0.2rem 0;
    background:transparent; }
  .nav-dropdown-menu a { padding:0.55rem 1rem; font-size:0.75rem; }
  .hero { height:calc(100svh - 60px); height:calc(100vh - 60px); min-height:520px; align-items:flex-start; }
  .hero-inner { grid-template-columns:1fr; padding:3rem 1.5rem 5rem; align-items:flex-start; } .hero-right { display:none; }
  .how-steps, .test-grid, .tools-grid, .footer-grid { grid-template-columns:1fr; }
  .audiences, .about-section, .co2-inner, .contact-inner { grid-template-columns:1fr; }
  .about-img { min-height:300px; } .aud { padding:5rem 2rem; }
  .how, .co2-section, .tools-section, .testimonials, .contact { padding:5rem 1.5rem; }
  .band { padding:1.5rem; } .footer { padding:4rem 1.5rem 2rem; }
  .form-row { grid-template-columns:1fr; } .cookie-banner { padding:1rem 1.5rem; }
}
