@font-face {
font-family:'Pontano Sans';
font-style:normal;
font-weight:300;
font-display:swap;
src:url('../media/fonts/pontano-sans-300.ttf') format('truetype');
}

@font-face {
font-family:'Pontano Sans';
font-style:normal;
font-weight:400;
font-display:swap;
src:url('../media/fonts/pontano-sans-400.ttf') format('truetype');
}

@font-face {
font-family:'Pontano Sans';
font-style:normal;
font-weight:500;
font-display:swap;
src:url('../media/fonts/pontano-sans-500.ttf') format('truetype');
}

@font-face {
font-family:'Pontano Sans';
font-style:normal;
font-weight:600;
font-display:swap;
src:url('../media/fonts/pontano-sans-600.ttf') format('truetype');
}

@font-face {
font-family:'Pontano Sans';
font-style:normal;
font-weight:700;
font-display:swap;
src:url('../media/fonts/pontano-sans-700.ttf') format('truetype');
}

:root{
--zfl-green-deep:#1B4332;
--zfl-green-mid:#2D6A4F;
--zfl-green-accent:#52B788;
--zfl-amber:#E07C3A;
--zfl-amber-light:#F5B97E;
--zfl-cream:#F8F4ED;
--zfl-sand:#EDE0CA;
--zfl-bark:#5C3D1E;
--zfl-sky:#C8E8F5;
--zfl-white:#FFFFFF;
--zfl-ink:#161A16;
--zfl-muted:#5A5E5A;
--zfl-border:#D6CEB8;
--zfl-font-base:'Pontano Sans',sans-serif;
--zfl-radius-sm:6px;
--zfl-radius-md:12px;
--zfl-radius-lg:20px;
--zfl-space-xs:clamp(0.5rem,1vw,0.75rem);
--zfl-space-sm:clamp(0.75rem,1.5vw,1.25rem);
--zfl-space-md:clamp(1.25rem,3vw,2rem);
--zfl-space-lg:clamp(2rem,5vw,4rem);
--zfl-space-xl:clamp(3rem,7vw,6rem);
--zfl-text-sm:clamp(0.8125rem,1.2vw,0.9375rem);
--zfl-text-base:clamp(0.9375rem,1.5vw,1.0625rem);
--zfl-text-md:clamp(1.125rem,2vw,1.375rem);
--zfl-text-lg:clamp(1.375rem,2.5vw,1.875rem);
--zfl-text-xl:clamp(1.75rem,4vw,2.75rem);
--zfl-text-2xl:clamp(2.25rem,5.5vw,4rem);
}

body{
font-family:var(--zfl-font-base);
background:var(--zfl-cream);
color:var(--zfl-ink);
font-size:var(--zfl-text-base);
line-height:1.6;
overflow-x:hidden;
}

.zfl-skip-link{
position:absolute;
top:-100px;
left:var(--zfl-space-sm);
background:var(--zfl-green-mid);
color:var(--zfl-white);
padding:var(--zfl-space-xs) var(--zfl-space-sm);
border-radius:var(--zfl-radius-sm);
font-weight:600;
z-index:10000;
}
.zfl-skip-link:focus{
top:var(--zfl-space-sm);
}

.zfl-header{
position:sticky;
top:0;
background:var(--zfl-white);
border-bottom:2px solid var(--zfl-sand);
z-index:1000;
}

.zfl-header-wrap{
max-width:1400px;
margin:0 auto;
padding:var(--zfl-space-sm) var(--zfl-space-md);
display:flex;
align-items:center;
justify-content:space-between;
gap:var(--zfl-space-md);
}

.zfl-logo{
display:flex;
align-items:center;
gap:var(--zfl-space-xs);
font-size:var(--zfl-text-lg);
font-weight:700;
color:var(--zfl-green-deep);
}

.zfl-logo-mark{
width:36px;
height:36px;
border-radius:var(--zfl-radius-sm);
display:block;
object-fit:contain;
}

.zfl-nav-desktop{
display:none;
}

.zfl-nav-list{
display:flex;
gap:var(--zfl-space-md);
align-items:center;
}

.zfl-nav-list a{
font-size:var(--zfl-text-base);
font-weight:500;
color:var(--zfl-muted);
transition:color 0.2s;
}

.zfl-nav-list a:hover,
.zfl-nav-list a[aria-current="page"]{
color:var(--zfl-green-mid);
}

.zfl-nav-toggle{
width:42px;
height:42px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:5px;
background:var(--zfl-green-deep);
border-radius:var(--zfl-radius-sm);
}

.zfl-nav-toggle span{
width:22px;
height:2px;
background:var(--zfl-white);
transition:transform 0.3s,opacity 0.3s;
}

.zfl-nav-toggle[aria-expanded="true"] span:nth-child(1){
transform:translateY(7px) rotate(45deg);
}
.zfl-nav-toggle[aria-expanded="true"] span:nth-child(2){
opacity:0;
}
.zfl-nav-toggle[aria-expanded="true"] span:nth-child(3){
transform:translateY(-7px) rotate(-45deg);
}

.zfl-nav-mobile{
position:fixed;
top:76px;
left:0;
right:0;
background:var(--zfl-white);
border-bottom:2px solid var(--zfl-sand);
max-height:0;
overflow:hidden;
transition:max-height 0.4s ease-in-out,padding 0.4s ease-in-out;
}

.zfl-nav-mobile.zfl-nav-open{
max-height:100vh;
padding:var(--zfl-space-md) 0;
}

.zfl-nav-mobile-list{
max-width:1400px;
margin:0 auto;
padding:0 var(--zfl-space-md);
display:flex;
flex-direction:column;
gap:var(--zfl-space-xs);
}

.zfl-nav-mobile-list a{
padding:var(--zfl-space-sm);
display:block;
font-size:var(--zfl-text-md);
font-weight:500;
color:var(--zfl-muted);
border-radius:var(--zfl-radius-sm);
transition:background 0.2s,color 0.2s;
}

.zfl-nav-mobile-list a:hover,
.zfl-nav-mobile-list a[aria-current="page"]{
background:var(--zfl-green-accent);
color:var(--zfl-white);
}

.zfl-hero{
position:relative;
background:linear-gradient(135deg,var(--zfl-green-deep) 0%,var(--zfl-green-mid) 100%);
color:var(--zfl-white);
overflow:hidden;
}

.zfl-hero-wrap{
max-width:1400px;
margin:0 auto;
padding:var(--zfl-space-xl) var(--zfl-space-md);
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-lg);
align-items:center;
position:relative;
z-index:2;
}

.zfl-hero-content h1{
font-size:var(--zfl-text-2xl);
font-weight:700;
line-height:1.1;
margin-bottom:var(--zfl-space-sm);
}

.zfl-hero-content p{
font-size:var(--zfl-text-md);
margin-bottom:var(--zfl-space-md);
opacity:0.95;
max-width:600px;
}

.zfl-hero-actions{
display:flex;
flex-wrap:wrap;
gap:var(--zfl-space-sm);
}

.zfl-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:var(--zfl-space-sm) var(--zfl-space-md);
font-size:var(--zfl-text-base);
font-weight:600;
border-radius:var(--zfl-radius-md);
transition:transform 0.2s,box-shadow 0.2s,background 0.2s;
}

.zfl-btn:hover{
transform:translateY(-2px);
}

.zfl-btn-primary{
background:var(--zfl-amber);
color:var(--zfl-white);
}

.zfl-btn-primary:hover{
background:#D16C2A;
box-shadow:0 4px 12px rgba(224,124,58,0.4);
}

.zfl-btn-secondary{
background:var(--zfl-white);
color:var(--zfl-green-deep);
}

.zfl-btn-secondary:hover{
background:var(--zfl-sand);
box-shadow:0 4px 12px rgba(0,0,0,0.1);
}

.zfl-btn-outline{
background:transparent;
border:2px solid var(--zfl-white);
color:var(--zfl-white);
}

.zfl-btn-outline:hover{
background:rgba(255,255,255,0.1);
}

.zfl-hero-visual{
position:relative;
}

.zfl-hero-img{
width:100%;
height:auto;
border-radius:var(--zfl-radius-lg);
box-shadow:0 20px 50px rgba(0,0,0,0.3);
}

.zfl-section{
padding:var(--zfl-space-xl) var(--zfl-space-md);
}

.zfl-section-wrap{
max-width:1400px;
margin:0 auto;
}

.zfl-section-header{
text-align:center;
margin-bottom:var(--zfl-space-lg);
max-width:800px;
margin-left:auto;
margin-right:auto;
}

.zfl-section-header h2{
font-size:var(--zfl-text-xl);
font-weight:700;
color:var(--zfl-green-deep);
margin-bottom:var(--zfl-space-xs);
line-height:1.2;
}

.zfl-section-header p{
font-size:var(--zfl-text-base);
color:var(--zfl-muted);
}

.zfl-section-alt{
background:var(--zfl-white);
}

.zfl-section-dark{
background:var(--zfl-green-deep);
color:var(--zfl-white);
}

.zfl-section-dark .zfl-section-header h2{
color:var(--zfl-white);
}

.zfl-section-dark .zfl-section-header p{
color:var(--zfl-sky);
}

.zfl-stat-row{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:var(--zfl-space-md);
margin-top:var(--zfl-space-lg);
}

.zfl-stat-card{
text-align:center;
padding:var(--zfl-space-md);
background:rgba(255,255,255,0.05);
border-radius:var(--zfl-radius-md);
border:1px solid rgba(255,255,255,0.1);
}

.zfl-stat-num{
font-size:var(--zfl-text-xl);
font-weight:700;
color:var(--zfl-amber-light);
display:block;
margin-bottom:var(--zfl-space-xs);
}

.zfl-stat-label{
font-size:var(--zfl-text-sm);
opacity:0.9;
}

.zfl-grid-4{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-md);
}

.zfl-grid-3{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-md);
}

.zfl-grid-2{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-md);
}

.zfl-card{
background:var(--zfl-white);
border-radius:var(--zfl-radius-md);
overflow:hidden;
transition:transform 0.3s,box-shadow 0.3s;
border:1px solid var(--zfl-border);
}

.zfl-card:hover{
transform:translateY(-4px);
box-shadow:0 8px 24px rgba(0,0,0,0.08);
}

.zfl-card-img{
width:100%;
height:220px;
object-fit:cover;
}

.zfl-card-body{
padding:var(--zfl-space-md);
}

.zfl-card-title{
font-size:var(--zfl-text-md);
font-weight:700;
color:var(--zfl-green-deep);
margin-bottom:var(--zfl-space-xs);
}

.zfl-card-text{
font-size:var(--zfl-text-base);
color:var(--zfl-muted);
line-height:1.6;
}

.zfl-card-link{
display:inline-flex;
align-items:center;
gap:0.5rem;
margin-top:var(--zfl-space-sm);
color:var(--zfl-green-mid);
font-weight:600;
font-size:var(--zfl-text-sm);
}

.zfl-card-link:hover{
color:var(--zfl-amber);
}

.zfl-split{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-lg);
align-items:center;
}

.zfl-split-img{
width:100%;
height:auto;
border-radius:var(--zfl-radius-lg);
}

.zfl-split-content h3{
font-size:var(--zfl-text-lg);
font-weight:700;
color:var(--zfl-green-deep);
margin-bottom:var(--zfl-space-sm);
}

.zfl-split-content p{
font-size:var(--zfl-text-base);
color:var(--zfl-muted);
margin-bottom:var(--zfl-space-sm);
}

.zfl-split-content ul{
list-style:disc;
padding-left:var(--zfl-space-md);
margin-top:var(--zfl-space-sm);
}

.zfl-split-content li{
margin-bottom:var(--zfl-space-xs);
color:var(--zfl-muted);
}

.zfl-form{
max-width:700px;
margin:0 auto;
background:var(--zfl-white);
padding:var(--zfl-space-lg);
border-radius:var(--zfl-radius-lg);
box-shadow:0 4px 16px rgba(0,0,0,0.06);
}

.zfl-form-row{
margin-bottom:var(--zfl-space-md);
}

.zfl-form-label{
display:block;
font-weight:600;
margin-bottom:var(--zfl-space-xs);
color:var(--zfl-green-deep);
font-size:var(--zfl-text-base);
}

.zfl-form-input,
.zfl-form-textarea{
width:100%;
padding:var(--zfl-space-sm);
border:2px solid var(--zfl-border);
border-radius:var(--zfl-radius-sm);
font-size:var(--zfl-text-base);
transition:border-color 0.2s;
background:var(--zfl-cream);
}

.zfl-form-input:focus,
.zfl-form-textarea:focus{
outline:none;
border-color:var(--zfl-green-mid);
background:var(--zfl-white);
}

.zfl-form-textarea{
resize:vertical;
min-height:120px;
}

.zfl-form-error{
color:#C62828;
font-size:var(--zfl-text-sm);
margin-top:var(--zfl-space-xs);
display:none;
}

.zfl-form-row.zfl-error .zfl-form-error{
display:block;
}

.zfl-form-row.zfl-error .zfl-form-input,
.zfl-form-row.zfl-error .zfl-form-textarea{
border-color:#C62828;
}

.zfl-form-actions{
display:flex;
justify-content:center;
margin-top:var(--zfl-space-lg);
}

.zfl-footer{
background:var(--zfl-bark);
color:var(--zfl-sand);
padding:var(--zfl-space-xl) var(--zfl-space-md) var(--zfl-space-md);
}

.zfl-footer-wrap{
max-width:1400px;
margin:0 auto;
}

.zfl-footer-main{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-lg);
margin-bottom:var(--zfl-space-lg);
}

.zfl-footer-brand h3{
font-size:var(--zfl-text-lg);
color:var(--zfl-white);
margin-bottom:var(--zfl-space-sm);
}

.zfl-footer-brand-title{
display:flex;
align-items:center;
gap:var(--zfl-space-xs);
}

.zfl-footer-logo{
width:30px;
height:30px;
display:block;
object-fit:contain;
}

.zfl-footer-brand p{
font-size:var(--zfl-text-base);
line-height:1.6;
margin-bottom:var(--zfl-space-sm);
}

.zfl-footer-links{
display:flex;
flex-direction:column;
gap:var(--zfl-space-lg);
}

.zfl-footer-col h4{
font-size:var(--zfl-text-base);
color:var(--zfl-white);
margin-bottom:var(--zfl-space-sm);
font-weight:700;
}

.zfl-footer-col ul{
display:flex;
flex-direction:column;
gap:var(--zfl-space-xs);
}

.zfl-footer-col a{
font-size:var(--zfl-text-sm);
transition:color 0.2s;
}

.zfl-footer-col a:hover{
color:var(--zfl-white);
}

.zfl-footer-bottom{
padding-top:var(--zfl-space-md);
border-top:1px solid rgba(255,255,255,0.1);
display:flex;
flex-direction:column;
gap:var(--zfl-space-sm);
align-items:center;
text-align:center;
font-size:var(--zfl-text-sm);
}

.zfl-footer-legal{
display:flex;
flex-wrap:wrap;
gap:var(--zfl-space-sm);
justify-content:center;
}

.zfl-footer-legal a:hover{
color:var(--zfl-white);
}

.zfl-cookie-banner{
position:fixed;
bottom:0;
left:0;
right:0;
background:var(--zfl-green-deep);
color:var(--zfl-white);
padding:var(--zfl-space-md);
box-shadow:0 -4px 16px rgba(0,0,0,0.2);
z-index:9999;
display:none;
}

.zfl-cookie-banner.zfl-cookie-show{
display:block;
}

.zfl-cookie-wrap{
max-width:1400px;
margin:0 auto;
display:flex;
flex-direction:column;
gap:var(--zfl-space-sm);
align-items:center;
text-align:center;
}

.zfl-cookie-text{
font-size:var(--zfl-text-base);
line-height:1.5;
}

.zfl-cookie-actions{
display:flex;
gap:var(--zfl-space-sm);
flex-wrap:wrap;
justify-content:center;
}

.zfl-cookie-actions button{
padding:var(--zfl-space-xs) var(--zfl-space-md);
border-radius:var(--zfl-radius-sm);
font-size:var(--zfl-text-sm);
font-weight:600;
transition:background 0.2s;
}

.zfl-cookie-accept{
background:var(--zfl-amber);
color:var(--zfl-white);
}

.zfl-cookie-accept:hover{
background:#D16C2A;
}

.zfl-cookie-necessary{
background:transparent;
border:2px solid var(--zfl-white);
color:var(--zfl-white);
}

.zfl-cookie-necessary:hover{
background:rgba(255,255,255,0.1);
}

.zfl-page-hero{
background:var(--zfl-green-mid);
color:var(--zfl-white);
padding:var(--zfl-space-xl) var(--zfl-space-md);
text-align:center;
}

.zfl-page-hero h1{
font-size:var(--zfl-text-2xl);
font-weight:700;
margin-bottom:var(--zfl-space-sm);
}

.zfl-page-hero p{
font-size:var(--zfl-text-md);
max-width:700px;
margin:0 auto;
opacity:0.95;
}

.zfl-tabs{
display:flex;
gap:var(--zfl-space-xs);
margin-bottom:var(--zfl-space-lg);
flex-wrap:wrap;
}

.zfl-tab-btn{
padding:var(--zfl-space-sm) var(--zfl-space-md);
background:var(--zfl-white);
border:2px solid var(--zfl-border);
border-radius:var(--zfl-radius-sm);
font-weight:600;
transition:all 0.2s;
color:var(--zfl-muted);
}

.zfl-tab-btn:hover,
.zfl-tab-btn.zfl-active{
background:var(--zfl-green-mid);
color:var(--zfl-white);
border-color:var(--zfl-green-mid);
}

.zfl-habitat-detail{
background:var(--zfl-white);
border-radius:var(--zfl-radius-lg);
padding:var(--zfl-space-lg);
margin-bottom:var(--zfl-space-lg);
border:1px solid var(--zfl-border);
}

.zfl-habitat-detail h3{
font-size:var(--zfl-text-lg);
color:var(--zfl-green-deep);
margin-bottom:var(--zfl-space-sm);
font-weight:700;
}

.zfl-habitat-detail p{
color:var(--zfl-muted);
margin-bottom:var(--zfl-space-sm);
line-height:1.6;
}

.zfl-habitat-grid{
display:grid;
grid-template-columns:1fr;
gap:var(--zfl-space-md);
margin-top:var(--zfl-space-md);
}

.zfl-animal-tag{
display:inline-flex;
padding:0.375rem 0.75rem;
background:var(--zfl-sky);
color:var(--zfl-green-deep);
border-radius:var(--zfl-radius-sm);
font-size:var(--zfl-text-sm);
font-weight:600;
margin-right:var(--zfl-space-xs);
margin-bottom:var(--zfl-space-xs);
}

.zfl-timeline{
position:relative;
padding-left:var(--zfl-space-lg);
}

.zfl-timeline::before{
content:'';
position:absolute;
left:8px;
top:0;
bottom:0;
width:2px;
background:var(--zfl-green-accent);
}

.zfl-timeline-item{
position:relative;
margin-bottom:var(--zfl-space-lg);
}

.zfl-timeline-item::before{
content:'';
position:absolute;
left:-29px;
top:6px;
width:14px;
height:14px;
border-radius:50%;
background:var(--zfl-amber);
border:3px solid var(--zfl-cream);
}

.zfl-timeline-item h4{
font-size:var(--zfl-text-md);
color:var(--zfl-green-deep);
font-weight:700;
margin-bottom:var(--zfl-space-xs);
}

.zfl-timeline-item p{
color:var(--zfl-muted);
line-height:1.6;
}

.zfl-info-banner{
background:var(--zfl-sky);
padding:var(--zfl-space-md);
border-radius:var(--zfl-radius-md);
border-left:4px solid var(--zfl-green-mid);
margin:var(--zfl-space-md) 0;
}

.zfl-info-banner p{
color:var(--zfl-green-deep);
font-weight:500;
}

.zfl-success-wrap{
min-height:60vh;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
padding:var(--zfl-space-xl) var(--zfl-space-md);
}

.zfl-success-content{
max-width:600px;
}

.zfl-success-icon{
width:80px;
height:80px;
background:var(--zfl-green-accent);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
margin:0 auto var(--zfl-space-md);
font-size:3rem;
color:var(--zfl-white);
}

.zfl-success-content h1{
font-size:var(--zfl-text-xl);
color:var(--zfl-green-deep);
margin-bottom:var(--zfl-space-sm);
}

.zfl-success-content p{
font-size:var(--zfl-text-md);
color:var(--zfl-muted);
margin-bottom:var(--zfl-space-lg);
}

@media(min-width:768px){
.zfl-nav-desktop{
display:block;
}
.zfl-nav-toggle{
display:none;
}
.zfl-hero-wrap{
grid-template-columns:1fr 1fr;
}
.zfl-grid-2{
grid-template-columns:repeat(2,1fr);
}
.zfl-grid-3{
grid-template-columns:repeat(3,1fr);
}
.zfl-split{
grid-template-columns:1fr 1fr;
}
.zfl-footer-main{
grid-template-columns:2fr 3fr;
}
.zfl-footer-links{
flex-direction:row;
justify-content:space-between;
}
.zfl-cookie-wrap{
flex-direction:row;
justify-content:space-between;
text-align:left;
}
.zfl-cookie-actions{
flex-shrink:0;
}
.zfl-habitat-grid{
grid-template-columns:repeat(2,1fr);
}
}

@media(min-width:1024px){
.zfl-grid-4{
grid-template-columns:repeat(4,1fr);
}
.zfl-footer-bottom{
flex-direction:row;
justify-content:space-between;
text-align:left;
}
.zfl-habitat-grid{
grid-template-columns:repeat(3,1fr);
}
}
