:root {
    --color-forest: #1F4D45;
    --color-sage: #9FB8A1;
    --color-terracotta: #BE7358;
    --color-ivory: #F7F4ED;
    --color-sand: #E8E0D1;
    --color-ink: #26312D;

    --font-primary: "Manrope", sans-serif;
    --font-accent: "Libre Baskerville", serif;

    --space-unit: 8px;
    --space-label-title: 16px;
    --space-title-body: 24px;
    --space-block: 40px;
    --space-section-mobile: 64px;
    --space-section-desktop: 96px;
    --space-card-inset: 24px;
    --space-image-text-mobile: 24px;
    --space-image-text-desktop: 40px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--space-section-desktop);
}

body {
    margin: 0;
    background: var(--color-ivory);
    color: var(--color-ink);
    font-family: var(--font-primary);
    font-size: 17px;
    line-height: 27px;
}

body.navigation-open {
    overflow: hidden;
}

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

a {
    color: inherit;
}

button,
summary {
    font: inherit;
}

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

:focus-visible {
    outline: 2px solid var(--color-terracotta);
    outline-offset: var(--space-unit);
}

h1,
h2,
h3,
p,
blockquote,
dl,
dd {
    margin: 0;
}

h1 {
    color: var(--color-forest);
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 56px;
}

h2 {
    color: var(--color-forest);
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 40px;
}

h3 {
    color: var(--color-forest);
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
}

.container {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-card-inset);
}

.skip-link {
    position: fixed;
    z-index: 100;
    top: var(--space-unit);
    left: var(--space-unit);
    padding: var(--space-unit) var(--space-label-title);
    transform: translateY(-200%);
    background: var(--color-terracotta);
    color: var(--color-ivory);
    font-weight: 700;
}

.skip-link:focus {
    transform: translateY(0);
}

.eyebrow {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.eyebrow--light {
    color: var(--color-ivory);
}

.site-header {
    position: sticky;
    z-index: 20;
    top: 0;
    border-bottom: 1px solid var(--color-sand);
    background: rgba(247, 244, 237, 0.96);
}

.site-header__inner {
    display: flex;
    min-height: var(--space-section-mobile);
    align-items: center;
    justify-content: space-between;
    gap: var(--space-title-body);
}

.site-header__brand,
.site-footer__brand {
    display: block;
    width: 192px;
    flex: 0 0 auto;
}

.site-header__brand img,
.site-footer__brand img {
    display: block;
    width: 100%;
    height: auto;
}

.site-header__toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-unit);
    border: 0;
    background: transparent;
    color: var(--color-forest);
    cursor: pointer;
    font-weight: 700;
}

.site-header__toggle-icon,
.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
    display: block;
    width: var(--space-title-body);
    height: 2px;
    background: currentColor;
    content: "";
    transition: transform 180ms ease, opacity 180ms ease;
}

.site-header__toggle-icon {
    position: relative;
}

.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
    position: absolute;
    left: 0;
}

.site-header__toggle-icon::before {
    top: calc(var(--space-unit) * -1);
}

.site-header__toggle-icon::after {
    top: var(--space-unit);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon {
    background: transparent;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon::before {
    top: 0;
    transform: rotate(45deg);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon::after {
    top: 0;
    transform: rotate(-45deg);
}

.primary-navigation {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    display: none;
    height: calc(100vh - var(--space-section-desktop));
    height: calc(100dvh - var(--space-section-desktop));
    overflow-y: auto;
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.primary-navigation[data-open] {
    display: block;
}

.primary-navigation__list,
.navigation-dropdown__list,
.site-footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-navigation__list {
    display: grid;
    gap: var(--space-unit);
}

.primary-navigation__item > a,
.navigation-dropdown > summary {
    display: flex;
    min-height: var(--space-block);
    align-items: center;
    padding-block: var(--space-unit);
    color: var(--color-forest);
    font-weight: 600;
    text-decoration: none;
}

.navigation-dropdown > summary {
    justify-content: space-between;
    cursor: pointer;
    list-style: none;
}

.navigation-dropdown > summary::-webkit-details-marker {
    display: none;
}

.navigation-dropdown > summary::after {
    content: "+";
    color: var(--color-terracotta);
    font-size: 22px;
    line-height: 30px;
}

.navigation-dropdown[open] > summary::after {
    content: "−";
}

.navigation-dropdown__list {
    display: grid;
    gap: var(--space-unit);
    padding: var(--space-unit) 0 var(--space-label-title) var(--space-title-body);
}

.navigation-dropdown__list a {
    color: var(--color-forest);
    text-decoration-color: var(--color-terracotta);
    text-underline-offset: var(--space-unit);
}

.hero {
    padding-block: var(--space-section-mobile);
    overflow: hidden;
    background:
        linear-gradient(rgb(247 244 237 / 52%), rgb(247 244 237 / 66%)),
        url('/assets/images/backgrounds/fairytale-forest-energy.png') center / cover no-repeat;
}

.hero__grid {
    display: grid;
    gap: var(--space-image-text-mobile);
}

.hero__content {
    display: grid;
    align-content: center;
    gap: var(--space-title-body);
}

.hero__intro,
.section-heading > :is(p, .markdown-content):last-child,
.prose {
    max-width: 70ch;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-title-body);
    padding-top: var(--space-label-title);
}

@media (max-width: 639px) {
    .hero {
        padding-block: var(--space-block);
    }

    .hero__grid {
        gap: var(--space-block);
    }

    .hero__content {
        gap: var(--space-title-body);
    }

    .hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero__actions .button,
    .hero__actions .text-link {
        width: 100%;
    }
}

.button {
    display: inline-flex;
    min-height: var(--space-section-mobile);
    align-items: center;
    justify-content: center;
    padding: var(--space-label-title) var(--space-title-body);
    border: 2px solid transparent;
    font-weight: 700;
    text-decoration: none;
}

.button--primary {
    background: var(--color-terracotta);
    color: var(--color-ivory);
}

.button--primary:hover {
    border-color: var(--color-forest);
}

.button--secondary {
    border-color: var(--color-forest);
    background: transparent;
    color: var(--color-forest);
}

.button--secondary:hover,
.button--secondary:focus-visible {
    background: var(--color-sage);
}

.text-link {
    color: var(--color-forest);
    font-weight: 700;
    text-decoration-color: var(--color-terracotta);
    text-decoration-thickness: 2px;
    text-underline-offset: var(--space-unit);
}

.hero__panel {
    position: relative;
    display: grid;
    min-height: 400px;
    align-content: end;
    gap: var(--space-title-body);
    overflow: hidden;
    padding: var(--space-card-inset);
    background: var(--color-forest);
    color: var(--color-ivory);
}

.hero__panel::before,
.hero__panel::after {
    position: absolute;
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.hero__panel::before {
    top: calc(var(--space-section-mobile) * -1);
    right: calc(var(--space-block) * -1);
    width: 256px;
    height: 256px;
    background: var(--color-sage);
    opacity: 0.68;
}

.hero__panel::after {
    top: var(--space-block);
    right: var(--space-block);
    width: var(--space-section-mobile);
    height: var(--space-section-mobile);
    background: var(--color-terracotta);
}

.hero__panel > * {
    position: relative;
    z-index: 1;
}

.hero__photo-panel {
    position: relative;
    min-height: 520px;
    margin: 0;
    overflow: hidden;
    background: var(--color-forest);
    color: var(--color-ivory);
}

.hero__photo-panel::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(transparent, var(--color-forest));
    content: "";
    pointer-events: none;
}

.hero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.hero__photo-content {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    gap: var(--space-label-title);
    padding: var(--space-card-inset);
}

.hero__photo-content .hero__facts {
    margin-top: var(--space-unit);
}

.hero__panel-statement {
    max-width: 70ch;
    font-family: var(--font-accent);
    font-size: 22px;
    font-style: italic;
    line-height: 30px;
}

.hero__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-title-body);
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.hero__fact dt {
    color: var(--color-ivory);
    font-size: 32px;
    font-weight: 700;
    line-height: 40px;
}

.hero__fact dd {
    color: var(--color-ivory);
}

.section {
    padding-block: var(--space-section-mobile);
    background: var(--color-ivory);
}

.section--ivory {
    background: var(--color-ivory);
}

.section--sage {
    background: var(--color-sage);
}

.section--sand {
    background: var(--color-sand);
}

.not-found {
    padding-block: var(--space-section-mobile);
    background: var(--color-sand);
}

.not-found__grid {
    display: grid;
    gap: var(--space-image-text-mobile);
}

.not-found__content {
    display: grid;
    align-content: center;
    gap: var(--space-title-body);
}

.not-found__heading {
    display: grid;
    gap: var(--space-label-title);
}

.not-found__requested {
    display: grid;
    gap: var(--space-unit);
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.not-found__requested span {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.not-found__requested code {
    overflow-wrap: anywhere;
    color: var(--color-forest);
}

.not-found__panel {
    position: relative;
    display: grid;
    min-height: calc(var(--space-section-mobile) * 4);
    overflow: hidden;
    place-items: center;
    background: var(--color-forest);
}

.not-found__panel::before,
.not-found__panel::after {
    position: absolute;
    border-radius: 50%;
    content: "";
}

.not-found__panel::before {
    top: var(--space-block);
    right: var(--space-block);
    width: var(--space-section-desktop);
    height: var(--space-section-desktop);
    background: var(--color-sage);
}

.not-found__panel::after {
    bottom: var(--space-block);
    left: var(--space-block);
    width: var(--space-section-mobile);
    height: var(--space-section-mobile);
    background: var(--color-terracotta);
}

.not-found__panel span {
    position: relative;
    z-index: 1;
    color: var(--color-ivory);
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 56px;
}

.about-layout,
.contact-layout {
    display: grid;
    gap: var(--space-image-text-mobile);
}

.section-heading {
    display: grid;
    gap: var(--space-title-body);
}

.about-content {
    display: grid;
    align-content: start;
    gap: var(--space-title-body);
}

.about-content__heading {
    display: grid;
    gap: var(--space-label-title);
}

.about-content .prose {
    display: grid;
    align-content: start;
    gap: var(--space-title-body);
}

.about-portrait {
    display: grid;
    gap: var(--space-label-title);
    margin: 0;
}

.about-portrait img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.about-portrait figcaption {
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.profile-carousel {
    min-width: 0;
}

.profile-carousel__viewport {
    min-height: 0;
}

.about-portrait[hidden] {
    display: none;
}

.profile-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-label-title);
    margin-top: var(--space-title-body);
}

.profile-carousel__controls button {
    display: inline-grid;
    width: var(--space-block);
    height: var(--space-block);
    place-items: center;
    border: 1px solid var(--color-forest);
    border-radius: 50%;
    background: transparent;
    color: var(--color-forest);
    cursor: pointer;
}

.profile-carousel__controls button:hover {
    border-color: var(--color-terracotta);
    background: var(--color-terracotta);
    color: var(--color-ivory);
}

.profile-carousel__position {
    min-width: var(--space-section-mobile);
    padding: var(--space-unit) var(--space-label-title);
    border-radius: 999px;
    background: var(--color-sage);
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.service-grid {
    display: grid;
    gap: var(--space-title-body);
    margin-top: var(--space-block);
}

#services {
    background:
        linear-gradient(rgb(247 244 237 / 52%), rgb(247 244 237 / 66%)),
        url('/assets/images/backgrounds/new-possibilities.png') center / cover no-repeat;
}

.service-card {
    display: grid;
    align-content: start;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sand);
    background: var(--color-ivory);
}

.service-card__image-wrap {
    flex: 0 0 72px;
    overflow: hidden;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--color-sage);
}

.service-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-card__heading {
    display: flex;
    align-items: center;
    gap: var(--space-title-body);
}

.service-card__heading h3 {
    margin-top: var(--space-unit);
}

.service-card__number {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
}

.packages-hero .section-heading,
.media-hero .section-heading {
    max-width: 70ch;
}

.media-hero {
    background:
        linear-gradient(rgb(247 244 237 / 52%), rgb(247 244 237 / 66%)),
        url('/assets/images/backgrounds/moonlit-ripples.png') center / cover no-repeat;
}

.media-content__layout {
    display: grid;
    gap: var(--space-image-text-mobile);
}

.media-content__image-wrap {
    position: relative;
    aspect-ratio: 1446 / 1087;
    overflow: hidden;
}

.media-content__image {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 75%;
    height: auto;
    transform: translate(-50%, -50%) rotate(-90deg);
}

.packages-hero {
    background:
        linear-gradient(rgb(247 244 237 / 52%), rgb(247 244 237 / 66%)),
        url('/assets/images/backgrounds/packages-paths.png') center / cover no-repeat;
}

.packages-note,
.package-card__label {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.package-grid {
    display: grid;
    gap: var(--space-title-body);
    margin-top: var(--space-block);
}

.package-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.package-card__heading,
.package-card__features,
.package-card__price {
    display: grid;
    gap: var(--space-label-title);
}

.package-card__features ul {
    display: grid;
    gap: var(--space-unit);
    margin: 0;
    padding-left: var(--space-title-body);
}

.package-card__features li::marker {
    color: var(--color-terracotta);
}

.package-card__price {
    margin-top: auto;
}

.package-card__price strong {
    color: var(--color-forest);
    font-size: 22px;
    line-height: 30px;
}

.package-card .button {
    width: 100%;
}

.media-empty-state {
    display: grid;
    max-width: 70ch;
    gap: var(--space-label-title);
    margin-top: var(--space-block);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.media-empty-state--placeholder {
    min-height: calc(var(--space-section-desktop) * 2);
    border: 1px dashed var(--color-sage);
}

.admin-empty-content-action {
    justify-self: start;
}

.admin-navigating .admin-empty-content-action {
    display: none;
}

.admin-navigating .admin-empty-content-choice,
.admin-navigating .admin-empty-content-choice select {
    display: none;
}

.media-grid {
    display: grid;
    gap: var(--space-title-body);
    margin-top: var(--space-block);
}

.media-card {
    background: var(--color-ivory);
}

.media-card__image {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    cursor: zoom-in;
}

.media-card__media {
    position: relative;
    overflow: hidden;
    background: var(--color-sage);
}

.media-card__type {
    position: absolute;
    z-index: 1;
    top: var(--space-label-title);
    left: var(--space-label-title);
    padding: var(--space-unit) var(--space-label-title);
    background: rgb(38 49 45 / 82%);
    color: var(--color-ivory);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.media-card__video {
    position: relative;
    aspect-ratio: 16 / 9;
}

.media-card__video iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    cursor: zoom-in;
}

.media-card__content {
    display: grid;
    gap: var(--space-label-title);
    padding: var(--space-card-inset);
}

.media-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-unit) var(--space-label-title);
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.media-card__placeholder {
    margin: 0;
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.media-card__description {
    color: var(--color-ink);
}

.media-lightbox {
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    margin: 0;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
}

.media-lightbox::backdrop {
    background: rgb(0 0 0 / 75%);
}

.media-lightbox[open] {
    display: grid;
}

.media-lightbox img {
    display: block;
    width: auto;
    max-width: 100vw;
    max-height: 100vh;
    object-fit: contain;
}

.media-lightbox iframe {
    display: block;
    width: min(100%, 1200px);
    aspect-ratio: 16 / 9;
    border: 0;
}

.media-lightbox__close {
    position: fixed;
    z-index: 1;
    top: var(--space-label-title);
    right: var(--space-label-title);
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid var(--color-ivory);
    border-radius: 50%;
    background: transparent;
    color: var(--color-ivory);
    font: 32px/1 Manrope, sans-serif;
    cursor: pointer;
}

.media-lightbox__close:hover,
.media-lightbox__close:focus-visible {
    background: var(--color-terracotta);
}

.testimonials {
    background: var(--color-forest);
    color: var(--color-ivory);
}

.testimonials h2 {
    color: var(--color-ivory);
}

.testimonial-carousel {
    margin-top: var(--space-block);
}

.testimonial-carousel__viewport {
    min-height: 320px;
}

.testimonial-card {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    min-height: 320px;
    align-items: center;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
    color: var(--color-ink);
}

.testimonial-card__portrait {
    position: relative;
    grid-row: 1 / span 3;
    width: 132px;
    aspect-ratio: 1;
    margin-inline: auto;
}

.testimonial-card__portrait-base,
.testimonial-card__portrait-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.testimonial-card__portrait-base {
    border-radius: 50%;
}

.testimonial-card__portrait-frame {
    object-fit: contain;
    pointer-events: none;
}

.testimonial-card[hidden] {
    display: none;
}

.testimonial-card__status {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.testimonial-card blockquote {
    max-width: 70ch;
    color: var(--color-forest);
    font-family: var(--font-accent);
    font-size: 22px;
    font-style: italic;
    line-height: 30px;
}

.testimonial-card__author {
    color: var(--color-forest);
    font-weight: 700;
}

.testimonial-carousel__controls {
    display: flex;
    align-items: center;
    gap: var(--space-label-title);
    justify-content: flex-end;
    margin-top: var(--space-title-body);
}

.testimonial-carousel__controls button {
    display: inline-grid;
    width: var(--space-block);
    height: var(--space-block);
    place-items: center;
    border: 1px solid var(--color-sage);
    border-radius: 50%;
    background: transparent;
    color: var(--color-ivory);
    cursor: pointer;
}

.testimonial-carousel__controls button:hover {
    background: var(--color-terracotta);
}

.testimonial-carousel__position {
    min-width: var(--space-section-mobile);
    color: var(--color-ivory);
    text-align: center;
}

.contact-card {
    display: grid;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
    font-style: normal;
}

.contact-card__item {
    display: grid;
    gap: var(--space-unit);
}

.contact-card__item span,
.contact-card__note {
    color: var(--color-terracotta);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.contact-card__item a,
.contact-card__item strong {
    overflow-wrap: anywhere;
    color: var(--color-forest);
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
}

.contact-card__note {
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sand);
}

.site-footer {
    padding-top: var(--space-section-mobile);
    background: var(--color-forest);
    color: var(--color-ivory);
}

.site-footer__grid {
    display: grid;
    gap: var(--space-block);
}

.site-footer__brand {
    min-width: 160px;
    margin-bottom: var(--space-title-body);
}

.site-footer__grid > div:first-child > :is(p, .markdown-content) {
    max-width: 70ch;
}

.site-footer__navigation,
.site-footer__contact,
.site-footer__languages {
    display: grid;
    align-content: start;
    gap: var(--space-title-body);
}

.site-footer__navigation ul,
.site-footer__contact,
.site-footer__languages ul {
    gap: var(--space-unit);
}

.site-footer__navigation a,
.site-footer__language-link {
    text-decoration-color: var(--color-terracotta);
    text-underline-offset: var(--space-unit);
}

.site-footer__language-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-unit);
}

.site-footer__language-link[aria-current="page"] {
    font-weight: 700;
}

.site-footer__bottom {
    margin-top: var(--space-block);
    padding-block: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.admin-session {
    padding-bottom: var(--space-section-mobile);
}

.admin-toolbar {
    position: fixed;
    z-index: 90;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-label-title);
    padding: var(--space-label-title) var(--space-card-inset);
    background: var(--color-forest);
    color: var(--color-ivory);
    font-size: 12px;
    line-height: 16px;
}

.admin-toolbar a {
    color: var(--color-ivory);
    text-decoration-color: var(--color-terracotta);
    text-underline-offset: var(--space-unit);
}

.admin-toolbar--preview {
    flex-wrap: wrap;
    justify-content: flex-start;
    background: var(--color-terracotta);
}

.admin-toolbar--preview span {
    overflow-wrap: anywhere;
}

.admin-toolbar--preview form {
    margin: 0;
}

.admin-toolbar--preview .admin-text-button {
    color: var(--color-ivory);
}

.admin-text-button--danger {
    color: var(--color-terracotta);
}

.admin-toolbar__mode {
    padding: var(--space-unit) var(--space-label-title);
    border: 1px solid var(--color-terracotta);
    background: transparent;
    color: var(--color-ivory);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.admin-toolbar__mode[aria-pressed="false"] {
    background: var(--color-terracotta);
}

.admin-editing .inline-editable {
    cursor: pointer;
    outline: 1px dashed var(--color-terracotta);
    outline-offset: var(--space-unit);
}

.admin-editing .inline-editable--markdown {
    display: block;
    width: 100%;
    vertical-align: top;
}

.admin-editing .inline-editable:hover {
    background: rgb(190 115 88 / 24%);
}

.admin-editing [data-inline-image-edit] {
    cursor: pointer;
    outline: 1px dashed var(--color-terracotta);
    outline-offset: var(--space-unit);
}

.admin-editing [data-inline-image-edit]:hover {
    outline-width: 2px;
}

.admin-editing [data-inline-youtube-edit] {
    cursor: pointer;
    outline: 1px dashed var(--color-terracotta);
    outline-offset: var(--space-unit);
}

.admin-editing [data-inline-youtube-edit]:hover {
    outline-width: 2px;
}

.admin-editing .admin-media-edit-button {
    position: absolute;
    right: var(--space-label-title);
    bottom: var(--space-label-title);
    z-index: 1;
    padding: var(--space-unit) var(--space-label-title);
    border: 1px solid var(--color-ivory);
    background: var(--color-forest);
    color: var(--color-ivory);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.admin-editing .admin-media-edit-button:hover,
.admin-editing .admin-media-edit-button:focus-visible {
    background: var(--color-terracotta);
}

.admin-navigating .admin-media-edit-button {
    display: none;
}

.admin-collection-tools {
    display: none;
}

.admin-editing .admin-collection-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-label-title);
}

.admin-collection-order {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-unit);
}

.admin-collection-action {
    padding: var(--space-unit) var(--space-label-title);
    border: 1px solid var(--color-terracotta);
    background: transparent;
    color: var(--color-forest);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    cursor: pointer;
}

.admin-collection-action:hover,
.admin-collection-action:focus-visible {
    background: var(--color-terracotta);
    color: var(--color-ivory);
}

.admin-collection-action--remove {
    border-color: var(--color-forest);
}

.admin-collection-action--remove:hover,
.admin-collection-action--remove:focus-visible {
    border-color: var(--color-terracotta);
}

.admin-collection-action:disabled {
    cursor: not-allowed;
    opacity: 0.68;
}

.admin-collection-status {
    font-size: 12px;
    line-height: 16px;
}

.admin-new-item {
    background: rgb(159 184 161 / 24%);
    box-shadow: inset 0 0 0 2px var(--color-terracotta);
}

.admin-new-item__badge {
    padding: var(--space-unit) var(--space-label-title);
    background: var(--color-terracotta);
    color: var(--color-ivory);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.inline-editor {
    width: min(70ch, calc(100% - (var(--space-title-body) * 2)));
    max-height: calc(100% - (var(--space-title-body) * 2));
    padding: 0;
    border: 1px solid var(--color-sand);
    background: var(--color-ivory);
    color: var(--color-ink);
}

.inline-editor--assets {
    width: min(1200px, calc(100% - (var(--space-title-body) * 2)));
}

.inline-editor::backdrop {
    background: rgb(38 49 45 / 72%);
}

.inline-editor__form,
.inline-editor__heading,
.inline-editor__url,
.admin-card,
.admin-card__heading,
.admin-dashboard__header,
.admin-dashboard-grid,
.admin-dashboard-card,
.admin-dashboard-card__heading,
.admin-login-form,
.admin-contact-form,
.admin-backup-form,
.admin-settings,
.admin-help {
    display: grid;
}

.inline-editor__form {
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
}

.inline-editor__heading,
.admin-card__heading {
    gap: var(--space-label-title);
}

.inline-editor__key {
    display: flex;
    max-width: 100%;
    flex-wrap: wrap;
    justify-self: end;
    justify-content: flex-end;
    gap: var(--space-unit);
    margin: 0;
    color: var(--color-forest);
    font-size: 12px;
    line-height: 16px;
    text-align: right;
}

.inline-editor__key span {
    font-weight: 700;
    letter-spacing: 0.08em;
    opacity: 0.72;
    text-transform: uppercase;
}

.inline-editor__key code {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.inline-editor__url {
    gap: var(--space-unit);
}

.inline-image-editor__source,
.inline-image-editor__dimensions {
    display: grid;
    gap: var(--space-label-title);
}

.inline-image-editor__dimensions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.inline-image-editor__dimensions label:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
}

.inline-image-editor__dimensions input {
    grid-row: 2;
}

.inline-editor__url[hidden] {
    display: none;
}

.inline-editor label,
.admin-login-form label,
.admin-contact-form > label:not(.admin-checkbox),
.admin-backup-form > label {
    color: var(--color-forest);
    font-weight: 700;
}

.inline-editor textarea,
.inline-editor input,
.inline-editor select,
.admin-login-form input,
.admin-contact-form input:not([type="checkbox"]),
.admin-backup-form :is(input, select) {
    width: 100%;
    padding: var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-ink);
    font: inherit;
}

.inline-editor__optional {
    font-weight: 400;
}

.inline-editor__url-preview {
    display: grid;
    gap: var(--space-unit);
    margin: 0;
    padding: var(--space-label-title);
    background: var(--color-sand);
}

.inline-editor__url-preview span {
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.inline-editor__url-preview code {
    overflow-wrap: anywhere;
}

.inline-editor__help,
.inline-editor__status {
    font-size: 12px;
    line-height: 16px;
}

.inline-editor__actions,
.admin-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-label-title);
}

.inline-editor__actions {
    width: 100%;
    justify-content: space-between;
}

.inline-editor__actions .button {
    margin-left: auto;
}

.admin-text-button,
.admin-button--secondary {
    border: 0;
    background: transparent;
    color: var(--color-forest);
    cursor: pointer;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--color-terracotta);
    text-underline-offset: var(--space-unit);
}

.admin-button--secondary {
    min-height: var(--space-section-mobile);
    padding: var(--space-label-title) var(--space-title-body);
}

.admin-page {
    min-height: 100vh;
    background: var(--color-sage);
}

.admin-shell {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: var(--space-section-mobile) var(--space-card-inset);
}

.admin-card {
    width: min(100%, 70ch);
    gap: var(--space-block);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.admin-card--dashboard {
    width: min(100%, 1200px);
}

.admin-dashboard__header {
    gap: var(--space-title-body);
    padding-bottom: var(--space-title-body);
    border-bottom: 1px solid var(--color-sand);
}

.admin-dashboard-grid {
    align-items: start;
    gap: var(--space-title-body);
}

.admin-dashboard-card {
    align-content: start;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sage);
    background: var(--color-sand);
}

.admin-dashboard-card__heading {
    gap: var(--space-label-title);
}

.admin-dashboard-card .admin-actions {
    align-items: stretch;
}

.admin-dashboard-card .admin-actions .button {
    width: 100%;
}

.admin-dashboard-card .admin-help {
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.admin-card__brand {
    width: 192px;
}

.admin-card__brand img {
    display: block;
    width: 100%;
    height: auto;
}

.admin-login-form,
.admin-contact-form,
.admin-backup-form,
.admin-help {
    gap: var(--space-label-title);
}

.admin-settings {
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sand);
}

.admin-checkbox {
    display: flex;
    align-items: center;
    gap: var(--space-unit);
    color: var(--color-forest);
    font-weight: 700;
}

.admin-checkbox input {
    width: auto;
    margin: 0;
    accent-color: var(--color-terracotta);
}

.admin-form-help {
    font-size: 12px;
    line-height: 16px;
}

.admin-empty-content-choice {
    display: flex;
    align-items: center;
    gap: var(--space-label-title);
    color: var(--color-forest);
    font-weight: 700;
}

.admin-empty-content-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-title-body);
}

.admin-empty-content-choice select {
    width: auto;
    min-width: 180px;
    padding: var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-ink);
    font: inherit;
}

.admin-media-type-toggle {
    display: none;
    justify-self: start;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-terracotta);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.admin-editing .admin-media-type-toggle {
    display: block;
}

.admin-backup-status {
    margin: 0;
    padding: var(--space-label-title);
    background: var(--color-ivory);
    color: var(--color-forest);
    font-size: 12px;
    line-height: 16px;
}

.admin-backup-form--restore {
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.admin-backup-form--create {
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
}

.admin-backup-form--rename {
    padding-top: var(--space-title-body);
    border-top: 1px solid var(--color-sage);
}

.admin-message {
    padding: var(--space-label-title);
    background: var(--color-sand);
}

.admin-message--error {
    border-left: var(--space-unit) solid var(--color-terracotta);
}

.admin-message--success {
    border-left: var(--space-unit) solid var(--color-forest);
}

.admin-help {
    padding: var(--space-card-inset);
    background: var(--color-sand);
}

.admin-help code {
    color: var(--color-forest);
}

.admin-logout-form {
    justify-self: start;
}

.admin-file-shell {
    min-height: 100vh;
    padding: var(--space-section-mobile) var(--space-card-inset);
}

.admin-file-manager,
.admin-file-manager__header,
.admin-file-manager__heading,
.admin-restore-points,
.admin-restore-points__layout,
.admin-restore-points__sidebar,
.admin-restore-points__detail,
.admin-restore-points__detail-heading,
.admin-restore-points__empty,
.admin-restore-preview,
.admin-restore-preview__file,
.admin-file-actions,
.admin-file-action,
.admin-file-entry,
.admin-file-entry__details {
    display: grid;
}

.admin-file-manager {
    width: min(100%, 1200px);
    margin-inline: auto;
    gap: var(--space-block);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.admin-restore-points {
    width: min(100%, 1200px);
    margin-inline: auto;
    gap: var(--space-block);
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.admin-restore-points__layout {
    align-items: start;
    gap: var(--space-title-body);
}

.admin-restore-points__sidebar,
.admin-restore-points__detail {
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sage);
    background: var(--color-sand);
}

.admin-restore-points__sidebar {
    align-content: start;
}

.admin-restore-point-list {
    display: grid;
    max-height: 440px;
    overflow: auto;
    border: 1px solid var(--color-sage);
}

.admin-restore-point {
    display: grid;
    gap: var(--space-unit);
    padding: var(--space-label-title);
    border-bottom: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-forest);
    font-size: 12px;
    line-height: 16px;
    text-decoration: none;
}

.admin-restore-point:last-child {
    border-bottom: 0;
}

.admin-restore-point:hover,
.admin-restore-point:focus-visible,
.admin-restore-point.is-selected {
    background: var(--color-sage);
}

.admin-restore-point time {
    font-weight: 700;
}

.admin-restore-point strong {
    color: var(--color-forest);
    font-size: 14px;
    line-height: 18px;
}

.admin-restore-point code,
.admin-restore-points__detail code {
    overflow-wrap: anywhere;
}

.admin-restore-points__detail {
    min-width: 0;
}

.admin-restore-points__detail-heading,
.admin-restore-points__empty {
    gap: var(--space-label-title);
}

.admin-restore-preview {
    gap: var(--space-title-body);
}

.admin-restore-preview__file {
    gap: var(--space-label-title);
    min-width: 0;
    padding: var(--space-card-inset);
    background: var(--color-ivory);
}

.admin-restore-preview__file textarea {
    width: 100%;
    min-height: 280px;
    resize: vertical;
    padding: var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-ink);
    font: 12px/16px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.admin-file-manager__header {
    gap: var(--space-title-body);
}

.admin-file-manager__heading {
    max-width: 70ch;
    gap: var(--space-label-title);
}

.admin-file-manager__heading code,
.admin-file-entry code {
    overflow-wrap: anywhere;
    color: var(--color-forest);
}

.admin-file-manager__toolbar,
.admin-file-list-heading,
.admin-file-current__actions,
.admin-file-action__controls,
.admin-file-entry__actions,
.admin-file-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-label-title);
}

.admin-file-manager__toolbar,
.admin-file-list-heading {
    justify-content: space-between;
}

.admin-file-current__actions {
    justify-content: flex-end;
}

.admin-file-current__actions [hidden] {
    display: none;
}

.admin-file-list-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-label-title);
    margin-top: var(--space-title-body);
    padding: var(--space-unit);
    background: var(--color-sand);
}

.admin-file-list-toolbar[hidden] {
    display: none;
}

.admin-file-list-toolbar--empty {
    justify-content: flex-start;
    margin-top: 0;
    padding: 0;
}

.admin-file-list-toolbar .button {
    width: 100%;
    min-height: var(--space-block);
    padding: var(--space-unit) var(--space-label-title);
}

.admin-file-list-toolbar:not([hidden]) ~ .admin-file-grid {
    margin-top: var(--space-unit);
}

.admin-file-manager__toolbar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    padding: var(--space-unit);
    border: 1px solid var(--color-sage);
    background: var(--color-sand);
}

.admin-file-manager__toolbar > [data-refresh-directory] {
    grid-column: 3;
    grid-row: 1;
}

.admin-file-navigation {
    display: flex;
    gap: var(--space-unit);
}

.admin-file-navigation__button {
    display: grid;
    width: var(--space-block);
    min-height: var(--space-block);
    padding: 0;
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-forest);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    place-items: center;
}

.admin-file-navigation__button:hover,
.admin-file-navigation__button:focus-visible {
    border-color: var(--color-terracotta);
}

.admin-file-navigation__button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.admin-file-address {
    display: grid;
    grid-column: 1 / -1;
    gap: var(--space-unit);
    padding: var(--space-unit) var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
}

.admin-file-address__label {
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.admin-file-breadcrumbs {
    gap: var(--space-unit);
}

.admin-file-breadcrumbs__item {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-forest);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--color-terracotta);
    text-underline-offset: var(--space-unit);
}

.admin-file-breadcrumbs__item:disabled {
    cursor: default;
    text-decoration: none;
}

.admin-file-manager__status {
    font-size: 12px;
    line-height: 16px;
}

.admin-file-explorer {
    display: grid;
    gap: var(--space-title-body);
    min-width: 0;
}

.admin-file-tree-panel {
    padding: var(--space-card-inset);
    background: var(--color-sand);
}

.admin-file-tree-panel__heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-label-title);
    margin-bottom: var(--space-title-body);
}

.admin-file-tree-panel__heading h2 {
    font-size: 22px;
    line-height: 30px;
}

.admin-file-tree,
.admin-file-current {
    min-width: 0;
}

.admin-file-tree__list {
    display: grid;
    gap: var(--space-unit);
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-file-tree__list .admin-file-tree__list {
    margin-top: var(--space-unit);
    margin-left: var(--space-label-title);
}

.admin-file-tree__item {
    display: flex;
    width: 100%;
    align-items: center;
    gap: var(--space-unit);
    padding: var(--space-unit);
    border: 0;
    background: transparent;
    color: var(--color-ink);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.admin-file-tree__item:hover,
.admin-file-tree__item:focus-visible,
.admin-file-tree__item--current {
    background: var(--color-ivory);
    color: var(--color-forest);
}

.admin-file-tree__item--current {
    box-shadow: inset var(--space-unit) 0 0 var(--color-terracotta);
    font-weight: 700;
}

.admin-file-tree__icon {
    color: var(--color-terracotta);
}

.admin-file-list-columns {
    display: none;
}

.admin-file-list-columns[hidden] {
    display: none;
}

.admin-file-actions {
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    background: var(--color-sand);
}

.admin-file-actions[hidden] {
    display: none;
}

.admin-file-actions__heading {
    display: grid;
    gap: var(--space-label-title);
}

.admin-file-dialog__path {
    display: block;
    padding: var(--space-label-title);
    background: var(--color-sand);
    color: var(--color-forest);
    overflow-wrap: anywhere;
}

.admin-file-action {
    gap: var(--space-label-title);
}

.admin-file-action[hidden] {
    display: none;
}

.admin-file-action label {
    color: var(--color-forest);
    font-weight: 700;
}

.admin-file-action input {
    width: 100%;
    padding: var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-ink);
    font: inherit;
}

.admin-file-action input[type="file"] {
    padding: var(--space-unit);
}

.admin-file-action__controls > input {
    flex: 1 1 240px;
}

.admin-file-grid {
    display: grid;
    gap: var(--space-title-body);
    margin-top: var(--space-title-body);
}

.admin-file-grid__empty {
    display: grid;
    gap: var(--space-title-body);
    padding: var(--space-card-inset);
    background: var(--color-sand);
}

.admin-file-entry {
    position: relative;
    align-content: start;
    gap: var(--space-label-title);
    min-width: 0;
    padding: var(--space-card-inset);
    border: 1px solid var(--color-sand);
    background: var(--color-ivory);
}

.admin-file-entry__open {
    display: grid;
    width: 100%;
    gap: var(--space-label-title);
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-forest);
    cursor: pointer;
    text-align: left;
}

.admin-file-entry__folder-icon {
    display: grid;
    min-height: var(--space-section-mobile);
    place-items: center;
    background: var(--color-sand);
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.admin-file-entry__preview {
    display: grid;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    place-items: center;
    background: var(--color-sand);
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
}

.admin-file-entry__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-file-entry__details {
    min-width: 0;
    gap: var(--space-unit);
}

.admin-file-entry__details span,
.admin-file-entry__details code {
    font-size: 12px;
    line-height: 16px;
}

.admin-file-entry__badge {
    position: absolute;
    top: var(--space-unit);
    right: var(--space-unit);
    z-index: 1;
    padding-inline: var(--space-unit);
    background: var(--color-sage);
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.admin-file-entry__actions {
    align-self: end;
    gap: var(--space-unit);
}

.admin-file-action-button {
    display: grid;
    width: var(--space-block);
    min-height: var(--space-block);
    padding: var(--space-unit);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-forest);
    cursor: pointer;
    place-items: center;
}

.admin-file-action-button:hover,
.admin-file-action-button:focus-visible {
    border-color: var(--color-terracotta);
    background: var(--color-sand);
}

.admin-file-action-button svg {
    width: var(--space-title-body);
    height: var(--space-title-body);
}

.admin-file-action-button--danger {
    color: var(--color-terracotta);
}

.markdown-image {
    width: 100%;
    margin-block: var(--space-title-body);
}

.markdown-heading {
    display: block;
}

.markdown-heading {
    color: var(--color-forest);
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
}

.markdown-list {
    margin: 0;
    padding-left: var(--space-title-body);
}

.markdown-list li {
    margin: 0;
}

.markdown-list + br {
    display: none;
}

.inline-editor__markdown-tools[hidden] {
    display: none;
}

.inline-editor__markdown-tools {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-unit);
    padding: var(--space-unit);
    background: var(--color-sand);
}

.inline-editor__markdown-button {
    min-height: var(--space-block);
    padding: var(--space-unit) var(--space-label-title);
    border: 1px solid var(--color-sage);
    background: var(--color-ivory);
    color: var(--color-forest);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
}

.inline-editor__markdown-button:not(:disabled):hover,
.inline-editor__markdown-button:not(:disabled):focus-visible {
    border-color: var(--color-terracotta);
    background: var(--color-sage);
}

.inline-editor__markdown-button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.inline-editor__markdown-button--assets {
    margin-left: auto;
    border-color: var(--color-terracotta);
}

.asset-picker__grid {
    display: grid;
    max-height: 40vh;
    gap: var(--space-label-title);
    overflow-y: auto;
}

.asset-picker__explorer {
    display: grid;
    min-width: 0;
    gap: var(--space-title-body);
}

.asset-picker__tree-panel {
    padding: var(--space-label-title);
    background: var(--color-sand);
}

.asset-picker__folders summary {
    color: var(--color-forest);
    cursor: pointer;
    font-weight: 700;
}

.asset-picker__tree {
    margin-top: var(--space-label-title);
}

.asset-picker__content {
    min-width: 0;
}

.asset-picker__toolbar > [data-asset-picker-refresh] {
    grid-column: 3;
    grid-row: 1;
}

.asset-picker__item {
    display: grid;
    min-width: 0;
    gap: var(--space-unit);
    padding: var(--space-unit);
    border: 1px solid var(--color-sand);
    background: var(--color-ivory);
    color: var(--color-ink);
    cursor: pointer;
    text-align: left;
}

.asset-picker__item[aria-pressed="true"] {
    border-color: var(--color-terracotta);
    background: var(--color-sand);
}

.asset-picker__preview {
    display: grid;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    place-items: center;
    background: var(--color-sand);
    color: var(--color-forest);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 16px;
    text-transform: uppercase;
}

.asset-picker__preview--folder {
    background: var(--color-sage);
}

.asset-picker__item--folder {
    grid-template-columns: var(--space-section-mobile) minmax(0, 1fr);
    align-items: center;
}

.asset-picker__item--folder .asset-picker__preview {
    grid-row: 1 / 3;
    width: var(--space-section-mobile);
    height: var(--space-section-mobile);
    aspect-ratio: auto;
}

.asset-picker__item--folder strong,
.asset-picker__item--folder > span:last-child {
    grid-column: 2;
}

.asset-picker__item--file {
    grid-template-columns: var(--space-section-desktop) minmax(0, 1fr);
    align-items: center;
}

.asset-picker__item--file .asset-picker__preview {
    grid-row: 1 / 3;
    width: var(--space-section-desktop);
}

.asset-picker__item--file strong,
.asset-picker__item--file > span:last-child {
    grid-column: 2;
}

.asset-picker__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.asset-picker__item span {
    overflow-wrap: anywhere;
    font-size: 12px;
    line-height: 16px;
}

.asset-picker__empty {
    padding: var(--space-card-inset);
    background: var(--color-sand);
}

@media (min-width: 640px) {
    .admin-dashboard__header {
        grid-template-columns: 192px minmax(0, 1fr);
        align-items: center;
        gap: var(--space-block);
    }

    .admin-file-list-toolbar .button {
        width: auto;
    }

    .admin-file-manager__toolbar {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .admin-restore-points__layout {
        grid-template-columns: minmax(240px, 1fr) minmax(0, 3fr);
    }

    .admin-file-address {
        grid-column: auto;
    }

    .admin-file-explorer {
        grid-template-columns: minmax(192px, 1fr) 3fr;
        align-items: start;
    }

    .admin-file-tree-panel {
        position: sticky;
        top: var(--space-title-body);
        max-height: calc(100vh - (var(--space-section-mobile) * 2));
        overflow-y: auto;
    }

    .admin-file-list-columns {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto auto;
        gap: var(--space-label-title);
        margin-top: var(--space-title-body);
        padding: var(--space-unit) var(--space-card-inset) var(--space-unit) calc(var(--space-section-mobile) + var(--space-block));
        border-bottom: 1px solid var(--color-sand);
        color: var(--color-forest);
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.08em;
        line-height: 16px;
        text-transform: uppercase;
    }

    .admin-file-list-toolbar:not([hidden]) + .admin-file-list-columns {
        margin-top: var(--space-unit);
    }

    .admin-file-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-unit);
        margin-top: 0;
    }

    .admin-file-entry {
        grid-template-columns: var(--space-section-mobile) minmax(0, 1fr) auto auto;
        align-items: center;
        gap: var(--space-label-title);
        padding: var(--space-unit) var(--space-card-inset);
        border-width: 0 0 1px;
    }

    .admin-file-entry:hover {
        background: var(--color-sand);
    }

    .admin-file-entry__open {
        grid-column: 1 / 3;
        grid-template-columns: var(--space-section-mobile) minmax(0, 1fr);
        align-items: center;
        gap: var(--space-label-title);
    }

    .admin-file-entry__folder-icon {
        min-height: var(--space-section-mobile);
    }

    .admin-file-entry__preview {
        width: var(--space-section-mobile);
        height: var(--space-section-mobile);
        aspect-ratio: auto;
    }

    .admin-file-entry__actions {
        grid-column: 4;
        justify-self: end;
    }

    .admin-file-entry--readonly .admin-file-entry__actions {
        align-self: end;
        padding-top: var(--space-title-body);
    }
}

@media (min-width: 768px) {
    .admin-toolbar {
        right: var(--space-title-body);
        bottom: var(--space-title-body);
        left: auto;
    }

    .inline-editor__form,
    .admin-card {
        padding: var(--space-block);
    }

    .admin-file-manager {
        padding: var(--space-block);
    }

    .asset-picker__explorer {
        grid-template-columns: minmax(192px, 1fr) 3fr;
        align-items: start;
    }

    .asset-picker__tree-panel {
        position: sticky;
        top: 0;
        max-height: calc(100vh - (var(--space-section-mobile) * 2));
        overflow-y: auto;
    }

    .asset-picker__folders summary {
        display: none;
    }

    .asset-picker__tree {
        display: block;
        margin-top: 0;
    }

    .admin-file-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-file-actions__heading {
        grid-column: 1 / -1;
    }

    .admin-file-actions-dialog .admin-file-actions,
    .admin-folder-actions-dialog .admin-file-actions,
    .admin-rename-folder-dialog .admin-file-actions,
    .admin-rename-file-dialog .admin-file-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-file-actions-dialog .admin-file-actions__heading,
    .admin-folder-actions-dialog .admin-file-actions__heading,
    .admin-rename-folder-dialog .admin-file-actions__heading,
    .admin-rename-file-dialog .admin-file-actions__heading {
        grid-column: auto;
    }

    .asset-picker__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .package-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .testimonial-card {
        padding: var(--space-block);
    }

    .site-footer__grid {
        grid-template-columns: 2fr repeat(3, 1fr);
    }
}

@media (min-width: 960px) {
    .asset-picker__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-dashboard-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.navigation-open {
        overflow: visible;
    }

    .site-header__inner {
        min-height: var(--space-section-desktop);
    }

    .site-header__toggle {
        display: none;
    }

    .primary-navigation,
    .primary-navigation[data-open] {
        position: static;
        display: flex;
        height: auto;
        overflow: visible;
        align-items: center;
        gap: var(--space-title-body);
        padding: 0;
        background: transparent;
    }

    .primary-navigation__list {
        display: flex;
        align-items: center;
        gap: var(--space-title-body);
    }

    .primary-navigation__item > a,
    .navigation-dropdown > summary {
        min-height: auto;
        padding-block: var(--space-unit);
    }

    .primary-navigation__item > a:hover,
    .navigation-dropdown > summary:hover,
    .navigation-dropdown__list a:hover {
        color: var(--color-terracotta);
    }

    .navigation-dropdown {
        position: relative;
    }

    .navigation-dropdown > summary {
        gap: var(--space-unit);
    }

    .navigation-dropdown > summary::after {
        font-size: 17px;
        line-height: 27px;
    }

    .navigation-dropdown__list {
        position: absolute;
        top: calc(100% + var(--space-unit));
        left: 0;
        min-width: 280px;
        gap: var(--space-label-title);
        padding: var(--space-title-body);
        border: 1px solid var(--color-sand);
        background: var(--color-ivory);
        box-shadow: 0 var(--space-unit) var(--space-title-body) rgba(38, 49, 45, 0.12);
    }

    .hero,
    .section {
        padding-block: var(--space-section-desktop);
    }

    .not-found {
        padding-block: var(--space-section-desktop);
    }

    .not-found__grid {
        grid-template-columns: 5fr 7fr;
        gap: var(--space-image-text-desktop);
    }

    .not-found__panel {
        min-height: calc(var(--space-section-desktop) * 4);
    }

    .hero__grid,
    .about-layout,
    .contact-layout {
        grid-template-columns: 5fr 7fr;
        gap: var(--space-image-text-desktop);
    }

    .media-content__layout {
        grid-template-columns: 5fr 7fr;
        gap: var(--space-image-text-desktop);
    }

    .media-content__image-wrap {
        grid-column: 2;
        grid-row: 1;
    }

    .media-content__body {
        grid-column: 1;
        grid-row: 1;
    }

    .about-layout {
        align-items: center;
    }

    .hero__panel {
        min-height: 520px;
        padding: var(--space-block);
    }

    .hero__photo-content {
        gap: var(--space-title-body);
        padding: var(--space-block);
    }

    .section-heading {
        max-width: 70ch;
    }

    .package-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .media-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-footer {
        padding-top: var(--space-section-desktop);
    }

    .admin-file-shell {
        padding-block: var(--space-section-desktop);
    }

    .admin-file-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 1200px) {
    .media-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

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

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
