/* vietnamese */
@font-face {
    font-family: 'Anton';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/anton/v27/1Ptgg87LROyAm3K8-C8QSw.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
    font-family: 'Anton';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/anton/v27/1Ptgg87LROyAm3K9-C8QSw.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

.emphasis,.highlight{color:var(--primary);font-weight:700}

.logo{transition:color .2s ease}
.logo:hover,.logo:focus-visible{color:var(--primary)}

.page-header .intro{position:relative;z-index:3;max-width:800px;margin:0 auto .5rem;font-size:1.25rem;color:var(--text);line-height:1.7}

.btn{transition:all .2s ease}
.btn-primary:hover{background:var(--primary-dark)}
.btn-secondary:hover{
    background:var(--bg-alt);
    color:#d32f2f;
}

.page-header .intro,
.intro-text p,
.content p {
    font-size: 1.25rem;
    line-height: 1.7;
    color: var(--text);
}

.page-header .intro {
    max-width: 800px;
    margin: 0 auto 0.5rem;
    text-align: center;
}

.intro-text p {
    max-width: 800px;
    margin: 0 auto 2rem;
    text-align: center;
}

.content p {
    text-align: left;
    margin-bottom: 1rem;
}

.faq-section{margin-bottom:5rem}
.section-title{background:var(--primary);color:#fff;padding:1.5rem;margin-bottom:2rem;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.12);font-family:'Anton',sans-serif;font-size:clamp(2rem,5vw,2.8rem)}
.faq-item{background:#fff;border-left:5px solid var(--primary);padding:2rem;margin-bottom:2rem;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:transform .2s ease,box-shadow .2s ease}
.faq-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.faq-question{color:var(--primary);font-family:'Anton',sans-serif;font-size:1.5rem;font-weight:700;margin:0 0 1rem 0;line-height:1.3}
.faq-answer p{margin-bottom:1rem;font-size:1.125rem;line-height:1.7}
.faq-answer p:last-child{margin-bottom:0}
.faq-answer a{
    color:#d32f2f;
    font-weight:600;
    text-decoration:underline
}
.faq-answer a:hover,
.faq-answer a:focus-visible{
    color:#b71c1c;
}

.week-section{margin-bottom:4rem}
.week-header{background:var(--primary);color:#fff;padding:1.5rem;margin-bottom:2rem;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.week-header h2{font-family:'Anton',sans-serif;font-size:clamp(2rem,5vw,2.8rem);margin:0}
.meeting{background:#fff;border-left:5px solid var(--primary);padding:2rem;margin-bottom:2rem;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:transform .2s ease,box-shadow .2s ease}
.meeting:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.meeting-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.meeting-title{font-family:'Anton',sans-serif;font-size:1.5rem;font-weight:700;color:var(--primary);margin:0}
.meeting-time{
    background:var(--bg-alt);
    padding:.5rem 1rem;
    border-radius:4px;
    font-weight:600;
    color:#2a4e4e;
    white-space:nowrap
}
.tag{display:inline-block;background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:3px;font-size:.875rem;font-weight:600;margin-right:.5rem}
.meeting-purpose{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bg-alt)}
.meeting-purpose h4{color:var(--primary);margin-bottom:.5rem}
.meeting-purpose ul{margin-left:1.5rem}
.meeting-purpose li{margin-bottom:.5rem}

.signup-sections{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2.5rem auto;max-width:1200px;padding:0 2rem}
.signup-column{display:flex}
.cta-box{background:var(--bg-alt);padding:2.5rem 2rem;text-align:center;border-radius:10px;flex:1;box-shadow:0 4px 10px rgba(0,0,0,.08)}
.cta-box h2{font-size:clamp(1.9rem,5vw,2.6rem);margin-bottom:.75rem}
.facilitator-cta{background:var(--primary);color:#fff}
.facilitator-cta h2,.facilitator-cta p{color:#fff}
.signup-form{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1.5rem}
.signup-form input[type="email"]{width:100%;max-width:340px;padding:.8rem 1rem;border:2px solid var(--text-light);border-radius:8px;font-size:1rem}
.signup-form input[type="email"]:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,82,82,.2)}
.facilitator-cta input[type="email"]{background:#fff;border:2px solid #fff;color:var(--primary)}
.signup-form .btn{width:100%;max-width:340px;padding:.8rem 2rem;font-weight:600}
.privacy-note{
    font-size:.875rem;
    margin-top:.75rem;
}

footer{padding:3rem 2rem;background:var(--text);color:#fff;text-align:center}
footer a{
    color:#ff6b6b;
    text-decoration:none
}
.back-to-top{position:fixed;bottom:2rem;right:2rem;z-index:1000;background:var(--primary);color:#fff;border:none;border-radius:50%;width:3rem;height:3rem;font-size:1.5rem;display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.25);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.back-to-top.show{opacity:1;visibility:visible}
.back-to-top:hover{background:var(--primary-dark)}

.intro-text{margin-bottom:0;text-align:center}
.intro-text p:last-child{margin-bottom:0}

.faq-cta{background:var(--bg-alt);padding:4rem 2rem;text-align:center;border-radius:10px;margin-top:4rem;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.faq-cta h2{font-size:clamp(2rem,5vw,3rem);margin-bottom:1rem}
.faq-cta p{font-size:1.25rem;margin-bottom:2rem}

.basis-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
@media(min-width:769px){.basis-grid{grid-template-columns:repeat(3,1fr)}.basis-grid>article:nth-child(3){justify-self:center}}

.cta-section{margin:2rem 0;text-align:center}
.cta-section h2{font-size:clamp(1.9rem,5vw,2.6rem);margin-bottom:.75rem}
.cta-section p{max-width:800px;margin:0 auto 1.25rem;font-size:1.125rem;line-height:1.8}
.cta-section > div{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;z-index:1000;flex-shrink:0}
.hamburger-box{width:24px;height:18px;display:inline-block;position:relative}
.hamburger-inner{display:block;top:50%;margin-top:-1px}
.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:24px;height:2px;background-color:var(--text);border-radius:1px;position:absolute;transition:transform .3s ease,opacity .3s ease}
.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}
.hamburger-inner::before{top:-6px}
.hamburger-inner::after{bottom:-6px}
.mobile-navigation{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg);z-index:999;padding:5rem 2rem 2rem;transform:translateX(-100%);transition:transform .3s ease}
.mobile-navigation[aria-expanded="true"]{transform:translateX(0)}
.mobile-nav-content{display:flex;flex-direction:column;gap:.75rem;max-width:280px;margin:0 auto}
.mobile-nav-link{display:block;padding:1rem 1.5rem;background:var(--primary);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;text-align:center;transition:background-color .2s ease;font-size:1.125rem}
.mobile-nav-link:hover,.mobile-nav-link:focus{background:var(--primary-dark);color:#fff}
.mobile-nav-link[href="index.html"]{
    background:#2a4e4e;
}
.mobile-menu-toggle[aria-expanded="true"] .hamburger-inner{transform:rotate(45deg)}
.mobile-menu-toggle[aria-expanded="true"] .hamburger-inner::before{transform:rotate(-90deg) translateX(-6px);opacity:0}
.mobile-menu-toggle[aria-expanded="true"] .hamburger-inner::after{transform:rotate(-90deg) translateX(6px);opacity:0}

@media (max-width:768px){
    html,body{overflow-x:hidden}

    .site-header{padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}
    .logo{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;position:absolute;left:50%;transform:translateX(-50%);max-width:60%;margin:0}
    .members-btn{font-size:.85rem;padding:.5rem .75rem;white-space:nowrap;min-width:auto;width:auto;max-width:120px;order:1}
    .mobile-menu-toggle{display:block;order:3;margin-left:0}

    .top-nav{display:none}

    .page-header{padding:2.5rem 1.5rem 1.5rem;min-height:180px}
    .page-header::before{border-width:120px 120px 0 0}
    .home-link{width:120px;height:120px}

    .page-header h1 {
        position: relative;
        z-index: 3;
        padding-left: 140px;
        text-align: left;
        margin-left: 0;
        max-width: none;
        font-size: clamp(2rem, 8vw, 3.5rem);
    }

    .page-header .intro {
        position: relative;
        z-index: 3;
        padding-left: 140px;
        text-align: left;
        max-width: none;
        margin-right: 1rem;
        font-size: 1.1rem;
    }

    .intro-text,
    .intro-text p {
        padding-left: 0 !important;
        text-align: center !important;
        max-width: 800px;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .mobile-navigation{display:block}

    .content{padding:1.25rem 1.5rem}

    .week-section{margin-bottom:3rem}
    .week-header{padding:1.25rem}
    .week-header h2{font-size:clamp(1.75rem,6vw,2.5rem)}
    .section-title{padding:1.25rem;font-size:clamp(1.75rem,6vw,2.5rem)}
    .meeting,.faq-item{padding:1.5rem}
    .meeting-header{flex-direction:column;align-items:flex-start;gap:.75rem}
    .meeting-title,.faq-question{font-size:1.35rem}
    .meeting-time{font-size:.9rem;white-space:normal}
    .faq-answer p{font-size:1.0625rem}
    .faq-cta{padding:3rem 1.5rem}
    .cta-buttons,.cta-section > div{flex-direction:column;align-items:stretch}
    .basis-grid{grid-template-columns:minmax(0,1fr)}
    .meeting-title,.meeting-header,.meeting-purpose,.faq-question,.faq-answer p{overflow-wrap:break-word;word-break:break-word}
    .faq-cta{padding-left:1rem;padding-right:1rem}
    .faq-section{margin-bottom:3.5rem}

    .signup-sections{grid-template-columns:1fr;gap:1.5rem;padding:0 1rem}
    .cta-box{padding:2rem 1.5rem}
    .btn{width:100%}
    .hero-image-full{margin:0 auto 1.25rem}
}

@media (max-width:480px){
    .site-header{padding:.5rem .75rem}
    .logo{font-size:.9rem;max-width:55%}
    .members-btn{font-size:.8rem;padding:.4rem .6rem;max-width:100px;min-width:70px}

    .page-header{padding:2rem 1rem 1.5rem;min-height:140px}
    .page-header::before{border-width:80px 80px 0 0}
    .home-link{width:80px;height:80px}

    .page-header h1 {
        padding-left: 100px;
        font-size: clamp(1.75rem, 7vw, 3rem);
    }

    .page-header .intro {
        padding-left: 100px;
        font-size: 1rem;
    }

    .intro-text,
    .intro-text p {
        padding-left: 0 !important;
        text-align: center !important;
    }

    .content{padding:1rem 1rem}
    .back-to-top{bottom:1rem;right:1rem;width:2.75rem;height:2.75rem;font-size:1.25rem}
    .hero-image-full{margin:0 auto 1rem}

    .meeting,.faq-item{padding:1.25rem}
    .meeting-title,.faq-question{font-size:1.25rem}
    .meeting-header{gap:.5rem}
    .meeting-time{padding:.4rem .75rem}
    .faq-cta{padding:2.5rem 1rem}
    .faq-item{padding:1rem}
    .faq-cta{padding-left:.75rem;padding-right:.75rem}
}

@media (max-width:360px){
    .logo{font-size:.85rem;max-width:50%}
    .members-btn{font-size:.75rem;padding:.35rem .5rem;max-width:90px;min-width:65px}

    .page-header::before{border-width:60px 60px 0 0}
    .home-link{width:60px;height:60px}

    .page-header h1 {
        padding-left: 80px;
        font-size: clamp(1.5rem, 6vw, 2.5rem);
    }

    .page-header .intro {
        padding-left: 80px;
        font-size: 0.95rem;
    }

    .intro-text,
    .intro-text p {
        padding-left: 0 !important;
        text-align: center !important;
    }
}

body.menu-open{overflow:hidden}

.mobile-menu-toggle:focus-visible,.mobile-nav-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

@media print {
    .back-to-top,
    .mobile-menu-toggle,
    .top-nav,
    .signup-sections {
        display: none !important;
    }

    .page-header::before {
        border-width: 100px 100px 0 0;
    }
}
