@layer reset, tokens, layout, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
  body { min-height: 100vh; display: flex; flex-direction: column; }
  main { flex: 1; }
  img { max-width: 100%; display: block; }
  button { cursor: pointer; border: none; background: none; font-family: inherit; }
  a { color: inherit; text-decoration: none; }
  ul, ol { list-style: none; }
  address { font-style: normal; }
  table { border-collapse: collapse; width: 100%; }
}

@layer tokens {
  :root {
    --clr-bg: #f7f6f4;
    --clr-bg-soft: #f0ede8;
    --clr-surface: #ffffff;
    --clr-surface-raised: #fdfcfb;
    --clr-border: #e8e4de;
    --clr-border-strong: #d4cfc8;

    --clr-text-primary: #1e1c19;
    --clr-text-secondary: #5a5650;
    --clr-text-muted: #8c877f;
    --clr-text-inverse: #fdfcfb;

    --clr-accent: #2d6a4f;
    --clr-accent-light: #40916c;
    --clr-accent-pale: #d8f3dc;
    --clr-accent-dark: #1b4332;

    --clr-highlight: #e76f51;
    --clr-highlight-pale: #fde8e3;

    --shadow-xs: 0 1px 2px rgba(30, 28, 25, 0.04);
    --shadow-sm: 0 2px 8px rgba(30, 28, 25, 0.07), 0 1px 3px rgba(30, 28, 25, 0.05);
    --shadow-md: 0 4px 16px rgba(30, 28, 25, 0.09), 0 2px 6px rgba(30, 28, 25, 0.06);
    --shadow-lg: 0 8px 32px rgba(30, 28, 25, 0.12), 0 4px 12px rgba(30, 28, 25, 0.07);
    --shadow-xl: 0 16px 48px rgba(30, 28, 25, 0.14), 0 8px 20px rgba(30, 28, 25, 0.08);
    --shadow-accent: 0 4px 20px rgba(45, 106, 79, 0.25);

    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-xl: 28px;
    --radius-full: 9999px;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;
    --space-20: 80px;
    --space-24: 96px;

    --font-family: 'DM Sans', sans-serif;
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: clamp(2.5rem, 5vw, 3.5rem);
    --font-size-display: clamp(3rem, 7vw, 5rem);

    --line-height-tight: 1.2;
    --line-height-snug: 1.4;
    --line-height-base: 1.65;
    --line-height-relaxed: 1.75;

    --transition-fast: 0.2s ease;
    --transition-base: 0.3s ease;
    --transition-slow: 0.5s ease;
    --transition-reveal: 0.6s cubic-bezier(0.16, 1, 0.3, 1);

    --nav-height: 72px;
  }
}

@layer layout {
  body {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--clr-text-primary);
    background-color: var(--clr-bg);
    -webkit-font-smoothing: antialiased;
  }

  .u-container {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-6);
  }

  .u-container--narrow {
    max-width: 800px;
  }

  .u-section-pad {
    padding-block: var(--space-20);
  }

  .u-bg-soft {
    background-color: var(--clr-bg-soft);
  }
}

@layer components {

  
  .c-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    height: var(--nav-height);
    transition: background-color var(--transition-base), backdrop-filter var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
    border-bottom: 1px solid transparent;
  }

  .c-nav.is-scrolled {
    background-color: rgba(247, 246, 244, 0.85);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border-bottom-color: rgba(232, 228, 222, 0.6);
    box-shadow: 0 1px 24px rgba(30, 28, 25, 0.06);
  }

  .c-nav__inner {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-6);
    height: 100%;
    display: flex;
    align-items: center;
    gap: var(--space-8);
  }

  .c-nav__logo { flex-shrink: 0; }
  .c-nav__logo img { height: 36px; width: auto; }

  .c-nav__links {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    margin-left: auto;
  }

  .c-nav__link {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--clr-text-secondary);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background-color var(--transition-fast);
  }

  .c-nav__link:hover,
  .c-nav__link.is-active {
    color: var(--clr-accent);
    background-color: var(--clr-accent-pale);
  }

  .c-nav__actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }

  .c-nav__search-btn,
  .c-nav__hamburger {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--clr-text-secondary);
    transition: color var(--transition-fast), background-color var(--transition-fast);
  }

  .c-nav__search-btn:hover,
  .c-nav__hamburger:hover {
    color: var(--clr-accent);
    background-color: var(--clr-accent-pale);
  }

  .c-nav__hamburger {
    flex-direction: column;
    gap: 5px;
    display: none;
  }

  .c-nav__hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background-color: currentColor;
    border-radius: 2px;
    transition: transform var(--transition-base), opacity var(--transition-base);
  }

  
  .c-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    background-color: rgba(30, 28, 25, 0.85);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-base);
  }

  .c-search-overlay.is-active {
    opacity: 1;
    pointer-events: all;
  }

  .c-search-overlay__inner {
    width: 100%;
    max-width: 680px;
    padding-inline: var(--space-6);
    display: flex;
    align-items: center;
    gap: var(--space-4);
  }

  .c-search-overlay__input {
    flex: 1;
    height: 64px;
    padding-inline: var(--space-6);
    font-size: var(--font-size-xl);
    font-family: var(--font-family);
    color: var(--clr-text-primary);
    background-color: var(--clr-surface);
    border: 2px solid var(--clr-border);
    border-radius: var(--radius-lg);
    outline: none;
    transition: border-color var(--transition-fast);
  }

  .c-search-overlay__input:focus { border-color: var(--clr-accent); }

  .c-search-overlay__close {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background-color: var(--clr-surface);
    color: var(--clr-text-secondary);
    font-size: var(--font-size-xl);
    transition: background-color var(--transition-fast), color var(--transition-fast);
  }

  .c-search-overlay__close:hover {
    background-color: var(--clr-accent);
    color: white;
  }

  
  .c-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 150;
    display: flex;
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .c-mobile-menu.is-active { transform: translateX(0); }

  .c-mobile-menu__left {
    width: 55%;
    background-color: var(--clr-accent-dark);
    padding: var(--space-8) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    overflow-y: auto;
  }

  .c-mobile-menu__right {
    width: 45%;
    position: relative;
    overflow: hidden;
  }

  .c-mobile-menu__right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.5);
  }

  .c-mobile-menu__overlay-text {
    position: absolute;
    bottom: var(--space-8);
    left: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }

  .c-mobile-menu__overlay-text span {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: rgba(253, 252, 251, 0.8);
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  .c-mobile-menu__close {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: rgba(253, 252, 251, 0.7);
    font-size: var(--font-size-xl);
    transition: color var(--transition-fast), background-color var(--transition-fast);
    align-self: flex-start;
  }

  .c-mobile-menu__close:hover { color: white; background-color: rgba(255,255,255,0.1); }

  .c-mobile-menu__nav {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: auto;
  }

  .c-mobile-menu__link {
    font-size: var(--font-size-2xl);
    font-weight: 600;
    color: rgba(253, 252, 251, 0.85);
    padding-block: var(--space-2);
    border-bottom: 1px solid rgba(255,255,255,0.1);
    transition: color var(--transition-fast), padding-left var(--transition-fast);
  }

  .c-mobile-menu__link:hover { color: white; padding-left: var(--space-3); }

  .c-mobile-menu__contact {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: auto;
  }

  .c-mobile-menu__contact a {
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.6);
    transition: color var(--transition-fast);
  }

  .c-mobile-menu__contact a:hover { color: white; }

  
  .s-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  .s-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
  }

  .s-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.05);
    animation: heroZoom 8s ease forwards;
  }

  @keyframes heroZoom {
    from { transform: scale(1.05); }
    to { transform: scale(1.0); }
  }

  .s-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      135deg,
      rgba(27, 67, 50, 0.88) 0%,
      rgba(30, 28, 25, 0.72) 60%,
      rgba(30, 28, 25, 0.55) 100%
    );
  }

  .s-hero__content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: var(--space-6);
    max-width: 800px;
    animation: heroFadeUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
  }

  @keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .s-hero__eyebrow {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(216, 243, 220, 0.9);
    margin-bottom: var(--space-4);
    padding: var(--space-2) var(--space-4);
    border: 1px solid rgba(216, 243, 220, 0.3);
    border-radius: var(--radius-full);
  }

  .s-hero__heading {
    font-size: var(--font-size-display);
    font-weight: 700;
    line-height: var(--line-height-tight);
    color: var(--clr-text-inverse);
    margin-bottom: var(--space-6);
  }

  .s-hero__heading-gradient {
    background: linear-gradient(135deg, #74c69d 0%, #d8f3dc 50%, #b7e4c7 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .s-hero__sub {
    font-size: var(--font-size-lg);
    color: rgba(253, 252, 251, 0.82);
    line-height: var(--line-height-relaxed);
    max-width: 600px;
    margin-inline: auto;
    margin-bottom: var(--space-8);
  }

  .s-hero__actions {
    display: flex;
    gap: var(--space-4);
    justify-content: center;
    flex-wrap: wrap;
  }

  .s-hero__scroll-hint {
    position: absolute;
    bottom: var(--space-8);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    color: rgba(253, 252, 251, 0.5);
    font-size: var(--font-size-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    animation: scrollBounce 2s ease infinite;
  }

  @keyframes scrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(6px); }
  }

  
  .s-topics-bar {
    background-color: var(--clr-accent-dark);
    padding-block: var(--space-5);
  }

  .s-topics-bar__grid {
    display: flex;
    gap: var(--space-6);
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }

  .s-topics-bar__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: rgba(216, 243, 220, 0.85);
  }

  .s-topics-bar__item i { color: var(--clr-accent-pale); font-size: var(--font-size-sm); }

  
  .c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 14px var(--space-6);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
    transition: all var(--transition-base);
    min-height: 48px;
    white-space: nowrap;
  }

  .c-btn--primary {
    background-color: var(--clr-accent);
    color: white;
    box-shadow: var(--shadow-accent);
  }

  .c-btn--primary:hover {
    background-color: var(--clr-accent-light);
    box-shadow: 0 6px 24px rgba(45, 106, 79, 0.35);
    transform: translateY(-1px);
  }

  .c-btn--ghost {
    background-color: rgba(253, 252, 251, 0.12);
    color: var(--clr-text-inverse);
    border: 1px solid rgba(253, 252, 251, 0.25);
  }

  .c-btn--ghost:hover {
    background-color: rgba(253, 252, 251, 0.2);
    border-color: rgba(253, 252, 251, 0.4);
    transform: translateY(-1px);
  }

  .c-btn--ghost-light {
    background-color: rgba(255,255,255,0.15);
    color: white;
    border: 1px solid rgba(255,255,255,0.3);
  }

  .c-btn--ghost-light:hover {
    background-color: rgba(255,255,255,0.25);
    transform: translateY(-1px);
  }

  .c-btn--outline {
    background-color: transparent;
    color: var(--clr-accent);
    border: 2px solid var(--clr-accent);
  }

  .c-btn--outline:hover {
    background-color: var(--clr-accent);
    color: white;
    transform: translateY(-1px);
  }

  .c-btn--full { width: 100%; }

  
  .s-intro__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: center;
  }

  .s-intro__heading {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-5);
    color: var(--clr-text-primary);
  }

  .s-intro__text p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
  }

  .s-intro__text .c-btn { margin-top: var(--space-4); }

  .c-img-frame {
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
    position: relative;
  }

  .c-img-frame img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    transition: transform 0.6s ease;
  }

  .c-img-frame:hover img { transform: scale(1.03); }

  .c-img-badge {
    position: absolute;
    bottom: var(--space-5);
    left: var(--space-5);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    background-color: var(--clr-surface);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--clr-accent);
    box-shadow: var(--shadow-md);
  }

  .s-intro__visual { position: relative; }

  
  .s-topics__header {
    text-align: center;
    margin-bottom: var(--space-12);
  }

  .s-topics__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-topics__header p {
    color: var(--clr-text-secondary);
    max-width: 560px;
    margin-inline: auto;
  }

  .s-topics__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
  }

  
  .c-card {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base), border-color var(--transition-base);
  }

  .c-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
    border-color: var(--clr-accent-pale);
  }

  .c-card--topic h3 {
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin-bottom: var(--space-3);
    color: var(--clr-text-primary);
  }

  .c-card--topic p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-4);
  }

  .c-card--featured {
    background: linear-gradient(135deg, var(--clr-accent-dark) 0%, var(--clr-accent) 100%);
    border-color: transparent;
    color: white;
    grid-column: span 1;
  }

  .c-card--featured h3 { color: white; }
  .c-card--featured p { color: rgba(216, 243, 220, 0.85); }
  .c-card--featured .c-card__link { color: var(--clr-accent-pale); }
  .c-card--featured .c-card__icon-wrap { background-color: rgba(255,255,255,0.15); color: white; }
  .c-card--featured:hover { border-color: transparent; }

  .c-card__icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-md);
    background-color: var(--clr-accent-pale);
    color: var(--clr-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xl);
    margin-bottom: var(--space-5);
  }

  .c-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--clr-accent);
    transition: gap var(--transition-fast), color var(--transition-fast);
  }

  .c-card__link:hover { gap: var(--space-3); color: var(--clr-accent-dark); }

  .c-card--plain {
    background-color: var(--clr-bg-soft);
    border-color: var(--clr-border);
  }

  .c-card--plain h4 {
    font-size: var(--font-size-base);
    font-weight: 600;
    margin-bottom: var(--space-4);
    color: var(--clr-text-primary);
  }

  .c-card--energy {
    padding: var(--space-6);
  }

  .c-card--energy i {
    font-size: var(--font-size-2xl);
    color: var(--clr-accent);
    margin-bottom: var(--space-4);
    display: block;
  }

  .c-card--energy h4 {
    font-size: var(--font-size-base);
    font-weight: 600;
    margin-bottom: var(--space-3);
  }

  .c-card--energy p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
  }

  .c-card--form {
    padding: var(--space-10);
    box-shadow: var(--shadow-lg);
  }

  .c-card--form h2 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    margin-bottom: var(--space-8);
  }

  
  .c-check-list { display: flex; flex-direction: column; gap: var(--space-3); }

  .c-check-list li {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
  }

  .c-check-list li i {
    color: var(--clr-highlight);
    font-size: var(--font-size-sm);
    flex-shrink: 0;
  }

  
  .u-label {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-accent);
    margin-bottom: var(--space-3);
  }

  .u-label--light {
    color: rgba(216, 243, 220, 0.85);
  }

  
  .s-featured__header {
    margin-bottom: var(--space-10);
  }

  .s-featured__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-2);
  }

  .s-featured__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    align-items: start;
  }

  .s-featured__sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
  }

  .c-article {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
  }

  .c-article:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
  }

  .c-article--large .c-article__img-wrap {
    aspect-ratio: 16/9;
    overflow: hidden;
  }

  .c-article--small .c-article__img-wrap {
    aspect-ratio: 16/7;
    overflow: hidden;
  }

  .c-article__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
  }

  .c-article:hover .c-article__img-wrap img { transform: scale(1.04); }

  .c-article__body { padding: var(--space-6); }

  .c-article--large .c-article__body { padding: var(--space-8); }

  .c-article__tag {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-accent);
    background-color: var(--clr-accent-pale);
    padding: 3px 10px;
    border-radius: var(--radius-full);
    margin-bottom: var(--space-3);
  }

  .c-article__body h3 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    line-height: var(--line-height-snug);
    margin-bottom: var(--space-3);
    color: var(--clr-text-primary);
  }

  .c-article--small .c-article__body h3 { font-size: var(--font-size-base); }

  .c-article__body p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-5);
  }

  .c-article__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--clr-accent);
    transition: gap var(--transition-fast);
  }

  .c-article__link:hover { gap: var(--space-3); }

  
  .s-comparison__header {
    text-align: center;
    margin-bottom: var(--space-10);
  }

  .s-comparison__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-comparison__header p {
    color: var(--clr-text-secondary);
    max-width: 560px;
    margin-inline: auto;
  }

  .c-table-scroll {
    overflow-x: auto;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
  }

  .c-comparison-table {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    font-size: var(--font-size-sm);
  }

  .c-comparison-table thead { background-color: var(--clr-accent-dark); }

  .c-comparison-table th {
    padding: var(--space-4) var(--space-5);
    text-align: left;
    font-weight: 600;
    color: white;
    font-size: var(--font-size-sm);
  }

  .c-comparison-table th.is-recommended {
    background-color: var(--clr-accent);
    position: relative;
  }

  .c-comparison-table td {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--clr-border);
    color: var(--clr-text-secondary);
    vertical-align: top;
  }

  .c-comparison-table td:first-child {
    font-weight: 600;
    color: var(--clr-text-primary);
  }

  .c-comparison-table td.is-recommended {
    background-color: rgba(45, 106, 79, 0.05);
  }

  .c-comparison-table tr:last-child td { border-bottom: none; }
  .c-comparison-table tbody tr:hover { background-color: var(--clr-bg-soft); }
  .c-comparison-table tbody tr:hover td.is-recommended { background-color: rgba(45, 106, 79, 0.08); }

  .c-comparison-table tfoot td {
    border-top: 1px solid var(--clr-border);
    border-bottom: none;
    padding: var(--space-4) var(--space-5);
  }

  .c-table-note {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--font-size-xs);
    color: var(--clr-text-muted);
  }

  .c-table-note i { color: var(--clr-accent); margin-top: 2px; flex-shrink: 0; }

  .c-table-badge {
    margin-top: var(--space-4);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-xs);
    color: var(--clr-accent);
    font-weight: 500;
  }

  .c-table-badge i { color: var(--clr-highlight); }

  
  .s-cities__header {
    text-align: center;
    margin-bottom: var(--space-10);
  }

  .s-cities__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-cities__header p {
    color: var(--clr-text-secondary);
    max-width: 560px;
    margin-inline: auto;
  }

  .s-cities__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
  }

  .c-city-card {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
  }

  .c-city-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
  }

  .c-city-card__img {
    aspect-ratio: 4/3;
    overflow: hidden;
  }

  .c-city-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
  }

  .c-city-card:hover .c-city-card__img img { transform: scale(1.05); }

  .c-city-card__body { padding: var(--space-6); }

  .c-city-card__body h3 {
    font-size: var(--font-size-xl);
    font-weight: 700;
    margin-bottom: var(--space-3);
    color: var(--clr-text-primary);
  }

  .c-city-card__body p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
  }

  
  .s-cta__card {
    background: linear-gradient(135deg, var(--clr-accent-dark) 0%, var(--clr-accent) 100%);
    border-radius: var(--radius-xl);
    padding: var(--space-12);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: center;
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    position: relative;
  }

  .s-cta__content h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: white;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-cta__content p {
    color: rgba(216, 243, 220, 0.85);
    margin-bottom: var(--space-8);
    line-height: var(--line-height-relaxed);
  }

  .s-cta__actions {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
  }

  .s-cta__visual {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
  }

  .s-cta__visual img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
  }

  
  .s-page-hero {
    position: relative;
    padding-top: calc(var(--nav-height) + var(--space-20));
    padding-bottom: var(--space-20);
    padding-inline: var(--space-6);
    background-color: var(--clr-accent-dark);
    text-align: center;
    overflow: hidden;
  }

  .s-page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center top, rgba(64, 145, 108, 0.3) 0%, transparent 70%);
    pointer-events: none;
  }

  .s-page-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(27, 67, 50, 0.7), rgba(27, 67, 50, 0.95));
  }

  .s-page-hero__content {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin-inline: auto;
    animation: heroFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
  }

  .s-page-hero__content h1 {
    font-size: var(--font-size-5xl);
    font-weight: 700;
    color: white;
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-5);
  }

  .s-page-hero__content p {
    font-size: var(--font-size-lg);
    color: rgba(216, 243, 220, 0.82);
    line-height: var(--line-height-relaxed);
  }

  
  .s-sustain-intro__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: start;
  }

  .s-sustain-intro__lead h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    line-height: var(--line-height-tight);
  }

  .s-sustain-intro__lead p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
  }

  .s-sustain-pillars__header {
    text-align: center;
    margin-bottom: var(--space-12);
  }

  .s-sustain-pillars__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-sustain-pillars__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }

  .c-pillar-card {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
    position: relative;
  }

  .c-pillar-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
  }

  .c-pillar-card__number {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--clr-accent-pale);
    line-height: 1;
    margin-bottom: var(--space-4);
    font-variant-numeric: tabular-nums;
  }

  .c-pillar-card h3 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    margin-bottom: var(--space-4);
    color: var(--clr-text-primary);
  }

  .c-pillar-card p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-3);
  }

  .s-sustain-approach__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: center;
  }

  .s-sustain-approach__text h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    line-height: var(--line-height-tight);
  }

  .s-sustain-approach__text p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
  }

  .s-sustain-approach__text .c-btn { margin-top: var(--space-4); }

  .s-sustain-energy__header {
    text-align: center;
    margin-bottom: var(--space-10);
  }

  .s-sustain-energy__header h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-sustain-energy__header p {
    color: var(--clr-text-secondary);
    max-width: 560px;
    margin-inline: auto;
  }

  .s-sustain-energy__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-5);
  }

  
  .s-modules-intro__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
  }

  .s-modules-intro__grid h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    line-height: var(--line-height-tight);
  }

  .s-modules-intro__grid p {
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
  }

  .s-module-list__header {
    text-align: center;
    margin-bottom: var(--space-10);
  }

  .s-module-list__header h2 {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    margin-bottom: var(--space-3);
    line-height: var(--line-height-tight);
  }

  .s-module-list__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }

  .c-module-card {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base), border-color var(--transition-base);
  }

  .c-module-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
    border-color: var(--clr-accent-pale);
  }

  .c-module-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-4);
  }

  .c-module-card__num {
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-accent);
  }

  .c-module-card__tag {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--clr-text-muted);
    background-color: var(--clr-bg-soft);
    padding: 3px 10px;
    border-radius: var(--radius-full);
  }

  .c-module-card h3 {
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-snug);
    color: var(--clr-text-primary);
  }

  .c-module-card p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-3);
  }

  .c-module-card__meta {
    display: flex;
    gap: var(--space-5);
    margin-top: var(--space-5);
    padding-top: var(--space-5);
    border-top: 1px solid var(--clr-border);
  }

  .c-module-card__meta span {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-xs);
    color: var(--clr-text-muted);
  }

  .c-module-card__meta i { color: var(--clr-accent); }

  .s-modules-cta__inner {
    text-align: center;
    max-width: 560px;
    margin-inline: auto;
  }

  .s-modules-cta__inner h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-modules-cta__inner p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-8);
    line-height: var(--line-height-relaxed);
  }

  
  .s-guide-intro__layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-12);
    align-items: start;
  }

  .c-toc {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    position: sticky;
    top: calc(var(--nav-height) + var(--space-6));
  }

  .c-toc h4 {
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-accent);
    margin-bottom: var(--space-4);
  }

  .c-toc ol { counter-reset: toc; display: flex; flex-direction: column; gap: var(--space-2); }

  .c-toc li { counter-increment: toc; }

  .c-toc a {
    display: flex;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    padding: var(--space-2);
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background-color var(--transition-fast);
    line-height: var(--line-height-snug);
  }

  .c-toc a::before {
    content: counter(toc, decimal-leading-zero);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--clr-accent);
    flex-shrink: 0;
    padding-top: 1px;
  }

  .c-toc a:hover {
    color: var(--clr-accent);
    background-color: var(--clr-accent-pale);
  }

  .s-guide-intro__content h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    line-height: var(--line-height-tight);
    color: var(--clr-text-primary);
  }

  .s-guide-intro__content p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
  }

  .s-guide-section {
    margin-top: var(--space-12);
    padding-top: var(--space-12);
    border-top: 1px solid var(--clr-border);
  }

  .s-guide-section h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    line-height: var(--line-height-tight);
    color: var(--clr-text-primary);
  }

  .s-guide-section h3 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
    color: var(--clr-text-primary);
  }

  .s-guide-section p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
  }

  .c-guide-list {
    list-style: disc;
    padding-left: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
  }

  .c-guide-list li {
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
  }

  .c-guide-callout {
    display: flex;
    gap: var(--space-4);
    background-color: var(--clr-accent-pale);
    border-left: 4px solid var(--clr-accent);
    border-radius: var(--radius-md);
    padding: var(--space-5) var(--space-6);
    margin-block: var(--space-6);
  }

  .c-guide-callout i {
    color: var(--clr-accent);
    font-size: var(--font-size-xl);
    flex-shrink: 0;
    margin-top: 2px;
  }

  .c-guide-callout div { font-size: var(--font-size-sm); color: var(--clr-text-secondary); line-height: var(--line-height-relaxed); }
  .c-guide-callout strong { color: var(--clr-text-primary); display: block; margin-bottom: var(--space-2); }

  .c-interview-block {
    background-color: var(--clr-surface);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    margin-bottom: var(--space-5);
  }

  .c-interview-block__label {
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-accent);
    margin-bottom: var(--space-3);
  }

  .c-interview-block p {
    font-size: var(--font-size-base);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    font-style: italic;
    margin-bottom: 0;
  }

  .s-guide-cta__inner {
    text-align: center;
    max-width: 560px;
    margin-inline: auto;
  }

  .s-guide-cta__inner h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-guide-cta__inner p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-8);
    line-height: var(--line-height-relaxed);
  }

  
  .s-contact-hero {
    padding-top: calc(var(--nav-height) + var(--space-16));
    padding-bottom: var(--space-12);
  }

  .s-contact-hero__content h1 {
    font-size: var(--font-size-5xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-contact-hero__content p {
    font-size: var(--font-size-lg);
    color: var(--clr-text-secondary);
    max-width: 600px;
    line-height: var(--line-height-relaxed);
  }

  .s-contact-main__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-10);
    align-items: start;
  }

  .c-form-group { margin-bottom: var(--space-5); }

  .c-form-label {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--clr-text-primary);
    margin-bottom: var(--space-2);
  }

  .c-form-input {
    display: block;
    width: 100%;
    padding: 12px var(--space-4);
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    color: var(--clr-text-primary);
    background-color: var(--clr-bg);
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    outline: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
    min-height: 48px;
  }

  .c-form-input:focus {
    border-color: var(--clr-accent);
    background-color: var(--clr-surface);
    box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.12);
  }

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

  .c-form-group--check { display: flex; align-items: flex-start; }

  .c-form-check {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    cursor: pointer;
    font-size: var(--font-size-sm);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-snug);
  }

  .c-form-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    accent-color: var(--clr-accent);
    cursor: pointer;
  }

  .c-form-check a { color: var(--clr-accent); text-decoration: underline; }

  .c-contact-info { padding: var(--space-8) 0; }

  .c-contact-info h3 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    margin-bottom: var(--space-6);
    color: var(--clr-text-primary);
  }

  .c-contact-info__item {
    display: flex;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    align-items: flex-start;
  }

  .c-contact-info__item i {
    width: 44px;
    height: 44px;
    background-color: var(--clr-accent-pale);
    color: var(--clr-accent);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .c-contact-info__item strong {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--clr-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--space-1);
  }

  .c-contact-info__item p,
  .c-contact-info__item a {
    font-size: var(--font-size-base);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-snug);
    transition: color var(--transition-fast);
  }

  .c-contact-info__item a:hover { color: var(--clr-accent); }

  .c-contact-info__note {
    background-color: var(--clr-bg-soft);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    margin-top: var(--space-6);
  }

  .c-contact-info__note p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-muted);
    line-height: var(--line-height-relaxed);
  }

  .c-map-wrap {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--clr-border);
    margin-top: var(--space-6);
  }

  .s-contact-map h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-2);
    line-height: var(--line-height-tight);
  }

  .s-contact-gallery__header {
    margin-bottom: var(--space-8);
  }

  .s-contact-gallery__header h2 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-3);
    line-height: var(--line-height-tight);
  }

  .s-contact-gallery__header p {
    color: var(--clr-text-secondary);
  }

  .s-contact-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
  }

  .c-gallery-item {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
    aspect-ratio: 4/3;
  }

  .c-gallery-item:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
  }

  .c-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
  }

  .c-gallery-item:hover img { transform: scale(1.05); }

  
  .s-thanks {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--nav-height) - 100px);
    padding: var(--space-12) var(--space-6);
  }

  .s-thanks__inner {
    text-align: center;
    max-width: 480px;
  }

  .s-thanks__icon {
    font-size: 4rem;
    color: var(--clr-accent);
    margin-bottom: var(--space-6);
    animation: popIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
  }

  @keyframes popIn {
    from { opacity: 0; transform: scale(0.5); }
    to { opacity: 1; transform: scale(1); }
  }

  .s-thanks__inner h1 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: var(--space-4);
    line-height: var(--line-height-tight);
  }

  .s-thanks__inner p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-6);
    line-height: var(--line-height-relaxed);
  }

  .s-thanks__countdown {
    background-color: var(--clr-bg-soft);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-6);
    margin-bottom: var(--space-8);
  }

  .s-thanks__countdown p {
    font-size: var(--font-size-sm);
    color: var(--clr-text-muted);
    margin-bottom: 0;
  }

  .s-thanks__countdown strong { color: var(--clr-accent); font-size: var(--font-size-xl); }

  
  .s-legal-hero {
    padding-top: calc(var(--nav-height) + var(--space-16));
    padding-bottom: var(--space-10);
  }

  .s-legal-hero h1 {
    font-size: var(--font-size-5xl);
    font-weight: 700;
    margin-bottom: var(--space-3);
    line-height: var(--line-height-tight);
  }

  .s-legal-hero__meta {
    font-size: var(--font-size-sm);
    color: var(--clr-text-muted);
  }

  .c-legal-block {
    margin-bottom: var(--space-10);
    padding-bottom: var(--space-10);
    border-bottom: 1px solid var(--clr-border);
  }

  .c-legal-block:last-child { border-bottom: none; }

  .c-legal-block h2 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    margin-bottom: var(--space-5);
    color: var(--clr-text-primary);
    line-height: var(--line-height-tight);
  }

  .c-legal-block h3 {
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin-top: var(--space-6);
    margin-bottom: var(--space-3);
    color: var(--clr-text-primary);
  }

  .c-legal-block p {
    color: var(--clr-text-secondary);
    margin-bottom: var(--space-4);
    line-height: var(--line-height-relaxed);
    font-size: var(--font-size-base);
  }

  .c-legal-block ul {
    list-style: disc;
    padding-left: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
  }

  .c-legal-block ul li {
    font-size: var(--font-size-base);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
  }

  .c-legal-intro {
    font-size: var(--font-size-lg);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    border-left: 4px solid var(--clr-accent);
    padding-left: var(--space-5);
    margin-bottom: var(--space-6);
  }

  .c-legal-block a { color: var(--clr-accent); text-decoration: underline; }

  .c-legal-table {
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--clr-border);
    margin-block: var(--space-5);
    font-size: var(--font-size-sm);
  }

  .c-legal-table th {
    background-color: var(--clr-accent-dark);
    color: white;
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-weight: 600;
  }

  .c-legal-table td {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--clr-border);
    color: var(--clr-text-secondary);
    vertical-align: top;
    background-color: var(--clr-surface);
  }

  .c-legal-table tr:last-child td { border-bottom: none; }
  .c-legal-table tr:nth-child(even) td { background-color: var(--clr-bg-soft); }

  .c-legal-table--cookies { width: 100%; }

  .c-def-list { display: flex; flex-direction: column; gap: var(--space-5); }

  .c-def-list dt {
    font-size: var(--font-size-base);
    font-weight: 700;
    color: var(--clr-text-primary);
    margin-bottom: var(--space-1);
  }

  .c-def-list dd {
    font-size: var(--font-size-base);
    color: var(--clr-text-secondary);
    line-height: var(--line-height-relaxed);
    padding-left: var(--space-4);
    border-left: 2px solid var(--clr-accent-pale);
  }

  
  .c-footer {
    background-color: var(--clr-text-primary);
    color: var(--clr-text-inverse);
    padding-top: var(--space-16);
    padding-bottom: var(--space-6);
  }

  .c-footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--space-10);
    padding-bottom: var(--space-10);
    border-bottom: 1px solid rgba(253, 252, 251, 0.1);
    margin-bottom: var(--space-6);
  }

  .c-footer__brand img { margin-bottom: var(--space-4); filter: brightness(10); }

  .c-footer__brand p {
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.55);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--space-5);
  }

  .c-footer__brand address {
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.55);
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    line-height: var(--line-height-snug);
  }

  .c-footer__brand address i { color: var(--clr-accent-light); margin-top: 2px; flex-shrink: 0; }

  .c-footer__contact-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.55);
    margin-bottom: var(--space-2);
    transition: color var(--transition-fast);
  }

  .c-footer__contact-link i { color: var(--clr-accent-light); }
  .c-footer__contact-link:hover { color: rgba(253, 252, 251, 0.9); }

  .c-footer__nav h4 {
    font-size: var(--font-size-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(253, 252, 251, 0.4);
    margin-bottom: var(--space-4);
  }

  .c-footer__nav ul { display: flex; flex-direction: column; gap: var(--space-3); }

  .c-footer__nav a {
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.6);
    transition: color var(--transition-fast);
  }

  .c-footer__nav a:hover { color: rgba(253, 252, 251, 0.95); }

  .c-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
  }

  .c-footer__bottom p {
    font-size: var(--font-size-xs);
    color: rgba(253, 252, 251, 0.35);
  }

  
  .c-cookie-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 500;
    background-color: var(--clr-text-primary);
    color: var(--clr-text-inverse);
    border-top: 1px solid rgba(253, 252, 251, 0.12);
    box-shadow: 0 -4px 24px rgba(30, 28, 25, 0.2);
    transform: translateY(100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .c-cookie-bar.is-visible { transform: translateY(0); }

  .c-cookie-bar__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    padding: var(--space-4) var(--space-6);
    max-width: 1200px;
    margin-inline: auto;
    flex-wrap: wrap;
  }

  .c-cookie-bar__text {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.75);
    flex: 1;
    min-width: 200px;
  }

  .c-cookie-bar__text i { color: var(--clr-accent-light); font-size: var(--font-size-base); flex-shrink: 0; }
  .c-cookie-bar__text a { color: var(--clr-accent-light); text-decoration: underline; }

  .c-cookie-bar__actions {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    flex-shrink: 0;
  }

  .c-cookie-btn {
    padding: 10px var(--space-4);
    font-family: var(--font-family);
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: var(--radius-md);
    min-height: 40px;
    transition: all var(--transition-fast);
    white-space: nowrap;
  }

  .c-cookie-btn--customize {
    background-color: transparent;
    color: rgba(253, 252, 251, 0.6);
    border: 1px solid rgba(253, 252, 251, 0.2);
  }

  .c-cookie-btn--customize:hover {
    color: rgba(253, 252, 251, 0.9);
    border-color: rgba(253, 252, 251, 0.4);
  }

  .c-cookie-btn--reject {
    background-color: rgba(253, 252, 251, 0.08);
    color: rgba(253, 252, 251, 0.75);
    border: 1px solid rgba(253, 252, 251, 0.15);
  }

  .c-cookie-btn--reject:hover {
    background-color: rgba(253, 252, 251, 0.15);
    color: white;
  }

  .c-cookie-btn--accept {
    background-color: var(--clr-accent);
    color: white;
    border: 1px solid transparent;
  }

  .c-cookie-btn--accept:hover { background-color: var(--clr-accent-light); }

  .c-cookie-bar__customize {
    max-width: 1200px;
    margin-inline: auto;
    padding: var(--space-4) var(--space-6) var(--space-5);
    border-top: 1px solid rgba(253, 252, 251, 0.08);
    display: none;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center;
  }

  .c-cookie-bar__customize.is-open { display: flex; }

  .c-cookie-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    background-color: rgba(253, 252, 251, 0.05);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    flex: 1;
    min-width: 180px;
  }

  .c-cookie-toggle__info { display: flex; flex-direction: column; gap: 2px; }

  .c-cookie-toggle__info strong {
    font-size: var(--font-size-sm);
    color: rgba(253, 252, 251, 0.9);
    font-weight: 600;
  }

  .c-cookie-toggle__info span {
    font-size: var(--font-size-xs);
    color: rgba(253, 252, 251, 0.45);
  }

  .c-toggle { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
  .c-toggle input { opacity: 0; width: 0; height: 0; }

  .c-toggle span {
    position: absolute;
    inset: 0;
    background-color: rgba(253, 252, 251, 0.15);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: background-color var(--transition-fast);
  }

  .c-toggle span::before {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    left: 3px;
    top: 3px;
    background-color: white;
    border-radius: 50%;
    transition: transform var(--transition-fast);
  }

  .c-toggle input:checked + span { background-color: var(--clr-accent); }
  .c-toggle input:checked + span::before { transform: translateX(20px); }
  .c-toggle--disabled { opacity: 0.5; cursor: not-allowed; }
  .c-toggle--disabled span { cursor: not-allowed; }

  
  .s-sustain-pillars {
    padding-block: var(--space-20);
  }

  
  .u-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity var(--transition-reveal), transform var(--transition-reveal);
  }

  .u-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
}

@layer utilities {
  .u-hidden { display: none !important; }
  .u-text-center { text-align: center; }
  .u-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;clip: rect(0, 0, 0, 0);
    border: 0;
  }
}



@media (max-width: 1024px) {
  .s-topics__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .c-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
  }

  .s-guide-intro__layout {
    grid-template-columns: 1fr;
  }

  .c-toc {
    position: static;
    margin-bottom: var(--space-8);
  }

  .s-cta__card {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .s-cta__visual { display: none; }
}

@media (max-width: 768px) {
  :root {
    --nav-height: 64px;
  }

  .c-nav__links { display: none; }
  .c-nav__search-btn { display: none; }
  .c-nav__hamburger { display: flex; }

  .s-hero__heading { font-size: clamp(2.2rem, 8vw, 3.5rem); }

  .s-intro__grid,
  .s-sustain-intro__grid,
  .s-sustain-approach__grid,
  .s-modules-intro__grid,
  .s-contact-main__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .s-topics__grid { grid-template-columns: 1fr; }

  .s-featured__grid {
    grid-template-columns: 1fr;
  }

  .s-cities__grid {
    grid-template-columns: 1fr;
  }

  .s-sustain-pillars__grid {
    grid-template-columns: 1fr;
  }

  .s-sustain-energy__cards {
    grid-template-columns: 1fr;
  }

  .s-module-list__grid {
    grid-template-columns: 1fr;
  }

  .s-contact-gallery__grid {
    grid-template-columns: 1fr;
  }

  .c-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .c-footer__bottom {
    flex-direction: column;
    text-align: center;
  }

  .s-topics-bar__grid {
    gap: var(--space-4);
    justify-content: flex-start;
  }

  .s-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .c-btn { width: 100%; justify-content: center; }

  .s-cta__card { padding: var(--space-8); }

  .s-cta__actions { flex-direction: column; }

  .c-cookie-bar__main {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--space-4);
  }

  .c-cookie-bar__actions {
    width: 100%;
    justify-content: flex-end;
  }

  .c-cookie-bar__customize {
    flex-direction: column;
    padding: var(--space-4);
  }

  .c-cookie-toggle { width: 100%; }

  .s-page-hero__content h1 {
    font-size: clamp(2rem, 7vw, 3rem);
  }

  .c-legal-table {
    font-size: var(--font-size-xs);
  }

  .c-legal-table th,
  .c-legal-table td {
    padding: var(--space-2) var(--space-3);
  }

  .c-comparison-table th,
  .c-comparison-table td {
    padding: var(--space-3) var(--space-3);
    font-size: var(--font-size-xs);
  }

  .s-contact-gallery__grid {
    grid-template-columns: 1fr 1fr;
  }

  .s-legal-hero h1 {
    font-size: clamp(2rem, 7vw, 3rem);
  }

  .s-contact-hero__content h1 {
    font-size: clamp(2rem, 7vw, 3rem);
  }

  .s-thanks__inner h1 {
    font-size: var(--font-size-2xl);
  }

  .u-section-pad {
    padding-block: var(--space-12);
  }

  .c-module-card__meta {
    flex-direction: column;
    gap: var(--space-2);
  }
}

@media (max-width: 480px) {
  .u-container { padding-inline: var(--space-4); }

  .s-contact-gallery__grid {
    grid-template-columns: 1fr;
  }

  .c-mobile-menu__left { width: 100%; }
  .c-mobile-menu__right { display: none; }

  .c-cookie-bar__actions {
    flex-direction: column;
    width: 100%;
  }

  .c-cookie-btn { width: 100%; text-align: center; }

  .s-topics-bar { overflow-x: auto; }
  .s-topics-bar__grid { flex-wrap: nowrap; padding-inline: var(--space-4); }

  .c-card--form { padding: var(--space-6); }

  .s-cta__card { padding: var(--space-6); }

  .s-cta__content h2 { font-size: var(--font-size-2xl); }
}