/* =====================================================
   TOGETHER MAGAZINE
   CONTACT PAGE
   FULL UPDATED CSS
===================================================== */

:root{

    --cream:#f8f4ec;
    --soft:#eee6d9;
    --taupe:#d9cdbc;

    --charcoal:#1f1f1d;
    --charcoal-2:#292a27;

    --terracotta:#c85d3a;
    --mustard:#e2a23b;
    --sage:#7d8b70;

    --white:#ffffff;

    --muted:#746f67;
    --line:#d1c7b8;

    --serif:"Playfair Display",serif;
    --sans:"DM Sans",sans-serif;
    --script:"Caveat",cursive;

    --container:1240px;
}


/* =====================================================
   RESET
===================================================== */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    width:100%;
    max-width:100%;
    scroll-behavior:smooth;
    overflow-x:hidden;
}

body{
    width:100%;
    max-width:100%;
    margin:0;
    background:var(--cream);
    color:var(--charcoal);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.6;
    overflow-x:hidden;
}

body.no-scroll{
    overflow:hidden;
}

a{
    color:inherit;
    text-decoration:none;
}

button,
input,
select,
textarea{
    font:inherit;
}

button{
    cursor:pointer;
}

img{
    max-width:100%;
    display:block;
}

.container{
    width:min(
        var(--container),
        calc(100% - 70px)
    );
    margin:auto;
}


/* =====================================================
   LOADER
===================================================== */

.loader{
    position:fixed;
    inset:0;
    z-index:99999;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    background:var(--charcoal);
    color:white;

    opacity:1;
    visibility:visible;

    transition:
        opacity .7s ease,
        visibility .7s ease;
}

.loader.hide{
    opacity:0;
    visibility:hidden;
}

.loader-logo{
    font-family:var(--serif);
    font-size:42px;
    letter-spacing:3px;
    line-height:.9;
    text-align:center;
}

.loader-logo small{
    display:block;
    margin-top:8px;

    font-family:var(--sans);
    font-size:8px;
    font-weight:700;
    letter-spacing:5px;
}

.loader-progress{
    width:150px;
    height:2px;

    margin-top:30px;

    background:rgba(255,255,255,.15);
    overflow:hidden;
}

.loader-progress span{
    display:block;
    width:0;
    height:100%;

    background:var(--mustard);

    animation:
        loaderProgress 1.1s ease forwards;
}

@keyframes loaderProgress{

    to{
        width:100%;
    }

}


/* =====================================================
   HEADER
===================================================== */

.header{
    position:relative;
    z-index:1000;

    width:100%;

    background:var(--cream);
    border-bottom:1px solid var(--taupe);

    transition:
        background .3s ease,
        box-shadow .3s ease;
}

.header.scrolled{
    position:sticky;
    top:0;

    background:rgba(248,244,236,.94);

    backdrop-filter:blur(12px);

    box-shadow:
        0 8px 30px rgba(0,0,0,.06);
}

.header-top{
    min-height:34px;

    padding:8px 35px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    border-bottom:1px solid var(--taupe);

    color:#817b72;

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.header-main{
    width:min(
        var(--container),
        calc(100% - 70px)
    );

    min-height:92px;

    margin:auto;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:30px;
}


/* LOGO */

.logo{
    display:flex;
    align-items:center;
    gap:12px;

    flex-shrink:0;
}

.logo-symbol{
    position:relative;

    width:34px;
    height:34px;
}

.logo-symbol i{
    position:absolute;

    width:13px;
    height:13px;

    border-radius:50%;
}

.logo-symbol i:nth-child(1){
    left:0;
    top:3px;
    background:var(--terracotta);
}

.logo-symbol i:nth-child(2){
    right:0;
    top:0;
    background:var(--mustard);
}

.logo-symbol i:nth-child(3){
    left:5px;
    bottom:0;
    background:var(--sage);
}

.logo-symbol i:nth-child(4){
    right:2px;
    bottom:4px;
    background:var(--charcoal);
}

.logo-name{
    font-family:var(--serif);
    font-size:25px;
    line-height:.9;
    letter-spacing:1px;
}

.logo-name small{
    display:block;

    margin-top:5px;

    font-family:var(--sans);
    font-size:7px;
    font-weight:700;
    letter-spacing:4px;
}


/* NAV */

.nav{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:23px;
}

.nav a{
    position:relative;

    padding:10px 0;

    font-size:12px;
    font-weight:600;
}

.nav a::after{
    content:"";

    position:absolute;
    left:0;
    bottom:2px;

    width:0;
    height:1px;

    background:var(--charcoal);

    transition:width .3s ease;
}

.nav a:hover::after,
.nav a.active::after{
    width:100%;
}


/* ACTIONS */

.header-actions{
    display:flex;
    align-items:center;
    gap:10px;
}

.search-btn{
    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    border:1px solid var(--taupe);
    background:transparent;

    color:var(--charcoal);

    transition:
        background .3s ease,
        color .3s ease;
}

.search-btn:hover{
    background:var(--charcoal);
    color:white;
}

.issue-btn{
    min-height:42px;

    padding:0 17px;

    display:flex;
    align-items:center;
    gap:12px;

    background:var(--charcoal);
    color:white;

    font-size:9px;
    font-weight:700;
    letter-spacing:1.5px;

    transition:
        background .3s ease,
        transform .3s ease;
}

.issue-btn:hover{
    background:var(--terracotta);
    transform:translateY(-2px);
}

.hamburger{
    display:none;

    width:42px;
    height:42px;

    padding:8px;

    border:1px solid var(--taupe);
    background:transparent;
}

.hamburger span{
    display:block;

    width:100%;
    height:2px;

    margin:5px 0;

    background:var(--charcoal);
}


/* =====================================================
   SEARCH
===================================================== */

.search-overlay{
    position:fixed;
    inset:0;
    z-index:5000;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:30px;

    background:rgba(31,31,29,.98);
    color:white;

    opacity:0;
    visibility:hidden;

    transform:translateY(-20px);

    transition:
        opacity .35s ease,
        visibility .35s ease,
        transform .35s ease;
}

.search-overlay.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.search-close{
    position:absolute;

    top:28px;
    right:28px;

    width:48px;
    height:48px;

    border:1px solid rgba(255,255,255,.2);
    background:transparent;

    color:white;

    font-size:20px;
}

.search-container{
    width:min(850px,100%);
}

.search-container > span{
    color:var(--mustard);

    font-size:10px;
    font-weight:700;
    letter-spacing:2px;
}

.search-container h2{
    margin:20px 0 40px;

    font-family:var(--serif);
    font-size:clamp(55px,8vw,100px);
    font-weight:400;
    line-height:.9;
}

.search-container h2 em{
    color:var(--mustard);
}

.search-field{
    display:flex;

    border-bottom:1px solid rgba(255,255,255,.35);
}

.search-field input{
    width:100%;
    min-width:0;

    padding:17px 0;

    border:0;
    outline:0;

    background:transparent;
    color:white;

    font-family:var(--serif);
    font-size:26px;
}

.search-field input::placeholder{
    color:rgba(255,255,255,.35);
}

.search-field button{
    width:55px;

    border:0;
    background:transparent;

    color:var(--mustard);

    font-size:18px;
}

#searchMessage{
    min-height:25px;

    margin-top:15px;

    color:rgba(255,255,255,.55);

    font-size:12px;
}


/* =====================================================
   MOBILE MENU
===================================================== */

.mobile-menu{
    position:fixed;
    inset:0;
    z-index:4000;

    background:var(--charcoal);
    color:white;

    opacity:0;
    visibility:hidden;

    transform:translateY(-100%);

    transition:
        opacity .4s ease,
        visibility .4s ease,
        transform .5s cubic-bezier(.77,0,.18,1);

    overflow-y:auto;
}

.mobile-menu.open{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.mobile-close{
    position:absolute;

    top:22px;
    right:22px;

    width:45px;
    height:45px;

    border:1px solid rgba(255,255,255,.2);
    background:transparent;

    color:white;

    font-size:19px;
}

.mobile-inner{
    width:min(
        600px,
        calc(100% - 50px)
    );

    margin:auto;

    padding:95px 0 40px;
}

.mobile-logo{
    font-family:var(--serif);
    font-size:36px;
    letter-spacing:2px;
    line-height:.9;
}

.mobile-logo small{
    display:block;

    margin-top:7px;

    font-family:var(--sans);
    font-size:8px;
    font-weight:700;
    letter-spacing:5px;
}

.mobile-caption{
    margin:12px 0 45px;

    color:rgba(255,255,255,.38);

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.mobile-menu nav a{
    display:grid;
    grid-template-columns:42px 1fr 25px;

    align-items:center;

    gap:14px;

    padding:16px 0;

    border-bottom:1px solid rgba(255,255,255,.1);

    font-family:var(--serif);
    font-size:27px;
}

.mobile-menu nav a span{
    color:var(--mustard);

    font-family:var(--sans);
    font-size:10px;
    font-weight:700;
}

.mobile-menu nav a i{
    color:rgba(255,255,255,.35);
    font-size:12px;
}

.mobile-menu nav a.active{
    color:var(--mustard);
}

.mobile-bottom{
    margin-top:45px;

    color:rgba(255,255,255,.3);

    font-size:9px;
    font-weight:700;
    letter-spacing:1.7px;
}


/* =====================================================
   REVEAL
===================================================== */

.reveal{
    opacity:0;

    transform:translateY(35px);

    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.22,1,.36,1);
}

.reveal.visible{
    opacity:1;
    transform:translateY(0);
}


/* =====================================================
   CONTACT HERO
===================================================== */

.contact-page-hero{
    position:relative;

    width:100%;
    min-height:550px;

    display:flex;
    align-items:center;

    background:var(--charcoal);
    color:var(--cream);

    overflow:hidden;
}

.contact-page-inner{
    position:relative;
    z-index:3;

    width:min(
        var(--container),
        calc(100% - 70px)
    );

    min-height:550px;

    margin:auto;

    display:grid;
    grid-template-columns:minmax(0,1fr) 150px;

    align-items:center;

    gap:60px;
}

.contact-page-intro{
    padding:85px 0;
}

.contact-label{
    display:block;

    color:var(--terracotta);

    font-size:10px;
    font-weight:700;
    line-height:1.3;

    letter-spacing:2px;
}

.contact-page-intro h1{
    max-width:900px;

    margin:20px 0 0;

    font-family:var(--serif);
    font-size:clamp(65px,8vw,110px);
    font-weight:400;

    line-height:.87;

    letter-spacing:-4px;
}

.contact-page-intro h1 em{
    color:var(--mustard);
    font-style:italic;
}

.contact-page-intro p{
    max-width:610px;

    margin:35px 0 0;

    color:rgba(248,244,236,.58);

    font-size:16px;
    line-height:1.85;
}

.contact-page-mark{
    height:300px;

    padding:10px 0;

    border-left:1px solid rgba(255,255,255,.16);

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:space-between;
}

.contact-page-mark span{
    color:#817c75;

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;

    writing-mode:vertical-rl;
}

.contact-page-mark strong{
    color:var(--terracotta);

    font-family:var(--serif);
    font-size:80px;
    font-weight:400;
    font-style:italic;
}

.hero-orbit{
    position:absolute;

    border:1px solid rgba(226,162,59,.15);
    border-radius:50%;
}

.hero-orbit-one{
    width:520px;
    height:520px;

    right:-230px;
    top:25px;
}

.hero-orbit-two{
    width:350px;
    height:350px;

    right:-145px;
    top:110px;
}


/* =====================================================
   PEOPLE
===================================================== */

.contact-people{
    padding:60px 0;

    background:var(--cream);
}

.contact-heading-line{
    display:flex;
    align-items:center;

    gap:20px;

    margin-bottom:45px;
}

.contact-heading-line span{
    white-space:nowrap;

    color:#777067;

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.contact-heading-line i{
    flex:1;

    height:1px;

    background:var(--taupe);
}

.contact-people-grid{
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:20px;
}

.contact-person{
    position:relative;

    min-height:450px;

    padding:40px;

    background:var(--soft);

    display:flex;
    flex-direction:column;
    justify-content:space-between;

    overflow:hidden;

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.contact-person:hover{
    transform:translateY(-7px);

    box-shadow:
        0 20px 45px rgba(0,0,0,.08);
}

.contact-person::after{
    content:"";

    position:absolute;

    width:240px;
    height:240px;

    right:-120px;
    bottom:-120px;

    border:1px solid rgba(200,93,58,.28);

    border-radius:50%;
}

.contact-person.dark{
    background:var(--charcoal);
    color:var(--cream);
}

.contact-person.dark::after{
    border-color:rgba(226,162,59,.23);
}

.contact-person-top{
    position:relative;
    z-index:2;

    display:flex;
    align-items:flex-start;
    justify-content:space-between;

    gap:20px;
}

.contact-person-top > span{
    color:var(--terracotta);

    font-family:var(--serif);
    font-size:19px;
    font-style:italic;
}

.contact-person-top small{
    max-width:250px;

    color:#817a71;

    font-size:8px;
    font-weight:700;
    line-height:1.5;
    letter-spacing:1.5px;

    text-align:right;
}

.contact-person-content{
    position:relative;
    z-index:2;
}

.contact-person h2{
    margin:0;

    font-family:var(--serif);
    font-size:clamp(55px,6vw,82px);
    font-weight:400;

    line-height:.88;

    letter-spacing:-3px;
}

.contact-person h2 em{
    display:block;

    color:var(--terracotta);

    font-style:italic;
}

.contact-role{
    margin-top:15px;

    color:var(--mustard);

    font-family:var(--script);
    font-size:27px;
}

.contact-person p{
    max-width:510px;

    margin:20px 0 0;

    color:#716b63;

    font-size:14px;
    line-height:1.8;
}

.contact-person.dark p{
    color:#aaa49b;
}

.contact-email{
    position:relative;
    z-index:3;

    padding-top:18px;

    border-top:1px solid rgba(31,31,29,.2);

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:15px;

    font-size:12px;
    font-weight:600;

    overflow-wrap:anywhere;

    transition:
        color .3s ease,
        padding-left .3s ease;
}

.contact-person.dark .contact-email{
    border-color:rgba(255,255,255,.18);
}

.contact-email:hover{
    color:var(--terracotta);
    padding-left:5px;
}

.contact-email i{
    flex-shrink:0;

    font-size:10px;
}


/* =====================================================
   VOLUNTEER / SUBJECTS
===================================================== */

.contact-info{
    padding:60px 0;

    background:var(--soft);
}

.contact-info-grid{
    display:grid;

    grid-template-columns:
        .9fr
        1.1fr;

    gap:100px;
}

.volunteer-content{
    position:relative;
}

.contact-number{
    position:absolute;

    top:-35px;
    right:0;

    color:#d7ccbd;

    font-family:var(--serif);
    font-size:105px;
    font-style:italic;
    line-height:1;
}

.volunteer-content h2{
    max-width:500px;

    margin:20px 0 0;

    font-family:var(--serif);
    font-size:clamp(55px,6vw,82px);
    font-weight:400;

    line-height:.9;

    letter-spacing:-3px;
}

.volunteer-content h2 em{
    color:var(--terracotta);
    font-style:italic;
}

.volunteer-content > p{
    max-width:540px;

    margin:30px 0 0;

    color:#6f6961;

    font-size:14px;
    line-height:1.9;
}

.contact-subjects{
    padding-left:55px;

    border-left:1px solid #cbc1b3;
}

.subjects-intro{
    max-width:520px;

    margin:18px 0 25px;

    color:#756f67;

    font-size:13px;
    line-height:1.7;
}

.subjects-list{
    border-top:1px solid #cbc1b3;
}

.subjects-list button{
    width:100%;
    min-height:62px;

    padding:0;

    border:0;
    border-bottom:1px solid #cbc1b3;

    background:transparent;

    color:var(--charcoal);

    display:grid;

    grid-template-columns:
        40px
        minmax(0,1fr)
        25px;

    align-items:center;

    gap:10px;

    text-align:left;

    font-family:var(--serif);
    font-size:18px;

    transition:
        padding .3s ease,
        color .3s ease,
        background .3s ease;
}

.subjects-list button span{
    color:var(--terracotta);

    font-size:13px;
    font-style:italic;
}

.subjects-list button i{
    color:#827b72;

    font-size:10px;

    transition:
        transform .3s ease,
        color .3s ease;
}

.subjects-list button:hover{
    padding-left:12px;

    color:var(--terracotta);
}

.subjects-list button:hover i{
    transform:translateX(5px);

    color:var(--terracotta);
}


/* =====================================================
   FORM
===================================================== */

.contact-message-section{
    padding:60px 0;

    background:var(--cream);
}

.message-heading{
    margin-bottom:60px;
}

.message-heading h2{
    max-width:800px;

    margin:18px 0 0;

    font-family:var(--serif);
    font-size:clamp(55px,7vw,90px);
    font-weight:400;

    line-height:.9;

    letter-spacing:-3px;
}

.message-heading h2 em{
    color:var(--terracotta);
    font-style:italic;
}

.new-contact-form{
    display:flex;
    flex-direction:column;

    gap:32px;
}

.form-two{
    display:grid;

    grid-template-columns:1fr 1fr;

    gap:55px;
}

.new-contact-form label{
    display:block;

    color:#777067;

    font-size:9px;
    font-weight:700;

    letter-spacing:1.7px;
}

.new-contact-form input,
.new-contact-form select,
.new-contact-form textarea{
    display:block;

    width:100%;

    margin-top:10px;

    padding:13px 0 15px;

    border:0;
    border-bottom:1px solid #c7bdb0;

    outline:0;
    border-radius:0;

    background:transparent;

    color:var(--charcoal);

    font-family:var(--sans);
    font-size:15px;

    transition:
        border-color .3s ease;
}

.new-contact-form select{
    cursor:pointer;
}

.new-contact-form textarea{
    min-height:150px;

    resize:vertical;

    line-height:1.7;
}

.new-contact-form input:focus,
.new-contact-form select:focus,
.new-contact-form textarea:focus{
    border-color:var(--terracotta);
}

.new-contact-form input::placeholder,
.new-contact-form textarea::placeholder{
    color:#a49d93;
}

.contact-form-bottom{
    padding-top:25px;

    border-top:1px solid var(--taupe);

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:30px;
}

.contact-form-bottom p{
    margin:0;

    color:#817a72;

    font-size:11px;
}

.contact-form-bottom button{
    min-width:210px;
    min-height:57px;

    padding:6px 8px 6px 20px;

    border:0;

    background:var(--charcoal);
    color:white;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    font-size:9px;
    font-weight:700;
    letter-spacing:1.5px;

    transition:
        background .3s ease,
        transform .3s ease;
}

.contact-form-bottom button:hover{
    background:var(--terracotta);
    transform:translateY(-2px);
}

.contact-form-bottom button span{
    width:32px;
    height:32px;

    border-radius:50%;

    background:white;
    color:var(--charcoal);

    display:grid;
    place-items:center;
}


/* =====================================================
   CLOSING
===================================================== */

.contact-closing{
    position:relative;

    padding:110px 25px 125px;

    background:var(--charcoal);
    color:var(--cream);

    text-align:center;

    overflow:hidden;
}

.contact-closing::before{
    content:"TOGETHER";

    position:absolute;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    white-space:nowrap;

    color:rgba(255,255,255,.025);

    font-family:var(--serif);
    font-size:clamp(140px,24vw,330px);

    pointer-events:none;
}

.contact-closing > span,
.contact-closing h2{
    position:relative;
    z-index:2;
}

.contact-closing > span{
    color:#827c74;

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.contact-closing h2{
    max-width:1000px;

    margin:30px auto 0;

    font-family:var(--serif);
    font-size:clamp(48px,6.5vw,82px);
    font-weight:400;

    line-height:.94;

    letter-spacing:-3px;
}

.contact-closing h2 em{
    color:var(--terracotta);
    font-style:italic;
}


/* =====================================================
   POPUP
===================================================== */

.contact-popup{
    position:fixed;
    inset:0;

    z-index:99999;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:20px;

    opacity:0;
    visibility:hidden;

    transition:
        opacity .3s ease,
        visibility .3s ease;
}

.contact-popup.show{
    opacity:1;
    visibility:visible;
}

.contact-popup-bg{
    position:absolute;
    inset:0;

    background:rgba(20,20,18,.84);

    backdrop-filter:blur(8px);
}

.contact-popup-card{
    position:relative;
    z-index:2;

    width:min(
        540px,
        100%
    );

    padding:52px;

    background:var(--cream);
    color:var(--charcoal);

    transform:translateY(25px);

    transition:transform .35s ease;
}

.contact-popup.show .contact-popup-card{
    transform:translateY(0);
}

.popup-close{
    position:absolute;

    top:12px;
    right:18px;

    width:40px;
    height:40px;

    border:0;

    background:transparent;

    color:var(--charcoal);

    font-size:28px;
}

.contact-popup-card > span{
    color:var(--terracotta);

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.popup-icon{
    width:52px;
    height:52px;

    margin:25px 0;

    border-radius:50%;

    background:var(--sage);
    color:white;

    display:grid;
    place-items:center;

    font-size:20px;
}

.contact-popup-card h2{
    margin:0;

    font-family:var(--serif);
    font-size:56px;
    font-weight:400;

    line-height:.9;

    letter-spacing:-2px;
}

.contact-popup-card h2 em{
    display:block;

    color:var(--terracotta);
    font-style:italic;
}

.contact-popup-card p{
    margin:23px 0 0;

    color:#756f67;

    font-size:13px;
    line-height:1.8;
}

.popup-button{
    margin-top:30px;

    min-height:53px;

    padding:0 23px;

    border:0;

    background:var(--charcoal);
    color:white;

    display:flex;
    align-items:center;

    gap:20px;

    font-size:9px;
    font-weight:700;
    letter-spacing:1.5px;

    transition:
        background .3s ease,
        transform .3s ease;
}

.popup-button:hover{
    background:var(--terracotta);
    transform:translateY(-2px);
}


/* =====================================================
   FOOTER
===================================================== */

.footer{
    padding-top:80px;

    background:#171815;
    color:white;

    overflow:hidden;
}

.footer-main{
    width:min(
        var(--container),
        calc(100% - 70px)
    );

    margin:auto;

    display:grid;

    grid-template-columns:
        .8fr
        1.2fr;

    gap:100px;
}

.footer-brand{
    max-width:330px;
}

.footer-mini-symbol{
    display:flex;

    gap:4px;

    margin-bottom:17px;
}

.footer-mini-symbol i{
    width:8px;
    height:8px;

    border-radius:50%;
}

.footer-mini-symbol i:nth-child(1){
    background:var(--terracotta);
}

.footer-mini-symbol i:nth-child(2){
    background:var(--mustard);
}

.footer-mini-symbol i:nth-child(3){
    background:var(--sage);
}

.footer-mini-symbol i:nth-child(4){
    background:white;
}

.footer-logo{
    font-family:var(--serif);
    font-size:30px;
    letter-spacing:2px;
    line-height:.9;
}

.footer-logo small{
    display:block;

    margin-top:7px;

    font-family:var(--sans);
    font-size:7px;
    font-weight:700;
    letter-spacing:5px;
}

.footer-brand > p{
    margin:20px 0;

    color:rgba(255,255,255,.48);

    font-size:14px;
}

.footer-issue{
    display:flex;

    gap:20px;

    color:rgba(255,255,255,.3);

    font-size:9px;
    font-weight:700;
    letter-spacing:1.5px;
}

.footer-nav{
    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:40px;
}

.footer-nav div{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.footer-nav span{
    margin-bottom:18px;

    color:var(--mustard);

    font-size:9px;
    font-weight:700;
    letter-spacing:2px;
}

.footer-nav a{
    margin-bottom:10px;

    color:rgba(255,255,255,.6);

    font-size:13px;

    transition:
        color .3s ease,
        transform .3s ease;
}

.footer-nav a:hover{
    color:white;
    transform:translateX(4px);
}

.footer-word{
    width:min(
        var(--container),
        calc(100% - 70px)
    );

    margin:80px auto 35px;

    color:rgba(255,255,255,.035);

    font-family:var(--serif);
    font-size:clamp(110px,20vw,300px);

    line-height:.7;

    white-space:nowrap;
}

.footer-bottom{
    width:min(
        var(--container),
        calc(100% - 70px)
    );

    min-height:75px;

    margin:auto;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:25px;

    border-top:1px solid rgba(255,255,255,.1);

    color:rgba(255,255,255,.3);

    font-size:9px;
    font-weight:600;
    letter-spacing:1px;
}

#backTop{
    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    border:1px solid rgba(255,255,255,.15);

    background:transparent;
    color:white;

    opacity:0;
    visibility:hidden;

    transform:translateY(10px);

    transition:
        opacity .3s ease,
        visibility .3s ease,
        transform .3s ease,
        background .3s ease;
}

#backTop.show{
    opacity:1;
    visibility:visible;

    transform:translateY(0);
}

#backTop:hover{
    background:var(--mustard);
    color:var(--charcoal);
}


/* =====================================================
   TABLET
===================================================== */

@media(max-width:1000px){

    .nav{
        gap:15px;
    }

    .nav a{
        font-size:10px;
    }

    .issue-btn{
        display:none;
    }

    .contact-info-grid{
        gap:60px;
    }

    .footer-main{
        gap:60px;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media(max-width:900px){

    .header-main{
        width:calc(100% - 36px);
    }

    .nav{
        display:none;
    }

    .hamburger{
        display:block;
    }

    .contact-page-inner{
        width:calc(100% - 36px);

        display:block;

        min-height:auto;
    }

    .contact-page-intro{
        padding:85px 0;
    }

    .contact-page-mark{
        display:none;
    }

    .contact-people{
        padding:85px 0;
    }

    .contact-people-grid{
        grid-template-columns:1fr;
    }

    .contact-info{
        padding:85px 0;
    }

    .contact-info-grid{
        grid-template-columns:1fr;

        gap:70px;
    }

    .contact-subjects{
        padding:55px 0 0;

        border-left:0;
        border-top:1px solid #cbc1b3;
    }

    .contact-message-section{
        padding:45px 0;
    }

    .form-two{
        grid-template-columns:1fr;
        gap:32px;
    }

}


/* =====================================================
   MOBILE 600
===================================================== */

@media(max-width:600px){

    .container,
    .header-main,
    .footer-main,
    .footer-word,
    .footer-bottom{
        width:calc(100% - 30px);
    }

    .header-top{
        padding:8px 15px;

        font-size:7px;
    }

    .header-top span:first-child{
        display:none;
    }

    .header-main{
        min-height:75px;
    }

    .logo-name{
        font-size:21px;
    }

    .search-btn{
        width:38px;
        height:38px;
    }

    .hamburger{
        width:38px;
        height:38px;
    }


    /* HERO */

    .contact-page-hero{
        min-height:auto;
    }

    .contact-page-inner{
        width:calc(100% - 30px);
    }

    .contact-page-intro{
        padding:70px 0 80px;
    }

    .contact-page-intro h1{
        font-size:clamp(
            51px,
            15vw,
            72px
        );

        letter-spacing:-2px;
    }

    .contact-page-intro p{
        margin-top:28px;

        font-size:14px;
    }

    .hero-orbit-one{
        width:370px;
        height:370px;

        right:-240px;
        top:60px;
    }

    .hero-orbit-two{
        width:260px;
        height:260px;

        right:-170px;
        top:115px;
    }


    /* PEOPLE */

    .contact-people{
        padding:70px 0;
    }

    .contact-heading-line{
        margin-bottom:30px;
    }

    .contact-person{
        min-height:430px;

        padding:30px;
    }

    .contact-person h2{
        font-size:54px;
    }

    .contact-person-top small{
        max-width:155px;

        font-size:7px;
    }

    .contact-email{
        font-size:10px;
    }


    /* INFO */

    .contact-info{
        padding:75px 0;
    }

    .contact-number{
        top:-25px;

        font-size:80px;
    }

    .volunteer-content h2{
        font-size:56px;
    }

    .subjects-list button{
        min-height:62px;

        font-size:16px;
    }


    /* FORM */

    .contact-message-section{
        padding:75px 0;
    }

    .message-heading{
        margin-bottom:45px;
    }

    .message-heading h2{
        font-size:55px;
    }

    .contact-form-bottom{
        flex-direction:column;
        align-items:stretch;
    }

    .contact-form-bottom button{
        width:100%;
    }


    /* CLOSING */

    .contact-closing{
        padding:75px 20px 90px;
    }

    .contact-closing h2{
        font-size:50px;

        letter-spacing:-2px;
    }


    /* POPUP */

    .contact-popup-card{
        padding:42px 28px 32px;
    }

    .contact-popup-card h2{
        font-size:47px;
    }

    .popup-button{
        width:100%;

        justify-content:center;
    }


    /* FOOTER */

    .footer{
        padding-top:65px;
    }

    .footer-main{
        grid-template-columns:1fr;

        gap:55px;
    }

    .footer-nav{
        grid-template-columns:
            repeat(2,1fr);

        gap:35px 20px;
    }

    .footer-word{
        margin-top:65px;

        font-size:105px;
    }

    .footer-bottom{
        min-height:100px;

        padding:20px 0;

        flex-direction:column;
        align-items:flex-start;
    }

    #backTop{
        align-self:flex-end;
    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media(max-width:380px){

    .contact-person{
        padding:25px;
    }

    .contact-person h2{
        font-size:48px;
    }

    .volunteer-content h2{
        font-size:49px;
    }

    .subjects-list button{
        font-size:14px;
    }

    .contact-closing h2{
        font-size:44px;
    }

    .footer-word{
        font-size:92px;
    }

}


/* =====================================================
   REDUCED MOTION
===================================================== */

@media(prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        transition-duration:.01ms !important;

        scroll-behavior:auto !important;
    }

}


/* =====================================================
   OVERFLOW SAFETY
===================================================== */

html,
body{
    max-width:100%;
    overflow-x:hidden;
}

.contact-page-hero,
.contact-people,
.contact-info,
.contact-message-section,
.contact-closing,
.footer{
    max-width:100%;
    overflow:hidden;
}