@font-face{
    font-display:swap;
    font-family:Atkinson Hyperlegible;
    font-style:normal;
    font-weight:400;
    src:local("Atkinson Hyperlegible"), url(/fonts/atkinson/atkinson-hyperlegible-regular.woff2) format("woff2");
}
@font-face{
    font-display:swap;
    font-family:Atkinson Hyperlegible;
    font-style:normal;
    font-weight:700;
    src:local("Atkinson Hyperlegible Bold"), url(/fonts/atkinson/atkinson-hyperlegible-bold.woff2) format("woff2");
}
@font-face{
    font-display:swap;
    font-family:Atkinson Hyperlegible;
    font-style:italic;
    font-weight:400;
    src:local("Atkinson Hyperlegible Italic"), url(/fonts/atkinson/atkinson-hyperlegible-italic.woff2) format("woff2");
}
@font-face{
    font-display:swap;
    font-family:Atkinson Hyperlegible;
    font-style:italic;
    font-weight:700;
    src:local("Atkinson Hyperlegible Bold Italic"), url(/fonts/atkinson/atkinson-hyperlegible-bold-italic.woff2) format("woff2");
}
@font-face{ font-display:swap; font-family:Inter; font-weight:400; src:url(/fonts/inter/inter-400.woff2) format("woff2"); }
@font-face{ font-display:swap; font-family:Inter; font-weight:500; src:url(/fonts/inter/inter-500.woff2) format("woff2"); }
@font-face{ font-display:swap; font-family:Inter; font-weight:600; src:url(/fonts/inter/inter-600.woff2) format("woff2"); }
@font-face{ font-display:swap; font-family:Inter; font-weight:700; src:url(/fonts/inter/inter-700.woff2) format("woff2"); }
@font-face{ font-display:swap; font-family:Inter; font-weight:800; src:url(/fonts/inter/inter-800.woff2) format("woff2"); }

:root{
    --village-teal:#0f766e;
    --village-teal-dark:#115e59;
    --village-teal-light:#14b8a6;
    --village-teal-subtle:#ccfbf1;
    --commons-indigo:#6366f1;
    --earth-black:#0b0d0e;
    --paper-white:#fcfcff;
    --white:#fff;
    --gray-50:#f9fafb;
    --gray-100:#f3f4f6;
    --gray-200:#e5e7eb;
    --gray-300:#d1d5db;
    --gray-400:#9ca3af;
    --gray-500:#6b7280;
    --gray-600:#4b5563;
    --gray-700:#374151;
    --gray-800:#1f2937;
    --gray-900:#111827;
    --spacing-xs:0.5rem;
    --spacing-sm:1rem;
    --spacing-md:1.5rem;
    --spacing-lg:2rem;
    --spacing-xl:3rem;
    --spacing-2xl:4rem;
    --font-display:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    --font-family:"Atkinson Hyperlegible", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;
    --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:3rem;
    --shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);
    --shadow-md:0 4px 6px -1px rgba(0,0,0,.1);
    --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);
    --radius-sm:0.375rem;
    --radius-md:0.5rem;
    --radius-lg:0.75rem;
}
.skip-link{
    background:var(--village-teal);
    border-radius:0 0 var(--radius-md) 0;
    color:#fff;
    font-weight:600;
    left:0;
    padding:.75rem 1rem;
    position:absolute;
    text-decoration:none;
    top:-40px;
    transition:top .3s;
    z-index:10000;
}

.skip-link:focus{
    outline:2px solid var(--village-teal-dark);
    outline-offset:2px;
    top:0;
}
*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

body{
    background-color:var(--white);
    color:var(--gray-900);
    font-family:var(--font-family);
    font-size:var(--font-size-base);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5,h6{
    font-family:var(--font-display);
}
h1{ letter-spacing:-.025em; }
h2{ letter-spacing:-.02em; }
h3{ letter-spacing:-.015em; }

a{
    color:inherit;
    text-decoration:none;
}

ul{
    list-style:none;
}

img{
    height:auto;
    max-width:100%;
}
.container{
    margin:0 auto;
    max-width:1200px;
    padding:0 var(--spacing-lg);
}

@media (max-width:768px){
    .container{
        padding:0 var(--spacing-md);
    }
}
.coming-soon-banner{
    background:var(--village-teal);
    color:var(--white);
    font-family:var(--font-display);
    font-size:.8125rem;
    font-weight:500;
    letter-spacing:.04em;
    padding:.625rem 0;
    text-align:center;
}
.hero{
    background:linear-gradient(135deg, #0d9488, #0f766e 30%, #115e59 60%, #1e3a5f);
    padding:5rem 0 4rem;
    text-align:center;
}

.hero-content{
    margin:0 auto;
    max-width:800px;
}

.hero-icon{
    margin-bottom:1.5rem;
}
.hero-icon img{
    height:auto;
    width:clamp(100px, 15vw, 160px);
}

.hero-brand{
    color:#fff;
    font-size:clamp(2.5rem, 5vw, 3.5rem);
    font-weight:800;
    letter-spacing:-.03em;
    margin-bottom:var(--spacing-sm);
}

.hero-brand,.hero-title{
    font-family:var(--font-display);
}

.hero-title{
    color:hsla(0,0%,100%,.95);
    font-size:clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight:500;
    line-height:1.3;
    margin-bottom:var(--spacing-md);
}

.hero-subtitle{
    color:hsla(0,0%,100%,.85);
    font-size:clamp(1rem, 1.5vw, 1.25rem);
    line-height:1.6;
    margin-bottom:var(--spacing-xl);
}

.hero-cta{
    display:flex;
    flex-wrap:wrap;
    gap:var(--spacing-md);
    justify-content:center;
}
.btn{
    border:2px solid transparent;
    border-radius:var(--radius-md);
    cursor:pointer;
    display:inline-block;
    font-size:var(--font-size-base);
    font-weight:600;
    padding:var(--spacing-sm) var(--spacing-lg);
    transition:all .2s ease;
}

.btn-primary{
    background-color:var(--village-teal);
    color:var(--white);
}

.btn-primary:hover{
    background-color:var(--village-teal-dark);
    box-shadow:var(--shadow-md);
    transform:translateY(-1px);
}

.btn-secondary{
    background-color:transparent;
    border-color:var(--village-teal);
    color:var(--village-teal);
}

.btn-secondary:hover{
    background-color:var(--village-teal-subtle);
    transform:translateY(-1px);
}

.btn-tertiary{
    background-color:transparent;
    border:1px solid var(--gray-300);
    color:var(--gray-600);
}

.btn-tertiary:hover{
    background-color:var(--gray-100);
    border-color:var(--gray-400);
    color:var(--gray-700);
    transform:translateY(-1px);
}
.hero .btn-primary{
    background:#fff;
    border-color:#fff;
    color:#0f766e;
}
.hero .btn-primary:hover{
    background:#f0fdfa;
    box-shadow:0 10px 15px -3px rgba(0,0,0,.2);
    transform:translateY(-2px);
}
.hero .btn-secondary{
    background:transparent;
    border-color:hsla(0,0%,100%,.4);
    color:#fff;
}
.hero .btn-secondary:hover{
    background:hsla(0,0%,100%,.1);
    border-color:hsla(0,0%,100%,.7);
}
section{
    padding:3.5rem 0 4rem;
}

.section-header{
    margin-bottom:2.5rem;
    text-align:center;
}
.whats-new{
    background:var(--gray-50);
    padding:3rem 0 3.5rem;
}
.whats-new-badge{
    background:#ecfdf5;
    border-radius:2rem;
    color:#065f46;
    display:inline-block;
    font-family:var(--font-display);
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.05em;
    margin-bottom:.75rem;
    padding:.25rem .75rem;
    text-transform:uppercase;
}
.whats-new-grid{
    display:grid;
    gap:1.5rem;
    grid-template-columns:repeat(3, 1fr);
    margin:0 auto;
    max-width:1100px;
}
@media (max-width:768px){
    .whats-new-grid{ grid-template-columns:1fr; }
}
.whats-new-card{
    background:#fff;
    border:1px solid var(--gray-200);
    border-radius:.75rem;
    box-shadow:var(--shadow-md);
    color:inherit;
    display:block;
    overflow:hidden;
    text-decoration:none;
    transition:all .3s ease;
}
.whats-new-card:hover{
    box-shadow:var(--shadow-lg);
    transform:translateY(-4px);
}
.whats-new-card-header{
    padding:1rem 1.25rem;
}
.whats-new-header-teal{
    background:linear-gradient(90deg, #0f766e, #14b8a6);
}
.whats-new-header-indigo{
    background:linear-gradient(90deg, #4f46e5, #7c3aed);
}
.whats-new-header-amber{
    background:linear-gradient(90deg, #d97706, #ea580c);
}
.whats-new-label{
    color:hsla(0,0%,100%,.85);
    font-family:var(--font-display);
    font-size:.7rem;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.whats-new-card-body{
    padding:1.25rem;
}
.whats-new-header-teal+.whats-new-card-body{ background:linear-gradient(180deg, #f0fdfa, #fff); }
.whats-new-header-indigo+.whats-new-card-body{ background:linear-gradient(180deg, #eef2ff, #fff); }
.whats-new-header-amber+.whats-new-card-body{ background:linear-gradient(180deg, #fffbeb, #fff); }
.whats-new-card-body h3{
    color:var(--gray-900);
    font-family:var(--font-display);
    font-size:1rem;
    font-weight:700;
    margin-bottom:.5rem;
    transition:color .2s;
}
.whats-new-card:hover .whats-new-card-body h3{
    color:var(--village-teal);
}
.whats-new-card-body p{
    color:var(--gray-600);
    font-size:.875rem;
    line-height:1.5;
    margin:0;
}
.our-principles{
    background:linear-gradient(180deg, #f0fdfa, #fff);
    padding:3rem 2rem 3.5rem;
    scroll-margin-top:80px;
}
.our-principles .section-header h2{
    color:var(--gray-900);
    font-size:clamp(1.5rem, 3vw, 2rem);
    font-weight:700;
    margin-bottom:.75rem;
}
.our-principles .section-header p{
    color:var(--gray-600);
    font-size:1.1rem;
    margin:0 auto;
    max-width:600px;
}
.federation-intro{
    background:linear-gradient(135deg, #115e59, #0f766e 50%, #14b8a6);
    color:#fff;
    padding:4rem 2rem;
}
.federation-intro .section-header h2{
    color:#fff;
    font-size:clamp(1.5rem, 3vw, 2rem);
    font-weight:700;
    margin-bottom:1rem;
}
.federation-intro .section-header p{
    color:hsla(0,0%,100%,.9);
    font-size:1.1rem;
    margin:0 auto;
    max-width:700px;
}
.federation-grid{
    display:grid;
    gap:1.5rem;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    margin-bottom:2rem;
    margin-left:auto;
    margin-right:auto;
    max-width:1100px;
}
.federation-card{
    backdrop-filter:blur(10px);
    background:hsla(0,0%,100%,.12);
    border-radius:.75rem;
    padding:1.5rem;
}
.federation-card h3{
    color:#fff;
    font-size:1.1rem;
    margin-bottom:.5rem;
}
.federation-card p{
    color:hsla(0,0%,100%,.9);
    font-size:.9rem;
    line-height:1.6;
}
.federation-card-icon{
    align-items:center;
    background:hsla(0,0%,100%,.15);
    border-radius:.5rem;
    display:flex;
    font-size:1.5rem;
    height:2.5rem;
    justify-content:center;
    margin-bottom:.75rem;
    width:2.5rem;
}
.federation-footer{
    text-align:center;
}
.federation-footer p{
    color:hsla(0,0%,100%,.85);
    font-size:.95rem;
    margin-bottom:1.5rem;
}
.federation-footer .btn-group{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    justify-content:center;
}
.federation-intro .btn-primary{
    background:#fff;
    border-color:#fff;
    color:#0f766e;
}
.federation-intro .btn-secondary{
    background:hsla(0,0%,100%,.15);
    border-color:hsla(0,0%,100%,.4);
    color:#fff;
}
.village-ai-intro{
    background:linear-gradient(135deg, #1a1a2e, #16213e);
    padding:4rem 2rem;
    text-align:center;
}
.village-ai-intro .container{ max-width:900px; }
.village-ai-intro h2{
    color:#f0f0f0;
    font-size:clamp(1.5rem, 3vw, 1.75rem);
    font-weight:600;
    margin-bottom:1.5rem;
}
.village-ai-intro .ai-description{
    color:#e0e0e0;
    font-size:1.1rem;
    line-height:1.8;
    margin-bottom:2rem;
}
.village-ai-intro .ai-features{
    color:silver;
    font-size:.95rem;
    margin-bottom:1.5rem;
}
.village-ai-intro .btn-primary{
    background:#4338ca;
    border-color:#4338ca;
    color:#fff;
}
.village-ai-intro .ai-guardian-teaser{
    color:#a0aec0;
    font-size:.9rem;
    margin-top:1.25rem;
}
.village-ai-intro .ai-guardian-teaser a{
    color:#68d391;
    text-decoration:underline;
}
.pricing-calculator-section{
    background:var(--gray-50);
    padding:3rem 1rem;
}

.section-header h2{
    color:var(--gray-900);
    font-size:clamp(1.5rem, 3vw, 2rem);
    font-weight:700;
    margin-bottom:.75rem;
}

.section-header p{
    color:var(--gray-600);
    font-size:var(--font-size-lg);
}

.section-footer{
    margin-top:2rem;
    text-align:center;
}
.learn-about{
    background-color:var(--gray-50);
}

.learn-grid{
    display:grid;
    gap:var(--spacing-lg);
    grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
}

.learn-card{
    background:linear-gradient(160deg, #fff, #f0fdfa);
    border-radius:var(--radius-lg);
    border-top:3px solid var(--village-teal);
    box-shadow:var(--shadow-md);
    padding:1.25rem;
    position:relative;
    transition:all .3s ease;
}
.learn-card:first-child{ background:linear-gradient(160deg, #eff6ff, #dbeafe); border-top-color:#3b82f6; }
.learn-card:nth-child(2){ background:linear-gradient(160deg, #f0fdfa, #ccfbf1); border-top-color:#0f766e; }
.learn-card:nth-child(3){ background:linear-gradient(160deg, #fffbeb, #fef3c7); border-top-color:#d97706; }

.learn-card:hover{
    box-shadow:var(--shadow-lg);
    transform:translateY(-4px);
}
.learn-card:first-child:hover{ border-top-color:#2563eb; }
.learn-card:nth-child(2):hover{ border-top-color:#115e59; }
.learn-card:nth-child(3):hover{ border-top-color:#b45309; }

.learn-icon{
    align-items:center;
    background:linear-gradient(135deg, #e0f2fe, #f0fdfa);
    border-radius:.5rem;
    display:flex;
    font-size:1.25rem;
    height:2.5rem;
    justify-content:center;
    margin-bottom:.75rem;
    width:2.5rem;
}
.learn-card:first-child .learn-icon{ background:linear-gradient(135deg, #dbeafe, #eff6ff); }
.learn-card:nth-child(2) .learn-icon{ background:linear-gradient(135deg, #ccfbf1, #f0fdfa); }
.learn-card:nth-child(3) .learn-icon{ background:linear-gradient(135deg, #fef3c7, #fffbeb); }

.learn-card h3{
    color:var(--gray-900);
    font-size:1rem;
    font-weight:700;
    margin-bottom:.5rem;
}

.learn-teaser{
    color:var(--gray-600);
    font-size:.875rem;
    line-height:1.5;
    margin-bottom:.75rem;
}
.learn-card .btn{
    font-size:.8rem;
    padding:.5rem 1rem;
}
.anti-big-tech{
    background:linear-gradient(135deg, #1e3a5f, #0f172a);
    padding:var(--spacing-lg) var(--spacing-sm);
    text-align:center;
}

.anti-big-tech-text{
    color:#fff;
    font-size:1.1rem;
    font-weight:400;
    letter-spacing:.02em;
    line-height:1.8;
    margin:0 auto;
    max-width:700px;
}

@media (max-width:768px){
    .anti-big-tech-text{
        font-size:1rem;
        line-height:1.7;
    }
}
.feature-highlights{
    background:linear-gradient(180deg, var(--gray-50) 0, #ecfdf5 100%);
    padding:4rem 2rem;
}

.feature-highlights-grid{
    display:grid;
    gap:var(--spacing-lg);
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    margin-left:auto;
    margin-right:auto;
    margin-top:var(--spacing-lg);
    max-width:960px;
}

.feature-highlight-card{
    background:linear-gradient(160deg, #fff, #f0fdfa);
    border:1px solid var(--gray-200);
    border-left:3px solid var(--village-teal-light);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-md);
    padding:1.5rem;
    text-align:left;
    transition:transform .3s ease,box-shadow .3s ease;
}
.feature-highlight-card:first-child{ background:linear-gradient(160deg, #f0fdfa, #ccfbf1); border-left-color:#14b8a6; }
.feature-highlight-card:nth-child(2){ background:linear-gradient(160deg, #eff6ff, #dbeafe); border-left-color:#3b82f6; }
.feature-highlight-card:nth-child(3){ background:linear-gradient(160deg, #eef2ff, #e0e7ff); border-left-color:#6366f1; }
.feature-highlight-card:nth-child(4){ background:linear-gradient(160deg, #f5f3ff, #ede9fe); border-left-color:#7c3aed; }
.feature-highlight-card:nth-child(5){ background:linear-gradient(160deg, #ecfdf5, #d1fae5); border-left-color:#059669; }
.feature-highlight-card:nth-child(6){ background:linear-gradient(160deg, #ecfeff, #cffafe); border-left-color:#0891b2; }

.feature-highlight-card:hover{
    box-shadow:var(--shadow-lg);
    transform:translateY(-4px);
}

.feature-highlight-icon{
    align-items:center;
    background:linear-gradient(135deg, #f0fdfa, #ccfbf1);
    border-radius:.5rem;
    display:flex;
    font-size:1.25rem;
    height:2.5rem;
    justify-content:center;
    margin-bottom:.75rem;
    width:2.5rem;
}

.feature-highlight-card h3{
    color:var(--gray-900);
    font-size:var(--font-size-base);
    font-weight:700;
    margin-bottom:var(--spacing-xs);
}

.feature-highlight-card p{
    color:var(--gray-600);
    font-size:var(--font-size-sm);
    line-height:1.4;
    margin:0;
}

@media (max-width:768px){
    .feature-highlights-grid{
        grid-template-columns:repeat(2, 1fr);
    }
}

@media (max-width:480px){
    .feature-highlights-grid{
        grid-template-columns:1fr;
    }
}
.products{
    background:linear-gradient(180deg, #fff, #f9fafb 50%, #f0fdfa);
}

.product-grid{
    display:grid;
    gap:var(--spacing-lg);
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
}

.product-card{
    background:linear-gradient(160deg, #fff, #f0f9ff);
    border:2px solid var(--gray-200);
    border-radius:var(--radius-lg);
    border-top:4px solid var(--gray-300);
    padding:var(--spacing-xl);
    transition:all .3s ease;
}

.product-card:hover{
    box-shadow:var(--shadow-lg);
    transform:translateY(-4px);
}
.product-card-featured{
    background:linear-gradient(160deg, #f0fdfa, #ccfbf1);
    border-color:var(--village-teal-light);
    border-top:4px solid var(--village-teal);
}
.product-card-featured:hover{
    border-color:var(--village-teal);
    border-top-color:var(--village-teal-dark);
}
.products .product-card:first-child{
    background:linear-gradient(160deg, #fff, #f0fdfa);
    border-top-color:#0f766e;
}
.products .product-card:first-child .product-icon{ background:linear-gradient(135deg, #0f766e, #14b8a6); }
.products .product-card:nth-child(2){
    background:linear-gradient(160deg, #f0fdfa, #ccfbf1);
    border-top-color:#0f766e;
}
.products .product-card:nth-child(2) .product-icon{ background:linear-gradient(135deg, #0f766e, #14b8a6); }
.products .product-card:nth-child(3){
    background:linear-gradient(160deg, #fff, #eef2ff);
    border-top-color:#4338ca;
}
.products .product-card:nth-child(3) .product-icon{ background:linear-gradient(135deg, #4338ca, #6366f1); }

.product-icon{
    align-items:center;
    background:linear-gradient(135deg, #f0fdfa, #ccfbf1);
    border-radius:.75rem;
    display:flex;
    font-size:1.5rem;
    height:3rem;
    justify-content:center;
    margin-bottom:var(--spacing-md);
    width:3rem;
}

.product-card h3{
    color:var(--gray-900);
    font-size:var(--font-size-xl);
    font-weight:700;
    margin-bottom:var(--spacing-sm);
}
.product-badge{
    border-radius:var(--radius-full);
    display:inline-block;
    font-size:var(--font-size-sm);
    font-weight:600;
    margin-bottom:var(--spacing-md);
    padding:.375rem .875rem;
}
.product-badge,.product-badge-teal{
    background:var(--village-teal);
    color:#fff; }
.product-badge-indigo{ background:#4338ca; color:#fff; }
.product-badge-translucent{ background:hsla(0,0%,100%,.2); color:#fff; }
.product-card-membership{
    background:linear-gradient(135deg, #6366f1, #4f46e5);
    border-color:transparent;
    color:#fff;
}
.product-card-governance{
    background:linear-gradient(135deg, #0f766e, #0d9488);
    border-color:transparent;
    color:#fff;
}
.product-card-carpool{
    background:linear-gradient(135deg, #059669, #047857);
    border-color:transparent;
    color:#fff;
}
.product-card-carpool .product-desc,.product-card-carpool .product-features,.product-card-carpool .product-features li,.product-card-carpool h3,.product-card-governance .product-desc,.product-card-governance .product-features,.product-card-governance .product-features li,.product-card-governance h3,.product-card-membership .product-desc,.product-card-membership .product-features,.product-card-membership .product-features li,.product-card-membership h3{ color:#fff; }

.product-card-carpool .product-features li:before,.product-card-governance .product-features li:before,.product-card-membership .product-features li:before{ color:hsla(0,0%,100%,.8); }
.btn-inverted-indigo{ background:#fff; border-color:#fff; color:#6366f1; }
.btn-inverted-teal{ background:#fff; border-color:#fff; color:var(--village-teal); }
.btn-inverted-emerald{ background:#fff; border-color:#fff; color:#059669; }
.founding-rate{ font-size:.8rem; font-weight:600; margin-bottom:.5rem; }
.founding-rate-teal{ color:var(--village-teal); }
.founding-rate-indigo{ color:#4338ca; }
.demo-villages-intro{
    margin:0 auto 1.5rem;
    max-width:640px;
    text-align:center;
}
.demo-villages-intro h3{
    color:var(--gray-900);
    font-family:var(--font-display);
    font-size:1.25rem;
    font-weight:700;
    margin:0 0 .5rem;
}
.demo-villages-intro p{
    color:var(--gray-600);
    font-size:.9375rem;
    line-height:1.5;
    margin:0;
}
.village-type-group{
    margin:0 auto 1.25rem;
    max-width:960px;
}
.village-type-group-label{
    color:var(--gray-400);
    font-family:var(--font-display);
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.06em;
    margin:0 0 .5rem;
    padding-left:.25rem;
    text-transform:uppercase;
}
.village-type-group .village-types-grid{
    margin-bottom:0;
}
.village-type-badge{
    color:var(--village-teal, #0d9488);
    font-size:.625rem;
    font-weight:700;
    grid-column:2;
    letter-spacing:.05em;
    opacity:.8;
    text-transform:uppercase;
}
.village-type-tile-demo{
    border-left-color:var(--village-teal, #0d9488);
}
.village-type-tile-demo:hover{
    background:linear-gradient(160deg, #ecfdf5, #d1fae5);
}
.village-types-grid{
    display:grid;
    gap:.75rem;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    margin:0 auto 2rem;
    max-width:960px;
}
.village-type-tile{
    background:linear-gradient(160deg, #fff, #f0fdfa);
    border:1px solid var(--gray-200);
    border-left:3px solid var(--village-teal-light);
    border-radius:var(--radius-md);
    color:inherit;
    display:grid;
    gap:0 .75rem;
    grid-template-columns:2rem 1fr;
    grid-template-rows:auto auto;
    padding:.75rem 1rem;
    text-decoration:none;
    transition:all .2s ease;
}
.village-type-tile:hover{
    background:linear-gradient(160deg, #f0fdfa, #ccfbf1);
    border-left-color:var(--village-teal);
    box-shadow:var(--shadow-md);
    transform:translateY(-2px);
}
.village-type-icon{
    align-items:center;
    align-self:center;
    background:linear-gradient(135deg, #f0fdfa, #ccfbf1);
    border-radius:.375rem;
    display:flex;
    font-size:1.25rem;
    grid-row:1 /  3;
    height:2rem;
    justify-content:center;
    width:2rem;
}
.village-type-name{
    color:var(--gray-900);
    display:block;
    font-family:var(--font-display);
    font-size:.875rem;
    font-weight:600;
}
.village-type-target{
    color:var(--gray-500);
    display:block;
    font-size:.75rem;
    line-height:1.3;
}
.container-narrow{ max-width:900px; }
.value-proposition-banner .btn{ margin-top:1.5rem; }
.support-ecosystem{ background:#f8fafc; padding:3rem 0; }
.support-ecosystem .section-header{ margin-bottom:2rem; text-align:center; }
.support-ecosystem .section-header p{ color:var(--gray-500); }
.support-cta-group{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; }

.product-description{
    color:var(--gray-600);
    line-height:1.6;
    margin-bottom:var(--spacing-lg);
}

.product-features{
    list-style:none;
    margin-bottom:var(--spacing-lg);
}

.product-features li{
    color:var(--gray-700);
    margin-bottom:var(--spacing-xs);
    padding-left:1.5rem;
    position:relative;
}

.product-features li:before{
    color:var(--village-teal);
    content:"✓";
    font-weight:700;
    left:0;
    position:absolute;
}
.get-in-touch{
    background:linear-gradient(135deg, var(--village-teal-subtle) 0, var(--white) 100%);
}

.get-in-touch-content{
    margin:0 auto;
    max-width:600px;
    padding:var(--spacing-xl) 0;
    text-align:center;
}

.get-in-touch-content h2{
    color:var(--gray-900);
    font-size:var(--font-size-3xl);
    font-weight:700;
    margin-bottom:var(--spacing-md);
}

.get-in-touch-content p{
    color:var(--gray-600);
    font-size:var(--font-size-lg);
    line-height:1.6;
    margin-bottom:var(--spacing-lg);
}

.get-in-touch-content .btn{
    align-items:center;
    display:inline-flex;
    justify-content:center;
    min-height:48px;
}

.contact-grid{
    display:grid;
    gap:var(--spacing-lg);
    grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
}

.contact-card{
    background-color:var(--white);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-sm);
    padding:var(--spacing-xl);
    text-align:center;
}

.contact-icon{
    font-size:var(--font-size-4xl);
    margin-bottom:var(--spacing-md);
}

.contact-card h3{
    color:var(--gray-900);
    font-size:var(--font-size-lg);
    font-weight:700;
    margin-bottom:var(--spacing-sm);
}

.contact-card a{
    color:var(--village-teal);
    font-weight:600;
}

.contact-card a:hover{
    text-decoration:underline;
}
.footer{
    background-color:var(--gray-900);
    color:var(--gray-300);
    padding:var(--spacing-xl) 0;
}

.footer-content{
    flex-wrap:wrap;
    gap:var(--spacing-md);
    justify-content:space-between;
}

.footer-brand,.footer-content{
    align-items:center;
    display:flex;
}

.footer-brand{
    gap:var(--spacing-sm);
}

.footer-logo{
    height:32px;
    width:32px;
}

.footer-text,.powered-by{
    font-size:var(--font-size-sm);
}

.powered-by{
    color:var(--gray-500);
}

.powered-by a{
    color:var(--village-teal-light);
    font-weight:600;
}

.powered-by a:hover{
    text-decoration:underline;
}
@media (max-width:768px){
    .hero{
        padding:3.5rem 0 3rem;
    }

    .section-header h2{
        font-size:var(--font-size-2xl);
    }
    .hero-cta{
        align-items:stretch;
        flex-direction:column;
        gap:var(--spacing-sm);
        margin:0 auto;
        max-width:320px;
    }

    .hero-cta .btn{
        align-items:center;
        display:flex;
        justify-content:center;
        min-height:48px;
        width:100%;
    }
    .product-card{
        padding:var(--spacing-lg);
    }
    .learn-grid{
        grid-template-columns:1fr;
    }

    .learn-card{
        padding:var(--spacing-lg);
    }
    .get-in-touch-content{
        padding:var(--spacing-lg) 0;
    }

    .get-in-touch-content h2{
        font-size:var(--font-size-2xl);
    }
    .contact-grid{
        grid-template-columns:1fr;
    }
}
@media (max-width:480px){
    .hero-brand{
        font-size:var(--font-size-3xl, 2rem);
    }

    .hero-title{
        font-size:var(--font-size-lg);
    }

    .hero-subtitle{
        font-size:var(--font-size-base);
    }
    section{
        padding:var(--spacing-xl) 0;
    }
    .learn-card,.product-card{
        padding:var(--spacing-md);
    }

    .learn-icon{
        font-size:var(--font-size-4xl);
    }
    .village-ai-intro{
        padding:var(--spacing-xl) var(--spacing-md);
    }
}
@media (prefers-reduced-motion:reduce){
    *,:after,:before{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        scroll-behavior:auto !important;
        transition-duration:.01ms !important;
    }
}
@media (prefers-color-scheme:dark){
    :root{
        --white:var(--gray-900);
        --gray-50:var(--gray-800);
        --gray-100:var(--gray-700);
        --gray-900:var(--paper-white);
    }

    body{
        background-color:var(--earth-black);
        color:var(--paper-white);
    }

    .hero{
        background:linear-gradient(135deg, #0a5c56, #0d4a45 50%, #0b3d39);
    }

    .learn-about{
        background-color:rgba(20,184,166,.05);
    }

    .contact-card,.learn-card,.product-card{
        background-color:var(--gray-800);
        border-color:var(--gray-700);
    }
    .contact-card h3,.learn-card h3,.product-card h3{
        color:var(--paper-white);
    }

    .contact-card p,.learn-teaser,.product-card p{
        color:var(--gray-300);
    }

    .footer{
        background-color:var(--earth-black);
    }
}
.modal-overlay{
    align-items:center;
    backdrop-filter:blur(4px);
    background:rgba(0,0,0,.6);
    bottom:0;
    display:none;
    justify-content:center;
    left:0;
    padding:var(--spacing-md);
    position:fixed;
    right:0;
    top:0;
    z-index:1000;
}

.modal-overlay.show{
    display:flex;
}

.modal-content{
    animation:modalSlideIn .3s ease;
    background:var(--white);
    border-radius:var(--radius-lg);
    box-shadow:0 20px 40px rgba(0,0,0,.2);
    max-height:90vh;
    max-width:520px;
    overflow-y:auto;
    padding:var(--spacing-xl);
    position:relative;
    width:100%;
}

@keyframes modalSlideIn{
    0%{
        opacity:0;
        transform:translateY(-20px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.modal-close{
    align-items:center;
    background:none;
    border:none;
    border-radius:var(--radius-sm);
    color:var(--gray-600);
    cursor:pointer;
    display:flex;
    font-size:1.5rem;
    justify-content:center;
    line-height:1;
    min-height:44px;
    min-width:44px;
    padding:0;
    position:absolute;
    right:var(--spacing-sm);
    top:var(--spacing-sm);
    transition:background .2s,color .2s;
}

.modal-close:hover{
    background:var(--gray-100);
    color:var(--gray-900);
}

.modal-logo{
    margin-bottom:var(--spacing-md);
    text-align:center;
}

.modal-logo-img{
    height:auto;
    width:200px;
}

.modal-title{
    color:var(--gray-900);
    font-size:var(--font-size-2xl);
    font-weight:700;
    margin-bottom:var(--spacing-md);
    text-align:center;
}

.modal-intro{
    color:var(--gray-600);
    line-height:1.6;
    text-align:center;
}

.modal-intro,.modal-timeline{
    margin-bottom:var(--spacing-lg);
}

.modal-timeline{
    background:var(--gray-50);
    border-radius:var(--radius-md);
    padding:var(--spacing-md);
}

.modal-timeline h3{
    color:var(--gray-900);
    font-size:var(--font-size-base);
    font-weight:600;
    margin-bottom:var(--spacing-sm);
}

.timeline-list{
    list-style:none;
    margin:0;
    padding:0;
}

.timeline-list li{
    display:flex;
    font-size:var(--font-size-sm);
    gap:var(--spacing-sm);
    margin-bottom:var(--spacing-sm);
}

.timeline-list li:last-child{
    margin-bottom:0;
}

.timeline-date{
    color:var(--village-teal);
    flex-shrink:0;
    font-weight:600;
    min-width:70px;
}

.timeline-item{
    color:var(--gray-700);
}

.modal-cta-text{
    color:var(--gray-600);
    font-size:var(--font-size-sm);
    margin-bottom:var(--spacing-md);
    text-align:center;
}

.modal-cta-btn{
    display:block;
    padding:var(--spacing-sm) var(--spacing-lg);
    text-align:center;
    width:100%;
}

@media (max-width:480px){
    .modal-content{
        padding:var(--spacing-md);
    }

    .modal-logo-img{
        width:160px;
    }

    .modal-title{
        font-size:var(--font-size-xl);
    }

    .timeline-list li{
        flex-direction:column;
        gap:.25rem;
    }

    .timeline-date{
        min-width:auto;
    }
}
.link-teal{ color:var(--village-teal); font-weight:600; text-decoration:none; }
.link-teal:hover{ text-decoration:underline; }
.link-blue{ color:#3b82f6; font-weight:600; text-decoration:none; }
.link-blue:hover{ text-decoration:underline; }
.card-bordered{ background:#fff; border:2px solid var(--gray-200); border-radius:.5rem; padding:2rem; }
.card-bordered-blue{ background:#fff; border:2px solid #3b82f6; border-radius:.5rem; padding:2rem; }
.heading-teal{ color:var(--village-teal); margin-bottom:1rem; }
.heading-blue{ color:#3b82f6; margin-bottom:1rem; }
.list-check{ list-style:none; padding:0; text-align:left; }
.list-check li{ padding:.5rem 0 .5rem 1.5rem; position:relative; }
.list-check li:before{ content:"✓"; font-weight:700; left:0; position:absolute; }
.list-check-teal li:before{ color:var(--village-teal); }
.list-check-blue li:before{ color:#3b82f6; }
.flex-center-wrap{ gap:1rem; }
.flex-center-wrap,.flex-center-wrap-sm{ display:flex; flex-wrap:wrap; justify-content:center; }
.flex-center-wrap-sm{ gap:.75rem; }
.section-alt{ background:var(--gray-50); }
.section-dark{ background:linear-gradient(135deg, #1e1b4b, #312e81); color:#fff; }
.section-teal-dark{ background:linear-gradient(135deg, #0d9488, #14b8a6); color:#fff; }
.box-light{ background:var(--gray-50); border-radius:.5rem; padding:2rem; }
.box-teal-light{ background:#f0fdfa; border-left:4px solid var(--village-teal-light); border-radius:.75rem; padding:2rem; }
.box-info{ background:#eff6ff; border:2px solid #3b82f6; border-radius:.5rem; padding:1.5rem; }
.box-warn{ background:#fffbeb; border:2px solid #f59e0b; border-radius:.5rem; padding:1.5rem; }
.text-center{ text-align:center; }
.text-muted{ color:var(--gray-500); }
.text-sm{ font-size:.875rem; }
.text-xs{ font-size:.75rem; }
.mt-0{ margin-top:0; }
.mt-1{ margin-top:.5rem; }
.mt-2{ margin-top:1rem; }
.mt-3{ margin-top:1.5rem; }
.mt-4{ margin-top:2rem; }
.mb-2{ margin-bottom:1rem; }
.mb-3{ margin-bottom:1.5rem; }
.mb-4{ margin-bottom:2rem; }
@media (hover:none),(max-width:768px){
  footer[role=contentinfo] .footer-cluster a,footer[role=contentinfo] .footer-column a,footer[role=contentinfo] .footer-contact-btn,footer[role=contentinfo] .footer-qr-btn{
    align-items:center !important;
    display:inline-flex !important;
    min-height:44px !important;
    padding:.4rem .5rem !important;
  }
}
@media (max-height:500px) and (orientation:landscape){
  footer[role=contentinfo] .footer-grid{
    display:none !important;
  }
  footer[role=contentinfo] .footer-bottom{
    padding-bottom:.5rem !important;
    padding-top:.5rem !important;
  }
  footer[role=contentinfo] .footer-bottom-left p[data-i18n="footer.teTiriti"],footer[role=contentinfo] .footer-ecosystem{
    display:none !important;
  }
  footer[role=contentinfo] .footer-bottom-right{
    gap:.5rem !important;
  }
}

/*# sourceMappingURL=company-hub-village.min.css.map */