@font-face {
    font-family:'DM Sans';
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url('../fonts/dm-sans-latin.woff2') format('woff2')
}
@font-face {
    font-family:'DM Sans';
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url('../fonts/dm-sans-latin-ext.woff2') format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
@font-face {
    font-family:'Manrope';
    font-style:normal;
    font-weight:400 800;
    font-display:swap;
    src:url('../fonts/manrope-latin.woff2') format('woff2')
}
@font-face {
    font-family:'Manrope';
    font-style:normal;
    font-weight:400 800;
    font-display:swap;
    src:url('../fonts/manrope-latin-ext.woff2') format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}
:root {
    --ink:#202b25;
    --deep:#1c3c32;
    --green:#2f6c55;
    --sage:#e5eee4;
    --cream:#faf7ef;
    --paper:#fffdf8;
    --line:#e4e5db;
    --muted:#66736a;
    --accent:#c96747;
    --apricot:#f3d1b7;
    --font:'DM Sans',sans-serif;
    --display:'Manrope',sans-serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body.uppt-nova {
    min-width:0;
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font:400 16px/1.65 var(--font);
    -webkit-font-smoothing:antialiased
}
body.uppt-nova a {
    color:inherit;
    text-decoration:none
}
body.uppt-nova a:hover {
    color:var(--accent)
}
body.uppt-nova img {
    max-width:100%;
    height:auto
}
body.uppt-nova button,body.uppt-nova input,body.uppt-nova select,body.uppt-nova textarea {
    font:inherit
}
body.uppt-nova button {
    cursor:pointer
}
body.uppt-nova :focus-visible {
    outline:3px solid var(--accent);
    outline-offset:3px
}
body.uppt-nova [hidden] {
    display:none!important
}
.site-width {
    width:min(100% - 64px,1240px);
    margin-inline:auto
}
.skip-link {
    position:absolute;
    z-index:200;
    top:-100px;
    left:16px;
    padding:10px 16px;
    background:#fff
}
.skip-link:focus {
    top:12px
}
.visually-hidden {
    position:absolute!important;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
/* Navigation is sourced from Joomla's Main Menu module. */
.site-header {
    position:relative;
    z-index:50;
    background:#fffdf9;
    border-bottom:1px solid var(--line)
}
.header-inner {
    min-height:104px;
    display:flex;
    align-items:center;
    gap:30px
}
.brand {
    display:flex;
    align-items:center;
    gap:8px;
    flex:none;
    min-width:224px
}
.brand__turtle {
    width:96px;
    height:46px;
    object-fit:contain
}
.brand__text {
    display:flex;
    flex-direction:column;
    border-left:1px solid #cad2c7;
    padding-left:12px
}
.brand__wordmark {
    display:block;
    width:82px;
    height:23px;
    object-fit:contain
}
.brand__text small {
    margin-top:5px;
    font:600 9px/1.2 var(--font);
    letter-spacing:.025em;
    color:#728075
}
.primary-nav {
    margin-left:auto
}
.primary-nav .mod-menu {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:2px;
    margin:0;
    padding:0;
    list-style:none
}
.primary-nav .mod-menu>li {
    position:relative;
    display:flex;
    align-items:center;
    white-space:nowrap
}
.primary-nav .mod-menu>li>a {
    display:block;
    padding:17px 8px;
    font:700 12px/1.2 var(--display);
    letter-spacing:-.035em
}
.primary-nav .mod-menu>li:last-child>a {
    margin-left:9px;
    padding:12px 16px;
    border-radius:99px;
    background:var(--deep);
    color:#fff
}
.primary-nav .mod-menu>li:last-child>a:hover {
    background:var(--green);
    color:#fff
}
.primary-nav .mod-menu>li.active>a:not(:last-child),.primary-nav .mod-menu>li:hover>a {
    color:var(--accent)
}
.primary-nav .submenu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:28px;
    margin-left:-5px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--green);
    font-size:16px
}
.primary-nav .submenu-toggle span {
    display:block;
    transform:translateY(-3px)
}
.primary-nav .mod-menu__sub {
    display:none;
    position:absolute;
    z-index:100;
    top:100%;
    left:0;
    width:max-content;
    min-width:230px;
    max-width:390px;
    max-height:min(75vh,540px);
    overflow:auto;
    margin:0;
    padding:12px!important;
    list-style:none;
    background:#fff;
    box-shadow:0 24px 55px #17372a24;
    border:1px solid var(--line);
    border-radius:14px
}
.primary-nav .mod-menu__sub a {
    display:block;
    padding:10px 13px;
    border-radius:7px;
    white-space:normal;
    font:650 13px/1.4 var(--font)
}
.primary-nav .mod-menu__sub a:hover,.primary-nav .mod-menu__sub .active>a {
    background:var(--sage);
    color:var(--deep)
}
.primary-nav .parent:hover>.mod-menu__sub,.primary-nav .parent:focus-within>.mod-menu__sub,.primary-nav .parent.submenu-open>.mod-menu__sub {
    display:block
}
.menu-toggle {
    display:none
}
/* Home page modules: all wording, links, and photography live in CMS custom modules. */
.hero-zone {
    overflow:hidden;
    background:#e8eee4
}
.hero-zone .mod-custom {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    max-width:1600px;
    min-height:622px;
    margin:auto
}
.hero-copy {
    align-self:center;
    min-width:0;
    padding:80px 50px 86px max(32px,calc((min(100vw,1600px) - 1240px)/2));
}
.kicker,.eyebrow {
    display:inline-block;
    color:var(--green);
    font:800 11px/1.3 var(--display);
    letter-spacing:.14em;
    text-transform:uppercase
}
.hero-copy h1 {
    margin:22px 0 24px;
    font:800 clamp(52px,5.8vw,86px)/1.02 var(--display);
    letter-spacing:-.082em;
    color:var(--deep)
}
.hero-copy h1 em {
    color:var(--accent);
    font:400 italic .96em/1 Georgia,serif;
    letter-spacing:-.05em
}
.hero-copy>p {
    max-width:470px;
    margin:0;
    color:#47594b;
    font-size:18px;
    line-height:1.65
}
.hero-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:17px;
    margin-top:35px
}
.button-primary {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:23px;
    padding:15px 22px;
    border-radius:99px;
    background:var(--deep);
    color:#fff!important;
    font:800 13px var(--display);
    box-shadow:0 7px 15px #14372722
}
.button-primary:hover {
    background:var(--green);
    color:#fff!important
}
.button-secondary {
    display:inline-flex;
    align-items:center;
    gap:15px;
    border-bottom:1px solid currentColor;
    color:var(--deep)!important;
    font:800 13px var(--display)
}
.hero-note {
    display:block;
    margin-top:55px;
    color:#728075;
    font:700 11px var(--display);
    letter-spacing:.1em;
    text-transform:uppercase
}
.hero-image {
    position:relative;
    min-height:622px
}
.hero-image>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover
}
.hero-image__caption {
    position:absolute;
    right:30px;
    bottom:30px;
    max-width:245px;
    padding:13px 17px;
    border-radius:12px;
    background:#fffdf9e8;
    backdrop-filter:blur(8px);
    color:var(--deep);
    font:700 11px/1.45 var(--display)
}
.home-topics {
    padding-top:103px;
    padding-bottom:110px
}
.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:25px;
    margin-bottom:34px
}
.section-heading h2 {
    max-width:660px;
    margin:11px 0 0;
    color:var(--deep);
    font:800 clamp(38px,4.4vw,60px)/1.13 var(--display);
    letter-spacing:-.07em
}
.section-heading p {
    max-width:300px;
    margin:0 0 7px;
    color:var(--muted);
    font-size:15px
}
.topic-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:17px
}
.topic-card {
    display:flex;
    flex-direction:column;
    min-height:295px;
    padding:28px 29px;
    border-radius:18px;
    background:#e8ede4;
    transition:transform .2s,box-shadow .2s
}
.topic-card:nth-child(2) {
    background:#f1dfd1
}
.topic-card:nth-child(3) {
    background:#ede9db
}
.topic-card:hover {
    transform:translateY(-4px);
    box-shadow:0 20px 32px #193d2b18;
    color:var(--deep)!important
}
.topic-card__number {
    font:800 11px var(--display);
    letter-spacing:.1em;
    color:#5a7761
}
.topic-card__symbol {
    align-self:end;
    margin-top:-18px;
    color:#6f9d77;
    font:400 58px/.9 Georgia,serif
}
.topic-card:nth-child(2) .topic-card__symbol {
    color:#cc8466
}
.topic-card:nth-child(3) .topic-card__symbol {
    color:#ae9d71
}
.topic-card h3 {
    margin:auto 0 9px;
    color:var(--deep);
    font:800 clamp(28px,2.8vw,38px)/1.14 var(--display);
    letter-spacing:-.055em
}
.topic-card p {
    margin:0;
    max-width:265px;
    color:#4f6154;
    font-size:14px
}
.topic-card__link {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:25px;
    padding-top:12px;
    border-top:1px solid #2b55422e;
    color:var(--deep);
    font:800 12px var(--display)
}
.topic-card__link span {
    font-size:20px;
    font-weight:400
}
.home-reading {
    padding-bottom:3px
}
.home-reading .section-heading {
    margin-bottom:30px
}
.is-home .component-wrap {
    padding-bottom:100px
}
.home-cta {
    background:var(--deep);
    color:#fff
}
.home-cta .cta-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding-block:66px
}
.home-cta h2 {
    margin:11px 0 0;
    color:#fff;
    font:800 clamp(38px,4vw,56px)/1.1 var(--display);
    letter-spacing:-.065em
}
.home-cta p {
    max-width:480px;
    margin:12px 0 0;
    color:#d8e5d9
}
.home-cta .kicker {
    color:#c9e2cb
}
.home-cta .button-primary {
    background:var(--apricot);
    color:var(--deep)!important;
    white-space:nowrap
}
.home-cta .button-primary:hover {
    background:#fbe4d1
}
/* Inner pages and CMS content. */
.crumbs {
    padding-top:24px
}
.mod-breadcrumbs__wrapper .breadcrumb {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
    background:transparent;
    color:#748077;
    font:600 12px var(--font)
}
.mod-breadcrumbs__here {
    display:none
}
.breadcrumb-item+.breadcrumb-item:before {
    content:' / ';
    padding-right:7px;
    color:#a5aea4
}
.component-wrap {
    padding-top:40px;
    padding-bottom:105px;
    min-height:45vh
}
.is-home .component-wrap {
    padding-top:0
}
.component-wrap h1,.component-wrap h2,.component-wrap h3 {
    color:var(--deep)
}
.component-wrap .page-header h1,.category-heading h1,.recipe-library__hero h1,.recipe-category-heading h1,.contact-hero h1 {
    max-width:1000px;
    margin:12px 0 19px;
    font:800 clamp(43px,5.6vw,76px)/1.09 var(--display);
    letter-spacing:-.075em
}
.category-heading,.recipe-library__hero,.recipe-category-heading,.contact-hero {
    padding-bottom:34px;
    border-bottom:1px solid var(--line)
}
.category-heading.has-image {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,37%);
    align-items:center;
    gap:35px
}
.category-heading__image img {
    display:block;
    width:100%;
    height:290px;
    object-fit:cover;
    border-radius:16px
}
.category-description {
    max-width:760px;
    color:#56685b;
    font-size:17px
}
.category-description p {
    margin:0 0 10px
}
.category-grid,.recipe-categories {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    margin:33px 0 70px
}
.category-tile,.recipe-category-tile {
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:218px;
    overflow:hidden;
    padding:25px 27px;
    border-radius:15px;
    background:#e8eee5;
    transition:transform .2s,box-shadow .2s
}
.category-tile:nth-child(3n+2),.recipe-category-tile:nth-child(3n+2) {
    background:#f3e2d5
}
.category-tile:nth-child(3n),.recipe-category-tile:nth-child(3n) {
    background:#ece8da
}
.category-tile:hover,.recipe-category-tile:hover {
    transform:translateY(-3px);
    box-shadow:0 16px 28px #1c3c3218;
    color:var(--deep)!important
}
.category-tile__top,.recipe-category-tile__top {
    display:flex;
    justify-content:space-between;
    color:#68816d;
    font:800 11px var(--display);
    letter-spacing:.08em
}
.category-tile strong,.recipe-category-tile strong {
    margin-top:auto;
    color:var(--deep);
    font:800 26px/1.15 var(--display);
    letter-spacing:-.055em
}
.category-tile small,.recipe-category-tile small {
    margin-top:9px;
    color:#617264;
    font:700 12px var(--font)
}
.category-items {
    margin-top:45px
}
.category-items h2 {
    font:800 27px var(--display);
    letter-spacing:-.045em
}
.schedule-page__heading {
    max-width:930px;
    margin-bottom:42px
}
.schedule-page__heading.has-image {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,37%);
    align-items:center;
    gap:35px;
    max-width:none
}
.schedule-page__heading-image {
    display:block;
    width:100%;
    height:270px;
    border-radius:16px;
    object-fit:cover
}
@media (max-width:760px) {
    .schedule-page__heading.has-image {
        grid-template-columns:1fr
    }
    .schedule-page__heading-image {
        height:210px
    }
}
.schedule-page__heading h1,.schedule-detail__header h1 {
    margin:12px 0 14px;
    color:var(--deep);
    font:800 clamp(46px,5.5vw,76px)/1.08 var(--display);
    letter-spacing:-.075em
}
.schedule-page__heading .category-description {
    margin:0;
    color:#627267;
    font-size:18px
}
.schedule-feature {
    display:grid;
    grid-template-columns:minmax(300px,.86fr) minmax(0,1.35fr);
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:24px;
    background:var(--paper)
}
.schedule-feature__intro {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
    padding:46px 42px;
    background:var(--deep);
    color:#eef5ea
}
.schedule-feature__eyebrow,.schedule-feature__program-head>span {
    color:#c4d6c6;
    font:800 11px var(--display);
    letter-spacing:.14em
}
.component-wrap .schedule-feature__intro h2 {
    margin:27px 0 23px;
    color:#fff;
    font:800 clamp(29px,3vw,42px)/1.14 var(--display);
    letter-spacing:-.065em
}
body.uppt-nova .schedule-feature__image {
    display:block;
    width:100%;
    max-height:245px;
    aspect-ratio:3 / 2;
    margin:0 0 23px;
    object-fit:cover;
    border-radius:12px
}
.schedule-feature__copy {
    max-width:410px;
    color:#e2ebe1;
    font-size:15px;
    line-height:1.65
}
.schedule-feature__copy p {
    margin:0 0 15px
}
.schedule-feature__copy p:first-child {
    color:#f3c9a8;
    font-weight:700;
    letter-spacing:.025em
}
.schedule-feature__link {
    display:inline-flex;
    align-items:center;
    gap:30px;
    margin-top:auto;
    padding:15px 0 4px;
    border-bottom:1px solid #9dbda6;
    color:#fff!important;
    font:800 13px var(--display)
}
.schedule-feature__link:hover {
    color:#f3c9a8!important
}
.schedule-feature__program {
    min-width:0;
    padding:27px 35px 30px
}
.schedule-feature__program-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:0 3px 17px
}
.schedule-feature__program-head>span {
    color:var(--green)
}
.schedule-feature__program-head strong {
    color:#79877c;
    font:700 12px var(--font)
}
.schedule-slot {
    border-top:1px solid var(--line)
}
.schedule-slot.is-next {
    margin:8px 0 11px;
    padding:0 17px;
    border:1px solid #e8c5ac;
    border-radius:15px;
    background:#fbecdd
}
.schedule-slot summary {
    display:grid;
    grid-template-columns:133px minmax(0,1fr) 22px;
    gap:16px;
    align-items:start;
    padding:19px 3px;
    cursor:pointer;
    list-style:none
}
.schedule-slot summary::-webkit-details-marker {
    display:none
}
.schedule-slot summary time {
    padding-top:24px;
    color:var(--green);
    font:800 12px/1.4 var(--display)
}
.schedule-slot__title {
    display:flex;
    flex-direction:column;
    min-width:0
}
.schedule-slot__title small {
    margin-bottom:5px;
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.1em
}
.schedule-slot__title strong {
    color:var(--deep);
    font:800 clamp(17px,1.65vw,22px)/1.25 var(--display);
    letter-spacing:-.04em
}
.schedule-slot__title>span {
    margin-top:5px;
    color:#677369;
    font-size:13px;
    line-height:1.4
}
.schedule-slot__toggle {
    color:var(--green);
    font:500 24px/1 var(--display)
}
.schedule-slot[open] .schedule-slot__toggle {
    transform:rotate(45deg)
}
.schedule-slot__body {
    padding:0 26px 23px 152px;
    color:#4e5e52;
    font-size:14px;
    line-height:1.58
}
.schedule-slot__body p {
    margin:0 0 10px
}
.schedule-slot__body a {
    color:var(--green)!important;
    font-weight:800;
    text-decoration:underline!important;
    text-underline-offset:3px
}
.schedule-feature__fallback {
    color:#4e5e52;
    font-size:15px
}
.schedule-archive {
    margin-top:70px
}
.schedule-archive__heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:25px;
    margin-bottom:24px
}
.component-wrap .schedule-archive__heading h2 {
    margin:8px 0 0;
    color:var(--deep);
    font:800 clamp(28px,3vw,38px)/1.2 var(--display);
    letter-spacing:-.055em
}
.schedule-archive__list {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px
}
.schedule-archive__item {
    display:grid;
    grid-template-columns:57px minmax(0,1fr) 20px;
    gap:17px;
    align-items:center;
    min-height:99px;
    padding:19px 22px;
    border:1px solid var(--line);
    border-radius:13px;
    background:var(--paper);
    transition:border-color .2s,transform .2s
}
.schedule-archive__item.has-image {
    grid-template-columns:57px 68px minmax(0,1fr) 20px
}
body.uppt-nova .schedule-archive__image {
    width:68px;
    height:58px;
    object-fit:cover;
    border-radius:7px
}
.schedule-archive__item:hover {
    border-color:#9dbca5;
    transform:translateY(-2px)
}
.schedule-archive__year {
    padding:6px 5px;
    border-radius:5px;
    background:var(--sage);
    color:var(--green);
    text-align:center;
    font:800 11px var(--display)
}
.schedule-archive__main {
    display:flex;
    flex-direction:column;
    min-width:0
}
.schedule-archive__main strong {
    color:var(--deep);
    font:800 18px/1.3 var(--display);
    letter-spacing:-.04em
}
.schedule-archive__main small {
    display:-webkit-box;
    overflow:hidden;
    margin-top:5px;
    color:#66776b;
    font-size:12px;
    line-height:1.4;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:1
}
.schedule-archive__arrow {
    color:var(--green);
    font-size:19px
}
.schedule-detail {
    max-width:1080px;
    margin:auto
}
.schedule-detail__header {
    padding-bottom:25px;
    border-bottom:1px solid var(--line)
}
.schedule-detail__header h1 {
    max-width:900px
}
.schedule-detail__back,.schedule-detail__footer-link {
    color:var(--green)!important;
    font:800 13px var(--display)
}
.schedule-detail__intro {
    margin:35px 0 25px;
    padding:28px 32px;
    border-radius:17px;
    background:var(--sage);
    color:var(--deep);
    font-size:16px
}
.schedule-detail__intro p {
    margin:0 0 9px
}
.schedule-detail__intro p:last-child {
    margin-bottom:0
}
.schedule-detail__illustration {
    margin:0 0 30px
}
body.uppt-nova .schedule-detail__illustration img {
    display:block;
    width:100%;
    height:320px;
    object-fit:cover;
    border-radius:14px
}
.schedule-detail__illustration figcaption {
    margin-top:8px;
    color:var(--muted);
    font-size:12px
}
.schedule-detail__note {
    margin:0 0 27px;
    color:#66766b;
    font-size:13px
}
.schedule-detail__note p {
    margin:0 0 7px
}
.schedule-detail__note hr {
    display:none
}
.schedule-detail__episodes {
    display:grid;
    gap:16px
}
.schedule-detail__episode {
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    gap:30px;
    scroll-margin-top:30px;
    padding:32px;
    border:1px solid var(--line);
    border-radius:17px;
    background:var(--paper)
}
.schedule-detail__episode.is-next {
    border-color:#e8c5ac;
    background:#fbecdd
}
.schedule-detail__episode-date span {
    display:block;
    margin-bottom:9px;
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.11em
}
.schedule-detail__episode-date time {
    color:var(--deep);
    font:800 22px/1.3 var(--display);
    letter-spacing:-.045em
}
.schedule-detail__episode-copy {
    color:#435649;
    font-size:15px;
    line-height:1.7
}
.schedule-detail__episode-copy p {
    margin:0 0 12px
}
.schedule-detail__episode-copy p:last-child {
    margin-bottom:0
}
.schedule-detail__episode-copy a,.schedule-detail__note a {
    color:var(--green)!important;
    text-decoration:underline!important;
    text-underline-offset:3px
}
.schedule-detail__footer-link {
    display:inline-block;
    margin-top:30px
}
.article-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px 3px;
    border-top:1px solid var(--line)
}
.article-row:last-child {
    border-bottom:1px solid var(--line)
}
.article-row a {
    display:flex;
    align-items:center;
    gap:16px;
    font:750 clamp(18px,2vw,23px)/1.3 var(--display);
    letter-spacing:-.035em
}
body.uppt-nova .article-row__image {
    flex:none;
    width:96px;
    height:72px;
    object-fit:cover;
    border-radius:9px
}
.article-row__meta {
    flex:none;
    color:#79887c;
    font-size:12px
}
.article-row__arrow {
    margin-left:12px;
    color:var(--accent);
    font-size:18px
}
.pagination {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:25px 0;
    padding:0;
    list-style:none
}
.pagination>a,.pagination>span,.pagination>li>a,.pagination>li>span {
    display:block;
    padding:8px 13px;
    border:1px solid var(--line);
    border-radius:6px;
    background:var(--paper)
}
.pagination .active span {
    background:var(--deep);
    color:#fff
}
.article-neighbors {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:38px;
    padding-top:25px;
    border-top:1px solid var(--line)
}
.article-neighbors__link {
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
    min-height:112px;
    padding:18px 20px;
    border:1px solid var(--line);
    border-radius:13px;
    background:var(--paper);
    text-decoration:none;
    transition:border-color .2s ease,transform .2s ease
}
.article-neighbors__link--next {
    grid-column:2
}
.article-neighbors__link span {
    color:var(--green);
    font:800 11px/1.3 var(--display);
    letter-spacing:.04em
}
.article-neighbors__link strong {
    color:var(--deep);
    font:800 17px/1.28 var(--display);
    letter-spacing:-.035em;
    overflow-wrap:anywhere
}
body.uppt-nova .article-neighbors__link:hover {
    border-color:var(--green);
    transform:translateY(-2px)
}
@media(max-width:600px) {
    .article-neighbors { grid-template-columns:1fr }
    .article-neighbors__link--next { grid-column:auto }
}
@media(prefers-reduced-motion:reduce) {
    .article-neighbors__link { transition:none }
}
.featured-grid,.category-article-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:17px
}
.featured-card {
    display:flex;
    flex-direction:column;
    min-height:300px;
    overflow:hidden;
    padding:25px 26px;
    border:1px solid var(--line);
    border-radius:17px;
    background:var(--paper)
}
.featured-card.is-text-only {
    min-height:220px
}
.featured-card__image {
    display:block;
    height:180px;
    margin:-25px -26px 23px;
    overflow:hidden
}
.featured-card__image img {
    width:100%;
    height:100%!important;
    object-fit:cover;
    transition:transform .25s
}
.featured-card:hover .featured-card__image img {
    transform:scale(1.035)
}
.featured-card__meta {
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.11em;
    text-transform:uppercase
}
.featured-card h3 {
    margin:16px 0 12px;
    color:var(--deep);
    font:800 clamp(21px,2.1vw,28px)/1.22 var(--display);
    letter-spacing:-.055em;
    overflow-wrap:anywhere
}
.featured-card p {
    margin:0 0 20px;
    color:#617167;
    font-size:14px;
    line-height:1.55
}
.featured-card__link {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:auto;
    padding-top:13px;
    border-top:1px solid var(--line);
    color:var(--green);
    font:800 12px var(--display)
}
.featured-card__link span {
    font-size:19px
}
.listing-pagination {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    margin-top:36px;
    padding-top:24px;
    border-top:1px solid var(--line)
}
.listing-pagination__count {
    color:#617167;
    font-size:13px;
    font-weight:700
}
.listing-pagination__controls {
    display:flex;
    align-items:center;
    gap:6px;
    max-width:100%;
    overflow-x:auto;
    padding:3px 0
}
.listing-pagination__page,.listing-pagination__direction {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    min-width:40px;
    min-height:40px;
    padding:8px 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--paper);
    color:var(--deep);
    font:700 13px var(--display);
    text-decoration:none
}
.listing-pagination__direction {
    gap:7px;
    padding-inline:14px
}
.listing-pagination a:hover,.listing-pagination a:focus-visible {
    border-color:var(--green);
    color:var(--green)
}
.listing-pagination__page.is-current {
    border-color:var(--deep);
    background:var(--deep);
    color:#fff
}
.com-content-category-blog .blog-items {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:17px
}
.com-content-category-blog .blog-item {
    min-width:0;
    padding:27px;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--paper)
}
.com-content-category-blog .blog-item .item-title {
    margin:0 0 13px;
    font:800 25px/1.2 var(--display);
    letter-spacing:-.05em
}
.com-content-category-blog .blog-item .article-info {
    margin:0 0 12px;
    color:#718174;
    font-size:12px
}
.com-content-category-blog .blog-item .item-content {
    color:#526456;
    font-size:15px
}
.com-content-category-blog .blog-item img {
    max-width:100%;
    height:auto
}
.com-content-article {
    max-width:1100px;
    margin:auto
}
.com-content-article .page-header h1 {
    max-width:980px
}
.com-content-article .article-info {
    display:flex;
    flex-wrap:wrap;
    gap:9px 19px;
    margin:0 0 35px;
    padding-bottom:24px;
    border-bottom:1px solid var(--line);
    color:#718174;
    font-size:12px
}
.com-content-article > figure.item-image {
    float:none;
    width:100%;
    max-width:800px;
    margin:0 0 30px
}
.com-content-article > figure.item-image img[src^="/images/uppt/articles/"] {
    display:block;
    width:100%;
    aspect-ratio:3 / 2;
    object-fit:cover;
    border-radius:14px
}
.com-content-article > figure.item-image figcaption {
    margin-top:8px;
    color:#718174;
    font-size:13px;
    line-height:1.5
}
.article-info dt {
    display:none
}
.article-info dd {
    margin:0
}
.com-content-article__body {
    max-width:800px;
    color:#304239;
    font-size:18px;
    line-height:1.78;
    overflow-wrap:anywhere
}
.com-content-article__body p {
    margin:0 0 1.25em
}
.com-content-article__body h2,.com-content-article__body h3 {
    margin:1.7em 0 .6em;
    font:800 1.55em/1.25 var(--display);
    letter-spacing:-.05em
}
.com-content-article__body h3 {
    font-size:1.25em
}
.com-content-article__body a:not(.btn),.recipe-richtext a {
    color:#a44f34;
    text-decoration:underline;
    text-underline-offset:3px
}
.com-content-article__body a:not([href]),.recipe-richtext a:not([href]) {
    color:inherit;
    text-decoration:none;
    cursor:default
}
.com-content-article__body figure {
    margin:30px 0
}
.com-content-article__body img {
    max-width:100%;
    height:auto;
    border-radius:10px
}
.article-gallery-body .gallery-trigger {
    display:inline-block;
    max-width:100%;
    padding:0;
    border:0;
    border-radius:12px;
    background:transparent;
    color:inherit;
    text-decoration:none;
    cursor:zoom-in;
    line-height:0;
    overflow:hidden
}
.article-gallery-body .gallery-trigger img {
    display:block;
    transition:transform .25s ease
}
.article-gallery-body .gallery-trigger:hover img {
    transform:scale(1.025)
}
.article-gallery-body .gallery-trigger:focus-visible {
    outline:3px solid var(--accent);
    outline-offset:4px
}
.article-gallery-body .gallery-trigger[hidden] {
    display:none
}
.article-gallery-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:28px 0 36px
}
.article-gallery-grid>p,.article-gallery-grid>figure {
    display:contents
}
.article-gallery-grid .gallery-trigger {
    display:block;
    width:100%;
    height:100%;
    min-height:160px;
    background:var(--sage)
}
.article-gallery-grid .gallery-trigger img {
    width:100%;
    height:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:12px
}
.photo-viewer {
    width:min(1100px,calc(100% - 32px));
    max-width:none;
    max-height:calc(100dvh - 32px);
    margin:auto;
    padding:0;
    border:1px solid #47655b;
    border-radius:18px;
    background:#15342d;
    color:#f7f8f1;
    box-shadow:0 24px 80px #07191280;
    overflow:hidden
}
.photo-viewer::backdrop {
    background:#061b18d9;
    backdrop-filter:blur(5px)
}
.photo-viewer__panel {
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 32px)
}
.photo-viewer__top,.photo-viewer__bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:15px 22px
}
.photo-viewer__top {
    border-bottom:1px solid #ffffff26;
    font:700 13px/1.3 var(--font);
    letter-spacing:.08em;
    text-transform:uppercase
}
.photo-viewer__close,.photo-viewer__previous,.photo-viewer__next {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid #ffffff4d;
    border-radius:100px;
    background:#ffffff14;
    color:inherit;
    cursor:pointer
}
.photo-viewer__close {
    min-height:38px;
    padding:0 14px;
    font:600 13px/1 var(--font);
    letter-spacing:0;
    text-transform:none
}
.photo-viewer__close span {
    font-size:22px;
    line-height:0
}
.photo-viewer__stage {
    display:grid;
    grid-template-columns:64px minmax(0,1fr) 64px;
    align-items:center;
    min-height:0;
    padding:16px 12px
}
.photo-viewer__previous,.photo-viewer__next {
    width:42px;
    height:42px;
    margin:auto;
    font-size:23px
}
.photo-viewer__previous:disabled,.photo-viewer__next:disabled {
    opacity:.3;
    cursor:default
}
.photo-viewer button:not(:disabled):hover {
    background:#ffffff2b
}
.photo-viewer button:focus-visible {
    outline:3px solid #d6ef8d;
    outline-offset:3px
}
.photo-viewer__image-wrap {
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:0
}
.photo-viewer__image-wrap img {
    display:block;
    max-width:100%;
    max-height:calc(100dvh - 175px);
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:5px
}
.photo-viewer__error {
    padding:60px 10px;
    text-align:center
}
.photo-viewer__bottom {
    border-top:1px solid #ffffff26;
    font-size:14px;
    line-height:1.4
}
.photo-viewer__caption {
    margin:0;
    overflow-wrap:anywhere
}
.photo-viewer__count {
    flex:none;
    color:#c9dccc;
    font-variant-numeric:tabular-nums
}
@media (max-width:680px) {
    .article-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px }
    .article-gallery-grid .gallery-trigger { min-height:110px }
    .photo-viewer__top,.photo-viewer__bottom { padding:12px 15px }
    .photo-viewer__stage { grid-template-columns:42px minmax(0,1fr) 42px;padding:12px 3px }
    .photo-viewer__previous,.photo-viewer__next { width:35px;height:35px;font-size:20px }
    .photo-viewer__image-wrap img { max-height:calc(100dvh - 155px) }
}
@media (prefers-reduced-motion:reduce) {
    .article-gallery-body .gallery-trigger img { transition:none }
}
.com-content-article__body blockquote {
    margin:35px 0;
    padding:12px 25px;
    border-left:4px solid var(--accent);
    font:italic 22px/1.5 Georgia,serif
}
.com-content-article__body ul,.com-content-article__body ol {
    margin:0 0 1.4em;
    padding-left:1.35em
}
.com-content-article__body li {
    margin-bottom:.4em
}
.com-content-article__body table {
    display:block;
    max-width:100%;
    overflow-x:auto;
    border-collapse:collapse;
    font-size:14px
}
.com-content-article__body th,.com-content-article__body td {
    padding:10px 13px;
    border:1px solid var(--line)
}
.com-content-article__body th {
    background:var(--sage)
}
.com-content-article__body iframe {
    max-width:100%
}
.com-content-article__body .uppt-attachments {
    margin-top:40px;
    padding:24px;
    border-radius:12px;
    background:var(--sage);
    font-size:15px
}
/* Recipe browsing and article presentation. */
.recipe-library__hero {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:25px
}
.recipe-library__cover {
    display:block;
    width:clamp(220px,28vw,360px);
    height:225px;
    flex:none;
    border-radius:16px;
    object-fit:cover
}
@media (max-width:760px) {
    .recipe-library__cover {
        width:100%;
        height:215px
    }
}
.recipe-library__count {
    display:flex;
    align-items:end;
    gap:12px;
    flex:none;
    color:var(--deep)
}
.recipe-library__count strong {
    font:800 clamp(60px,7vw,90px)/.92 var(--display);
    letter-spacing:-.1em
}
.recipe-library__count span {
    max-width:120px;
    padding-bottom:5px;
    color:#647369;
    font:700 12px/1.35 var(--font)
}
.recipe-search {
    display:flex;
    gap:9px;
    margin-top:30px;
    padding:10px;
    border-radius:13px;
    background:var(--sage)
}
.recipe-search input,.recipe-search select {
    min-width:0;
    min-height:51px;
    padding:10px 14px;
    border:1px solid #cad5c8;
    border-radius:8px;
    background:#fff;
    color:var(--ink)
}
.recipe-search input {
    flex:1
}
.recipe-search select {
    width:205px
}
.recipe-search button {
    min-width:144px;
    padding:10px 17px;
    border:0;
    border-radius:8px;
    background:var(--deep);
    color:#fff;
    font:800 12px var(--display)
}
.recipe-search button span {
    margin-left:14px;
    font-size:17px
}
.recipe-search__clear {
    display:inline-block;
    margin:12px 0 0;
    color:var(--accent)!important;
    font:700 12px var(--font);
    text-decoration:underline!important
}
.recipe-library__sections {
    padding:64px 0 55px
}
.recipe-library__section-head h2 {
    margin:9px 0 22px;
    font:800 clamp(32px,4vw,47px)/1.15 var(--display);
    letter-spacing:-.06em
}
.recipe-categories {
    grid-template-columns:repeat(4,minmax(0,1fr));
    margin:0
}
.recipe-category-tile {
    min-height:206px;
    padding:21px 23px
}
.category-tile.has-image,.recipe-category-tile.has-image {
    isolation:isolate;
    color:#fff!important
}
.category-tile__photo,.recipe-category-tile__photo {
    position:absolute;
    inset:0;
    z-index:-2;
    width:100%;
    height:100%!important;
    object-fit:cover
}
.category-tile.has-image:before,.recipe-category-tile.has-image:before {
    position:absolute;
    inset:0;
    z-index:-1;
    content:'';
    background:linear-gradient(180deg,#102b2355 0%,#102b23cf 100%)
}
.category-tile.has-image strong,.category-tile.has-image small,.category-tile.has-image .category-tile__top,.recipe-category-tile.has-image strong,.recipe-category-tile.has-image small,.recipe-category-tile.has-image .recipe-category-tile__top {
    color:#fff
}
.recipe-category-heading p {
    margin:8px 0 0;
    color:var(--muted)
}
.recipe-library--category .recipe-results {
    margin-top:47px
}
.recipe-results__heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:24px
}
.recipe-results__heading h2 {
    margin:9px 0 0;
    font:800 clamp(30px,3.4vw,43px)/1.2 var(--display);
    letter-spacing:-.06em
}
.recipe-results__heading>span {
    color:var(--muted);
    font:700 12px var(--font)
}
.recipe-result-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px
}
.recipe-result {
    display:flex;
    flex-direction:column;
    min-height:226px;
    overflow:hidden;
    padding:23px;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--paper)
}
.recipe-result__image {
    display:block;
    height:160px;
    margin:-23px -23px 20px;
    overflow:hidden
}
.recipe-result__image img {
    width:100%;
    height:100%!important;
    object-fit:cover
}
.recipe-result__type {
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.11em;
    text-transform:uppercase
}
.recipe-result h3 {
    margin:15px 0 20px;
    font:800 22px/1.24 var(--display);
    letter-spacing:-.045em;
    overflow-wrap:anywhere
}
.recipe-result__link {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-top:auto;
    padding-top:13px;
    border-top:1px solid var(--line);
    color:var(--green);
    font:800 12px var(--display)
}
.recipe-result__link span {
    font-size:18px
}
.recipe-results__empty {
    padding:30px;
    border-radius:12px;
    background:var(--paper)
}
.recipe-pagination {
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin-top:28px;
    color:var(--muted);
    font-size:12px
}
.recipe-pagination>div {
    display:flex;
    gap:8px
}
.recipe-pagination a {
    padding:9px 13px;
    border:1px solid var(--line);
    border-radius:6px;
    background:var(--paper)
}
.recipe-detail {
    max-width:1120px;
    margin:auto
}
.recipe-detail__header {
    padding-bottom:27px;
    border-bottom:1px solid var(--line)
}
.recipe-detail__header h1 {
    max-width:1020px;
    margin:17px 0 21px;
    font:800 clamp(42px,5.4vw,73px)/1.09 var(--display);
    letter-spacing:-.072em;
    overflow-wrap:anywhere
}
.recipe-detail__meta {
    display:flex;
    flex-wrap:wrap;
    gap:12px 25px;
    color:#718074;
    font-size:12px
}
.recipe-detail__meta a {
    color:var(--accent);
    text-decoration:underline;
    text-underline-offset:3px
}
.recipe-detail__layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 255px;
    gap:42px;
    padding-top:39px
}
.recipe-detail__main {
    min-width:0
}
.recipe-detail__illustration {
    margin:0 0 29px
}
.recipe-detail__illustration img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:3/2;
    object-fit:cover;
    border-radius:15px
}
.recipe-detail__body {
    max-width:795px;
    color:#33453a;
    font-size:17px;
    line-height:1.72;
    overflow-wrap:anywhere
}
.recipe-intro {
    margin:0 0 22px;
    padding:25px 28px;
    border-radius:12px;
    background:#ece9df
}
.recipe-intro>p:first-child {
    margin-top:0
}
.recipe-section {
    margin:0 0 18px;
    padding:29px 32px;
    border-radius:13px;
    background:var(--paper);
    border:1px solid var(--line)
}
.recipe-section--ingredients {
    background:var(--sage)
}
.recipe-section h2 {
    margin:0 0 18px!important;
    padding-bottom:12px;
    border-bottom:1px solid #c8d4c7;
    font:800 28px/1.2 var(--display)!important;
    letter-spacing:-.05em
}
.recipe-richtext p {
    margin:0 0 1.05em
}
.recipe-richtext>div:empty,.recipe-richtext>p:empty {
    display:none
}
.recipe-richtext ul,.recipe-richtext ol {
    padding-left:1.3em
}
.recipe-richtext img {
    max-width:100%;
    height:auto
}
.recipe-section--ingredients .recipe-section__content>p,.recipe-section--ingredients .recipe-section__content>div {
    margin:0;
    padding:8px 0;
    border-bottom:1px solid #b9cdb8
}
.recipe-section--ingredients .recipe-section__content>*:last-child {
    border-bottom:0
}
.recipe-detail__body>.recipe-richtext {
    padding:28px;
    border-radius:12px;
    background:var(--paper)
}
.recipe-detail__aside {
    position:sticky;
    top:24px;
    align-self:start;
    padding:25px;
    border-radius:13px;
    background:#e8eee4
}
/* Contact form and footer. */
.contact-grid {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:65px;
    padding-top:42px
}
.contact-details h2,.contact-form-panel h2 {
    margin:12px 0 27px;
    font:800 31px/1.2 var(--display);
    letter-spacing:-.055em
}
.contact-details__kicker {
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.14em
}
.contact-detail {
    display:grid;
    grid-template-columns:130px 1fr;
    gap:12px;
    padding:18px 0;
    border-top:1px solid var(--line)
}
.contact-detail>span {
    color:#718174;
    font:800 10px var(--display);
    letter-spacing:.1em
}
.contact-detail p {
    margin:0 0 5px
}
.contact-detail a {
    text-decoration:underline;
    text-underline-offset:3px
}
.contact-detail--misc {
    display:block
}
.contact-detail--misc>span {
    display:block;
    margin-bottom:9px
}
.contact-form-panel {
    align-self:start;
    padding:32px;
    border-radius:15px;
    background:var(--sage)
}
.contact-form-panel>p {
    margin:-15px 0 25px;
    color:var(--muted);
    font-size:14px
}
.contact-form-panel .com-contact__form {
    margin:0;
    padding:0;
    background:none
}
.contact-form-panel fieldset {
    margin:0;
    padding:0;
    border:0
}
.contact-form-panel legend {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden
}
.contact-form-panel .control-group {
    margin-bottom:15px
}
.contact-form-panel label {
    display:block;
    margin:0 0 5px;
    font-weight:700
}
.contact-form-panel .form-control {
    display:block;
    width:100%;
    min-height:48px;
    padding:10px 13px;
    border:1px solid #bfcfbc;
    border-radius:7px;
    background:#fff;
    color:var(--ink)
}
.contact-form-panel textarea.form-control {
    min-height:145px
}
.contact-form-panel .btn-primary {
    padding:13px 20px;
    border:0;
    border-radius:99px;
    background:var(--deep);
    color:#fff;
    font:800 13px var(--display)
}
.site-footer {
    background:#142d25;
    color:#e7f0e6
}
.footer-inner {
    display:grid;
    grid-template-columns:220px 1fr;
    gap:60px;
    padding-block:65px
}
.footer-brand {
    display:flex;
    flex-direction:column;
    align-items:center;
    align-self:start;
    width:136px;
    gap:7px;
    color:#fff!important
}
.footer-brand__turtle {
    width:136px;
    height:auto
}
.footer-brand__wordmark {
    width:96px;
    height:auto
}
.footer-inner .mod-custom {
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
    gap:50px
}
.footer-copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-self:start;
    min-height:98px
}
.footer-copy h2 {
    margin:0 0 12px;
    color:#fff;
    font:800 22px/1.25 var(--display);
    letter-spacing:-.055em
}
.footer-copy p {
    max-width:340px;
    margin:0;
    color:#b9cfbf;
    font-size:14px
}
.footer-links {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px 18px;
    align-content:start
}
.footer-links a {
    color:#e7f0e6;
    font:650 13px var(--font)
}
.footer-links a:hover {
    color:var(--apricot)
}
.footer-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding-block:19px;
    border-top:1px solid #ffffff2b;
    color:#a9c0ad;
    font-size:11px
}
.footer-credit a {
    color:#d7e4d9;
    font-weight:700;
    text-decoration:underline;
    text-decoration-color:#6f8d79;
    text-underline-offset:3px
}
.footer-credit a:hover {
    color:var(--apricot)
}
@media(max-width:1150px) {
    .menu-toggle {
        display:inline-flex;
        align-items:center;
        gap:10px;
        margin-left:auto;
        padding:10px 14px;
        border:1px solid var(--line);
        border-radius:8px;
        background:#fff;
        color:var(--deep);
        font:800 12px var(--display)
    }
    .menu-toggle__icon {
        display:block;
        width:17px;
        height:12px;
        border-top:2px solid currentColor;
        border-bottom:2px solid currentColor;
        position:relative
    }
    .menu-toggle__icon:before {
        content:'';
        position:absolute;
        top:4px;
        left:0;
        width:17px;
        border-top:2px solid currentColor
    }
    .primary-nav {
        display:none;
        position:absolute;
        left:0;
        right:0;
        top:100%;
        max-height:calc(100vh - 90px);
        overflow:auto;
        margin:0;
        padding:12px 32px 27px;
        border-top:1px solid var(--line);
        background:#fffdf9;
        box-shadow:0 20px 40px #17372a22
    }
    .primary-nav.is-open {
        display:block
    }
    .primary-nav .mod-menu {
        display:block
    }
    .primary-nav .mod-menu>li {
        display:flex;
        flex-wrap:wrap;
        border-bottom:1px solid var(--line)
    }
    .primary-nav .mod-menu>li>a {
        flex:1;
        padding:12px 5px;
        font-size:15px
    }
    .primary-nav .mod-menu>li:last-child>a {
        margin:10px 0
    }
    .primary-nav .submenu-toggle {
        width:42px;
        height:43px;
        margin:0;
        font-size:21px
    }
    .primary-nav .mod-menu__sub {
        display:none!important;
        position:static;
        width:100%;
        max-width:none;
        max-height:none;
        margin:0 0 12px;
        padding:0 0 0 12px!important;
        border:0;
        border-left:2px solid var(--sage);
        border-radius:0;
        box-shadow:none;
        background:transparent
    }
    .primary-nav .parent.submenu-open>.mod-menu__sub {
        display:block!important
    }
    .primary-nav .mod-menu__sub a {
        padding:10px 12px;
        font-size:14px
    }
}
@media(max-width:850px) {
    .schedule-feature {
        grid-template-columns:1fr
    }
    .schedule-feature__intro {
        padding:36px
    }
    .schedule-feature__link {
        margin-top:12px
    }
    .schedule-archive__list {
        grid-template-columns:1fr
    }
    .hero-zone .mod-custom {
        grid-template-columns:1fr
    }
    .hero-copy {
        max-width:none;
        padding:70px 32px
    }
    .hero-image {
        min-height:380px
    }
    .home-topics {
        padding-block:75px
    }
    .topic-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .topic-card:last-child {
        grid-column:1/-1
    }
    .featured-grid,.category-article-grid,.recipe-result-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .recipe-categories {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .recipe-detail__layout {
        grid-template-columns:1fr
    }
    .recipe-detail__aside {
        position:static
    }
    .contact-grid {
        grid-template-columns:1fr;
        gap:30px
    }
    .footer-inner {
        grid-template-columns:150px 1fr;
        gap:30px
    }
}
@media(max-width:650px) {
    .schedule-page__heading {
        margin-bottom:28px
    }
    .schedule-page__heading h1,.schedule-detail__header h1 {
        font-size:clamp(39px,9vw,57px)
    }
    .schedule-page__heading .category-description {
        font-size:16px
    }
    .schedule-feature__intro {
        padding:29px 24px
    }
    .schedule-feature__program {
        padding:20px 17px 24px
    }
    .schedule-slot.is-next {
        padding-inline:12px
    }
    .schedule-slot summary {
        grid-template-columns:minmax(0,1fr) 20px;
        gap:5px 12px
    }
    .schedule-slot summary time {
        grid-column:1/-1;
        padding-top:0
    }
    .schedule-slot__body {
        padding:0 8px 20px;
        font-size:14px
    }
    .schedule-archive {
        margin-top:55px
    }
    .schedule-archive__heading {
        display:block
    }
    .schedule-archive__item {
        grid-template-columns:48px minmax(0,1fr) 18px;
        gap:12px;
        padding:16px
    }
    .schedule-archive__item.has-image {
        grid-template-columns:48px 50px minmax(0,1fr) 18px;
        gap:9px
    }
    body.uppt-nova .schedule-archive__image {
        width:50px;
        height:50px
    }
    .schedule-archive__main strong {
        font-size:16px
    }
    .schedule-detail__intro {
        padding:22px
    }
    body.uppt-nova .schedule-detail__illustration img {
        height:220px
    }
    .schedule-detail__episode {
        grid-template-columns:1fr;
        gap:13px;
        padding:23px
    }
    .listing-pagination {
        align-items:stretch
    }
    .listing-pagination__controls {
        width:100%;
        flex-wrap:wrap;
        overflow-x:visible
    }
    .site-width {
        width:min(100% - 36px,1240px)
    }
    .header-inner {
        min-height:82px
    }
    .brand {
        min-width:0
    }
    .brand__turtle {
        width:73px;
        height:35px
    }
    .brand__wordmark {
        width:72px;
        height:20px
    }
    .brand__text small {
        font-size:8px
    }
    .hero-copy {
        padding:55px 22px 58px
    }
    .hero-copy h1 {
        font-size:clamp(48px,11vw,70px)
    }
    .hero-copy>p {
        font-size:16px
    }
    .hero-note {
        margin-top:36px
    }
    .hero-image {
        min-height:300px
    }
    .hero-image__caption {
        right:15px;
        bottom:15px
    }
    .home-topics {
        padding-block:65px
    }
    .section-heading {
        display:block
    }
    .section-heading p {
        max-width:460px;
        margin-top:15px
    }
    .topic-grid,.featured-grid,.category-article-grid,.category-grid,.recipe-categories,.recipe-result-grid,.com-content-category-blog .blog-items {
        grid-template-columns:1fr
    }
    .topic-card:last-child {
        grid-column:auto
    }
    .topic-card {
        min-height:245px
    }
    .component-wrap {
        padding-top:26px;
        padding-bottom:75px
    }
    .component-wrap .page-header h1,.category-heading h1,.recipe-library__hero h1,.recipe-category-heading h1,.contact-hero h1 {
        font-size:clamp(39px,9vw,57px)
    }
    .recipe-library__hero {
        align-items:start;
        flex-direction:column
    }
    .recipe-library__count strong {
        font-size:65px
    }
    .recipe-categories {
        gap:10px
    }
    .recipe-category-tile {
        min-height:170px
    }
    .recipe-search {
        flex-wrap:wrap
    }
    .recipe-search input {
        flex-basis:100%
    }
    .recipe-search select {
        flex:1
    }
    .recipe-search button {
        flex:1
    }
    .recipe-results__heading {
        align-items:start;
        flex-direction:column
    }
    .recipe-detail__header h1 {
        font-size:clamp(40px,9vw,55px)
    }
    .recipe-section,.recipe-intro,.recipe-detail__body>.recipe-richtext {
        padding:21px
    }
    .com-content-article__body {
        font-size:16px
    }
    .home-cta .cta-inner {
        align-items:start;
        flex-direction:column;
        padding-block:50px
    }
    .footer-inner {
        grid-template-columns:1fr;
        padding-block:47px
    }
    .footer-inner .mod-custom {
        grid-template-columns:1fr;
        gap:27px
    }
    .footer-bottom {
        flex-wrap:wrap
    }
    .contact-detail {
        grid-template-columns:1fr;
        gap:5px
    }
    .contact-form-panel {
        padding:23px
    }
    .article-row {
        align-items:start;
        flex-direction:column;
        gap:6px
    }
}
@media(max-width:350px) {
    .header-inner {
        gap:8px
    }
    .brand__turtle {
        width:63px;
        height:30px
    }
    .brand__text {
        padding-left:8px
    }
    .brand__wordmark {
        width:65px;
        height:18px
    }
    .brand__text small {
        font-size:7px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    .topic-card,.category-tile,.recipe-category-tile,.featured-card__image img {
        transition:none
    }
}
@media print {
    .site-header,.site-footer,.crumbs,.recipe-detail__aside,.home-cta {
        display:none!important
    }
    .component-wrap {
        width:100%;
        padding:0
    }
    .recipe-detail__layout {
        display:block
    }
    .recipe-section,.recipe-intro {
        break-inside:avoid;
        background:#fff!important
    }
}
.recipe-detail__illustration figcaption {
    margin-top:8px;
    color:var(--muted);
    font-size:12px
}
body.uppt-nova .hero-image>img {
    height:100%;
    max-width:none
}
.recipe-section__content>p>br:first-child {
    display:none
}
/* The About page reads directly from Joomla's published categories and articles. */
.about-page {
    padding-bottom:90px
}
.about-page__hero {
    position:relative;
    overflow:hidden;
    min-height:330px;
    padding:64px min(6vw,78px);
    border-radius:24px;
    background:#e9eee6
}
.about-page__hero:after {
    content:'';
    position:absolute;
    right:-110px;
    bottom:-230px;
    width:460px;
    height:460px;
    border:65px solid #d4e3d6;
    border-radius:50%;
    pointer-events:none
}
.about-page__hero.has-image:after {
    display:none
}
.about-page__hero.has-image .about-page__hero-image {
    position:absolute;
    z-index:0;
    inset:0 0 0 auto;
    width:48%;
    height:100%;
    object-fit:cover;
    mask-image:linear-gradient(to right,transparent,black 28%)
}
.about-page__hero-copy {
    max-width:720px
}
.about-page__hero.has-image .about-page__hero-copy {
    max-width:62%
}
.about-page__section-image {
    display:block;
    width:100%;
    height:230px;
    margin-top:22px;
    border-radius:14px;
    object-fit:cover
}
.about-page__hero>* {
    position:relative;
    z-index:1
}
.about-page__hero h1 {
    margin:17px 0 22px;
    color:var(--deep);
    font:800 clamp(53px,7vw,92px)/1.05 var(--display);
    letter-spacing:-.075em
}
.about-page__lead {
    max-width:690px;
    color:#405b4d;
    font-size:18px;
    line-height:1.6
}
.about-page__lead p {
    margin:0 0 11px
}
.about-page__lead p:last-child {
    margin-bottom:0
}
@media (max-width:760px) {
    .about-page__hero.has-image {
        padding-top:245px
    }
    .about-page__hero.has-image .about-page__hero-image {
        inset:0 0 auto;
        width:100%;
        height:210px;
        mask-image:none
    }
    .about-page__hero.has-image .about-page__hero-copy {
        max-width:none
    }
    .about-page__section-image {
        height:185px
    }
}
.about-page__lead a,.about-page__description a {
    color:var(--green)!important;
    text-decoration:underline!important;
    text-underline-offset:3px
}
.about-page__layout {
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:clamp(35px,6vw,92px);
    padding-top:66px
}
.about-page__toc {
    position:sticky;
    top:30px;
    align-self:start;
    display:grid;
    border-top:2px solid var(--deep)
}
.about-page__toc>strong {
    padding:20px 0 13px;
    color:var(--green);
    font:800 11px var(--display);
    letter-spacing:.13em
}
.about-page__toc>a {
    display:flex;
    gap:13px;
    align-items:baseline;
    padding:11px 0;
    border-bottom:1px solid var(--line);
    color:var(--deep);
    font:700 14px/1.3 var(--display)
}
.about-page__toc>a span {
    flex:none;
    color:var(--green);
    font:800 11px var(--display)
}
.about-page__toc>a:hover {
    color:var(--accent)
}
.about-page__toc .about-page__toc-contact {
    justify-content:space-between;
    margin-top:13px;
    border:0
}
.about-page__content {
    min-width:0;
    max-width:840px
}
.about-page__section {
    padding:0 0 70px;
    margin-bottom:65px;
    border-bottom:1px solid var(--line);
    scroll-margin-top:35px
}
.about-page__section-heading {
    margin-bottom:30px
}
.about-page__number {
    color:var(--green);
    font:800 11px var(--display);
    letter-spacing:.13em
}
.about-page__section h2 {
    margin:12px 0 15px;
    color:var(--deep);
    font:800 clamp(38px,4vw,56px)/1.12 var(--display);
    letter-spacing:-.065em
}
.about-page__description {
    max-width:660px;
    color:#66766a;
    font-size:16px
}
.about-page__description p {
    margin:0
}
.about-page__source {
    display:inline-block;
    margin-bottom:23px;
    padding:6px 10px;
    border-radius:4px;
    background:#e8eee5;
    color:var(--green);
    font:800 11px var(--display);
    letter-spacing:.035em
}
.about-page__article-body {
    max-width:73ch;
    overflow-wrap:anywhere;
    color:#33453a;
    font-size:16px;
    line-height:1.8
}
.about-page__article-body p {
    margin:0 0 1.15em
}
.about-page__article-body h2,.about-page__article-body h3,.about-page__article-body h4 {
    margin:1.5em 0 .5em;
    color:var(--deep);
    font:800 clamp(22px,2.5vw,30px)/1.25 var(--display);
    letter-spacing:-.04em
}
.about-page__article-body img {
    display:block;
    max-width:100%;
    height:auto;
    margin:18px 0;
    border-radius:8px
}
.about-page__article-body a {
    color:var(--green)!important;
    text-decoration:underline!important;
    text-underline-offset:3px
}
.about-page__article-body a:not([href]) {
    color:inherit!important;
    text-decoration:none!important;
    cursor:default
}
.about-page__article-body table {
    display:block;
    max-width:100%;
    overflow-x:auto
}
.about-page__article-body ul,.about-page__article-body ol {
    padding-left:1.4em
}
.about-page__article-body li {
    margin-bottom:.5em
}
.about-page__source-link {
    display:inline-flex;
    gap:25px;
    margin-top:8px;
    padding:10px 0;
    border-bottom:1px solid var(--green);
    color:var(--deep);
    font:800 12px var(--display)
}
.about-page__archive {
    margin-top:38px
}
.about-page__archive h3 {
    margin:0 0 17px;
    color:var(--deep);
    font:800 20px var(--display);
    letter-spacing:-.04em
}
.about-page__archive-item {
    margin:9px 0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fffdf8
}
.about-page__archive-item summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:19px 24px;
    color:var(--deep);
    cursor:pointer;
    list-style:none
}
.about-page__archive-item summary::-webkit-details-marker {
    display:none
}
.about-page__archive-item summary>span:first-child {
    display:grid;
    gap:5px
}
.about-page__archive-item summary small {
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.08em
}
.about-page__archive-item summary strong {
    font:800 16px/1.4 var(--display)
}
.about-page__expand {
    flex:none;
    color:var(--green);
    font:400 28px/1 var(--display)
}
.about-page__archive-item[open] .about-page__expand {
    transform:rotate(45deg)
}
.about-page__archive-body {
    padding:8px 24px 26px;
    border-top:1px solid var(--line)
}
.about-page__contact {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    padding:34px 38px;
    border-radius:18px;
    background:var(--deep);
    color:#fffdf8
}
.component-wrap .about-page__contact h2 {
    margin:9px 0 4px;
    color:#fffdf8;
    font:800 30px/1.18 var(--display);
    letter-spacing:-.05em
}
.about-page__contact p {
    margin:0;
    color:#d3e3d8;
    font-size:14px
}
.about-page__contact .eyebrow {
    color:#a9d5b4
}
body.uppt-nova .about-page__contact>a {
    flex:none;
    padding:12px 16px;
    border-radius:7px;
    background:#fffdf8;
    color:var(--deep);
    font:800 12px var(--display)
}
@media(max-width:850px) {
    .about-page__layout {
        grid-template-columns:1fr;
        gap:42px;
        padding-top:42px
    }
    .about-page__toc {
        position:static;
        display:flex;
        flex-wrap:wrap;
        gap:7px;
        border-top:0
    }
    .about-page__toc>strong {
        width:100%;
        padding:0 0 5px
    }
    .about-page__toc>a,.about-page__toc .about-page__toc-contact {
        margin:0;
        padding:8px 11px;
        border:1px solid var(--line);
        border-radius:6px;
        background:#fffdf8;
        font-size:12px
    }
    .about-page__toc .about-page__toc-contact {
        gap:15px
    }
}
@media(max-width:650px) {
    .about-page__hero {
        min-height:0;
        padding:42px 25px;
        border-radius:15px
    }
    .about-page__hero:after {
        right:-235px;
        bottom:-280px
    }
    .about-page__hero h1 {
        font-size:53px
    }
    .about-page__lead {
        font-size:16px
    }
    .about-page__section {
        padding-bottom:48px;
        margin-bottom:47px
    }
    .about-page__section h2 {
        font-size:37px
    }
    .about-page__contact {
        display:block;
        padding:28px 25px
    }
    body.uppt-nova .about-page__contact>a {
        display:inline-flex;
        gap:20px;
        margin-top:24px
    }
}
/* CMS-driven Activities, Advice and Diets landing pages. */
.content-hub {
    padding-bottom:65px
}
.content-hub__hero {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
    min-height:445px;
    overflow:hidden;
    border-radius:22px;
    background:#e5eee4
}
.content-hub--advice .content-hub__hero {
    background:#eee9db
}
.content-hub--diets .content-hub__hero {
    background:#f2e3d6
}
.content-hub__hero-copy {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    padding:48px clamp(32px,4vw,60px)
}
.content-hub__hero h1 {
    margin:18px 0 17px;
    color:var(--deep);
    font:800 clamp(54px,6vw,82px)/1.04 var(--display);
    letter-spacing:-.075em
}
.content-hub__lead {
    max-width:520px;
    color:#40594c;
    font-size:17px;
    line-height:1.6
}
.content-hub__lead p {
    margin:0 0 12px
}
.content-hub__lead p:last-child {
    margin-bottom:0
}
.content-hub__lead a {
    color:var(--green)!important;
    text-decoration:underline!important
}
.content-hub__count {
    display:flex;
    align-items:baseline;
    gap:12px;
    margin-top:30px;
    padding-top:16px;
    border-top:1px solid #24463733;
    color:var(--green)
}
.content-hub__count strong {
    font:800 34px/1 var(--display);
    letter-spacing:-.07em
}
.content-hub__count span {
    font:750 12px var(--display)
}
.content-hub__hero-image {
    min-height:100%;
    overflow:hidden;
    background:#d8e4d8
}
.content-hub__hero-image img {
    display:block;
    width:100%;
    height:100%!important;
    object-fit:cover;
    object-position:62% center
}
.content-hub__updates,.content-hub__topics,.content-hub__discover,.content-hub__shortcuts {
    margin-top:84px
}
.content-hub__section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:35px;
    margin-bottom:28px
}
.content-hub__section-heading h2 {
    margin:10px 0 0;
    color:var(--deep);
    font:800 clamp(35px,4vw,52px)/1.1 var(--display);
    letter-spacing:-.065em
}
.content-hub__section-heading>p {
    width:min(100%,360px);
    margin:0 0 4px;
    color:#617165;
    font-size:15px
}
.content-hub__updates-layout {
    display:grid;
    grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
    gap:18px
}
.content-hub__feature {
    display:flex;
    flex-direction:column;
    min-height:405px;
    padding:36px;
    border-radius:16px;
    background:var(--deep);
    color:#fffdf8
}
body.uppt-nova .content-hub__feature-photo {
    width:100%;
    height:175px;
    margin:-18px 0 24px;
    object-fit:cover;
    border-radius:10px
}
.content-hub__feature-meta {
    color:#a7d3b2;
    font:800 11px var(--display);
    letter-spacing:.08em
}
.component-wrap .content-hub__feature h3 {
    margin:32px 0 20px;
    color:#fffdf8;
    font:800 clamp(29px,3vw,41px)/1.17 var(--display);
    letter-spacing:-.06em
}
.content-hub__feature p {
    margin:0;
    color:#d7e5db;
    font-size:15px;
    line-height:1.65
}
.content-hub__feature-link {
    display:flex;
    justify-content:space-between;
    gap:15px;
    margin-top:auto;
    padding-top:20px;
    border-top:1px solid #ffffff44;
    font:800 12px var(--display)
}
.content-hub__update-list {
    display:grid;
    align-content:start;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--paper)
}
.content-hub__update-list a {
    display:grid;
    grid-template-columns:86px minmax(0,1fr) 19px;
    align-items:center;
    gap:15px;
    padding:19px 20px;
    border-bottom:1px solid var(--line)
}
.content-hub__update-list a.has-image {
    grid-template-columns:86px 56px minmax(0,1fr) 19px
}
body.uppt-nova .content-hub__update-list img {
    width:56px;
    height:56px;
    object-fit:cover;
    border-radius:8px
}
.content-hub__update-list a:last-child {
    border-bottom:0
}
.content-hub__update-list time {
    color:var(--green);
    font:800 10px var(--display)
}
.content-hub__update-list strong {
    color:var(--deep);
    font:800 16px/1.35 var(--display);
    letter-spacing:-.025em
}
.content-hub__update-list a>span {
    color:var(--green);
    font-size:19px
}
.content-hub__older {
    margin-top:14px
}
.content-hub__older summary {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:15px 18px;
    border:1px solid var(--line);
    border-radius:9px;
    color:var(--deep);
    font:800 13px var(--display);
    cursor:pointer;
    list-style:none
}
.content-hub__older summary::-webkit-details-marker {
    display:none
}
.content-hub__older summary>span {
    color:var(--green);
    font-size:24px;
    line-height:1
}
.content-hub__older[open] summary>span {
    transform:rotate(45deg)
}
.content-hub__older .content-hub__update-list {
    margin-top:10px
}
.content-hub__topic-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px
}
.content-hub__topic {
    display:flex;
    flex-direction:column;
    min-height:234px;
    overflow:hidden;
    padding:25px 27px;
    border:1px solid #dfe6d9;
    border-radius:15px;
    background:#e8efe6;
    transition:transform .2s,box-shadow .2s
}
.content-hub__topic-image {
    display:block;
    width:calc(100% + 54px);
    height:170px!important;
    flex:none;
    margin:-25px -27px 21px;
    object-fit:cover
}
.content-hub__topic.has-image>strong {
    margin-top:20px
}
.content-hub__topic:nth-child(3n+2) {
    background:#f4e8dd;
    border-color:#ede1d6
}
.content-hub__topic:nth-child(3n) {
    background:#ecebdd;
    border-color:#e5e5d5
}
.content-hub__topic:hover {
    transform:translateY(-3px);
    box-shadow:0 14px 25px #1c3c321b
}
.content-hub__topic-top {
    display:flex;
    justify-content:space-between;
    gap:15px;
    color:var(--green);
    font:800 11px var(--display);
    letter-spacing:.09em
}
.content-hub__topic>strong {
    margin:31px 0 9px;
    color:var(--deep);
    font:800 clamp(23px,2.3vw,30px)/1.2 var(--display);
    letter-spacing:-.055em
}
.content-hub__topic-description {
    max-width:42ch;
    color:#506558;
    font-size:14px;
    line-height:1.5
}
.content-hub__topic-count {
    margin-top:auto;
    padding-top:24px;
    color:var(--green);
    font:800 11px var(--display)
}
.content-hub--advice .content-hub__topic:first-child {
    grid-column:span 2;
    background:#dce9da
}
.content-hub--diets .content-hub__topic-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.content-hub__shortcuts {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:36px;
    padding:36px 42px;
    border-radius:16px;
    background:#f0e5d9
}
.content-hub__shortcuts h2 {
    margin:11px 0 9px;
    font:800 clamp(27px,3vw,39px)/1.17 var(--display);
    letter-spacing:-.055em
}
.content-hub__shortcuts p {
    margin:0;
    color:#5f655c;
    font-size:14px
}
.content-hub__shortcuts-links {
    display:grid;
    align-content:center
}
.content-hub__shortcuts-links a {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:9px 0;
    border-bottom:1px solid #1c3c322c;
    color:var(--deep);
    font:750 14px var(--display)
}
.content-hub__discover {
    padding-top:50px;
    border-top:1px solid var(--line)
}
.content-hub__search {
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px auto;
    align-items:end;
    gap:10px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fffdf8
}
.content-hub__search label {
    display:grid;
    gap:6px;
    color:var(--deep);
    font:800 11px var(--display)
}
.content-hub__search input,.content-hub__search select {
    width:100%;
    min-height:49px;
    padding:10px 13px;
    border:1px solid #d8ded3;
    border-radius:7px;
    background:#fff;
    color:var(--deep);
    font:500 14px var(--font)
}
.content-hub__search button {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:21px;
    min-height:49px;
    padding:11px 16px;
    border:0;
    border-radius:7px;
    background:var(--deep);
    color:#fff;
    font:800 13px var(--display)
}
.content-hub__reset {
    display:inline-block;
    margin:13px 0 0;
    color:var(--green)!important;
    font:750 12px var(--font);
    text-decoration:underline!important
}
.content-hub__results-heading {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:20px;
    margin:35px 0 18px
}
.content-hub__results-heading h3 {
    margin:0;
    color:var(--deep);
    font:800 27px var(--display);
    letter-spacing:-.045em
}
.content-hub__results-heading>span {
    color:var(--muted);
    font:700 12px var(--font)
}
.content-hub__results {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
}
.content-hub__result {
    display:grid;
    grid-template-columns:50px minmax(0,1fr) 27px;
    align-items:start;
    gap:17px;
    padding:20px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--paper)
}
.content-hub__result.has-image {
    grid-template-columns:104px minmax(0,1fr) 27px
}
body.uppt-nova .content-hub__result-photo {
    width:104px;
    height:104px;
    object-fit:cover;
    border-radius:10px
}
.content-hub__result:hover,.content-hub__result:focus-visible {
    border-color:#94b49d;
    background:#fffefa;
    box-shadow:0 10px 22px #1c3c3212
}
.content-hub__result-number {
    display:grid;
    place-items:center;
    width:50px;
    height:50px;
    border-radius:11px;
    background:#e7eee5;
    color:var(--green);
    font:800 21px var(--display);
    letter-spacing:-.06em
}
.content-hub__result:nth-child(4n+2) .content-hub__result-number {
    background:#f0e9d6;
    color:#83651e
}
.content-hub__result:nth-child(4n+3) .content-hub__result-number {
    background:#e5eded;
    color:#3e696c
}
.content-hub__result:nth-child(4n+4) .content-hub__result-number {
    background:#eee7df;
    color:#795d48
}
.content-hub__result-body {
    display:block;
    min-width:0
}
.content-hub__result-meta {
    display:block;
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.04em;
    text-transform:uppercase
}
.content-hub__result-body>strong {
    display:block;
    margin:8px 0 5px;
    color:var(--deep);
    font:800 21px/1.2 var(--display);
    letter-spacing:-.045em
}
.content-hub__result-excerpt {
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    color:var(--muted);
    font:400 13px/1.48 var(--font)
}
.content-hub__result-arrow {
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    border:1px solid #d4e0d0;
    border-radius:50%;
    color:var(--green);
    font:800 15px var(--display)
}
.content-hub__result:hover .content-hub__result-arrow,.content-hub__result:focus-visible .content-hub__result-arrow {
    border-color:var(--green);
    background:var(--green);
    color:white
}
@media (max-width:760px) {
    .category-heading.has-image {
        grid-template-columns:1fr;
        gap:22px
    }
    .category-heading__image img {
        height:220px
    }
}
.content-hub__search-intro,.content-hub__empty {
    margin:22px 0 0;
    padding:22px;
    border-radius:9px;
    background:#e9eee6;
    color:#526557
}
.listing-pagination__ellipsis {
    display:inline-flex;
    align-items:center;
    padding:0 4px;
    color:var(--muted)
}
@media(max-width:1000px) {
    .content-hub__hero {
        grid-template-columns:1fr 1fr
    }
    .content-hub__hero-copy {
        padding:38px 34px
    }
    .content-hub__hero h1 {
        font-size:clamp(49px,6vw,68px)
    }
    .content-hub__updates-layout {
        grid-template-columns:1fr
    }
    .content-hub__feature {
        min-height:310px
    }
}
@media(max-width:750px) {
    .content-hub__hero {
        grid-template-columns:1fr
    }
    .content-hub__hero-copy {
        min-height:340px;
        padding:38px 32px
    }
    .content-hub__hero-image {
        height:270px;
        min-height:0
    }
    .content-hub__section-heading {
        display:block
    }
    .content-hub__section-heading>p {
        margin-top:12px
    }
    .content-hub__topic-grid,.content-hub--diets .content-hub__topic-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .content-hub__results {
        grid-template-columns:1fr
    }
    .content-hub--advice .content-hub__topic:first-child {
        grid-column:auto
    }
    .content-hub__shortcuts {
        grid-template-columns:1fr
    }
    .content-hub__search {
        grid-template-columns:1fr 1fr
    }
    .content-hub__search label:first-child {
        grid-column:1/-1
    }
}
@media(max-width:550px) {
    .content-hub__hero {
        border-radius:15px
    }
    .content-hub__hero-copy {
        min-height:0;
        padding:35px 25px
    }
    .content-hub__hero h1 {
        font-size:54px
    }
    .content-hub__lead {
        font-size:16px
    }
    .content-hub__hero-image {
        height:220px
    }
    .content-hub__updates,.content-hub__topics,.content-hub__discover,.content-hub__shortcuts {
        margin-top:62px
    }
    .content-hub__section-heading h2 {
        font-size:37px
    }
    .content-hub__feature {
        min-height:0;
        padding:27px
    }
    .content-hub__feature-link {
        margin-top:30px
    }
    .content-hub__update-list a {
        grid-template-columns:1fr 20px;
        gap:4px 10px;
        padding:17px
    }
    .content-hub__update-list a.has-image {
        grid-template-columns:56px minmax(0,1fr) 20px
    }
    .content-hub__update-list time {
        grid-column:1/-1
    }
    .content-hub__topic-grid,.content-hub--diets .content-hub__topic-grid {
        grid-template-columns:1fr
    }
    .content-hub__topic {
        min-height:205px
    }
    .content-hub__topic>strong {
        margin-top:23px
    }
    .content-hub__shortcuts {
        gap:22px;
        padding:27px
    }
    .content-hub__discover {
        padding-top:35px
    }
    .content-hub__search {
        display:block
    }
    .content-hub__search label {
        margin-bottom:13px
    }
    .content-hub__search button {
        width:100%;
        margin-top:16px
    }
    .content-hub__results-heading {
        display:block
    }
    .content-hub__results-heading>span {
        display:block;
        margin-top:3px
    }
    .content-hub__result {
        grid-template-columns:42px minmax(0,1fr) 25px;
        gap:12px;
        padding:16px
    }
    .content-hub__result.has-image {
        grid-template-columns:72px minmax(0,1fr) 25px
    }
    body.uppt-nova .content-hub__result-photo {
        width:72px;
        height:72px
    }
    .content-hub__result-number {
        width:42px;
        height:42px;
        font-size:18px
    }
}
.gallery-page__heading {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    padding:20px 0 36px;
    border-bottom:1px solid var(--line)
}
.gallery-page__heading h1 {
    margin:0;
    color:var(--deep);
    font:800 clamp(50px,6vw,78px)/1.07 var(--display);
    letter-spacing:-.075em
}
.gallery-page__heading .category-description {
    font-size:17px
}
.gallery-page__cover {
    display:block;
    width:100%;
    max-height:350px;
    border-radius:17px;
    object-fit:cover
}
.gallery-page__count {
    color:var(--green);
    font:800 12px var(--display)
}
.gallery-page__grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:17px;
    margin-top:35px
}
.gallery-page__card {
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--paper)
}
.gallery-page__card:hover {
    border-color:#a8c3ac;
    box-shadow:0 12px 22px #1c3c3219
}
.gallery-page__photo {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#e1eadd
}
.gallery-page__photo img {
    display:block;
    width:100%;
    height:100%!important;
    object-fit:cover;
    transition:transform .25s
}
.gallery-page__card:hover .gallery-page__photo img {
    transform:scale(1.035)
}
.gallery-page__photo-fallback {
    display:grid;
    width:100%;
    height:100%;
    place-items:center;
    color:#799f80;
    font-size:80px
}
.gallery-page__card-copy {
    display:flex;
    flex:1;
    flex-direction:column;
    padding:19px 21px
}
.gallery-page__card-copy time {
    color:var(--green);
    font:800 10px var(--display);
    letter-spacing:.06em
}
.gallery-page__card-copy strong {
    margin:12px 0 25px;
    color:var(--deep);
    font:800 20px/1.28 var(--display);
    letter-spacing:-.045em
}
.gallery-page__card-copy>span {
    display:flex;
    justify-content:space-between;
    margin-top:auto;
    padding-top:13px;
    border-top:1px solid var(--line);
    color:var(--green);
    font:800 11px var(--display)
}
@media(max-width:850px) {
    .gallery-page__grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
@media(max-width:550px) {
    .gallery-page__grid {
        grid-template-columns:1fr
    }
    .gallery-page__heading {
        padding-top:5px
    }
}
/* Contextual discovery, sourced from Joomla articles, categories, tags and modules. */
.article-layout,.schedule-detail__layout {
    display:grid;
    grid-template-columns:minmax(0,800px) minmax(270px,310px);
    justify-content:center;
    align-items:start;
    gap:48px
}
.article-layout__main,.schedule-detail__main {
    min-width:0
}
.schedule-detail {
    max-width:1240px
}
.schedule-detail__layout {
    padding-top:32px
}
.schedule-detail__layout .schedule-detail__intro {
    margin-top:0
}
.recipe-detail__layout {
    grid-template-columns:minmax(0,1fr) 290px;
    gap:38px
}
.explore-rail {
    position:sticky;
    top:24px;
    align-self:start;
    min-width:0;
    padding:25px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--paper);
    box-shadow:0 12px 32px #213b2810
}
.explore-rail__head>span,.explore-rail__highlight>span {
    color:var(--green);
    font:800 10px/1.4 var(--display);
    letter-spacing:.12em
}
.explore-rail__head h2 {
    margin:11px 0 8px;
    font:800 25px/1.16 var(--display);
    letter-spacing:-.055em
}
.explore-rail__head>a {
    color:var(--green);
    font:700 13px/1.4 var(--font);
    text-decoration:underline;
    text-underline-offset:3px
}
.explore-rail__links {
    margin-top:20px;
    border-top:1px solid var(--line)
}
.explore-rail__links a {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px 10px;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    color:var(--deep);
    text-decoration:none
}
.explore-rail__links small {
    grid-column:1/-1;
    color:var(--muted);
    font:700 10px/1.4 var(--font);
    letter-spacing:.025em
}
.explore-rail__links strong {
    font:800 15px/1.35 var(--display);
    letter-spacing:-.025em
}
.explore-rail__links a>span {
    color:var(--green)
}
.explore-rail__links a:hover strong,.explore-rail__topics a:hover {
    color:var(--green)
}
.explore-rail__topics {
    display:grid;
    gap:10px;
    margin-top:22px
}
.explore-rail__topics a {
    color:var(--deep);
    font:700 14px/1.4 var(--display)
}
body.uppt-nova a.explore-rail__highlight {
    display:grid;
    gap:10px;
    margin-top:22px;
    padding:18px;
    border-radius:12px;
    background:var(--deep);
    color:#fff;
    text-decoration:none
}
.explore-rail__highlight>span {
    color:#b9d9b7
}
.explore-rail__highlight strong {
    font:800 17px/1.28 var(--display);
    letter-spacing:-.035em
}
.explore-rail__highlight small {
    color:#dceade;
    font:700 11px var(--font)
}
body.uppt-nova a.explore-rail__highlight:hover {
    background:#2f6c55;
    color:#fff
}
.explore-band {
    margin-top:75px;
    padding:35px;
    border:1px solid #d5e0d0;
    border-radius:22px;
    background:#eaf0e5
}
.explore-band__heading {
    display:flex;
    align-items:end;
    flex-wrap:wrap;
    gap:10px 25px;
    margin-bottom:22px
}
.explore-band__heading .eyebrow {
    flex-basis:100%
}
.explore-band__heading h2 {
    margin:0;
    font:800 clamp(29px,3vw,40px)/1.1 var(--display);
    letter-spacing:-.06em
}
.explore-band__heading p {
    margin:0 0 3px;
    color:var(--muted);
    font-size:14px
}
.explore-band__cards {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px
}
.explore-band__card {
    display:flex;
    flex-direction:column;
    min-height:190px;
    padding:23px;
    border:1px solid #dce5d8;
    border-radius:14px;
    background:var(--paper);
    color:var(--deep);
    text-decoration:none;
    transition:transform .2s ease,box-shadow .2s ease
}
.explore-band__card:hover {
    transform:translateY(-3px);
    box-shadow:0 13px 27px #1d3e291b
}
.explore-band__card>span {
    color:var(--green);
    font:800 10px/1.4 var(--display);
    letter-spacing:.1em
}
.explore-band__card strong {
    margin:13px 0 20px;
    font:800 21px/1.25 var(--display);
    letter-spacing:-.045em;
    overflow-wrap:anywhere
}
.explore-band__card small {
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:13px;
    border-top:1px solid var(--line);
    color:var(--green);
    font:800 11px/1.35 var(--font)
}
@media(max-width:1050px) {
    .article-layout,.schedule-detail__layout,.recipe-detail__layout {
        grid-template-columns:minmax(0,1fr)
    }
    .explore-rail,.recipe-detail__aside {
        position:static;
        width:100%
    }
}
@media(max-width:760px) {
    .explore-band { margin-top:55px;padding:24px }
    .explore-band__cards { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:560px) {
    .article-layout,.schedule-detail__layout,.recipe-detail__layout { gap:30px }
    .explore-rail { padding:21px }
    .explore-band { padding:20px;border-radius:16px }
    .explore-band__cards { grid-template-columns:1fr }
    .explore-band__card { min-height:155px }
}
@media(prefers-reduced-motion:reduce) {
    .explore-band__card { transition:none }
}
@media print {
    .explore-rail,.explore-band { display:none!important }
    .article-layout,.schedule-detail__layout { display:block }
}

/* Editable footer links and the consent control shared by all pages. */
.footer-inner { grid-template-columns:190px minmax(0,1fr) 210px;gap:34px }
.footer-extra .mod-custom { display:grid;grid-template-columns:1fr;gap:24px }
.footer-extra__group { display:grid;align-content:start;gap:8px }
.footer-extra__group h2 { margin:0 0 3px;color:#fff;font:800 15px/1.3 var(--display) }
.footer-extra__group a { color:#e7f0e6;font:650 13px/1.45 var(--font) }
.footer-extra__group a:hover { color:var(--apricot) }
.cookie-settings-link { border:0;padding:0;background:none;color:inherit;text-decoration:underline;text-underline-offset:3px;font-size:inherit }
.cookie-banner { position:fixed;z-index:180;left:50%;bottom:18px;transform:translateX(-50%);width:min(940px,calc(100% - 32px));padding:24px 26px;border:1px solid #b8caba;border-radius:18px;background:#fffdf8;box-shadow:0 20px 65px #142d2540 }
.cookie-banner__inner { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:25px }
.cookie-banner h2 { margin:0 0 5px;color:var(--deep);font:800 23px/1.15 var(--display);letter-spacing:-.04em }
.cookie-banner p { margin:0;color:#43594d;font-size:14px;line-height:1.55 }
.cookie-banner p a { color:var(--deep);text-decoration:underline;text-underline-offset:3px }
.cookie-banner__actions { display:flex;gap:9px;align-items:center }
.cookie-banner__actions button { min-width:165px;padding:11px 15px;border:1px solid var(--deep);border-radius:9px;background:var(--deep);color:#fff;font:750 12px/1.35 var(--font) }
.cookie-banner__actions button:hover { background:#315947 }
.cookie-banner__error { margin:12px 0 0!important;padding:9px 11px;border-radius:8px;background:#faeadf;color:#692b1f!important;font-size:13px!important }
.privacy-image-placeholder { display:inline-block;padding:7px 10px;border:1px dashed #abc2ae;border-radius:8px;background:#f0f5ef;color:#52685b;font-size:12px }
.privacy-image-placeholder span { text-decoration:underline }
.privacy-media-placeholder { padding:25px;border:1px dashed #abc2ae;border-radius:12px;background:#f0f5ef }
.privacy-media-placeholder p { margin:0 0 10px }
.privacy-media-placeholder button { padding:8px 13px;border:1px solid var(--deep);border-radius:8px;background:var(--deep);color:#fff }

/* The original BMI calculation now lives in an editable Joomla article. */
.bmi-tool { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:18px;margin-top:28px }
.bmi-tool__form-panel,.bmi-tool__guide { padding:clamp(24px,3vw,42px);border:1px solid var(--line);border-radius:20px;background:var(--paper) }
.bmi-tool__form-panel { background:#e8eee5 }
.bmi-tool h2 { margin:9px 0 8px;font:800 clamp(30px,3vw,43px)/1.15 var(--display);letter-spacing:-.06em }
.bmi-tool p { color:#4f6155 }
.bmi-tool__fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:26px 0 18px }
.bmi-tool__fields label { display:grid;gap:7px;color:var(--deep);font:750 15px/1.4 var(--font) }
.bmi-tool__fields label span { color:var(--muted);font-weight:500;font-size:12px }
.bmi-tool__fields input { width:100%;padding:13px 14px;border:1px solid #b5c8b7;border-radius:9px;background:#fff;color:var(--deep) }
.bmi-tool button[type=submit] { display:flex;justify-content:space-between;gap:25px;min-width:200px;padding:13px 18px;border:0;border-radius:9px;background:var(--deep);color:#fff;font-weight:800 }
.bmi-tool__error { margin:13px 0 0!important;color:#a53428!important;font-weight:700 }
.bmi-tool__result { margin-top:22px;padding:18px 21px;border-radius:13px;background:#fff }
.bmi-tool__result>span { display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em }
.bmi-tool__result strong { display:block;color:var(--deep);font:800 52px/1.1 var(--display);letter-spacing:-.07em }
.bmi-tool__result p { margin:3px 0 0;color:var(--deep);font-weight:700 }
.bmi-tool__guide dl { margin:22px 0;border-top:1px solid var(--line) }
.bmi-tool__guide dl div { display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line) }
.bmi-tool__guide dt { color:var(--deep);font-weight:800 }
.bmi-tool__guide dd { margin:0;text-align:right;color:#536459 }
.bmi-tool__source a { color:var(--green)!important;text-decoration:underline!important }
.bmi-page__hero,.privacy-page__hero { display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:center;gap:35px;padding:15px 0 30px;border-bottom:1px solid var(--line) }
.bmi-page__hero h1,.privacy-page__hero h1 { margin:10px 0 14px;font:800 clamp(44px,5.5vw,76px)/1.08 var(--display);letter-spacing:-.075em }
.bmi-page__intro,.privacy-page__hero p { max-width:650px;color:#526357;font-size:17px }
.bmi-page__hero>img,.privacy-page__hero>img { width:100%;height:260px;object-fit:cover;border-radius:17px }
.privacy-page__body { max-width:840px;margin:35px auto 0;padding:0 10px;font-size:16px;line-height:1.75 }
.privacy-page__body h2 { margin:32px 0 10px;font:800 30px/1.2 var(--display);letter-spacing:-.05em }
.privacy-page__body a { color:var(--green)!important;text-decoration:underline!important;text-underline-offset:3px }

/* A privacy-first library: local thumbnails, optional off-site players. */
.media-library-page__hero { display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.8fr);align-items:center;gap:40px;padding:18px 0 48px;border-bottom:1px solid var(--line) }
.media-library-page__hero h1 { margin:12px 0 20px;font:800 clamp(45px,5.5vw,78px)/1.06 var(--display);letter-spacing:-.075em }
.media-library-page__hero p { max-width:680px;color:#4d6153;font-size:17px }
.media-library-page__hero>img { width:100%;height:330px;object-fit:cover;border-radius:19px }
.media-library-page__links { display:flex;flex-wrap:wrap;gap:10px;margin-top:25px }
.media-library-page__links a,.media-library-page__archive-link a { display:inline-flex;align-items:center;padding:10px 16px;border:1px solid #bed0bf;border-radius:99px;background:#eef3eb;color:var(--deep);font-weight:800;font-size:13px }
.media-section-heading { display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 0 24px }
.media-section-heading h2 { margin:8px 0 0;font:800 clamp(30px,3.4vw,48px)/1.12 var(--display);letter-spacing:-.06em }
.media-section-heading p { max-width:370px;margin:0;color:var(--muted);font-size:14px }
.media-latest,.media-archive { margin-top:68px }
.media-spotlight { display:grid;grid-template-columns:minmax(0,1.75fr) minmax(315px,.85fr);gap:16px;align-items:stretch }
.media-social { display:flex;flex-direction:column;min-width:0;min-height:390px;padding:30px;border-radius:20px;background:radial-gradient(circle at 100% 0%,#43745b 0,transparent 44%),linear-gradient(145deg,#1d4335,#102e28);color:#fff }
.media-social__top { display:flex;align-items:center;gap:12px;margin-bottom:30px }
.media-social__top .eyebrow { color:#c6e0c2 }
.media-social__mark { display:grid;place-items:center;width:40px;height:40px;border:1px solid #bdd8bd;border-radius:12px;background:#dcebd7;color:#1c3c32;font:800 31px/1 Arial,sans-serif }
.media-social h3 { max-width:330px;margin:0;color:#fff;font:800 clamp(29px,2.5vw,38px)/1.08 var(--display);letter-spacing:-.055em }
.media-social p { max-width:335px;margin:17px 0 22px;color:#d7e5d8;font-size:14px;line-height:1.6 }
.media-social__actions { display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:auto }
.media-social__actions .media-social__primary { display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 16px;border:0;border-radius:9px;background:#e5efdf;color:var(--deep);font-weight:800;text-decoration:none }
.media-social__actions .media-social__primary:hover,.media-social__actions .media-social__primary:focus-visible { background:#fff }
.media-social__actions a { color:#e4f0e2;font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px }
.media-social small { display:block;margin-top:18px;color:#b9d0c0;font-size:11px }
.media-facebook-feature { margin:22px 0 32px;padding:27px;border:1px solid #ccdacb;border-radius:19px;background:#edf3e9;scroll-margin-top:30px }
.media-facebook-feature .media-section-heading { margin-bottom:22px }
.facebook-feed-grid { display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-auto-rows:minmax(230px,auto);gap:14px }
.facebook-post { min-width:0;overflow:hidden;border:1px solid #d5dfd0;border-radius:15px;background:#fffdf8 }
.facebook-post__link { display:flex;flex-direction:column;height:100%;padding:24px;color:var(--deep) }
.facebook-post__link:hover,.facebook-post__link:focus-visible { background:#f8fbf5 }
.facebook-post__meta { display:block;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase }
.facebook-post h3 { margin:14px 0 10px;color:var(--deep);font:800 clamp(20px,2vw,27px)/1.16 var(--display);letter-spacing:-.045em }
.facebook-post p { margin:0;color:#506257;font-size:13px;line-height:1.58 }
.facebook-post__cta { display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:20px;color:var(--green);font-size:12px;font-weight:800 }
.facebook-post--lead { grid-row:span 2 }
.facebook-post--lead .facebook-post__link { padding:0 }
.facebook-post__images { display:grid;grid-template-columns:.6fr 1fr;height:240px;overflow:hidden;background:#dce8d8 }
.media-library-page .facebook-post__images img { display:block;width:100%;height:100%;object-fit:cover }
.facebook-post__images img:first-child { object-position:center 23% }
.facebook-post__body { display:flex;flex:1;flex-direction:column;padding:25px }
.facebook-post--lead h3 { font-size:clamp(26px,2.7vw,35px) }
.facebook-post:nth-child(3) { background:#e4ede1 }
.facebook-post:nth-child(3) .facebook-post__link:hover { background:#dbe8d8 }
.facebook-post:nth-child(4) { background:#23493a;border-color:#23493a }
.facebook-post:nth-child(4) h3,.facebook-post:nth-child(4) p,.facebook-post:nth-child(4) .facebook-post__cta { color:#fff }
.facebook-post:nth-child(4) .facebook-post__meta { color:#c5dfc3 }
.facebook-post:nth-child(4) .facebook-post__link:hover { background:#1d3e32 }
body.uppt-nova .media-facebook-feature__more { display:inline-flex;gap:35px;align-items:center;margin-top:18px;padding:10px 14px;border-radius:9px;background:var(--deep);color:#fff;font-size:13px;font-weight:800 }
body.uppt-nova .media-facebook-feature__more:hover { color:#fff;background:var(--green) }
.media-player { display:grid;place-items:center;min-height:390px;overflow:hidden;border-radius:20px;background:#18332a center/cover no-repeat;color:#fff }
.media-player iframe { display:block;width:100%;aspect-ratio:16/9;border:0 }
.media-player__frame { width:100% }
.media-player__frame>a { display:block;padding:11px 15px;background:#18332a;color:#fff!important;text-align:center;font-size:12px;font-weight:800 }
.media-player__frame>a:hover { background:#315947 }
.media-player__placeholder { max-width:430px;padding:35px;text-align:center }
.media-player__eyebrow { display:block;margin:0 0 10px;color:#b9d9c5;font-size:10px;font-weight:800;letter-spacing:.12em }
.media-player__symbol { display:grid;place-items:center;width:67px;height:67px;margin:0 auto 15px;border-radius:50%;background:#e4ede1;color:var(--deep);font-size:27px }
.media-player__placeholder h3 { margin:0;color:#fff;font:800 26px/1.2 var(--display) }
.media-player__placeholder p { margin:10px 0 20px;color:#d7e5d8;font-size:14px }
.media-player__placeholder button { padding:9px 15px;border:1px solid #d9e8d9;border-radius:8px;background:#e8f0e5;color:var(--deep);font-weight:800 }
.media-player__external { display:block;margin-top:12px;color:#e8f0e5!important;text-decoration:underline!important;font-size:12px;font-weight:700 }
.media-video-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:22px 0 0;padding:0;list-style:none }
.media-video-card { display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--paper) }
.media-video-card__play { display:flex;flex-direction:column;flex:1;min-width:0 }
.media-video-card__play img { display:block;width:100%;height:190px;object-fit:cover;background:#d7e2d5 }
.media-video-card__play span { display:block;padding:16px 17px 11px;color:var(--deep);font:800 17px/1.35 var(--display);letter-spacing:-.035em;overflow-wrap:anywhere }
.media-video-card__description { margin:0 17px 15px;color:#506257;font-size:13px;line-height:1.55;overflow-wrap:anywhere;white-space:pre-line }
.media-video-card__description summary { list-style:none;cursor:pointer;white-space:normal }
.media-video-card__description summary::-webkit-details-marker { display:none }
.media-video-card__excerpt { display:block }
.media-video-card__toggle { display:inline-block;margin-top:8px;color:var(--green);font-weight:800 }
.media-video-card__toggle--open,.media-video-card__description[open] .media-video-card__excerpt,.media-video-card__description[open] .media-video-card__toggle--closed { display:none }
.media-video-card__description[open] .media-video-card__toggle--open { display:inline-block }
.media-video-card__full { margin:10px 0 0;white-space:pre-line }
.media-video-card__meta,.media-video-card__external { display:flex;justify-content:space-between;gap:10px;margin:auto 17px 0;padding:10px 0 13px;border-top:1px solid var(--line);color:var(--green);font-size:12px;font-weight:800 }
.media-video-card__external { display:block }
.media-archive-search { max-width:600px;margin-bottom:14px }
.media-archive-search label { display:block;margin-bottom:6px;color:var(--deep);font-size:13px;font-weight:800 }
.media-archive-search>div { display:flex;gap:8px }
.media-archive-search input { flex:1;min-width:0;padding:10px 13px;border:1px solid #c8d3c6;border-radius:8px;background:#fff }
.media-archive-search button { padding:10px 15px;border:0;border-radius:8px;background:var(--deep);color:#fff;font-weight:800 }
.media-archive-count { margin:0;color:var(--muted);font-size:12px }
.media-archive-pagination { display:flex;flex-wrap:wrap;gap:7px;margin-top:22px }
.media-archive-pagination button { padding:7px 11px;border:1px solid #c8d3c6;border-radius:7px;background:#fff;color:var(--deep);font-weight:700 }
.media-archive-pagination button[aria-current=page] { background:var(--deep);color:#fff }
.media-archive-pagination button:disabled { opacity:.48;cursor:default }
.media-library-page__archive-link { margin:25px 0 0 }
.media-library-page__empty { padding:25px;border:1px solid var(--line);border-radius:12px;background:var(--paper) }
@media(max-width:1150px) { .footer-inner { grid-template-columns:1fr }.footer-copy { min-height:0;justify-content:flex-start } }
@media(max-width:850px) { .bmi-tool,.bmi-page__hero,.privacy-page__hero,.media-library-page__hero,.media-spotlight { grid-template-columns:1fr }.media-social { min-height:320px }.facebook-feed-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }.facebook-post--lead { grid-column:1/-1;grid-row:auto }.media-video-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }.cookie-banner__inner { grid-template-columns:1fr }.cookie-banner__actions { justify-content:stretch } }
@media(max-width:600px) { .media-video-grid,.facebook-feed-grid { grid-template-columns:1fr }.media-player { min-height:300px }.media-library-page__hero>img { height:230px }.media-section-heading { display:block }.media-section-heading p { margin-top:12px }.media-facebook-feature { padding:15px }.facebook-post--lead { grid-column:auto }.facebook-post__images { height:210px }.facebook-post__link { min-height:210px }.bmi-tool__fields { grid-template-columns:1fr }.cookie-banner { bottom:8px;padding:18px }.cookie-banner__actions { flex-direction:column }.cookie-banner__actions button { width:100% } }
@media print { .cookie-banner,.media-player,.media-archive-pagination { display:none!important } }

/* The global Joomla Smart Search module and its result view. */
.site-search { flex:none;position:relative }
.site-search__toggle { display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:10px;background:#f2f5ee;color:var(--deep) }
.site-search__toggle:hover,.site-search__toggle[aria-expanded=true] { border-color:#a9c3ad;background:var(--sage) }
.site-search__toggle svg { width:19px;height:19px }
.site-search__panel { position:absolute;z-index:120;top:calc(100% + 17px);right:0;width:min(410px,calc(100vw - 36px));padding:18px;border:1px solid #cbd9c9;border-radius:15px;background:var(--paper);box-shadow:0 20px 45px #17372a24 }
.site-search__panel:before { content:'';position:absolute;top:-10px;right:12px;width:17px;height:17px;transform:rotate(45deg);border-top:1px solid #cbd9c9;border-left:1px solid #cbd9c9;background:var(--paper) }
.site-search__form>label { display:block;margin:0 0 9px;color:var(--deep);font-size:13px;font-weight:800 }
.site-search__field { display:flex;gap:7px }
.site-search__field input { flex:1;min-width:0;width:100%;padding:11px 12px;border:1px solid #bdcebb;border-radius:8px;background:#fff;color:var(--deep);font-size:14px }
.site-search__field input::placeholder { color:#718076;opacity:1 }
.site-search__field button { padding:10px 15px;border:0;border-radius:8px;background:var(--deep);color:#fff;font-size:13px;font-weight:800 }
.site-search__field button:hover { background:var(--green) }
.site-search__hits { margin-top:14px;padding-top:8px;border-top:1px solid var(--line) }
.site-search__hits>a { display:flex;align-items:center;gap:11px;min-height:56px;padding:7px 4px;border-radius:7px;color:var(--deep);font:700 13px/1.3 var(--display) }
.site-search__hits>a:hover,.site-search__hits>a:focus-visible { background:#eaf2e8;color:var(--deep) }
.site-search__hits img { flex:none;width:48px;height:42px;object-fit:cover;border-radius:6px;background:var(--sage) }
.site-search__hits__empty { margin:5px 2px 2px;color:var(--muted);font-size:13px }
.site-search__all { display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:10px 4px 0!important;border-top:1px solid var(--line);color:var(--green)!important;font-weight:800!important }
.site-results__hero { margin:10px 0 30px;padding:0 0 28px;border-bottom:1px solid var(--line) }
.site-results__hero h1 { margin:12px 0 10px;color:var(--deep);font:800 clamp(44px,6.4vw,76px)/1.07 var(--display);letter-spacing:-.075em }
.site-results__hero p { max-width:610px;margin:0;color:#536459;font-size:17px }
.site-results__prompt { max-width:620px;padding:23px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--muted) }
.site-results__count { margin:0 0 19px;color:var(--muted);font-size:14px;font-weight:700 }
.site-results__suggestion { margin:0 0 16px;color:var(--muted) }
.site-results__suggestion a { color:var(--green)!important;text-decoration:underline!important }
.site-results__form { max-width:820px;margin-bottom:34px }
.site-results__form label { display:block;margin-bottom:8px;color:var(--deep);font-size:13px;font-weight:800 }
.site-results__field { display:flex;gap:8px }
.site-results__field input { flex:1;min-width:0;padding:14px 17px;border:1px solid #becfbc;border-radius:10px;background:#fff;color:var(--deep);font-size:16px }
.site-results__field button { display:flex;align-items:center;gap:16px;padding:12px 22px;border:0;border-radius:10px;background:var(--deep);color:#fff;font-size:13px;font-weight:800;white-space:nowrap }
.site-results__field button:hover { background:var(--green) }
.com-finder__results-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none }
.com-finder__results-list .result__item { display:grid;grid-template-columns:136px minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:0 20px;min-width:0;overflow:hidden;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--paper) }
.com-finder__results-list .result__item:not(:has(.result__image)) { grid-template-columns:1fr }
.com-finder__results-list .result__item:not(:has(.result__image))>* { grid-column:1 }
.com-finder__results-list .result__image { grid-column:1;grid-row:1/4;min-width:0;height:142px;margin:0;overflow:hidden;border-radius:10px;background:var(--sage) }
.com-finder__results-list .result__image a { display:block;height:100% }
.com-finder__results-list .result__image img { display:block;width:100%;height:100%;object-fit:cover }
.com-finder__results-list .result__title { grid-column:2;margin:2px 0 9px;color:var(--deep);font:800 20px/1.2 var(--display);letter-spacing:-.045em }
.com-finder__results-list .result__title-link { display:block }
.com-finder__results-list .result__description { grid-column:2;min-width:0;max-height:78px;margin:0;overflow:hidden;color:#56675c;font-size:13px;line-height:1.5 }
.com-finder__results-list .result__date { display:block;margin-bottom:6px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase }
.com-finder__results-list .result__taxonomy { grid-column:2;display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 0;padding:0;list-style:none;color:var(--muted);font-size:11px }
.com-finder__empty { max-width:820px;padding:30px;border:1px solid var(--line);border-radius:15px;background:var(--paper) }
.com-finder__empty h2 { margin:0 0 8px;color:var(--deep);font:800 26px/1.2 var(--display) }
.com-finder__empty p { margin:0 }
.com-finder__results mark { padding:0 2px;border-radius:3px;background:#f4dec5;color:var(--deep) }
.com-finder__navigation { display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:26px }
.com-finder__counter { color:var(--muted);font-size:12px }
.com-finder__navigation .pagination { flex-wrap:wrap;gap:5px;margin:0;padding:0 }
@media(max-width:900px) { .com-finder__results-list { grid-template-columns:1fr } }
@media(max-width:650px) {
    .menu-toggle { width:42px;height:42px;justify-content:center;gap:0;padding:0 }
    .menu-toggle__label { display:none }
    .site-search__panel { right:-1px;top:calc(100% + 15px) }
    .site-results__hero { margin-top:0 }
    .site-results__hero p { font-size:15px }
    .com-finder__results-list .result__item { grid-template-columns:95px minmax(0,1fr);gap:0 13px;padding:12px }
    .com-finder__results-list .result__image { height:105px }
    .com-finder__results-list .result__title { font-size:17px }
    .com-finder__results-list .result__description { max-height:65px;font-size:12px }
}
@media(max-width:390px) {
    .site-search__panel { right:-2px }
    .com-finder__results-list .result__item { grid-template-columns:80px minmax(0,1fr) }
    .com-finder__results-list .result__image { height:95px }
}
@media(max-width:600px) {
    .cookie-banner { bottom:8px;max-height:calc(100dvh - 16px);overflow:auto;padding:14px 15px }
    .cookie-banner__inner { gap:13px }
    .cookie-banner h2 { font-size:20px }
    .cookie-banner p { font-size:12px;line-height:1.45 }
    .cookie-banner__actions { flex-direction:row;gap:7px }
    .cookie-banner__actions button { width:50%;min-width:0;min-height:48px;padding:7px 5px;font-size:11px }
    .media-player__placeholder { padding:20px }
    .media-player__symbol { width:54px;height:54px;margin-bottom:9px;font-size:22px }
    .media-player__placeholder h3 { font-size:21px }
    .media-player__placeholder p { margin:8px 0 15px;font-size:13px }
    .media-player__external { margin-top:8px }
}
