@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600&family=Playfair+Display:wght@400;500&display=swap');

:root {
    --white: #fff;
    --warm: #faf8f4;
    --warm2: #f5f1ea;
    --ink: #262723;
    --muted: #74766f;
    --line: #e9e5dd;
    --clay: #ad6752;
    --sage: #768075;
    --max: 1380px
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: #fff;
    color: var(--ink);
    font-family: Manrope,Arial,sans-serif;
    font-weight: 300
}

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

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

.wrap {
    width: min(var(--max),calc(100% - 54px));
    margin: auto
}

.notice {
    min-height: 28px;
    padding: 6px 14px;
    background: #f8f2eb;
    text-align: center;
    font-size: 9px;
    letter-spacing: .08em
}

.header {
    background: #fff;
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 50
}

.nav {
    height: 76px;
    display: grid;
    grid-template-columns: 220px 1fr 220px;
    align-items: center
}

.logo {
    font-family: "Playfair Display",serif;
    font-size: 18px;
    letter-spacing: .11em
}

    .logo small {
        font: 7px Manrope,sans-serif;
        display: block;
        letter-spacing: .24em;
        margin-top: 2px;
        color: #777
    }

    .logo img {
        width: auto;
        height: 55px;
        object-fit: contain;
    }
.menu {
    display: flex;
    justify-content: center;
    gap: 30px;
    font-size: 10px;
    letter-spacing: .09em
}

.right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    font-size: 10px
}

.topbtn,
.darkbtn {
    background: var(--clay);
    color: #fff;
    padding: 11px 20px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .09em
}

.mobileBtn {
    display: none;
    background: none;
    border: 0;
    font-size: 24px
}

.mobileMenu {
    display: none;
    padding: 0 27px 20px
}

    .mobileMenu.open {
        display: grid;
        gap: 16px
    }

    .mobileMenu a {
        font-size: 12px;
        letter-spacing: .08em
    }


/* HERO */

.hero {
    min-height: 590px;
    position: relative;
    overflow: hidden;
    background: #d8d2c8
}

.heroImage {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(25,29,24,.45),rgba(25,29,24,.03)), url('../images/maple-hero.jpg') center/cover no-repeat
}

.heroCopy {
    position: relative;
    z-index: 2;
    min-height: 590px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
    max-width: 650px
}

.hero h1 {
    font: 400 clamp(45px,5vw,62px)/1.05 "Playfair Display",serif;
    margin: 0 0 14px
}

.hero p {
    font-size: 15px;
    line-height: 1.75;
    max-width: 570px
}

.actions {
    display: flex;
    gap: 10px;
    margin-top: 24px;
    flex-wrap: wrap
}

.btn {
    background: #fff;
    color: #333;
    padding: 13px 20px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em
}


/* BENEFITS */

.benefits {
    border-bottom: 1px solid var(--line)
}

.benefitGrid {
    min-height: 130px;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    align-items: center
}

.benefit {
    text-align: center;
    border-right: 1px solid var(--line);
    padding: 20px
}

    .benefit:last-child {
        border: 0
    }

    .benefit i {
        display: block;
        font-style: normal;
        font-size: 21px;
        color: #888;
        margin-bottom: 8px
    }

    .benefit b {
        display: block;
        font: 400 18px "Playfair Display",serif
    }

    .benefit span {
        font-size: 10px;
        color: #888
    }


/* GENERAL SECTIONS */

.section {
    padding: 95px 0
}

.center {
    text-align: center
}

.eyebrow {
    font-size: 9px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--clay);
    font-weight: 600
}

.title {
    font: 400 clamp(36px,4vw,46px) "Playfair Display",serif;
    margin: 13px 0
}

.lead {
    max-width: 680px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.9
}

.center .lead {
    margin: 0 auto
}


/* COLLECTION */

.collectionTop {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin: 55px 0 30px
}

    .collectionTop h2 {
        font: 400 38px "Playfair Display",serif;
        margin: 0
    }

    .collectionTop span {
        font-size: 10px;
        color: var(--muted)
    }

.products {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 25px
}

.productImage {
    height: 390px;
    background: #fbfaf7;
    display: grid;
    place-items: center;
    overflow: hidden
}

    .productImage img {
        width: 94%;
        height: 94%;
        object-fit: contain
    }

.product h3 {
    font-size: 13px;
    font-weight: 500;
    margin: 15px 0 5px
}

.product p {
    font-size: 10px;
    color: #81827d;
    margin: 0
}

.productLinks {
    display: flex;
    gap: 15px;
    margin-top: 11px;
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase
}

    .productLinks a {
        border-bottom: 1px solid #aaa;
        padding-bottom: 3px
    }


/* FIND YOUR SOUND */

.finder {
    background: var(--warm)
}

.two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 85px;
    align-items: center
}

.lifestyle {
    height: 570px;
    background: url('../images/maple-hero.jpg') center/cover no-repeat #e9e4db
}

.choices {
    margin: 28px 0
}

.choice {
    border-top: 1px solid #ddd8cf;
    padding: 17px 0;
    display: flex;
    justify-content: space-between;
    font-size: 11px
}

    .choice:last-child {
        border-bottom: 1px solid #ddd8cf
    }


/* MEDIA */

.media {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    margin-top: 42px
}

.videoBox {
    height: 500px;
    background: #f0ece5;
    position: relative;
    overflow: hidden
}

    .videoBox video,
    .videoBox iframe {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border: 0
    }

.videoFallback {
    height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    color: #aaa;
    font-size: 10px;
    letter-spacing: .1em
}

.gallery {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 20px
}

    .gallery img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        background: #f3f0e9
    }


/* VISIT */

.visit {
    background: var(--warm2)
}

.visitGrid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px
}

.mini {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 30px
}

    .mini div {
        background: #fff;
        padding: 18px;
        font-size: 10px
    }

    .mini b {
        display: block;
        font-size: 12px;
        margin-bottom: 4px
    }

.booking {
    background: #fff;
    padding: 35px;
    min-height: 500px
}

    .booking h3 {
        font: 400 29px "Playfair Display",serif;
        margin: 0 0 8px
    }

.ecwidSlot {
    min-height: 365px;
    border: 1px dashed #d5d1c9;
    margin-top: 24px;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 30px;
    color: #999;
    font: 10px/1.8 monospace
}


/* STORY */

.storyFacts {
    display: flex;
    justify-content: center;
    gap: 45px;
    margin-top: 38px;
    flex-wrap: wrap;
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase
}


/* FOOTER */

.footer {
    border-top: 1px solid var(--line);
    padding: 38px 0;
    font-size: 9px;
    color: #898a85
}

.foot {
    display: flex;
    justify-content: space-between
}


/* OTHER PAGES */

.pageHero {
    padding: 90px 0 60px;
    background: var(--warm);
    text-align: center
}

    .pageHero h1 {
        font: 400 clamp(42px,5vw,60px) "Playfair Display",serif;
        margin: 10px 0
    }

    .pageHero p {
        max-width: 650px;
        margin: auto;
        color: var(--muted);
        font-size: 13px;
        line-height: 1.8
    }

.contactCard {
    max-width: 760px;
    margin: auto;
    background: var(--warm);
    padding: 45px
}

    .contactCard p {
        color: var(--muted);
        line-height: 1.8
    }


/* TABLET */

@media(max-width:900px) {

    .wrap {
        width: calc(100% - 34px)
    }

    .nav {
        grid-template-columns: 1fr auto;
        height: 68px
    }

    .menu,
    .right span {
        display: none
    }

    .right {
        gap: 10px
    }

    .mobileBtn {
        display: block
    }

    .hero,
    .heroCopy {
        min-height: 520px
    }

    .benefitGrid {
        grid-template-columns: 1fr 1fr
    }

    .benefit {
        border-bottom: 1px solid var(--line)
    }

    .products {
        grid-template-columns: 1fr 1fr
    }

    .two,
    .visitGrid {
        grid-template-columns: 1fr;
        gap: 45px
    }

    .media {
        grid-template-columns: 1fr
    }

    .gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: none;
        height: 240px
    }

    .lifestyle {
        height: 460px
    }
}


/* MOBILE */

@media(max-width:560px) {

    .notice {
        font-size: 7px
    }

    .topbtn {
        padding: 9px 11px
    }

    .hero,
    .heroCopy {
        min-height: 500px
    }

        .hero h1 {
            font-size: 43px
        }

        .hero p {
            font-size: 12px
        }

    .benefitGrid {
        grid-template-columns: 1fr
    }

    .benefit {
        border-right: 0
    }

    .section {
        padding: 70px 0
    }

    .products {
        grid-template-columns: 1fr
    }

    .productImage {
        height: 420px
    }

    .collectionTop {
        display: block
    }

        .collectionTop span {
            display: block;
            margin-top: 9px
        }

    .lifestyle {
        height: 390px
    }

    .mini {
        grid-template-columns: 1fr
    }

    .booking {
        padding: 23px
    }

    .foot {
        display: block;
        line-height: 2
    }

    .gallery {
        height: 180px
    }

    .actions {
        align-items: flex-start
    }
}
/* ==================================
   MAPLE PREMIUM HEADER
================================== */

.header {
    background: rgba(255,255,255,.97);
    border-bottom: 1px solid #ece8e1;
}

.nav {
    height: 92px;
    display: grid;
    grid-template-columns: 290px 1fr 290px;
    align-items: center;
}

/* BRAND */

.logo {
    display: inline-block;
    width: fit-content;
    line-height: 1;
}

.logo-main {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: .13em;
    color: #292a26;
    white-space: nowrap;
}

.maple-mark {
    color: #ad6752;
    font-family: Arial, sans-serif;
    font-size: 18px;
    margin: 0 2px;
}

.logo-country {
    margin-top: 7px;
    font-family: Manrope, Arial, sans-serif;
    font-size: 8px;
    font-weight: 500;
    letter-spacing: .32em;
    color: #8a8983;
}

/* NAVIGATION */

.menu {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 38px;
}

    .menu a {
        position: relative;
        font-size: 10px;
        font-weight: 500;
        letter-spacing: .13em;
        color: #555650;
        transition: color .25s ease;
    }

        .menu a:hover {
            color: #ad6752;
        }

        .menu a::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -8px;
            width: 0;
            height: 1px;
            background: #ad6752;
            transition: width .25s ease;
        }

        .menu a:hover::after {
            width: 100%;
        }

/* RIGHT CTA */

.right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.demo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 0 23px;
    border: 1px solid #ad6752;
    border-radius: 2px;
    background: transparent;
    color: #8f503e;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .15em;
    transition: all .25s ease;
}

    .demo-btn:hover {
        background: #ad6752;
        color: #fff;
    }

/* MOBILE */

@media (max-width: 900px) {

    .nav {
        height: 78px;
        grid-template-columns: 1fr auto;
    }

    .logo-main {
        font-size: 18px;
    }

    .logo-country {
        font-size: 7px;
    }

    .menu {
        display: none;
    }

    .demo-btn {
        display: none;
    }

    .mobileBtn {
        display: block;
    }
}
/* ===== MAPLE TOP BRAND BAR ===== */

.notice {
    min-height: 38px;
    padding: 9px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #f7f2eb;
    color: #55514c;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .13em;
}

    .notice strong {
        color: #8f503e;
        font-weight: 600;
        letter-spacing: .16em;
    }

.notice-leaf {
    font-size: 16px;
    line-height: 1;
}

.notice-dot {
    color: #ad6752;
}


/* ===== LARGER REAL MAPLE LOGO ===== */

.logo {
    display: flex;
    align-items: center;
    width: fit-content;
}

    .logo img {
        width: auto;
        height: 62px;
        max-width: 240px;
        object-fit: contain;
    }


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

.header {
    background: #fff;
    border-bottom: 1px solid #ece8e1;
}

.nav {
    height: 94px;
    display: grid;
    grid-template-columns: 290px 1fr 290px;
    align-items: center;
}

.menu {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 38px;
}

    .menu a {
        position: relative;
        color: #555650;
        font-size: 10px;
        font-weight: 500;
        letter-spacing: .13em;
    }

        .menu a:hover {
            color: #ad6752;
        }

        .menu a::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -9px;
            width: 0;
            height: 1px;
            background: #ad6752;
            transition: width .25s ease;
        }

        .menu a:hover::after {
            width: 100%;
        }


/* ===== BOOK DEMO ===== */

.right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.demo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 0 24px;
    background: transparent;
    color: #925541;
    border: 1px solid #ad6752;
    border-radius: 2px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .15em;
    transition: .25s ease;
}

    .demo-btn:hover {
        background: #ad6752;
        color: #fff;
    }


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

@media(max-width:900px) {

    .notice {
        min-height: 34px;
        padding: 8px 10px;
        gap: 5px;
        font-size: 7px;
        letter-spacing: .07em;
    }

    .notice-leaf {
        font-size: 13px;
    }

    .nav {
        height: 78px;
        grid-template-columns: 1fr auto;
    }

    .logo img {
        height: 50px;
    }

    .menu,
    .demo-btn {
        display: none;
    }

    .mobileBtn {
        display: block;
    }
}
/* ===== FINAL HEADER REFINEMENT ===== */

/* TOP CANADA BRAND STRIP */
.notice {
    min-height: 42px;
    padding: 10px 20px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .14em;
    background: #f7f2eb;
    color: #55514c;
}

.notice-leaf {
    font-size: 17px;
}

.notice strong {
    color: #9b513e;
    font-weight: 600;
}


/* MAKE LEFT LOGO BIGGER */
.logo img {
    height: 72px;
    width: auto;
    max-width: 270px;
    object-fit: contain;
}


/* MAIN NAVIGATION HEIGHT */
.nav {
    height: 96px;
    grid-template-columns: 310px 1fr 310px;
}


/* SLIGHTLY MORE VISIBLE MENU */
.menu a {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .12em;
}


/* MORE REFINED DEMO BUTTON */
.demo-btn {
    min-height: 44px;
    padding: 0 26px;
    border: 1px solid #ad6752;
    border-radius: 2px;
    background: #fff;
    color: #925541;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .14em;
}

    .demo-btn:hover {
        background: #ad6752;
        color: #fff;
    }

.logo {
    display: flex;
    align-items: center;
    gap: 15px;
}

    .logo img {
        height: 64px;
        width: auto;
    }

.brand-name {
    display: flex;
    flex-direction: column;
}

    .brand-name strong {
        font-family: "Playfair Display",serif;
        font-size: 19px;
        font-weight: 500;
        letter-spacing: .12em;
        white-space: nowrap;
    }

    .brand-name span {
        margin-top: 6px;
        font-family: Manrope,sans-serif;
        font-size: 8px;
        letter-spacing: .25em;
        color: #8a8983;
    }
/* ==================================================
   PROFESSIONAL CONTACT PAGE
================================================== */

.contactProGrid {
    max-width: 1120px;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 100px;
    align-items: center;
}

.contactProIntro {
    max-width: 620px;
}

    .contactProIntro .title {
        margin-bottom: 25px;
    }

    .contactProIntro .lead {
        margin-bottom: 20px;
    }


/* SMALL TRUST ITEMS */

.contactTrust {
    margin-top: 42px;
    padding-top: 28px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 25px;
}

    .contactTrust div {
        display: flex;
        flex-direction: column;
        gap: 7px;
    }

    .contactTrust b {
        color: var(--clay);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: .13em;
    }

    .contactTrust span {
        color: var(--muted);
        font-size: 11px;
        line-height: 1.6;
    }


/* CONTACT CARD */

.contactProCard {
    background: var(--warm);
    border: 1px solid var(--line);
    padding: 48px 45px;
}

    .contactProCard h3 {
        margin: 12px 0 15px;
        font-family: "Playfair Display",serif;
        font-size: 36px;
        font-weight: 400;
    }

.contactCardIntro {
    margin: 0 0 30px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;
}


/* CONTACT INFORMATION */

.contactInfoRow {
    padding: 20px 0;
    border-top: 1px solid var(--line);
}

    .contactInfoRow span {
        display: block;
        margin-bottom: 7px;
        color: var(--clay);
        font-size: 8px;
        font-weight: 600;
        letter-spacing: .16em;
    }

    .contactInfoRow a,
    .contactInfoRow strong {
        color: var(--ink);
        font-family: "Playfair Display",serif;
        font-size: 21px;
        font-weight: 400;
    }

        .contactInfoRow a:hover {
            color: var(--clay);
        }


/* CONTACT BUTTON */

.contactFullBtn {
    display: flex;
    width: 100%;
    margin-top: 28px;
    justify-content: center;
}

.contactBookLink {
    display: block;
    margin-top: 22px;
    text-align: center;
    color: var(--clay);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .12em;
}


/* TORONTO ZEN MUSIC CONNECTION */

.contactSchool {
    max-width: 820px;
}

    .contactSchool .lead {
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
    }

.contactSchoolName {
    margin: 38px 0 0;
    color: var(--ink);
    font-family: "Playfair Display",serif;
    font-size: 17px;
    letter-spacing: .1em;
}

    .contactSchoolName span {
        display: inline-block;
        padding: 0 14px;
        color: var(--clay);
    }


/* MOBILE */

@media(max-width:900px) {

    .contactProGrid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .contactTrust {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .contactProCard {
        padding: 35px 25px;
    }

        .contactProCard h3 {
            font-size: 31px;
        }

    .contactSchoolName {
        font-size: 14px;
    }
}
.videoBox {
    display: flex;
    justify-content: center;
    align-items: center;
}

    .videoBox iframe {
        width: 100%;
        max-width: 360px;
        aspect-ratio: 9 / 16;
        border: 0;
        border-radius: 16px;
    }

/* Listen / video gallery */
.media {
    display: grid;
    grid-template-columns: 360px 360px;
    gap: 14px;
    justify-content: center;
    align-items: stretch;
    margin-top: 30px;
}

.videoBox {
    width: 360px;
    aspect-ratio: 9 / 16;
    overflow: hidden;
    border-radius: 12px;
    background: #111;
}

    .videoBox iframe {
        width: 100%;
        height: 100%;
        display: block;
        border: 0;
    }

.gallery {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 14px;
}

    .gallery img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 12px;
        display: block;
    }

@media (max-width: 800px) {
    .media {
        grid-template-columns: 1fr;
        max-width: 400px;
        margin: 30px auto 0;
    }

    .videoBox {
        width: 100%;
    }

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

        .gallery img {
            aspect-ratio: 1 / 1;
        }
}