@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Open+Sans:wght@400;500;600;700&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
    --clr-teal:#2d7a7a;
    --clr-teal-dark:#1e5a5a;
    --clr-pink:#e91e63;
    --clr-magenta:#c2185b;
    --clr-orange:#ff6b35;
    --clr-orange-light:#ff8f5c;
    --clr-grey-light:#f4f4f4;
    --clr-grey:#666;
    --clr-grey-dark:#333;
    --clr-footer:#3a3a3a;
    --clr-white:#fff;
    --ff-display:'Oswald',sans-serif;
    --ff-body:'Open Sans',sans-serif;
}

html{scroll-behavior:smooth}
body{font-family:var(--ff-body);font-size:16px;line-height:1.6;color:var(--clr-grey-dark);background:var(--clr-grey-light)}

a{color:var(--clr-teal);text-decoration:none;transition:color .2s}
a:hover{color:var(--clr-teal-dark)}

img{max-width:100%;height:auto;display:block}

.container{max-width:1140px;margin:0 auto;padding:0 20px}

/* Site Header */
.site-header{
    background:linear-gradient(135deg,var(--clr-teal-dark) 0%,var(--clr-teal) 100%);
    position:relative;
    overflow:hidden
}

.header-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 20px;
    max-width:1200px;
    margin:0 auto;
    position:relative;
    z-index:10
}

.site-brand{display:flex;align-items:center;gap:12px}
.site-brand img{height:48px;width:auto}
.brand-text{color:var(--clr-white)}
.brand-title{font-family:var(--ff-display);font-size:1.25rem;font-weight:600;letter-spacing:.5px}
.brand-tagline{font-size:.75rem;opacity:.9}

/* Navigation */
.main-nav ul{
    display:flex;
    list-style:none;
    gap:8px;
    flex-wrap:wrap
}

.main-nav a{
    display:block;
    padding:8px 14px;
    color:var(--clr-white);
    font-size:.875rem;
    font-weight:500;
    border-radius:3px;
    transition:background .2s
}

.main-nav a:hover,
.main-nav a.active{background:rgba(255,255,255,.15);color:var(--clr-white)}

.nav-toggle{
    display:none;
    background:none;
    border:none;
    color:var(--clr-white);
    font-size:1.5rem;
    cursor:pointer;
    padding:8px
}

/* Hero Banner */
.hero-banner{
    background:linear-gradient(135deg,var(--clr-teal-dark) 0%,var(--clr-teal) 50%,#4a9a9a 100%);
    position:relative;
    padding:60px 20px 80px;
    text-align:center;
    color:var(--clr-white);
    overflow:hidden
}

.hero-banner::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="30" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="20" r="1.5" fill="rgba(255,255,255,0.08)"/><circle cx="60" cy="70" r="2.5" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="80" r="1" fill="rgba(255,255,255,0.08)"/><circle cx="90" cy="60" r="1.8" fill="rgba(255,255,255,0.1)"/></svg>');
    opacity:.6;
    pointer-events:none
}

.geometric-shapes{
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    overflow:hidden;
    pointer-events:none
}

.geo-shape{position:absolute;opacity:.8}
.geo-shape.pink{background:var(--clr-pink)}
.geo-shape.orange{background:var(--clr-orange)}
.geo-shape.teal{background:var(--clr-teal-dark)}
.geo-shape.magenta{background:var(--clr-magenta)}

.geo-shape:nth-child(1){width:120px;height:120px;top:-30px;left:-20px;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(15deg)}
.geo-shape:nth-child(2){width:80px;height:80px;top:20px;left:8%;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(-20deg)}
.geo-shape:nth-child(3){width:100px;height:100px;top:-20px;right:5%;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(25deg)}
.geo-shape:nth-child(4){width:60px;height:60px;top:60%;right:-10px;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(-10deg)}
.geo-shape:nth-child(5){width:90px;height:90px;bottom:-20px;left:10%;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(30deg)}
.geo-shape:nth-child(6){width:70px;height:70px;bottom:10%;right:12%;clip-path:polygon(50% 0%,100% 100%,0% 100%);transform:rotate(-25deg)}

.hero-content{position:relative;z-index:5}

.hero-title{
    font-family:var(--ff-display);
    font-size:clamp(2rem,5vw,3.5rem);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:20px;
    text-shadow:2px 2px 4px rgba(0,0,0,.2)
}

.hero-dates{font-size:1.25rem;font-weight:500;margin-bottom:8px}
.hero-venue{font-size:1.1rem;opacity:.9}

.breadcrumb{
    margin-top:15px;
    font-size:.9rem;
    opacity:.85
}
.breadcrumb a{color:var(--clr-white);opacity:.8}
.breadcrumb a:hover{opacity:1;color:var(--clr-white)}
.breadcrumb span{margin:0 8px}

/* Main Content */
.main-content{background:var(--clr-white);padding:50px 20px}
.content-wrapper{max-width:900px;margin:0 auto}

/* Intro Section */
.intro-section{padding:50px 20px;background:var(--clr-white)}
.intro-text{max-width:800px;margin:0 auto;text-align:left}
.intro-text p{margin-bottom:1.25rem;line-height:1.8}
.intro-text strong{color:var(--clr-grey-dark)}

/* Sponsor Section */
.sponsor-block{
    margin:30px 0;
    padding:20px;
    text-align:center
}
.sponsor-label{font-weight:600;margin-bottom:15px;color:var(--clr-grey-dark)}
.sponsor-logo{max-width:180px;margin:0 auto}

/* Associations Logo */
.associations-block{text-align:center;margin:40px 0}
.associations-logo{max-width:280px;margin:0 auto}

/* Stats Section */
.stats-section{
    background:linear-gradient(rgba(45,122,122,.92),rgba(45,122,122,.92)),
               url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><rect fill="%232d7a7a" width="200" height="200"/></svg>');
    background-size:cover;
    background-position:center;
    padding:60px 20px;
    color:var(--clr-white)
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    max-width:800px;
    margin:0 auto;
    text-align:center
}

.stat-item{padding:20px}

.stat-icon{
    font-size:2.5rem;
    margin-bottom:15px;
    opacity:.9
}

.stat-number{
    font-family:var(--ff-display);
    font-size:clamp(3rem,8vw,5rem);
    font-weight:700;
    line-height:1
}

.stat-label{
    font-family:var(--ff-display);
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-top:8px;
    opacity:.9
}

/* Testimonials */
.testimonials-section{padding:60px 20px;background:var(--clr-white)}

.section-heading{
    font-family:var(--ff-display);
    font-size:1.75rem;
    text-transform:uppercase;
    letter-spacing:1px;
    text-align:center;
    margin-bottom:40px;
    color:var(--clr-grey-dark)
}

.testimonials-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:25px;
    max-width:900px;
    margin:0 auto
}

.testimonial-card{
    background:var(--clr-grey-light);
    padding:25px;
    border-radius:4px;
    border-left:3px solid var(--clr-teal)
}

.testimonial-card p{
    font-style:italic;
    color:var(--clr-grey);
    line-height:1.7
}

/* Page Banner */
.page-banner{
    background:linear-gradient(135deg,var(--clr-teal-dark) 0%,var(--clr-teal) 100%);
    padding:50px 20px;
    text-align:center;
    color:var(--clr-white);
    position:relative;
    overflow:hidden
}

.page-banner .geometric-shapes{opacity:.5}

.page-title{
    font-family:var(--ff-display);
    font-size:clamp(1.75rem,4vw,2.5rem);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    position:relative;
    z-index:5
}

/* Content Sections */
.content-section{margin-bottom:35px}
.content-section h2{
    font-family:var(--ff-display);
    font-size:1.5rem;
    color:var(--clr-grey-dark);
    margin-bottom:15px;
    text-transform:uppercase;
    letter-spacing:.5px
}

.content-section h3{
    font-size:1.1rem;
    font-weight:600;
    color:var(--clr-grey-dark);
    margin:20px 0 10px
}

.content-section p{margin-bottom:1rem;line-height:1.7}
.content-section ul{margin:15px 0 15px 25px}
.content-section li{margin-bottom:8px}

.highlight-box{
    background:var(--clr-grey-light);
    padding:20px;
    border-radius:4px;
    margin:20px 0
}

.cta-button{
    display:inline-block;
    background:var(--clr-teal);
    color:var(--clr-white);
    padding:12px 30px;
    border-radius:4px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:1px;
    transition:background .2s
}
.cta-button:hover{background:var(--clr-teal-dark);color:var(--clr-white)}

.divider{
    border:none;
    border-top:1px solid #ddd;
    margin:30px 0
}

/* Terms Section */
.terms-block{
    margin-top:30px;
    padding-top:20px;
    border-top:1px solid #ddd
}
.terms-block h3{margin-bottom:15px}
.terms-block p{font-size:.95rem;margin-bottom:8px}

/* Blockquote */
blockquote{
    background:var(--clr-grey-light);
    border-left:4px solid var(--clr-pink);
    padding:20px 25px;
    margin:25px 0;
    font-style:italic
}

/* Speaker Cards */
.speaker-entry{margin-bottom:40px;padding-bottom:30px;border-bottom:1px solid #eee}
.speaker-entry:last-child{border-bottom:none}

.speaker-name{
    font-family:var(--ff-display);
    font-size:1.4rem;
    color:var(--clr-grey-dark);
    margin-bottom:5px;
    text-transform:uppercase
}

.speaker-role{
    font-weight:600;
    color:var(--clr-teal);
    font-size:.95rem;
    text-transform:uppercase;
    letter-spacing:.5px;
    margin-bottom:10px
}

.speaker-talk{
    font-weight:600;
    margin:15px 0 10px;
    color:var(--clr-grey-dark)
}

/* Venue Cards */
.venue-card{
    background:var(--clr-grey-light);
    padding:25px;
    border-radius:4px;
    margin-bottom:25px
}

.venue-card h3{
    color:var(--clr-teal);
    border-bottom:2px solid var(--clr-teal);
    padding-bottom:8px;
    margin-bottom:15px
}

.venue-address{
    font-style:normal;
    line-height:1.8;
    margin:15px 0
}

/* Exhibitor Grid */
.exhibitors-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:25px;
    margin-top:30px
}

.exhibitor-card{
    background:var(--clr-white);
    border:1px solid #e0e0e0;
    padding:25px;
    text-align:center;
    border-radius:4px;
    transition:box-shadow .2s
}

.exhibitor-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}
.exhibitor-card h4{margin-top:15px;color:var(--clr-grey-dark)}

/* News/Blog Listing */
.intro-paragraph{
    font-size:1.1rem;
    color:var(--clr-grey);
    margin-bottom:40px
}

.news-listing{
    display:flex;
    flex-direction:column;
    gap:35px
}

.news-item{
    border-bottom:1px solid #e0e0e0;
    padding-bottom:35px
}

.news-item:last-child{border-bottom:none}

.news-meta{
    font-size:.85rem;
    color:var(--clr-grey);
    margin-bottom:10px
}

.news-meta time{font-weight:500}

.news-title{
    font-family:var(--ff-display);
    font-size:1.5rem;
    color:var(--clr-grey-dark);
    margin-bottom:12px;
    text-transform:uppercase;
    letter-spacing:.5px
}

.news-title a{color:var(--clr-grey-dark)}
.news-title a:hover{color:var(--clr-teal)}

.news-excerpt{
    line-height:1.8;
    margin-bottom:15px
}

.news-excerpt p{margin-bottom:1rem}

.read-more{
    font-weight:600;
    color:var(--clr-teal);
    display:inline-flex;
    align-items:center;
    gap:5px
}

.read-more:hover{color:var(--clr-teal-dark)}

/* Single Post */
.post-header{margin-bottom:30px}

.post-meta{
    font-size:.9rem;
    color:var(--clr-grey);
    margin-bottom:20px
}

.post-content{line-height:1.85}
.post-content p{margin-bottom:1.25rem}
.post-content h2{
    font-family:var(--ff-display);
    font-size:1.4rem;
    margin:35px 0 15px;
    text-transform:uppercase;
    letter-spacing:.5px
}
.post-content h3{
    font-size:1.15rem;
    font-weight:600;
    margin:25px 0 12px
}
.post-content ul,
.post-content ol{
    margin:15px 0 20px 25px
}
.post-content li{margin-bottom:8px}

/* Blogroll on Homepage */
.blogroll-section{
    padding:60px 20px;
    background:var(--clr-white)
}

.blogroll{
    max-width:900px;
    margin:0 auto
}

.blogroll-item{
    border-left:3px solid var(--clr-teal);
    padding:0 0 30px 25px;
    margin-bottom:35px;
    position:relative
}

.blogroll-item::before{
    content:'';
    position:absolute;
    left:-7px;
    top:0;
    width:11px;
    height:11px;
    background:var(--clr-teal);
    border-radius:50%
}

.blogroll-item:last-child{
    border-left-color:transparent;
    margin-bottom:0
}

.blogroll-item time{
    display:block;
    font-size:.85rem;
    color:var(--clr-grey);
    font-weight:500;
    margin-bottom:8px
}

.blogroll-item h3{
    font-family:var(--ff-display);
    font-size:1.35rem;
    margin-bottom:12px;
    text-transform:uppercase;
    letter-spacing:.5px
}

.blogroll-item h3 a{color:var(--clr-grey-dark)}
.blogroll-item h3 a:hover{color:var(--clr-teal)}

.blogroll-item p{
    line-height:1.75;
    margin-bottom:10px;
    color:var(--clr-grey-dark)
}

.blogroll-item .read-more{
    font-weight:600;
    color:var(--clr-teal);
    font-size:.95rem
}

.blogroll-item .read-more:hover{color:var(--clr-teal-dark)}

/* Footer */
.site-footer{
    background:var(--clr-footer);
    color:var(--clr-white);
    padding:40px 20px 25px
}

.footer-inner{max-width:1000px;margin:0 auto}

.footer-logo{max-width:80px;margin-bottom:20px}

.footer-tagline{
    font-size:.95rem;
    line-height:1.7;
    margin-bottom:25px;
    opacity:.9
}

.footer-bottom{
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.15);
    font-size:.85rem;
    opacity:.8
}

.footer-bottom a{color:var(--clr-white);opacity:.8}
.footer-bottom a:hover{opacity:1;color:var(--clr-white)}

/* Responsive */
@media(max-width:768px){
    .header-inner{flex-wrap:wrap}
    
    .nav-toggle{display:block}
    
    .main-nav{
        display:none;
        width:100%;
        padding-top:15px
    }
    
    .main-nav.open{display:block}
    
    .main-nav ul{
        flex-direction:column;
        gap:5px
    }
    
    .main-nav a{padding:10px 15px}
    
    .stats-grid{grid-template-columns:1fr;gap:20px}
    
    .testimonials-grid{grid-template-columns:1fr}
    
    .geo-shape{opacity:.5}
}

@media(max-width:480px){
    .site-brand{flex-direction:column;text-align:center;gap:8px}
    .brand-title{font-size:1.1rem}
    
    .hero-title{font-size:1.75rem}
    .hero-dates{font-size:1rem}
}
