/*
Theme Name: Kildorrery Neurodiversity Support Group
Theme URI: https://www.neurodiversitykdy.com
Author: Kildorrery Neurodiversity Support Group
Description: A warm, colourful and accessible community theme for the Kildorrery Neurodiversity Support Group.
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Text Domain: kildorrery-nd
*/

:root{
  --navy:#123b63;
  --blue:#2878b8;
  --teal:#27a69a;
  --yellow:#f5c94a;
  --pink:#ef6f8d;
  --purple:#7b5db7;
  --ink:#183044;
  --muted:#617080;
  --paper:#fff;
  --soft:#f5f8fb;
  --radius:22px;
  --shadow:0 12px 35px rgba(18,59,99,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.65}
a{color:var(--blue);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--purple)}
img{max-width:100%;height:auto}
.container{width:min(1160px,92%);margin:auto}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid #e8eef3}
.header-brand {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px 0 10px;
}

.header-brand .brand {
    display: block;
}

.header-brand .brand img {
    display: block;
    max-height: 110px;
    width: auto;
    max-width: min(600px, 90vw);
    object-fit: contain;
    margin: 0 auto;
}

.header-navigation {
    border-top: 1px solid #e8eef3;
}

.main-nav {
    display: flex;
    justify-content: center;
    width: 100%;
}

.main-nav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    list-style: none;
    padding: 12px 0;
    margin: 0;
    flex-wrap: wrap;
}

.main-nav a {
    text-decoration: none;
    font-weight: 700;
    color: var(--navy);
    padding: 8px 5px;
}

.main-nav a:hover {
    color: var(--purple);
}

.brand-text{font-size:1.25rem;font-weight:800;color:var(--navy);text-decoration:none}

.menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 10px;

    margin: 10px auto;
    padding: 12px 22px;

    border: 0;
    border-radius: 999px;

    background: var(--navy);
    color: #fff;

    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.menu-toggle:hover {
    background: var(--blue);
}

.menu-toggle:active {
    transform: scale(0.97);
}
.menu-icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;

    width: 20px;
    height: 20px;
}

.menu-icon span {
    display: block;

    width: 20px;
    height: 2px;

    background: currentColor;
    border-radius: 2px;

    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
}
.hero{padding:75px 0 55px;background:linear-gradient(135deg,#f5fbff 0%,#fff7fb 52%,#fff 100%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.03;margin:0 0 22px;color:var(--navy)}
.hero p{font-size:1.18rem;max-width:650px}
.hero-image{border-radius:28px;box-shadow:var(--shadow);overflow:hidden}
.hero-image img{display:block;width:100%}
.btn{display:inline-block;padding:13px 21px;border-radius:999px;background:var(--navy);color:#fff;text-decoration:none;font-weight:800;border:2px solid var(--navy);margin:7px 8px 7px 0}
.btn:hover{background:#fff;color:var(--navy)}
.btn.alt{background:var(--yellow);border-color:var(--yellow);color:#26323c}
.section{padding:75px 0}
.section.soft{background:var(--soft)}
.section-head{text-align:center;max-width:760px;margin:0 auto 38px}
.section-head h2{font-size:clamp(1.9rem,3vw,3rem);margin:0 0 10px;color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:30px;border-top:6px solid var(--blue)}
.card:nth-child(2){border-top-color:var(--pink)}
.card:nth-child(3){border-top-color:var(--teal)}
.card h3{font-size:1.45rem;margin-top:0;color:var(--navy)}
.card .icon{font-size:2.2rem}
.card a.more{font-weight:800}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}
.info-grid.reverse .info-copy{order:2}
.info-grid.reverse .info-image{order:1}
.round-image{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.round-image img{display:block;width:100%}
.callout{background:linear-gradient(135deg,var(--navy),#245f8d);color:#fff;border-radius:28px;padding:42px;box-shadow:var(--shadow)}
.callout h2{margin-top:0}
.donate{text-align:center;background:linear-gradient(135deg,#fff7cf,#ffe9f0)}
.donate-card{max-width:720px;margin:auto;background:#fff;border-radius:28px;padding:40px;box-shadow:var(--shadow)}
.donate-art{width:min(420px,100%);margin:0 auto 25px}
.page-hero{padding:55px 0;background:linear-gradient(135deg,#f4fbff,#fff6fa)}
.page-hero h1{font-size:clamp(2rem,4vw,3.6rem);margin:0;color:var(--navy)}
.content{padding:65px 0}
.content-wrap{max-width:850px;margin:auto}
.content-wrap h2,.content-wrap h3{color:var(--navy)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery img{width:100%;height:250px;object-fit:cover;border-radius:18px}
.contact-form{display:grid;gap:18px}
.contact-form label{font-weight:800}
.contact-form input,.contact-form textarea{width:100%;padding:13px 15px;border:2px solid #dce6ee;border-radius:12px;font:inherit}
.contact-form textarea{min-height:180px}
.contact-form input:focus,.contact-form textarea:focus{outline:3px solid rgba(40,120,184,.18);border-color:var(--blue)}
.site-footer{background:#102e49;color:#eaf3f9;padding:45px 0 25px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}
.site-footer a{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:30px;padding-top:20px;font-size:.9rem}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media screen and (max-width: 800px) {

    /* ---------- HEADER ---------- */

    .header-brand {
        padding: 12px 0 8px;
    }

    .header-brand .brand img {
        max-width: 90vw;
        max-height: 90px;
        width: auto;
    }

    .menu-toggle {
        display: block;
        margin: 10px auto;
    }

    .main-nav {
        display: none;
        width: 100%;
    }

    .main-nav.open {
        display: block;
    }

.main-nav ul {
    display: flex;

    flex-direction: column;
    align-items: stretch;

    width: 100%;

    gap: 4px;

    padding: 10px 0 15px;
    margin: 0;

    list-style: none;
}

    .main-nav li {
        width: 100%;
        text-align: center;
    }

  .main-nav a {
    display: block;

    width: 100%;

    padding: 13px 15px;

    border-radius: 12px;

    color: var(--navy);
    background: transparent;

    font-size: 1.05rem;
    font-weight: 700;

    text-decoration: none;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.main-nav a:hover,
.main-nav a:focus {
    background: var(--soft);
    color: var(--purple);
}


    /* ---------- HERO ---------- */

    .hero-grid {
        display: grid;
        grid-template-columns: 1fr !important;
        gap: 30px;
    }


    /* ---------- THREE SUPPORT CARDS ---------- */

    .cards {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100%;
        gap: 20px;
    }

    .cards .card {
        width: 100% !important;
        max-width: 100%;
    }


    /* ---------- INFORMATION SECTIONS ---------- */

    .info-grid {
        display: grid;
        grid-template-columns: 1fr !important;
        gap: 30px;
    }

    .info-grid.reverse .info-copy,
    .info-grid.reverse .info-image {
        order: initial;
    }


    /* ---------- FOOTER ---------- */

    .footer-grid {
        display: grid;
        grid-template-columns: 1fr !important;
        gap: 25px;
    }


    /* ---------- SPACING ---------- */

    .hero {
        padding: 45px 0 40px;
    }

    .section {
        padding: 55px 0;
    }

    .content {
        padding: 45px 0;
    }


    /* ---------- GALLERY ---------- */

    .gallery {
        grid-template-columns: 1fr 1fr;
    }
}


/* =========================================
   SMALL PHONES
   ========================================= */

@media screen and (max-width: 520px) {

    .cards {
        grid-template-columns: 1fr !important;
    }

    .card {
        width: 100% !important;
    }

    .gallery {
        grid-template-columns: 1fr;
    }

    .gallery img {
        height: 230px;
    }

    .callout,
    .donate-card {
        padding: 28px;
    }

}
.main-nav .donate-menu-item a {
    background: var(--yellow);
    color: #26323c;
}

.main-nav .donate-menu-item a:hover,
.main-nav .donate-menu-item a:focus {
    background: var(--pink);
    color: #fff;
}

