*{box-sizing:border-box;margin:0;padding:0}
:root{--primary:#2563eb;--primary-dark:#1d4ed8;--text:#172033;--muted:#64748b;--bg:#f7f9fc;--card:#fff;--border:#e5eaf1;--shadow:0 12px 35px rgba(15,23,42,.08)}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);line-height:1.75}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.container{width:min(1120px,calc(100% - 32px));margin:auto}
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none}
.logo,.footer-logo{width:48px;height:48px;object-fit:contain;border-radius:12px}
.brand-text{display:flex;flex-direction:column}.brand-title{font-weight:800;font-size:17px}.brand-subtitle{font-size:12px;color:var(--muted)}
.navigation{display:flex;gap:25px}.navigation a{font-size:14px;font-weight:650;color:#334155}
.hero{padding:76px 0 70px;background:linear-gradient(135deg,#eff6ff,#fff)}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:55px;align-items:center}
.badge,.eyebrow{display:inline-flex;align-items:center;color:var(--primary);background:#eaf2ff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
h1{font-size:clamp(36px,5vw,60px);line-height:1.08;letter-spacing:-.045em;margin:20px 0}
h2{font-size:clamp(27px,3vw,38px);line-height:1.2;letter-spacing:-.025em;margin:0 0 20px}
h3{line-height:1.3}.lead{font-size:19px;color:#526176;max-width:720px}
.quick-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.quick-points span{background:#fff;border:1px solid var(--border);padding:8px 12px;border-radius:10px;font-size:13px;font-weight:650}
.intro-card{background:#fff;border:1px solid var(--border);border-radius:24px;padding:30px;box-shadow:var(--shadow)}
.card-icon{font-size:30px;margin-bottom:12px}.intro-card p{color:var(--muted);margin-bottom:22px}
.primary-button{display:inline-flex;background:var(--primary);color:#fff;padding:12px 18px;border-radius:11px;font-weight:750;text-decoration:none}.primary-button:hover{background:var(--primary-dark);text-decoration:none}
.article-section{padding:75px 0}.content-wrap{display:flex;justify-content:center}.article{width:min(820px,100%);background:#fff;border:1px solid var(--border);border-radius:24px;padding:48px;box-shadow:0 8px 28px rgba(15,23,42,.045)}
.article h2{margin-top:42px}.article p{font-size:17px;color:#445267;margin:0 0 20px}.article a{font-weight:650}.info-box{background:#f0f7ff;border-left:4px solid var(--primary);padding:18px 20px;border-radius:10px;margin:30px 0;color:#334155}
.plan-card{background:#f8fafc;border:1px solid var(--border);border-radius:18px;padding:28px;margin:35px 0}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.plan-grid div{background:#fff;border:1px solid var(--border);padding:18px;border-radius:13px}.plan-grid b{display:block;margin-bottom:5px}.plan-grid span{display:block;color:var(--muted);font-size:14px}
.source-note{border-top:1px solid var(--border);margin-top:45px;padding-top:28px}.source-note h3{margin-bottom:12px}.source-note p,.source-note li{font-size:14px;color:var(--muted)}.source-note ul{padding-left:20px}

.faq-section{padding:45px 0 75px}.narrow{max-width:820px}.faq-section h2{margin-top:15px}.faq-item{background:#fff;border:1px solid var(--border);border-radius:14px;margin:10px 0;padding:0 18px}.faq-item summary{cursor:pointer;padding:18px 0;font-weight:750}.faq-item p{color:var(--muted);padding:0 0 18px;font-size:15px}
.footer{background:#101827;color:#cbd5e1;padding:45px 0 0}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:45px}.footer-brand{display:flex;gap:15px}.footer-brand h3{color:#fff;margin-bottom:7px}.footer-brand p{font-size:14px;max-width:600px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.footer-links a{color:#cbd5e1;font-size:14px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:35px;padding:20px 0;display:flex;justify-content:space-between;gap:20px;font-size:12px}.association-note{max-width:650px;text-align:right;color:#94a3b8}

.desktop-banner{display:block;padding:35px 0 55px}
.desktop-banner .section-header{text-align:center;margin-bottom:22px}
.desktop-banner #bannerd{display:block}
.desktop-banner #bannerd img{display:block;width:100%;max-width:760px;margin:0 auto;border-radius:20px}
.mobile-banner{display:none}
.mobile-banner img{display:block;width:100%;height:auto;border-radius:12px}

@media(max-width:800px){.navigation{display:none}.hero{padding:48px 0}.hero-grid{grid-template-columns:1fr;gap:28px}.article-section{padding:35px 0}.article{padding:27px 20px;border-radius:18px}.article p{font-size:16px}.plan-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.association-note{text-align:left}.footer-links{max-width:450px}}






/* =========================================================
   RESPONSIVE SITE SYSTEM
   ========================================================= */

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

html{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    scroll-behavior:smooth;
}

body{
    width:100%;
    max-width:100%;
    margin:0;
    overflow-x:hidden;
    color:#1f2937;
    background:#ffffff;
}

img,
svg,
video{
    max-width:100%;
}

.container{
    width:min(1180px, calc(100% - 40px));
    margin-inline:auto;
}

/* Header */
body > .header{
    width:100%;
    background:#fff;
    border-bottom:1px solid #e8edf3;
    position:relative;
    z-index:1000;
}

body > .header .container{
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

body > .header .brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    text-decoration:none;
    color:#172033;
}

body > .header .logo{
    display:block;
    width:46px;
    height:46px;
    object-fit:contain;
    flex:0 0 46px;
}

body > .header .brand-text{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
}

body > .header .brand-title{
    display:block;
    font-size:17px;
    line-height:1.2;
    font-weight:800;
    color:#172033;
}

body > .header .brand-subtitle{
    display:block;
    font-size:12px;
    line-height:1.2;
    color:#7b8797;
}

body > .header .navigation{
    flex:0 1 auto;
    min-width:0;
}

body > .header .navigation ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    align-items:center;
    gap:4px;
    list-style:none;
    margin:0;
    padding:0;
}

body > .header .navigation li{
    margin:0;
    padding:0;
}

body > .header .navigation a{
    display:block;
    padding:9px 11px;
    border-radius:9px;
    color:#475569;
    text-decoration:none;
    font-size:14px;
    font-weight:650;
    white-space:nowrap;
}

body > .header .navigation a:hover{
    background:#f1f5f9;
    color:#2563eb;
}

/* Hero */
.page-hero{
    width:100%;
    overflow:hidden;
}

.page-hero-inner{
    width:min(900px,100%);
    margin-inline:auto;
}

/* Article */
.article-section{
    width:100%;
    overflow:hidden;
}

.article-wrap{
    width:min(850px, calc(100% - 40px));
    margin-inline:auto;
}

.article{
    width:100%;
    overflow-wrap:anywhere;
}

.article p,
.article li{
    overflow-wrap:anywhere;
}

.article img{
    height:auto;
}

/* Tables / long elements */
table{
    max-width:100%;
}

pre,
code{
    max-width:100%;
    overflow-x:auto;
}

.article a{
    overflow-wrap:anywhere;
}

/* Plan cards */
.plan{
    width:100%;
}

/* Banner */
.desktop-banner{
    width:100%;
    overflow:hidden;
}

.desktop-banner .container{
    width:min(1180px, calc(100% - 40px));
}

.desktop-banner img{
    width:100%;
    max-width:760px;
    height:auto;
}

/* FAQ */
.faq-section{
    width:100%;
    overflow:hidden;
}

.faq-section .container{
    max-width:850px;
}

.faq-item{
    width:100%;
}

/* Order */
.order-section{
    width:100%;
    background:#f8fafc;
    padding:70px 0;
    overflow:hidden;
}

.order-card{
    width:min(820px, calc(100% - 40px));
    margin-inline:auto;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:22px;
    padding:34px;
    box-shadow:0 10px 35px rgba(15,23,42,.07);
}

.order-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.order-field{
    min-width:0;
    margin-bottom:16px;
}

.order-field input,
.order-field select{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    min-height:46px;
    padding:10px 13px;
    border:1px solid #dbe2ea;
    border-radius:10px;
    background:#fff;
    font:inherit;
}

.order-submit{
    width:100%;
    min-height:48px;
    border:0;
    border-radius:11px;
    background:#2563eb;
    color:#fff;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}

/* Mobile banner */
.mobile-banner{
    display:none;
}

/* Footer */
body > .footer{
    width:100%;
    margin:0;
    background:#101827;
    color:#dbe4ef;
    border-top:1px solid #1d2939;
    overflow:hidden;
}

body > .footer .container{
    width:min(1180px, calc(100% - 40px));
}

body > .footer .footer-top{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(180px,.7fr);
    gap:60px;
    padding:52px 0 40px;
}

body > .footer .footer-brand{
    display:flex;
    align-items:flex-start;
    gap:14px;
    min-width:0;
}

body > .footer .footer-logo{
    width:48px;
    height:48px;
    object-fit:contain;
    flex:0 0 48px;
}

body > .footer .footer-brand > div{
    min-width:0;
}

body > .footer .footer-brand h3{
    margin:0 0 8px;
    color:#fff;
}

body > .footer .footer-brand p{
    margin:0;
    max-width:600px;
    color:#aebccc;
    line-height:1.75;
    overflow-wrap:anywhere;
}

body > .footer .footer-navigation{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
}

body > .footer .footer-navigation a{
    color:#cbd5e1;
    text-decoration:none;
    overflow-wrap:anywhere;
}

body > .footer .footer-navigation a:hover{
    color:#fff;
}

body > .footer .footer-bottom{
    margin:0;
    padding:20px 0 24px;
    border-top:1px solid #263244;
}

body > .footer .footer-bottom p{
    margin:0;
    color:#8f9cad;
    font-size:13px;
    line-height:1.6;
}

/* Desktop refinements */
@media (min-width:801px){
    .page-hero h1{
        max-width:900px;
    }

    .article{
        font-size:17px;
    }
}

/* Tablet */
@media (max-width:900px){
    .container{
        width:min(100% - 32px,1180px);
    }

    body > .header .container{
        gap:18px;
    }

    body > .header .navigation a{
        padding:8px 8px;
        font-size:13px;
    }

    .article-wrap{
        width:min(100% - 32px,850px);
    }

    .order-card{
        width:min(100% - 32px,820px);
    }
}

/* Phone */
@media (max-width:700px){

    .container{
        width:calc(100% - 24px);
    }

    body > .header .container{
        min-height:68px;
        width:calc(100% - 24px);
        display:flex;
        align-items:center;
        gap:10px;
    }

    body > .header .logo{
        width:40px;
        height:40px;
        flex-basis:40px;
    }

    body > .header .brand-title{
        font-size:15px;
    }

    body > .header .brand-subtitle{
        display:none;
    }

    body > .header .navigation{
        max-width:55%;
    }

    body > .header .navigation ul{
        justify-content:flex-end;
        gap:2px;
    }

    body > .header .navigation a{
        padding:6px 5px;
        font-size:11px;
    }

    .page-hero{
        padding-left:0;
        padding-right:0;
    }

    .page-hero h1{
        font-size:34px;
        line-height:1.1;
        letter-spacing:-.035em;
    }

    .page-hero p{
        font-size:16px;
        line-height:1.7;
    }

    .article-wrap{
        width:calc(100% - 24px);
    }

    .article{
        font-size:16px;
        line-height:1.78;
    }

    .article h2{
        font-size:27px;
        line-height:1.25;
        margin-top:42px;
    }

    .article h3{
        font-size:21px;
        line-height:1.35;
    }

    .plan{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
    }

    .order-section{
        padding:48px 0;
    }

    .order-card{
        width:calc(100% - 24px);
        padding:24px 18px;
        border-radius:18px;
    }

    .order-grid{
        grid-template-columns:1fr;
        gap:0;
    }

    /* Mobile banner stays outside normal flow and cannot widen the page */
    .desktop-banner{
        display:none !important;
    }

    .mobile-banner{
        display:block !important;
        position:fixed !important;
        left:10px !important;
        right:10px !important;
        bottom:10px !important;
        width:auto !important;
        max-width:none !important;
        padding:6px !important;
        background:#fff !important;
        border-radius:14px !important;
        box-shadow:0 4px 20px rgba(15,23,42,.18) !important;
        z-index:99999 !important;
    }

    .mobile-banner img{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        height:auto !important;
        border-radius:10px !important;
    }

    body{
        padding-bottom:105px;
    }

    body > .footer .container{
        width:calc(100% - 24px);
    }

    body > .footer .footer-top{
        grid-template-columns:1fr;
        gap:28px;
        padding:40px 0 30px;
    }

    body > .footer .footer-brand{
        gap:12px;
    }

    body > .footer .footer-brand p{
        font-size:13px;
    }

    body > .footer .footer-bottom{
        padding:18px 0 22px;
    }

    body > .footer .footer-bottom p{
        font-size:12px;
    }
}

/* Very small phones */
@media (max-width:390px){

    body > .header .container{
        gap:6px;
    }

    body > .header .brand-title{
        font-size:14px;
    }

    body > .header .navigation{
        max-width:58%;
    }

    body > .header .navigation ul{
        gap:0;
    }

    body > .header .navigation a{
        padding:5px 4px;
        font-size:10px;
    }

    .page-hero h1{
        font-size:30px;
    }

    .article h2{
        font-size:25px;
    }

    .mobile-banner{
        left:7px !important;
        right:7px !important;
        bottom:7px !important;
    }
}


/* Supplied advertising banner */
#bannerd,
#bannerm{
    cursor:pointer;
    text-decoration:none;
}

#bannerd img,
#bannerm img{
    display:block;
    width:100%;
    height:auto;
    max-width:760px;
    margin:0 auto;
}

@media (max-width:700px){
    #bannerm{
        width:auto !important;
        max-width:none !important;
    }

    #bannerm img{
        width:100% !important;
        max-width:none !important;
    }
}
