:root {
    --background: #fffefa;
    --foreground: #332623;
    --primary: #801d26;
    --primary-foreground: #fff;
    --border: #dfd4cd;
    --input: #d8ccc7;
    --ring: #801d26;
    --muted-foreground: #776561;
    --popover: #fffefa;
    --popover-foreground: #332623;
    --radius: .5rem;
    --font-sans: Arial, Helvetica, sans-serif
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 105px
}

body {
    margin: 0;
    background: #fffefa;
    color: #332623;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px
}

a, button, input {
    -webkit-tap-highlight-color: transparent
}

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

button {
    cursor: pointer;
    font: inherit
}

button:disabled {
    cursor: wait;
    opacity: .65
}

a, button {
    transition: color .2s, background .2s, transform .25s
}

a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 2px solid #9a3943;
    outline-offset: 5px
}

::selection {
    background: #ecd2cb
}

p {
    line-height: 1.8
}

h1, h2, h3, p {
    margin: 0
}

h1, h2, .photo-caption, .footer-top > p {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400
}

em {
    font-weight: 400;
    color: #902d35
}

h2 {
    font-size: clamp(38px, 4.2vw, 62px);
    line-height: 1.1;
    letter-spacing: -2px
}

.eyebrow {
    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 600;
    line-height: 1.6;
    color: #872d34;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 9px
}

.topline {
    padding: 11px 4.4%;
    background: #7b1e26;
    color: #fff1e9;
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    letter-spacing: .4px
}

.topline > span:last-child {
    display: flex;
    gap: 16px
}

.tiny-star {
    color: #e4bca4
}

header {
    position: sticky;
    top: 0;
    z-index: 30;
    background: #fffefaed;
    backdrop-filter: blur(18px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 4.4%;
    border-bottom: 1px solid #eae1d9;
    gap: 25px
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px
}

.brand img {
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    object-fit: contain;
    mix-blend-mode: multiply
}

.brand b {
    font-size: 23px;
    letter-spacing: 3px;
    color: #781e25
}

.brand small {
    font-size: 9px;
    line-height: 1.45;
    display: block;
    margin-top: 3px
}

.brand span {
    min-width: 127px
}

nav {
    display: flex;
    gap: 24px;
    font-size: 11px
}

nav a:hover {
    color: #aa4d4d
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 23px;
    background: #7f222b;
    color: white;
    padding: 19px 25px;
    font-size: 12px;
    border: 0;
    border-radius: 3px
}

.button:hover {
    background: #601821;
    transform: translateY(-2px)
}

.button.small {
    padding: 14px 17px;
    font-size: 10px;
    gap: 16px
}

.menu {
    display: none;
    background: none;
    border: 0
}

.hero {
    padding: 55px 4.4% 55px;
    display: grid;
    grid-template-columns:1.07fr 1fr;
    gap: 5%;
    max-width: 1600px;
    margin: auto
}

.hero-copy {
    padding: 19px 0 0
}

.dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #963a42;
    box-shadow: 0 0 0 4px #f5e7e3
}

.hero h1 {
    font-size: clamp(54px, 5.75vw, 88px);
    line-height: 1.04;
    letter-spacing: -3.7px
}

.hero-copy > p {
    max-width: 410px;
    font-size: 14px;
    margin-top: 25px;
    color: #6e5c55
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 31px
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: 12px;
    color: #7c2930;
    background: none;
    border: 0
}

.text-link:hover {
    color: #b14b54
}

.hero-bottom {
    border-top: 1px solid #e2d8d1;
    margin-top: 43px;
    padding-top: 22px;
    display: flex;
    align-items: center;
    gap: 13px;
    font-size: 11px;
    color: #78625b
}

.round-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f3e6df;
    display: grid;
    place-items: center;
    color: #8b3238
}

.hero-bottom strong {
    font-weight: 400;
    color: #3f302b
}

.hero-year {
    margin-left: auto;
    font-family: Georgia, serif;
    font-size: 35px;
    color: #81262f
}

.hero-year small {
    display: block;
    font-family: Arial, sans-serif;
    font-size: 7px;
    letter-spacing: 1px;
    margin-top: 4px
}

.hero-visual {
    position: relative;
    min-height: 580px;
    overflow: hidden;
    border-radius: 150px 5px 5px 5px;
    background: #e6d3c4;
    animation: arrive 1.3s ease both
}

.hero-photo {
    width: 100%;
    height: 100%;
    position: absolute;
    object-fit: cover;
    object-position: center 42%;
    transition: transform 1s
}

.hero-visual:hover .hero-photo {
    transform: scale(1.035)
}

.photo-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, #302119a8 100%)
}

.image-tag {
    position: absolute;
    right: 23px;
    top: 23px;
    padding: 9px 14px;
    background: #fff9edda;
    border-radius: 30px;
    font-size: 9px;
    letter-spacing: 1.5px
}

.photo-caption {
    position: absolute;
    bottom: 45px;
    left: 36px;
    right: 30px;
    color: #fff8ef;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    font-size: 48px;
    line-height: 1.05
}

.photo-caption em {
    color: #fff5eb
}

.circle-arrow {
    width: 56px;
    height: 56px;
    border: 1px solid #fff8;
    display: grid;
    place-items: center;
    border-radius: 50%
}

.photo-credit {
    position: absolute;
    bottom: 15px;
    right: 20px;
    font-size: 8px;
    color: #fff9
}

.values-ribbon {
    padding: 24px 4.4%;
    border-block: 1px solid #e8dcd2;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 10px;
    letter-spacing: 1.6px;
    color: #7b3c3d
}

.values-ribbon span:nth-child(even) {
    color: #b88c74
}

.section {
    max-width: 1500px;
    margin: auto;
    padding: 95px 7%
}

.intro {
    display: grid;
    grid-template-columns:1.1fr 1fr;
    gap: 50px 90px
}

.intro-right .large-copy {
    font-size: 22px;
    color: #3d302b;
    line-height: 1.45;
    margin-bottom: 22px
}

.intro-right > p {
    font-size: 14px;
    color: #776159;
    margin-bottom: 16px
}

.intro-right .text-link {
    margin-top: 12px
}

.principles {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns:repeat(3, 1fr);
    border-block: 1px solid #e4d9d1;
    margin-top: 8px
}

.principles article {
    padding: 32px 32px 32px 0
}

.principles article + article {
    border-left: 1px solid #e4d9d1;
    padding-left: 32px
}

.principle-top {
    display: flex;
    justify-content: space-between;
    color: #8a3037;
    align-items: center;
    margin-bottom: 24px
}

.principle-top span {
    font-size: 10px;
    color: #a99184
}

.principles h3 {
    font-family: Georgia, serif;
    font-size: 25px;
    font-weight: 400;
    margin-bottom: 11px
}

.principles p {
    color: #7b665b;
    font-size: 12px;
    max-width: 290px
}

.history {
    background: #78262f;
    color: #fff3e9;
    display: grid;
    grid-template-columns:1fr 1.2fr;
    gap: 8%;
    padding: 80px 9%;
    align-items: center
}

.history-number {
    font-family: Georgia, serif;
    font-size: clamp(95px, 13vw, 195px);
    font-style: italic;
    line-height: 1;
    border-bottom: 1px solid #ac6b6e;
    padding-bottom: 30px;
    letter-spacing: -8px
}

.history-number span {
    display: block;
    font-family: Arial, sans-serif;
    font-size: 9px;
    letter-spacing: 3px;
    font-style: normal;
    margin-top: 23px
}

.history h2 {
    font-size: 48px;
    letter-spacing: -1.5px
}

.history em {
    color: #e8baa5
}

.history .eyebrow {
    color: #e1b1a2
}

.history p:not(.eyebrow) {
    font-size: 13px;
    color: #ebd3ca;
    margin-top: 23px;
    max-width: 440px
}

.history p.history-note {
    font-size: 11px;
    color: #dfb4ac;
    margin-top: 15px
}

.light-link {
    display: flex;
    align-items: center;
    gap: 25px;
    font-size: 12px;
    margin-top: 26px
}

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 42px
}

.section-aside {
    color: #7b665b;
    font-size: 12px
}

.section-aside small {
    font-size: 10px
}

.editorial-grid {
    display: grid;
    grid-template-columns:repeat(3, 1fr);
    gap: 26px
}

.editorial-card {
    background: none;
    border: 0;
    text-align: left;
    min-width: 0
}

.editorial-art {
    height: 245px;
    background: #eadbd0;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding: 25px;
    transition: transform .4s
}

.editorial-card:hover .editorial-art {
    transform: translateY(-5px)
}

.card-0 .editorial-art {
    background: #ede5dc
}

.editorial-art img {
    position: absolute;
    width: 210px;
    opacity: .12;
    right: -40px;
    bottom: -30px;
    mix-blend-mode: multiply
}

.card-0 .editorial-art > span {
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 1.1;
    position: relative
}

.card-1 .editorial-art {
    background: #7a2932;
    color: #f8e3cd;
    justify-content: center
}

.art-number {
    font-family: Georgia, serif;
    font-size: 138px;
    letter-spacing: -14px;
    position: absolute;
    top: -10px;
    left: 30px;
    font-style: italic;
    color: #edc0aa
}

.art-caption {
    font-size: 10px;
    letter-spacing: 2px;
    line-height: 1.6;
    position: absolute;
    bottom: 25px;
    left: 28px
}

.card-2 .editorial-art {
    background: #f1ded2;
    justify-content: flex-end;
    color: #80313a
}

.art-heart {
    position: absolute;
    right: 30px;
    top: 32px
}

.article-meta {
    display: flex;
    justify-content: space-between;
    font-size: 8px;
    letter-spacing: .9px;
    color: #87343a;
    margin-top: 23px;
    gap: 10px
}

.article-meta span:last-child {
    color: #867168;
    letter-spacing: 0
}

.editorial-card h3 {
    font-family: Georgia, serif;
    font-size: 26px;
    font-weight: 400;
    line-height: 1.2;
    margin: 14px 0 21px
}

.read {
    border-top: 1px solid #ded3ca;
    padding-top: 16px;
    font-size: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #7f2931
}

.events {
    background: #f7f1e9;
    max-width: none;
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 10%;
    padding-inline: 9%
}

.events > div > p:not(.eyebrow) {
    max-width: 350px;
    font-size: 13px;
    color: #786055;
    margin-top: 24px
}

.event-panel {
    padding: 32px;
    background: #fffefa;
    border: 1px solid #e2d5c9;
    border-radius: 3px
}

.event-label {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 9px;
    letter-spacing: 1.5px;
    color: #81333a
}

.event-panel h3 {
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 1.15;
    font-weight: 400;
    margin-top: 25px
}

.events .event-panel > p {
    font-size: 12px;
    margin-top: 18px
}

.event-foot {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #e8dbd0;
    padding-top: 22px;
    margin-top: 30px;
    font-size: 10px;
    color: #7c383d
}

.event-foot > span:first-child {
    display: flex;
    gap: 8px;
    align-items: center
}

.membership {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 11%;
    padding-top: 105px;
    padding-bottom: 105px
}

.membership-copy > p:not(.eyebrow) {
    font-size: 13px;
    margin-top: 27px;
    color: #786055
}

.membership-detail {
    display: flex;
    gap: 16px;
    margin-top: 26px;
    max-width: 355px
}

.membership-detail > span {
    font-size: 10px;
    color: #a05a58;
    border: 1px solid #deccc1;
    border-radius: 50%;
    height: 28px;
    min-width: 28px;
    display: grid;
    place-items: center
}

.membership-detail p {
    font-size: 12px;
    color: #715b50
}

.membership-seal {
    display: flex;
    align-items: center;
    gap: 17px;
    margin-top: 40px;
    font-size: 12px;
    line-height: 1.7;
    color: #7f4b43
}

.membership-seal img {
    width: 76px;
    mix-blend-mode: multiply
}

.membership-seal strong {
    font-weight: 400;
    color: #3d2c26
}

.form-box {
    border: 1px solid #e5d8cf;
    padding: 36px;
    background: white;
    box-shadow: 0 18px 65px #62382a08;
    border-radius: 5px
}

.form-box h3 {
    font-family: Georgia, serif;
    font-size: 32px;
    font-weight: 400
}

.form-intro {
    color: #897268;
    font-size: 12px;
    margin-top: 7px;
    margin-bottom: 28px
}

.form-box label {
    display: block;
    font-size: 10px;
    color: #5b4037;
    margin-bottom: 18px
}

.form-box label span {
    color: #a25959
}

.form-box input,
.form-box select {
    display: block;
    width: 100%;
    padding: 13px 12px;
    border: 1px solid #e2d6ce;
    background: #fffcf8;
    border-radius: 2px;
    font: 12px Arial;
    margin-top: 8px;
    color: #392b25
}

.form-box input::placeholder {
    color: #9b8578
}

.form-row {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 16px
}

.consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-top: 5px
}

.consent label {
    font-size: 10px;
    line-height: 1.7;
    margin: 0;
    color: #7b665c
}

.consent button {
    margin-top: 2px
}

.submit {
    width: 100%;
    justify-content: space-between;
    margin-top: 17px
}

.form-note {
    text-align: center;
    font-size: 9px;
    color: #937d6e;
    margin-top: 12px
}

.form-error {
    font-size: 11px;
    color: #9d2639
}

.success {
    padding: 60px 0;
    color: #7e2931
}

.success h3 {
    margin: 25px 0 15px
}

.success p {
    font-size: 14px;
    margin-bottom: 30px
}

footer {
    padding: 42px 4.4% 20px;
    border-top: 1px solid #e1d5cc;
    background: #f7f1e9
}

.footer-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 38px
}

.footer-top > p {
    font-size: 28px;
    line-height: 1.2
}

.back-top {
    border: 1px solid #cfb8a9;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    display: grid;
    place-items: center;
    color: #832e36
}

.footer-bottom {
    border-top: 1px solid #dfd0c4;
    padding-top: 19px;
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    color: #8b7467
}

.skip {
    position: fixed;
    top: -100px;
    left: 20px;
    padding: 12px;
    background: white;
    z-index: 100
}

.skip:focus {
    top: 10px
}

.article-dialog {
    max-height: 85vh;
    overflow: auto;
    background: #fffefa;
    padding: 40px !important
}

.article-dialog .dialog-title {
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 1.15;
    font-weight: 400
}

.article-dialog > p:last-child {
    font-size: 14px
}

.mobile-nav {
    display: none
}

.hero-copy {
    animation: arrive .8s ease both
}

@keyframes arrive {
    from {
        opacity: 0;
        transform: translateY(20px)
    }
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

@media (min-width: 1600px) {
    .hero-visual {
        min-height: 680px
    }
}

@media (max-width: 1100px) {
    header nav {
        gap: 14px;
        font-size: 10px
    }

    .brand small {
        font-size: 8px
    }

    .brand img {
        width: 72px;
        height: 72px
    }

    .brand span {
        min-width: 110px
    }

    .hero {
        gap: 4%;
        padding-top: 35px
    }

    .hero h1 {
        font-size: 65px
    }

    .hero-visual {
        min-height: 540px
    }

    .hero-actions {
        gap: 15px
    }

    .hero-actions .button {
        padding: 17px;
        font-size: 10px
    }

    .hero-actions .text-link {
        font-size: 10px
    }

    .section {
        padding: 75px 6%
    }

    .intro {
        gap: 45px
    }

    .history {
        padding: 65px 6%;
        gap: 6%
    }

    .history h2 {
        font-size: 41px
    }

    .editorial-art {
        height: 220px
    }

    .membership {
        gap: 6%
    }

    .form-box {
        padding: 25px
    }

    .values-ribbon {
        font-size: 8px;
        letter-spacing: 1px
    }
}

@media (max-width: 800px) {
    header nav, .header-cta {
        display: none
    }

    .menu {
        display: block;
        color: #7f2931
    }

    .topline > span:last-child {
        display: none
    }

    .topline {
        justify-content: center
    }

    header {
        padding: 12px 5%
    }

    .brand b {
        font-size: 20px
    }

    .hero {
        grid-template-columns:1fr;
        padding: 35px 6% 30px;
        gap: 30px
    }

    .hero h1 {
        font-size: clamp(52px, 10vw, 78px);
        letter-spacing: -2.8px
    }

    .hero-copy > p {
        font-size: 13px;
        max-width: 460px
    }

    .hero-actions .button {
        font-size: 11px
    }

    .hero-actions .text-link {
        font-size: 11px
    }

    .hero-bottom {
        margin-top: 30px
    }

    .hero-visual {
        min-height: 540px;
        border-top-left-radius: 130px
    }

    .hero-photo {
        object-position: center 36%
    }

    .values-ribbon {
        flex-wrap: wrap;
        justify-content: center;
        font-size: 8px;
        gap: 17px
    }

    .values-ribbon span:last-child, .values-ribbon span:nth-last-child(2) {
        display: none
    }

    .intro {
        grid-template-columns:1fr;
        gap: 30px
    }

    .section {
        padding: 60px 6%
    }

    h2 {
        font-size: 44px
    }

    .principles {
        grid-template-columns:1fr;
        margin-top: 0
    }

    .principles article, .principles article + article {
        border-left: 0;
        padding: 25px 0;
        border-bottom: 1px solid #e4d9d1
    }

    .principles article:last-child {
        border-bottom: 0
    }

    .principle-top {
        margin-bottom: 15px
    }

    .principles p {
        max-width: none
    }

    .history {
        grid-template-columns:1fr;
        padding: 55px 6%;
        gap: 35px
    }

    .history-number {
        font-size: 120px;
        letter-spacing: -5px
    }

    .history h2 {
        font-size: 42px
    }

    .section-heading {
        align-items: flex-start;
        gap: 22px;
        flex-direction: column
    }

    .editorial-grid {
        grid-template-columns:1fr;
        gap: 35px
    }

    .editorial-art {
        height: 270px
    }

    .editorial-card h3 {
        font-size: 29px
    }

    .art-number {
        font-size: 170px
    }

    .events {
        grid-template-columns:1fr;
        gap: 30px
    }

    .membership {
        grid-template-columns:1fr;
        gap: 35px
    }

    .form-box {
        padding: 26px
    }

    .membership-copy h2 br:nth-child(2) {
        display: none
    }

    .footer-top {
        flex-wrap: wrap;
        gap: 28px
    }

    .footer-top > p {
        font-size: 23px
    }

    .footer-bottom {
        flex-direction: column;
        gap: 12px
    }

    .mobile-nav {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 103px;
        left: 0;
        right: 0;
        background: #fffefa;
        z-index: 40;
        padding: 20px 6%;
        box-shadow: 0 16px 25px #40282015;
        gap: 0
    }

    .mobile-nav a {
        padding: 16px 0;
        border-bottom: 1px solid #eaddd4;
        display: flex;
        justify-content: space-between
    }

    .eyebrow {
        font-size: 9px;
        letter-spacing: 1.6px
    }

    .hero-year {
        font-size: 31px
    }

    .hero-year small {
        font-size: 6px
    }

    .hero-bottom {
        gap: 10px
    }

    .photo-caption {
        font-size: 48px
    }

    .history p:not(.eyebrow) {
        max-width: none
    }
}

@media (max-width: 390px) {
    .hero h1 {
        font-size: 50px
    }

    .form-row {
        grid-template-columns:1fr;
        gap: 0
    }

    .hero-actions {
        flex-wrap: wrap
    }

    .hero-year small {
        max-width: 90px;
        line-height: 1.5
    }

    .hero-visual {
        min-height: 450px
    }

    .footer-top > p {
        font-size: 21px
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto
    }

    *, *::before, *::after {
        animation: none !important;
        transition: none !important
    }
}

/* Event editorial and dedicated membership page */
.events-expanded {
    max-width: none;
    background: #f5eee5;
    padding-inline: 7%
}

.event-showcase {
    display: grid;
    grid-template-columns:1fr 1.15fr;
    gap: 35px
}

.event-feature {
    background: #792630;
    color: #fff0e4;
    padding: 34px;
    position: relative;
    overflow: hidden;
    border-radius: 5px
}

.event-feature-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center
}

.event-feature .event-label {
    color: #ebc6b4
}

.event-status {
    font-size: 8px;
    display: flex;
    align-items: center;
    gap: 9px;
    letter-spacing: 1.5px
}

.event-status .dot {
    background: #ecc4a7;
    box-shadow: none
}

.event-feature > .eyebrow {
    color: #dfaa99;
    margin-top: 85px;
    position: relative
}

.event-feature h3 {
    font-family: Georgia, serif;
    font-size: 51px;
    font-weight: 400;
    line-height: 1.04;
    position: relative
}

.event-feature h3 em {
    color: #eabfa6
}

.event-feature > p:not(.eyebrow) {
    font-size: 12px;
    max-width: 310px;
    color: #ecd0c4;
    margin-top: 23px;
    position: relative
}

.event-feature-footer {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 10px;
    border-top: 1px solid #b27270;
    margin-top: 30px;
    padding-top: 23px;
    position: relative
}

.event-feature-footer > span:first-child {
    display: flex;
    gap: 9px;
    align-items: center
}

.event-orbit {
    position: absolute;
    right: 35px;
    top: 100px;
    width: 145px;
    height: 145px;
    display: grid;
    place-items: center;
    color: #dfb59e70
}

.orbit-ring {
    position: absolute;
    inset: 0;
    border: 1px solid #e2b79755;
    border-radius: 50%
}

.orbit-ring:after {
    content: '';
    position: absolute;
    top: 9px;
    left: 25px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #e4b394
}

.event-list {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.event-item {
    display: flex;
    align-items: center;
    text-align: left;
    gap: 20px;
    padding: 32px 6px;
    border: 0;
    border-bottom: 1px solid #d9c7b8;
    background: none
}

.event-item:first-child {
    border-top: 1px solid #d9c7b8
}

.event-index {
    font-family: Georgia, serif;
    font-size: 36px;
    color: #b48873;
    align-self: flex-start
}

.event-item-copy {
    flex: 1
}

.event-type {
    font-size: 8px;
    letter-spacing: 1.8px;
    color: #92464b
}

.event-item h3 {
    font-family: Georgia, serif;
    font-size: 29px;
    line-height: 1.2;
    font-weight: 400;
    margin: 11px 0
}

.event-item-status {
    font-size: 10px;
    color: #8a7568
}

.event-open {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    border: 1px solid #cbb3a2;
    border-radius: 50%;
    color: #81313a;
    flex-shrink: 0;
    transition: transform .3s, background .3s, color .3s
}

.event-item:hover .event-open {
    transform: rotate(45deg);
    background: #812b35;
    color: #fff
}

.event-item:hover {
    background: #fff9f055
}

.agenda-note {
    font-size: 10px;
    color: #8b7163;
    line-height: 1.7;
    margin-top: 23px
}

.event-dialog-details {
    background: #f6eee6;
    padding: 16px
}

.event-dialog-details p {
    display: flex;
    gap: 10px;
    align-items: center;
    font-size: 12px;
    margin: 8px 0
}

.join-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px
}

.join-banner p:not(.eyebrow) {
    font-size: 13px;
    color: #7e6557;
    margin-top: 24px
}

.join-banner > .button {
    flex-shrink: 0
}

.adhesion-page {
    background: linear-gradient(110deg, #faf4eb 0%, #fffefa 70%)
}

.adhesion-breadcrumb {
    display: flex;
    gap: 15px;
    font-size: 10px;
    color: #8b6c60;
    padding: 32px 7% 0
}

.dedicated-membership {
    padding-top: 55px
}

.dedicated-membership h1 {
    font-family: Georgia, serif;
    font-size: clamp(44px, 5vw, 72px);
    line-height: 1.07;
    letter-spacing: -2.5px;
    font-weight: 400
}

.dedicated-membership .membership-copy > p:not(.eyebrow) {
    max-width: 360px
}

.dedicated-membership .form-box {
    scroll-margin-top: 110px
}

.dedicated-membership .membership-detail strong {
    font-weight: 500;
    color: #672d2f
}

.floating-heart {
    height: 65px;
    width: 65px;
    display: grid;
    place-items: center;
    color: #8b3740;
    border: 1px solid #dec5b6;
    border-radius: 50%
}

.adhesion-events-link {
    margin-top: 30px
}

.motion-control {
    position: fixed;
    bottom: 17px;
    right: 18px;
    z-index: 45;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 13px;
    font-size: 9px;
    border: 1px solid #dfc9b9;
    border-radius: 30px;
    background: #fffaf1f5;
    color: #7e2c35;
    box-shadow: 0 4px 20px #51272112
}

.footer-bottom {
    padding-bottom: 28px
}

/* Motion remains optional; content is visible without JavaScript. */
.moving-ribbon {
    display: block;
    overflow: hidden;
    padding: 23px 0
}

.ribbon-track {
    display: flex;
    width: max-content
}

.ribbon-group {
    display: flex;
    align-items: center;
    gap: 42px;
    padding-right: 42px;
    flex-shrink: 0
}

.moving-ribbon .ribbon-group > span {
    display: flex;
    align-items: center;
    gap: 42px;
    white-space: nowrap;
    font-size: 10px;
    letter-spacing: 1.6px
}

.ribbon-group i {
    font-style: normal;
    color: #b58c74
}

.ribbon-track {
    animation: ribbon-slide 34s linear infinite
}

.moving-ribbon:hover .ribbon-track {
    animation-play-state: paused
}

.orbit-ring {
    animation: orbit-spin 18s linear infinite
}

.event-orbit > svg {
    animation: soft-float 6s ease-in-out infinite
}

.image-tag, .floating-heart {
    animation: soft-float 5.5s ease-in-out infinite
}

.dot {
    animation: soft-pulse 3s ease-in-out infinite
}

.circle-arrow {
    animation: soft-float 7s ease-in-out infinite
}

.hero-visual .hero-photo {
    animation: photo-drift 20s ease-in-out infinite alternate
}

.reveal-pending {
    opacity: 0;
    transform: translateY(24px)
}

.reveal-visible {
    animation: section-reveal .8s ease both
}

.editorial-card:nth-child(2) {
    animation-delay: .1s
}

.editorial-card:nth-child(3) {
    animation-delay: .2s
}

.button svg {
    transition: transform .25s
}

.button:hover svg {
    transform: translate(3px, -3px)
}

@keyframes ribbon-slide {
    to {
        transform: translateX(-50%)
    }
}

@keyframes orbit-spin {
    to {
        transform: rotate(360deg)
    }
}

@keyframes soft-float {
    0%, 100% {
        transform: translateY(0)
    }
    50% {
        transform: translateY(-9px)
    }
}

@keyframes soft-pulse {
    0%, 100% {
        opacity: 1
    }
    50% {
        opacity: .5
    }
}

@keyframes photo-drift {
    from {
        transform: scale(1)
    }
    to {
        transform: scale(1.045)
    }
}

@keyframes section-reveal {
    from {
        opacity: 0;
        transform: translateY(24px)
    }
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

html[data-motion=paused] *, html[data-motion=paused] *::before, html[data-motion=paused] *::after {
    animation-play-state: paused !important;
    transition: none !important
}

html[data-motion=paused] .reveal-pending, html[data-motion=paused] .reveal-visible {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important
}

html[data-motion=paused] {
    scroll-behavior: auto
}

@media (max-width: 800px) {
    .event-showcase {
        grid-template-columns:1fr;
        gap: 30px
    }

    .event-feature {
        padding: 27px
    }

    .event-feature h3 {
        font-size: 45px
    }

    .event-feature > .eyebrow {
        margin-top: 80px
    }

    .event-orbit {
        right: 25px;
        top: 85px;
        width: 120px;
        height: 120px
    }

    .event-item {
        gap: 14px;
        padding: 25px 0
    }

    .event-item h3 {
        font-size: 25px
    }

    .event-index {
        font-size: 29px
    }

    .event-open {
        width: 36px;
        height: 36px
    }

    .join-banner {
        flex-direction: column;
        align-items: flex-start
    }

    .join-banner > .button {
        max-width: 100%;
        font-size: 11px;
        padding-inline: 20px
    }

    .dedicated-membership {
        padding-top: 35px
    }

    .dedicated-membership h1 {
        font-size: 53px
    }

    .moving-ribbon .ribbon-group > span {
        display: flex !important;
        font-size: 9px
    }

    .ribbon-group {
        gap: 27px;
        padding-right: 27px
    }

    .ribbon-group span {
        gap: 27px !important
    }

    .motion-control {
        bottom: 10px;
        right: 10px;
        font-size: 8px
    }

    .event-feature-top {
        gap: 8px
    }

    .event-label {
        font-size: 8px
    }

    .event-status {
        font-size: 7px
    }

    .footer-bottom {
        padding-bottom: 36px
    }
}

@media (prefers-reduced-motion: reduce) {
    .reveal-pending, .reveal-visible {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important
    }

    .ribbon-track {
        transform: none !important
    }

    *, *::before, *::after {
        animation: none !important;
        transition: none !important
    }
}

/* Journal, photo stories and event posters */
.editorial-nav {
    display: flex;
    gap: 24px;
    font-size: 12px;
    color: #7c3037
}

.news-heading {
    padding-bottom: 40px;
    background: #f8f1e9;
    max-width: none
}

.news-heading h1, .article-title h1 {
    font: 400 clamp(48px, 6vw, 83px)/1.06 Georgia, serif;
    letter-spacing: -3px;
    max-width: 980px
}

.news-heading-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-top: 34px
}

.news-heading-bottom p {
    font-size: 14px;
    color: #7b6256
}

.news-heading-bottom > span {
    font-size: 9px;
    letter-spacing: 1.2px;
    line-height: 1.8;
    color: #8a6053
}

.news-list {
    padding-top: 55px
}

.news-story {
    display: grid;
    grid-template-columns:1.15fr 1fr;
    gap: 55px;
    padding: 38px 0;
    border-bottom: 1px solid #dfd0c4;
    align-items: center
}

.news-story-photo {
    position: relative;
    overflow: hidden;
    border-radius: 4px
}

.news-story-photo > img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    transition: transform .6s
}

.news-story:hover .news-story-photo > img {
    transform: scale(1.035)
}

.news-story-photo > span {
    position: absolute;
    bottom: 19px;
    left: 19px;
    background: #fff9edeb;
    padding: 10px 14px;
    border-radius: 30px;
    display: flex;
    gap: 9px;
    align-items: center;
    font-size: 10px;
    color: #7e3037
}

.news-story-copy h2 {
    font-size: 39px;
    letter-spacing: -1.2px
}

.news-story-copy p {
    font-size: 13px;
    color: #7d6559;
    margin: 22px 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.news-story-copy small {
    display: block;
    font-size: 9px;
    color: #8d766a;
    margin-top: 24px
}

.article-page {
    max-width: 1450px;
    margin: auto
}

.article-back {
    padding: 35px 7% 0
}

.article-title {
    padding: 50px 7% 40px
}

.article-title h1 {
    max-width: 1050px
}

.article-subtitle {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 35px;
    font-size: 10px;
    color: #8e7668
}

.article-subtitle > span:last-child {
    display: flex;
    align-items: center;
    gap: 9px
}

.article-cover {
    margin: 0 7%;
    position: relative
}

.article-cover > img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    border-radius: 5px
}

.article-cover > span {
    display: block;
    font-size: 9px;
    color: #947d6e;
    margin-top: 11px
}

.article-body {
    display: grid;
    grid-template-columns:1fr 2fr;
    gap: 55px;
    padding: 65px 9%
}

.article-body aside p {
    font: 23px/1.4 Georgia, serif;
    color: #8d4546
}

.article-lead {
    font: 23px/1.65 Georgia, serif;
    color: #4c3930
}

.editorial-disclaimer {
    font-size: 11px;
    line-height: 1.8;
    color: #8b7468;
    margin-top: 30px;
    border-left: 2px solid #d6b7a1;
    padding-left: 20px
}

.article-gallery-section {
    padding: 25px 7% 65px
}

.photo-gallery {
    display: grid;
    grid-template-columns:1.4fr 1fr;
    gap: 18px
}

.photo-gallery > button {
    position: relative;
    border: 0;
    padding: 0;
    overflow: hidden;
    text-align: left;
    border-radius: 4px;
    background: #eaded1;
    min-height: 235px
}

.photo-gallery > button:first-child {
    grid-row: span 2
}

.photo-gallery img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s
}

.photo-gallery button:hover img {
    transform: scale(1.045)
}

.gallery-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 23px;
    gap: 15px;
    color: white;
    font-size: 11px;
    background: linear-gradient(transparent 40%, #27191499)
}

.gallery-overlay svg {
    flex-shrink: 0
}

.photo-lightbox {
    width: calc(100vw - 32px) !important;
    max-width: 1080px !important;
    padding: 15px !important;
    background: #fffaf3;
    gap: 12px !important;
    max-height: 94dvh;
    overflow: auto
}

.lightbox-image {
    width: 100%;
    height: min(70dvh, 700px);
    object-fit: contain;
    background: #f1e9df;
    border-radius: 3px
}

.lightbox-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 6px
}

.lightbox-bar > button {
    border: 1px solid #dac7b6;
    background: #fffaf3;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: #7c2c34
}

.lightbox-bar > div {
    text-align: center
}

.lightbox-bar strong {
    font-weight: 400;
    font-size: 12px;
    display: block
}

.lightbox-bar span {
    font-size: 9px;
    color: #8a6e61;
    display: block;
    margin-top: 6px
}

.photo-lightbox > [data-slot=dialog-close] {
    background: #fffaf3;
    opacity: 1;
    padding: 9px;
    top: 23px;
    right: 23px;
    border-radius: 50%;
    box-shadow: 0 2px 10px #0002
}

.article-end {
    margin: 0 7%;
    padding: 30px 0 60px;
    border-top: 1px solid #e3d1c2;
    display: flex;
    justify-content: space-between;
    gap: 25px
}

.event-poster-grid {
    display: grid;
    grid-template-columns:repeat(3, 1fr);
    gap: 26px
}

.event-poster-card {
    text-align: left;
    border: 0;
    background: none;
    padding: 0;
    min-width: 0
}

.event-poster {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 560px;
    background: #772b35;
    color: #f8e9d8;
    padding: 25px 25px 22px;
    border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 14px 28px #50272214;
    transition: transform .4s, box-shadow .4s
}

.event-poster-card:hover .event-poster {
    transform: translateY(-7px);
    box-shadow: 0 22px 35px #50272225
}

.poster-brand {
    display: flex;
    align-items: center;
    gap: 12px
}

.poster-brand img {
    width: 51px;
    height: 51px;
    object-fit: contain;
    background: #fffdf8;
    border-radius: 50%
}

.poster-brand > span {
    font-size: 7px;
    letter-spacing: 1.1px;
    line-height: 1.7
}

.poster-heading {
    margin-top: 27px
}

.poster-category {
    font-size: 9px;
    letter-spacing: 2px;
    color: #e9bd9f
}

.poster-heading h3 {
    font: 400 clamp(28px, 2.5vw, 38px)/1.08 Georgia, serif;
    margin-top: 14px;
    min-height: 83px;
    letter-spacing: -.7px
}

.poster-rule {
    display: block;
    width: 40px;
    height: 1px;
    background: #d4a27e;
    margin-top: 19px
}

.poster-heading p {
    font-size: 11px;
    margin-top: 13px;
    color: #e6cab7
}

.poster-photo {
    height: 160px;
    margin: 25px -25px 0;
    overflow: hidden
}

.poster-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.poster-bottom {
    display: flex;
    flex-direction: column;
    margin-top: 21px;
    gap: 8px
}

.poster-bottom strong {
    font-size: 12px;
    letter-spacing: 1.5px;
    font-weight: 500
}

.poster-bottom > span {
    font-size: 9px;
    opacity: .8
}

.poster-bottom small {
    font-size: 6px;
    letter-spacing: 1px;
    opacity: .7;
    margin-top: 9px
}

.poster-theme-1 {
    background: #e9d9c4;
    color: #56372d
}

.poster-theme-1 .poster-category, .poster-theme-1 .poster-heading p {
    color: #8a5143
}

.poster-theme-2 {
    background: #3a3b34;
    color: #f5ebdb
}

.poster-theme-2 .poster-category {
    color: #d4c3a3
}

.poster-card-foot {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 0;
    font-size: 10px;
    color: #80323b;
    line-height: 1.5;
    min-height: calc(4.8em + 40px);
}
.event-poster-dialog {
    width: calc(100vw - 32px) !important;
    max-width: 900px !important;
    grid-template-columns:1fr 1fr !important;
    align-items: center;
    padding: 30px !important;
    gap: 35px !important
}

.event-poster-dialog .event-poster {
    min-height: 560px
}

.poster-dialog-copy > p {
    font-size: 12px;
    line-height: 1.8;
    margin-top: 18px
}

.poster-dialog-copy .dialog-title {
    font-size: 30px
}

.poster-dialog-copy .event-dialog-details {
    margin-top: 18px
}

.poster-dialog-copy .eyebrow {
    margin-top: 12px
}

.event-poster-dialog .poster-heading h3 {
    font-size: 35px
}

@media (max-width: 1000px) {
    .event-poster-grid {
        gap: 16px
    }

    .event-poster {
        padding-inline: 20px
    }

    .poster-photo {
        margin-inline: -20px
    }

    .poster-heading h3 {
        font-size: 30px
    }

    .news-story {
        gap: 32px
    }

    .news-story-copy h2 {
        font-size: 33px
    }
}

@media (max-width: 800px) {
    .editorial-header {
        flex-wrap: wrap;
        gap: 15px
    }

    .editorial-nav {
        gap: 17px;
        font-size: 10px
    }

    .editorial-home {
        display: none
    }

    .news-heading h1, .article-title h1 {
        font-size: 48px;
        letter-spacing: -2px
    }

    .news-heading-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px
    }

    .news-story {
        grid-template-columns:1fr;
        gap: 25px;
        padding: 0 0 32px;
        margin-bottom: 32px
    }

    .news-story-photo > img {
        height: 290px
    }

    .news-story-copy h2 {
        font-size: 34px
    }

    .article-back {
        padding-top: 25px
    }

    .article-title {
        padding-top: 35px
    }

    .article-cover > img {
        height: 330px
    }

    .article-body {
        grid-template-columns:1fr;
        padding: 40px 7%;
        gap: 25px
    }

    .article-body aside {
        display: none
    }

    .article-lead {
        font-size: 21px
    }

    .article-subtitle {
        flex-wrap: wrap
    }

    .photo-gallery {
        grid-template-columns:1fr 1fr;
        gap: 10px
    }

    .photo-gallery > button {
        min-height: 185px
    }

    .photo-gallery > button:first-child {
        grid-row: auto;
        grid-column: 1/-1;
        min-height: 300px
    }

    .gallery-overlay {
        padding: 14px;
        font-size: 9px
    }

    .gallery-overlay svg {
        width: 15px
    }

    .event-poster-grid {
        grid-template-columns:1fr;
        gap: 30px;
        max-width: 460px;
        margin: auto
    }

    .event-poster {
        min-height: 590px;
        padding: 28px
    }

    .poster-heading h3 {
        font-size: 42px;
        min-height: 90px
    }

    .poster-brand > span {
        font-size: 8px
    }

    .poster-photo {
        height: 195px;
        margin-inline: -28px
    }

    .poster-heading p {
        font-size: 13px
    }

    .poster-bottom small {
        font-size: 7px
    }

    .event-poster-dialog {
        grid-template-columns:1fr !important;
        padding: 24px !important;
        gap: 30px !important;
        align-items: start
    }

    .event-poster-dialog .event-poster {
        min-height: 540px
    }

    .event-poster-dialog .poster-heading h3 {
        font-size: 35px
    }

    .event-poster-dialog .poster-photo {
        height: 160px
    }

    .event-poster-dialog .poster-dialog-copy {
        padding-bottom: 15px
    }

    .article-end {
        flex-wrap: wrap
    }

    .photo-lightbox {
        padding: 10px !important
    }

    .lightbox-bar strong {
        font-size: 10px
    }

    .lightbox-bar > button {
        width: 36px;
        height: 36px
    }
}

/* Refined reading typography; the editorial headline typefaces are preserved. */
@font-face {
    font-family: Manrope;
    src: url('/fonts/manrope-400.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap
}

@font-face {
    font-family: Manrope;
    src: url('/fonts/manrope-500.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap
}

@font-face {
    font-family: Manrope;
    src: url('/fonts/manrope-600.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap
}

@font-face {
    font-family: Manrope;
    src: url('/fonts/manrope-700.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap
}

:root {
    --font-sans: Manrope, Arial, sans-serif
}

body {
    font-family: Manrope, Arial, sans-serif;
    font-size: 16px
}

button, input, textarea, select {
    font-family: inherit
}

.brand b {
    font-family: Manrope, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 2.2px
}

.brand small {
    font-size: 10px;
    line-height: 1.55;
    font-weight: 500;
    letter-spacing: 0
}

.brand span {
    min-width: 147px
}

header {
    gap: 20px
}

header nav {
    gap: 22px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0
}

header nav a {
    position: relative;
    padding: 9px 0
}

header nav a:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1px;
    height: 1px;
    background: #9b444a;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s
}

header nav a:hover:after {
    transform: scaleX(1)
}

.header-cta.button.small {
    font-size: 12px;
    font-weight: 600;
    padding: 15px 18px;
    gap: 12px
}

.editorial-nav {
    font-size: 13px;
    font-weight: 600
}

.topline {
    font-size: 11px
}

.eyebrow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.4px
}

.button {
    font-size: 13px;
    font-weight: 600
}

.text-link {
    font-size: 13px;
    font-weight: 600
}

.hero-copy > p, .intro-right > p, .membership-copy > p:not(.eyebrow), .join-banner p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.85
}

.principles p, .history p:not(.eyebrow), .news-story-copy p, .section-aside, .membership-detail p, .poster-dialog-copy > p {
    font-size: 14px;
    line-height: 1.85
}

.article-meta {
    font-size: 10px;
    letter-spacing: .6px
}

.read, .poster-card-foot {
    font-size: 12px;
    line-height: 1.6
}

.form-box label {
    font-size: 12px;
    font-weight: 500
}

.form-box input,
.form-box select {
    font-family: Manrope, Arial, sans-serif;
    font-size: 14px;
    padding: 14px
}

.form-intro {
    font-size: 14px
}

.consent label {
    font-size: 11px
}

.form-note, .agenda-note, .editorial-disclaimer {
    font-size: 11px
}

.hero-year small, .history-number span {
    font-family: Manrope, Arial, sans-serif
}

.home-news-photo {
    height: 270px;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background: #e8dacf
}

.home-news-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s
}

.editorial-card:hover .home-news-photo img {
    transform: scale(1.045)
}

.home-news-photo > span {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background: #fff9f0ed;
    color: #78313b;
    font-size: 10px;
    font-weight: 600;
    padding: 9px 13px;
    border-radius: 30px
}

.event-card-with-registration {
    display: flex;
    flex-direction: column;
    min-width: 0
}

.event-card-with-registration > .event-poster-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    flex: 1
}

.event-card-with-registration > .event-poster-card > .event-poster {
    flex: 1
}

.event-signup-button {
    width: 100%;
    justify-content: space-between;
    margin-top: 5px
}

.event-signup-note {
    font-size: 10px;
    text-align: center;
    color: #8a6e60;
    margin-top: 10px
}

.event-registration-dialog {
    max-width: 600px !important;
    padding: 35px !important;
    max-height: 90dvh;
    overflow: auto;
    background: #fffefa
}

.event-registration-dialog .dialog-title {
    font: 400 35px/1.15 Georgia, serif;
    letter-spacing: -1px;
    padding-right: 20px
}

.event-registration-dialog > [data-slot=dialog-description] {
    font-family: Manrope, Arial, sans-serif;
    font-size: 13px;
    color: #7b665b
}

.selected-event {
    display: flex;
    align-items: center;
    gap: 14px;
    border: 1px solid #e4d2c3;
    background: #f7eee6;
    padding: 16px;
    margin: 4px 0 24px;
    color: #78313b
}

.selected-event > svg {
    flex-shrink: 0
}

.selected-event strong {
    font-size: 13px;
    display: block;
    font-weight: 600
}

.selected-event span {
    font-size: 10px;
    display: block;
    margin-top: 5px;
    color: #896b5d
}

.event-registration-form label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #624137;
    margin-bottom: 17px
}

.event-registration-form label > span {
    color: #9b3b46
}

.event-registration-form label > small {
    font-size: 10px;
    font-weight: 400
}

.event-registration-form input {
    display: block;
    width: 100%;
    font: 14px Manrope, Arial, sans-serif;
    padding: 13px 12px;
    margin-top: 8px;
    background: #fffcf8;
    border: 1px solid #decec1;
    border-radius: 3px;
    color: #3c2923
}

.event-registration-form input::placeholder {
    color: #9d8678
}

.event-registration-form .consent label {
    font-size: 11px;
    font-weight: 400;
    margin-bottom: 0;
    line-height: 1.7
}

.event-registration-form .form-error {
    font-size: 12px;
    margin-top: 12px
}

.registration-success {
    color: #7d3039;
    padding: 25px 0
}

.registration-success h3 {
    font: 30px/1.2 Georgia, serif;
    margin: 24px 0
}

.registration-success p {
    font-size: 14px;
    margin-top: 16px;
    color: #76594e
}

.event-poster .poster-bottom small {
    font-family: Manrope, Arial, sans-serif
}

@media (max-width: 1200px) {
    header nav {
        font-size: 12px;
        gap: 14px
    }

    .brand span {
        min-width: 130px
    }

    .brand small {
        font-size: 9px
    }

    .header-cta.button.small {
        font-size: 11px;
        padding: 13px
    }

    .hero-actions .button {
        font-size: 12px
    }

    .hero-actions {
        gap: 17px
    }
}

@media (min-width: 801px) and (max-width: 1050px) {
    header nav {
        gap: 10px;
        font-size: 11px
    }

    .brand img {
        width: 72px;
        height: 72px
    }

    .brand span {
        min-width: 115px
    }

    .brand small {
        font-size: 8px
    }

    header {
        gap: 12px;
        padding-inline: 3%
    }

    .header-cta.button.small {
        font-size: 10px;
        gap: 8px;
        padding: 12px 10px
    }
}

@media (max-width: 800px) {
    .mobile-nav {
        font-size: 14px;
        font-weight: 500
    }

    header {
        gap: 12px
    }

    header .brand img {
        width: 96px;
        height: 96px
    }

    .brand small {
        font-size: 9px
    }

    .topline {
        font-size: 10px
    }

    .eyebrow {
        font-size: 10px
    }

    .hero-copy > p, .intro-right > p {
        font-size: 14px
    }

    .hero-actions .button, .hero-actions .text-link {
        font-size: 12px
    }

    .editorial-nav {
        font-size: 12px;
        gap: 16px
    }

    .home-news-photo {
        height: 285px
    }

    .event-registration-dialog {
        padding: 26px !important
    }

    .event-registration-dialog .dialog-title {
        font-size: 30px
    }

    .event-registration-form .form-row {
        gap: 12px
    }

    .read {
        font-size: 12px
    }

    .section-aside {
        font-size: 13px
    }

    .event-signup-button {
        font-size: 14px
    }

    .history p:not(.eyebrow) {
        font-size: 14px
    }
}

/* Association news and scientific blog remain separate editorial surfaces. */
.association-news-feature {
    display: grid;
    grid-template-columns:1.1fr 1fr;
    gap: 48px;
    align-items: center;
    padding: 0 0 20px
}

.association-news-feature .home-news-photo {
    height: 365px
}

.association-news-copy h3 {
    font: 400 38px/1.15 Georgia, serif;
    letter-spacing: -1px
}

.association-news-copy > p:not(.eyebrow) {
    font-size: 14px;
    color: #7d6255;
    line-height: 1.85;
    margin: 22px 0
}

.association-news-copy .read {
    margin-top: 25px
}

.scientific-blog {
    max-width: none;
    padding-inline: 7%;
    background: #fffefa;
    border-bottom: 1px solid #e6d8ca
}

.scientific-blog-grid {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 35px
}

.scientific-blog .home-news-photo {
    height: 315px
}

.scientific-blog .editorial-card h3 {
    font-size: 33px;
    max-width: 470px
}

.blog-heading {
    background: #f2e8dd
}

.blog-discussion {
    margin-top: 35px;
    border-top: 1px solid #e5d4c7;
    padding-top: 30px
}

.blog-discussion h2 {
    font-size: 31px;
    letter-spacing: -.6px
}

.blog-discussion ul {
    list-style: disc;
    padding-left: 20px;
    margin-top: 22px
}

.blog-discussion li {
    font-size: 15px;
    color: #775e50;
    line-height: 1.9;
    margin-bottom: 16px
}

.association-news .agenda-note {
    margin-top: 20px
}

@media (max-width: 800px) {
    .association-news-feature {
        grid-template-columns:1fr;
        gap: 26px
    }

    .association-news-feature .home-news-photo {
        height: 285px
    }

    .association-news-copy h3 {
        font-size: 33px
    }

    .scientific-blog-grid {
        grid-template-columns:1fr;
        gap: 35px
    }

    .scientific-blog .home-news-photo {
        height: 280px
    }

    .scientific-blog .editorial-card h3 {
        font-size: 29px
    }

    .editorial-nav {
        flex-wrap: wrap;
        gap: 13px
    }

    .blog-discussion h2 {
        font-size: 28px
    }
}
