
/* =========================================================
   YOWILOO DESIGN SYSTEM
   ========================================================= */

:root{

    --yw-navy:#071a3d;
    --yw-navy-2:#0b2a59;
    --yw-navy-3:#12386f;

    --yw-yellow:#ffb000;
    --yw-yellow-2:#ffc83d;
    --yw-yellow-soft:#fff4c9;

    --yw-white:#ffffff;

    --yw-bg:#f4f7fb;
    --yw-bg-2:#eef3f9;

    --yw-text:#10213a;
    --yw-muted:#66758a;
    --yw-line:#e3e9f1;

    --yw-success:#13795b;

    --yw-radius-sm:12px;
    --yw-radius:18px;
    --yw-radius-lg:26px;

    --yw-shadow:
        0 12px 35px rgba(7,26,61,.08);

    --yw-shadow-hover:
        0 18px 45px rgba(7,26,61,.13);

    --yw-container:1180px;
}


/* =========================================================
   RESET
   ========================================================= */

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

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

body{
    width:100%;
    max-width:100%;

    margin:0;

    overflow-x:hidden;

    background:var(--yw-bg);

    color:var(--yw-text);

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    -webkit-font-smoothing:antialiased;
}

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

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

button,
input,
textarea,
select{
    font:inherit;
}


/* =========================================================
   HEADER
   ========================================================= */

.yw-header{
    position:sticky;
    top:0;

    z-index:1000;

    width:100%;

    background:
        rgba(7,26,61,.985);

    border-bottom:
        1px solid rgba(255,255,255,.09);

    box-shadow:
        0 7px 25px rgba(7,26,61,.10);
}


.yw-header__bar{

    width:min(
        var(--yw-container),
        calc(100% - 40px)
    );

    min-height:72px;

    margin:auto;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;
}


/* BRAND */

.yw-brand{

    flex:0 0 auto;

    display:flex;
    align-items:center;

    gap:8px;

    min-width:0;
}


.yw-brand__logo{

    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;

    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;

    object-fit:contain;
}


.yw-brand__name{

    color:#fff;

    font-size:23px;
    line-height:1;

    font-weight:900;

    letter-spacing:-.8px;

    white-space:nowrap;
}


.yw-brand__name span{
    color:var(--yw-yellow);
}


/* DESKTOP NAV */

.yw-desktop-nav{

    flex:1;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:19px;
}


.yw-desktop-nav a{

    color:#eef4ff;

    font-size:13px;
    font-weight:750;

    white-space:nowrap;

    transition:
        color .18s ease,
        opacity .18s ease;
}


.yw-desktop-nav a:hover{
    color:var(--yw-yellow);
}


/* ACTIONS */

.yw-header__actions{

    flex:0 0 auto;

    display:flex;
    align-items:center;

    gap:8px;
}


.yw-donate{

    min-height:42px;

    padding:0 13px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:5px;

    border-radius:11px;

    background:#fff;

    color:var(--yw-navy);

    font-size:12px;
    font-weight:900;

    white-space:nowrap;
}


.yw-cart{

    position:relative;

    min-height:42px;

    padding:0 12px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:6px;

    border:
        1px solid rgba(255,255,255,.16);

    border-radius:11px;

    background:
        rgba(255,255,255,.075);

    color:#fff;

    font-size:12px;
    font-weight:800;
}


.yw-cart__icon{
    font-size:16px;
}


.yw-cart__count{

    min-width:20px;
    height:20px;

    padding:0 5px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    border-radius:999px;

    background:var(--yw-yellow);

    color:var(--yw-navy);

    font-size:10px;
    font-weight:900;
}


/* HAMBURGER */

.yw-menu-button{

    display:none;

    width:42px;
    height:42px;

    padding:9px;

    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:5px;

    border:
        1px solid rgba(255,255,255,.16);

    border-radius:11px;

    background:
        rgba(255,255,255,.075);

    cursor:pointer;
}


.yw-menu-button span{

    display:block;

    width:100%;
    height:2px;

    border-radius:10px;

    background:#fff;
}


/* =========================================================
   MOBILE MENU
   ========================================================= */

.yw-mobile-menu{

    display:none;

    border-top:
        1px solid rgba(255,255,255,.08);

    background:var(--yw-navy);
}


.yw-mobile-menu.is-open{
    display:block;
}


.yw-mobile-menu__grid{

    width:min(
        var(--yw-container),
        calc(100% - 40px)
    );

    margin:auto;

    padding:14px 0 18px;

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:8px;
}


.yw-mobile-menu__grid a{

    min-height:48px;

    padding:10px 12px;

    display:flex;
    align-items:center;

    gap:8px;

    border-radius:11px;

    background:
        rgba(255,255,255,.055);

    color:#fff;

    font-size:12px;
    font-weight:750;
}


.yw-mobile-menu__grid a:hover{

    background:
        rgba(255,176,0,.13);

    color:#ffd46b;
}


/* =========================================================
   PAGE LAYOUT
   ========================================================= */

.yw-main{
    min-height:65vh;
}


.yw-container{

    width:min(
        var(--yw-container),
        calc(100% - 40px)
    );

    margin:auto;
}


.yw-page{

    width:min(
        820px,
        calc(100% - 32px)
    );

    margin:auto;

    padding:48px 0 80px;
}


/* PAGE INTRO */

.yw-page-intro{
    margin-bottom:28px;
}


.yw-eyebrow{

    display:inline-flex;
    align-items:center;

    gap:7px;

    margin-bottom:14px;

    padding:8px 12px;

    border-radius:999px;

    background:var(--yw-yellow-soft);

    color:#735500;

    font-size:12px;
    font-weight:900;
}


.yw-page-title{

    margin:0 0 12px;

    color:var(--yw-navy);

    font-size:
        clamp(34px,6vw,52px);

    line-height:1.04;

    letter-spacing:-1.8px;
}


.yw-page-lead{

    max-width:700px;

    margin:0;

    color:var(--yw-muted);

    font-size:17px;

    line-height:1.65;
}


/* =========================================================
   CARDS
   ========================================================= */

.yw-card{

    width:100%;

    padding:22px;

    margin-bottom:16px;

    border:
        1px solid rgba(7,26,61,.055);

    border-radius:var(--yw-radius);

    background:#fff;

    box-shadow:var(--yw-shadow);
}


.yw-card__badge{

    display:inline-flex;

    margin-bottom:13px;

    padding:7px 11px;

    border-radius:999px;

    background:var(--yw-yellow-soft);

    color:#715300;

    font-size:12px;
    font-weight:900;
}


.yw-card__meta{

    margin-bottom:10px;

    color:var(--yw-muted);

    font-size:14px;
}


.yw-card__text{

    margin-bottom:20px;

    color:var(--yw-text);

    line-height:1.65;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.yw-btn{

    min-height:48px;

    padding:0 18px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    border:0;

    border-radius:12px;

    cursor:pointer;

    font-weight:900;

    transition:
        transform .15s ease,
        box-shadow .15s ease;
}


.yw-btn:hover{
    transform:translateY(-1px);
}


.yw-btn--primary{

    background:var(--yw-yellow);

    color:var(--yw-navy);
}


.yw-btn--block{
    width:100%;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.yw-empty{

    padding:38px 22px;

    border-radius:var(--yw-radius);

    background:#fff;

    text-align:center;

    box-shadow:var(--yw-shadow);
}


.yw-empty__icon{

    width:58px;
    height:58px;

    margin:0 auto 17px;

    display:grid;
    place-items:center;

    border-radius:17px;

    background:var(--yw-yellow-soft);

    font-size:26px;
}


.yw-empty strong{

    display:block;

    color:#435065;

    font-size:18px;
}


.yw-empty p{

    margin:12px 0 0;

    color:var(--yw-muted);

    line-height:1.55;
}


/* =========================================================
   NOTICES
   ========================================================= */

.yw-notice{

    margin-top:24px;

    padding:18px;

    border-radius:15px;

    background:#e8f0fa;

    color:#435065;

    font-size:14px;

    line-height:1.6;
}


/* =========================================================
   FOOTER
   ========================================================= */

.yw-footer{

    background:var(--yw-navy);

    color:#dce6f5;
}


.yw-footer__grid{

    width:min(
        var(--yw-container),
        calc(100% - 40px)
    );

    margin:auto;

    padding:48px 0 35px;

    display:grid;

    grid-template-columns:
        1.5fr 1fr 1fr;

    gap:45px;
}


.yw-footer__brand{

    display:flex;
    align-items:center;

    gap:8px;

    margin-bottom:15px;

    color:#fff;

    font-size:21px;
    font-weight:900;
}


.yw-footer__brand img{

    width:38px;
    height:38px;

    object-fit:contain;
}


.yw-footer__brand strong{
    color:var(--yw-yellow);
}


.yw-footer p{

    max-width:470px;

    margin:0;

    color:#aebcd0;

    font-size:13px;

    line-height:1.65;
}


.yw-footer__links{

    display:flex;
    flex-direction:column;

    gap:10px;
}


.yw-footer__links strong{

    margin-bottom:3px;

    color:#fff;
}


.yw-footer__links a{

    color:#bfcce0;

    font-size:13px;
}


.yw-footer__links a:hover{
    color:var(--yw-yellow);
}


.yw-footer__bottom{

    width:min(
        var(--yw-container),
        calc(100% - 40px)
    );

    margin:auto;

    padding:18px 0 24px;

    display:flex;
    justify-content:space-between;

    gap:20px;

    border-top:
        1px solid rgba(255,255,255,.09);

    color:#91a3bb;

    font-size:12px;
}


.yw-footer__bottom strong{
    color:#e9eef7;
}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1050px){

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

    .yw-menu-button{
        display:flex;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:700px){

    .yw-header__bar{

        width:calc(100% - 20px);

        min-height:66px;

        gap:5px;
    }


    .yw-brand{

        flex:1 1 auto;

        max-width:132px;

        overflow:hidden;
    }


    .yw-brand__logo{

        width:34px !important;
        min-width:34px !important;
        max-width:34px !important;

        height:34px !important;
        min-height:34px !important;
        max-height:34px !important;
    }


    .yw-brand__name{

        font-size:17px;

        letter-spacing:-.5px;
    }


    .yw-header__actions{
        gap:5px;
    }


    .yw-donate{

        min-height:40px;

        padding:0 8px;

        font-size:10px;
    }


    .yw-cart{

        width:40px;
        min-width:40px;
        height:40px;

        padding:0;
    }


    .yw-cart__label{
        display:none;
    }


    .yw-cart__count{

        position:absolute;

        top:-5px;
        right:-5px;

        height:18px;
        min-width:18px;

        border:
            2px solid var(--yw-navy);

        font-size:9px;
    }


    .yw-menu-button{

        width:40px;
        height:40px;

        padding:8px;
    }


    .yw-mobile-menu__grid{

        width:calc(100% - 20px);

        grid-template-columns:
            1fr 1fr;

        gap:7px;
    }


    .yw-mobile-menu__grid a{

        min-height:49px;

        padding:10px;

        font-size:11px;
    }


    .yw-page{

        width:calc(100% - 28px);

        padding:31px 0 58px;
    }


    .yw-page-title{

        font-size:34px;

        letter-spacing:-1.2px;
    }


    .yw-page-lead{
        font-size:16px;
    }


    .yw-card{
        padding:19px;
    }


    .yw-footer__grid{

        width:calc(100% - 30px);

        padding:38px 0 30px;

        grid-template-columns:1fr;

        gap:30px;
    }


    .yw-footer__bottom{

        width:calc(100% - 30px);

        flex-direction:column;

        gap:7px;
    }

}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media(max-width:370px){

    .yw-brand{
        max-width:108px;
    }

    .yw-brand__name{
        font-size:15px;
    }

    .yw-brand__logo{

        width:31px !important;
        min-width:31px !important;
        max-width:31px !important;

        height:31px !important;
        min-height:31px !important;
        max-height:31px !important;
    }

    .yw-donate{

        padding:0 6px;

        font-size:9px;
    }

}



/* =========================================================
   FORMULAIRES YOWILOO
   ========================================================= */

.yw-form-card{

    width:100%;

    padding:30px;

    border-radius:var(--yw-radius-lg);

    background:#fff;

    box-shadow:var(--yw-shadow);

    border:
        1px solid rgba(7,26,61,.05);
}


.yw-form{

    width:100%;
}


.yw-field{
    margin-bottom:20px;
}


.yw-label{

    display:block;

    margin-bottom:8px;

    color:var(--yw-navy);

    font-size:14px;
    font-weight:850;
}


.yw-form input,
.yw-form select,
.yw-form textarea{

    display:block;

    width:100%;

    padding:14px 15px;

    border:
        1px solid #d4dce7;

    border-radius:12px;

    background:#fff;

    color:var(--yw-text);

    font-size:16px;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        background .15s ease;
}


.yw-form textarea{

    min-height:150px;

    resize:vertical;
}


.yw-form input::placeholder,
.yw-form textarea::placeholder{

    color:#98a4b4;
}


.yw-form input:focus,
.yw-form select:focus,
.yw-form textarea:focus{

    outline:none;

    border-color:var(--yw-yellow);

    box-shadow:
        0 0 0 4px rgba(255,176,0,.13);

    background:#fffef9;
}


.yw-form .errorlist{

    margin:7px 0 0;

    padding:0;

    list-style:none;

    color:#a92020;

    font-size:13px;
    font-weight:700;
}


.yw-help-text{

    margin-top:6px;

    color:var(--yw-muted);

    font-size:12px;

    line-height:1.5;
}


.yw-privacy-box{

    margin:25px 0;

    padding:18px;

    display:flex;

    gap:13px;

    border-radius:16px;

    background:
        linear-gradient(
            135deg,
            #edf4fb,
            #f7faff
        );

    border:
        1px solid #dce6f1;
}


.yw-privacy-box__icon{

    flex:0 0 42px;

    width:42px;
    height:42px;

    display:grid;

    place-items:center;

    border-radius:13px;

    background:#fff;

    font-size:20px;
}


.yw-privacy-box strong{

    display:block;

    margin-bottom:6px;

    color:var(--yw-navy);

    font-size:14px;
}


.yw-privacy-box p{

    margin:0 0 6px;

    color:#526276;

    font-size:13px;

    line-height:1.55;
}


.yw-privacy-box p:last-child{
    margin-bottom:0;
}


.yw-success{

    margin-bottom:22px;

    padding:16px 18px;

    border-radius:14px;

    background:#e9f8ef;

    color:#17633a;

    font-weight:800;

    line-height:1.5;

    border:
        1px solid #ccebd8;
}


.yw-submit{

    min-height:52px;

    font-size:16px;
}


.yw-form-footer{

    margin-top:20px;

    text-align:center;
}


.yw-form-footer a{

    color:var(--yw-navy);

    font-size:13px;
    font-weight:800;
}


@media(max-width:700px){

    .yw-form-card{

        padding:22px 17px;

        border-radius:20px;
    }

    .yw-field{
        margin-bottom:18px;
    }

    .yw-form input,
    .yw-form select,
    .yw-form textarea{

        padding:13px 14px;

        font-size:16px;
    }

    .yw-privacy-box{

        padding:15px;

        gap:10px;
    }

    .yw-privacy-box__icon{

        flex-basis:36px;

        width:36px;
        height:36px;

        font-size:17px;
    }

}

