﻿/* =========================================================
   ANĀHATA - HOME
   =========================================================

   Design specifico di:

   /Default.aspx

   NON contiene il menu principale.
   Il menu ROOT è gestito da /Css/Menu.css.
   ========================================================= */


/* =========================================================
   HEADER HOME
   ========================================================= */

.site-header {
    min-height: clamp(76px, 7vw, 112px);
    display: grid;
    grid-template-columns: minmax(160px, 1fr) auto minmax(210px, 1fr);
    align-items: center;
    gap: 2rem;
}


/* =========================================================
   BRAND
   ========================================================= */

.brand {
    display: inline-flex;
    width: max-content;
    flex-direction: column;
    align-items: center;
    color: var(--ink);
    line-height: 1;
}

.brand-mark {
    font-family: var(--serif);
    font-size: 23px;
    margin-bottom: 7px;
}

.brand-name {
    font-family: var(--serif);
    font-size: clamp(14px, 1.15vw, 21px);
    letter-spacing: .28em;
    padding-left: .28em;
}

.brand-subtitle {
    margin-top: 8px;
    font-size: 7px;
    letter-spacing: .26em;
}


/* =========================================================
   HEADER ACTIONS
   ========================================================= */

.header-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: clamp(16px, 2vw, 30px);
}

    .header-actions .btn {
        min-width: clamp(150px, 11vw, 205px);
    }

.menu-button {
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: 25px;
    cursor: pointer;
}


/* =========================================================
   HERO
   ========================================================= */

.hero {
    display: grid;
    grid-template-columns: 80px minmax(300px, 1.05fr) minmax(520px, 2fr) 140px;
    min-height: clamp(520px, 41.5vw, 800px);
    position: relative;
}

.hero-side {
    padding-top: 10px;
}

.hero-side-line {
    width: 1px;
    height: clamp(160px, 15vw, 285px);
    background: var(--line);
}

.hero-side-words {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 9px;
    letter-spacing: .18em;
}

.hero-copy {
    z-index: 2;
    padding: clamp(38px, 4vw, 78px) clamp(20px, 3vw, 58px) 40px 0;
}

    .hero-copy h1 {
        font-family: var(--serif);
        font-weight: 400;
        color: var(--ink);
        margin: 0;
        font-size: clamp(50px, 4.1vw, 79px);
        line-height: .97;
        letter-spacing: -.035em;
    }

.eyebrow {
    margin: 1.5rem 0 2.2rem;
    font-size: clamp(15px, 1vw, 20px);
    letter-spacing: .08em;
}

.intro {
    font-size: clamp(13px, .88vw, 17px);
    line-height: 1.45;
    margin-bottom: 1.7rem;
}

.hero-button {
    padding-inline: clamp(22px, 2vw, 38px);
}

.hero-image {
    align-self: start;
    height: clamp(470px, 39vw, 750px);
    border: none;
}

.hero-note {
    padding: clamp(150px, 14vw, 270px) 0 0 35px;
    font-family: cursive;
    font-style: italic;
    color: var(--ink);
    transform: rotate(-7deg);
    line-height: 1.35;
    font-size: clamp(15px, 1vw, 20px);
}

    .hero-note span {
        display: block;
    }


/* =========================================================
   PRACTICES
   ========================================================= */

.practices {
    display: grid;
    grid-template-columns: minmax(150px, .85fr) minmax(190px, 1fr) minmax(150px, .85fr) minmax(190px, 1fr) minmax(150px, .85fr) minmax(190px, 1fr);
    gap: clamp(24px, 3vw, 58px);
    padding-top: clamp(36px, 3vw, 60px);
    padding-bottom: clamp(50px, 4.5vw, 90px);
}

.practice-card {
    padding-top: 20px;
}

.number {
    font-family: var(--serif);
    color: #8d918a;
    font-size: clamp(18px, 1.45vw, 28px);
    margin-bottom: 14px;
}

.practice-card h2 {
    font-family: var(--serif);
    font-weight: 400;
    color: var(--ink);
    font-size: clamp(20px, 1.55vw, 30px);
    margin: 0;
}

.practice-card h3 {
    font-family: var(--serif);
    font-weight: 400;
    color: var(--ink);
    font-size: clamp(24px, 1.7vw, 34px);
    margin: 0 0 1rem;
}

.practice-card p {
    font-size: clamp(12px, .8vw, 15px);
    line-height: 1.5;
    margin: 0 0 1.8rem;
}

.practice-card a,
.philosophy-copy a,
.guide-copy a {
    font-size: clamp(11px, .72vw, 14px);
}

    .practice-card a span,
    .philosophy-copy a span,
    .guide-copy a span,
    .view-events span,
    .newsletter span {
        margin-left: 12px;
    }

.portrait {
    aspect-ratio: 9 / 16;
    align-self: stretch;
}


/* =========================================================
   PHILOSOPHY
   ========================================================= */

.philosophy {
    display: grid;
    grid-template-columns: 1.1fr 1.35fr .8fr;
    min-height: clamp(420px, 30vw, 575px);
}

.philosophy-image {
    border: none;
}

.philosophy-copy {
    padding: clamp(42px, 4vw, 75px) clamp(42px, 5vw, 95px);
}

    .philosophy-copy h2 {
        font-family: var(--serif);
        color: var(--ink);
        font-weight: 400;
        font-size: clamp(40px, 3.2vw, 62px);
        line-height: .98;
        margin: 0;
        letter-spacing: -.03em;
    }

    .philosophy-copy > p:not(.section-label) {
        max-width: 670px;
        font-size: clamp(13px, .82vw, 16px);
        line-height: 1.45;
    }

.philosophy-art {
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding-right: var(--page-pad);
}

.leaf-line {
    font-family: var(--serif);
    font-size: clamp(90px, 9vw, 170px);
    font-weight: 100;
    transform: rotate(-25deg);
    opacity: .75;
}

.philosophy-words {
    display: flex;
    flex-direction: column;
    gap: 14px;
    letter-spacing: .2em;
    font-size: clamp(9px, .62vw, 12px);
}


/* =========================================================
   QUOTE
   ========================================================= */

.quote-band {
    min-height: clamp(290px, 23vw, 440px);
    background: var(--green);
    color: #f7f3eb;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    align-items: center;
    padding-inline: var(--page-pad);
    position: relative;
    overflow: hidden;
}

.quote-side {
    display: flex;
    flex-direction: column;
    gap: 10px;
    letter-spacing: .2em;
    font-size: 10px;
}

.quote-copy {
    text-align: center;
    z-index: 1;
}

    .quote-copy h2 {
        font-family: var(--serif);
        font-weight: 400;
        font-size: clamp(40px, 3.3vw, 64px);
        line-height: 1.05;
        margin: 0 0 1.3rem;
    }

    .quote-copy p {
        font-family: var(--serif);
        font-size: clamp(22px, 1.7vw, 34px);
        margin: 0;
    }

.quote-ring {
    width: clamp(260px, 23vw, 440px);
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, .17);
    border-radius: 50%;
    justify-self: end;
    transform: translate(15%, -28%);
    box-shadow: 18px 12px 0 -16px rgba(255, 255, 255, .18), -14px 18px 0 -13px rgba(255, 255, 255, .11);
}


/* =========================================================
   EVENTS
   ========================================================= */

.events {
    display: grid;
    grid-template-columns: 1.15fr repeat(3, 1fr) auto;
    gap: clamp(24px, 2.5vw, 48px);
    align-items: start;
    padding-top: clamp(40px, 3vw, 60px);
    padding-bottom: clamp(42px, 3.5vw, 68px);
}

.events-intro h2 {
    font-family: var(--serif);
    color: var(--ink);
    font-size: clamp(28px, 1.9vw, 37px);
    font-weight: 400;
    margin: 12px 0 1rem;
}

.events-intro p,
.event-card p {
    font-size: clamp(11px, .7vw, 14px);
    line-height: 1.45;
}

.event-card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "date image"
        ". title"
        ". meta";
    column-gap: 18px;
}

.date {
    grid-area: date;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--ink);
}

    .date strong {
        font-family: var(--serif);
        font-size: clamp(24px, 1.7vw, 34px);
        font-weight: 400;
        line-height: .9;
    }

    .date span {
        margin-top: 6px;
        font-size: 9px;
        letter-spacing: .13em;
    }

.event-image {
    grid-area: image;
    aspect-ratio: 2 / .82;
    border: none;
}

.event-card h3 {
    grid-area: title;
    font-size: clamp(11px, .75vw, 15px);
    font-weight: 400;
    margin: 12px 0 4px;
}

.event-card p {
    grid-area: meta;
    margin: 0;
    color: #666b66;
}

.view-events {
    padding-top: 14px;
    white-space: nowrap;
    font-size: clamp(10px, .67vw, 13px);
}


/* =========================================================
   GUIDE
   ========================================================= */

.guide {
    display: grid;
    grid-template-columns: 1.25fr 1.25fr .8fr .55fr;
    gap: clamp(32px, 3.8vw, 74px);
    align-items: center;
    padding-top: clamp(28px, 2.5vw, 50px);
    padding-bottom: clamp(38px, 3vw, 60px);
}

.guide-main-image {
    aspect-ratio: 1.55 / 1;
    border: none;
}

.guide-copy h2 {
    font-family: var(--serif);
    color: var(--ink);
    font-weight: 400;
    font-size: clamp(36px, 2.7vw, 52px);
    line-height: .98;
    margin: 0 0 1.4rem;
}

.guide-copy > p:not(.section-label) {
    font-size: clamp(12px, .78vw, 15px);
    line-height: 1.5;
}

.guide-side-image {
    aspect-ratio: 1 / 1;
    border: none;
}

.guide-note {
    font-family: cursive;
    font-style: italic;
    transform: rotate(-8deg);
    font-size: clamp(14px, .9vw, 18px);
}

    .guide-note span {
        display: block;
    }


/* =========================================================
   FOOTER HOME
   ========================================================= */

.site-footer {
    border-top: 1px solid rgba(39, 54, 46, .12);
}

.footer-top {
    min-height: 120px;
    display: grid;
    grid-template-columns: 1.15fr 2.2fr .7fr 1.2fr;
    align-items: center;
    gap: 30px;
}

.footer-nav {
    display: flex;
    align-items: center;
    gap: clamp(18px, 2vw, 36px);
    font-size: clamp(11px, .72vw, 14px);
    justify-content: center;
}

.socials {
    display: flex;
    justify-content: center;
    gap: 22px;
    font-size: 18px;
}

.newsletter {
    justify-self: end;
    width: 100%;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(39, 54, 46, .35);
    font-size: clamp(10px, .7vw, 14px);
    display: flex;
    justify-content: space-between;
}

.footer-bottom {
    min-height: 70px;
    border-top: 1px solid rgba(39, 54, 46, .12);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 10px;
    color: #6d716c;
}

    .footer-bottom div {
        display: flex;
        gap: 10px;
    }


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1200px) {

    .site-header {
        grid-template-columns: auto 1fr auto;
    }

    .hero {
        grid-template-columns: 50px minmax(260px, .95fr) minmax(420px, 1.6fr);
    }

    .hero-note {
        display: none;
    }

    .practices {
        grid-template-columns: repeat(3, 1fr);
    }

    .practice-card {
        order: initial;
    }

    .portrait {
        aspect-ratio: 4 / 5;
    }

    .philosophy {
        grid-template-columns: 1fr 1.25fr;
    }

    .philosophy-art {
        display: none;
    }

    .events {
        grid-template-columns: repeat(3, 1fr);
    }

    .events-intro,
    .view-events {
        grid-column: 1 / -1;
    }

    .view-events {
        justify-self: end;
    }

    .guide {
        grid-template-columns: 1fr 1fr;
    }

    .guide-note {
        display: none;
    }

    .footer-top {
        grid-template-columns: 1fr 2fr 1fr;
    }

    .newsletter {
        grid-column: 1 / -1;
        justify-self: stretch;
        max-width: 420px;
        justify-self: end;
    }
}


/* =========================================================
   SMALL TABLET / LARGE PHONE
   ========================================================= */

@media (max-width: 900px) {

    .site-header {
        grid-template-columns: 1fr auto;
    }

    .hero {
        display: grid;
        grid-template-columns: 1fr;
        padding-inline: var(--page-pad);
    }

    .hero-side {
        display: none;
    }

    .hero-copy {
        padding: 40px 0 32px;
    }

    .hero-image {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .desktop-only {
        display: none;
    }

    .practices {
        grid-template-columns: 1fr 1fr;
    }

    .practice-card {
        align-self: center;
    }

    .philosophy {
        grid-template-columns: 1fr;
    }

    .philosophy-image {
        aspect-ratio: 16 / 9;
    }

    .quote-band {
        grid-template-columns: 1fr;
        min-height: 320px;
    }

    .quote-side {
        display: none;
    }

    .quote-ring {
        position: absolute;
        right: -80px;
        top: -100px;
        opacity: .7;
    }

    .events {
        grid-template-columns: 1fr 1fr;
    }

    .events-intro,
    .view-events {
        grid-column: 1 / -1;
    }

    .event-card {
        grid-template-columns: auto 1fr;
    }

    .guide {
        grid-template-columns: 1fr;
    }

    .guide-main-image,
    .guide-side-image {
        aspect-ratio: 16 / 10;
    }

    .footer-top {
        grid-template-columns: 1fr;
        padding-block: 35px;
    }

    .footer-nav {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .socials {
        justify-content: flex-start;
    }

    .newsletter {
        justify-self: stretch;
    }
}


/* =========================================================
   PHONE
   ========================================================= */

@media (max-width: 640px) {

    .site-header {
        min-height: 78px;
    }

    .header-actions .btn {
        display: none;
    }

    .brand-name {
        font-size: 14px;
    }

    .hero-copy h1 {
        font-size: clamp(42px, 13vw, 64px);
    }

    .hero-copy .eyebrow {
        font-size: 14px;
    }

    .practices {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .practice-card {
        padding-top: 28px;
    }

    .portrait {
        aspect-ratio: 4 / 5;
    }

    .philosophy-copy {
        padding: 42px var(--page-pad);
    }

    .quote-copy h2 {
        font-size: 38px;
    }

    .quote-copy p {
        font-size: 23px;
    }

    .events {
        grid-template-columns: 1fr;
    }

    .events-intro,
    .view-events {
        grid-column: auto;
    }

    .event-card {
        margin-bottom: 18px;
    }

    .footer-bottom {
        align-items: flex-start;
        gap: 18px;
        padding-block: 22px;
        flex-direction: column;
    }
}
