/* Generated by node infra/build-storefront-css.mjs. Edit the source stylesheets. */

/* elis.css */
:root {
    --elis-paper: #fff9f6;
    --elis-paper-deep: #f5edeb;
    --elis-ink: #321b2c;
    --elis-ink-soft: #6c5964;
    --elis-action: #a91e4d;
    --elis-action-dark: #7f1539;
    --elis-field: #e7f0f2;
    --elis-line: #cdbfc5;
    --elis-control: #927580;
    --elis-white: #ffffff;
    --elis-content: 1280px;
    --elis-reading: 68ch;
}

.elis-page,
.elis-page * {
    box-sizing: border-box;
}

.elis-page {
    min-width: 320px;
    margin: 0;
    background: var(--elis-paper);
    color: var(--elis-ink);
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 17px;
    line-height: 1.58;
    text-rendering: optimizeLegibility;
}

.elis-page main {
    min-height: 56vh;
}

.elis-page img {
    max-width: 100%;
}

.elis-page a {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.elis-page h1,
.elis-page h2,
.elis-page h3,
.elis-page p,
.elis-page figure,
.elis-page dl,
.elis-page dd {
    margin: 0;
}

.elis-page h1,
.elis-page h2,
.elis-page h3 {
    color: var(--elis-ink);
    font-family: "Newsreader", Georgia, serif;
    font-weight: 500;
    letter-spacing: -0.025em;
}

.elis-page button,
.elis-page input,
.elis-page select,
.elis-page textarea {
    border-radius: 2px !important;
    font: inherit;
}

.elis-page button,
.elis-page [role="button"],
.elis-page a {
    -webkit-tap-highlight-color: transparent;
}

.elis-page :focus-visible {
    outline: 3px solid var(--elis-action);
    outline-offset: 3px;
}

.elis-page button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-to-main-content-link {
    position: fixed;
    z-index: 1000;
    top: 8px;
    left: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--elis-ink);
    background: var(--elis-paper);
    transform: translateY(-160%);
}

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

/* Brand and navigation */
.elis-site-header {
    position: relative;
    z-index: 30;
    border-bottom: 1px solid var(--elis-line);
    background: var(--elis-paper);
}

.elis-header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    width: min(calc(100% - 48px), var(--elis-content));
    min-height: 100px;
    margin: 0 auto;
}

.elis-brand {
    display: block;
    width: max-content;
    min-height: 44px;
    text-decoration: none;
}

.elis-brand img {
    display: block;
    width: 236px;
    height: auto;
}

.elis-primary-nav,
.elis-header-actions,
.elis-footer-nav,
.elis-footer-legal-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.elis-primary-nav {
    justify-content: center;
    gap: 22px;
    min-width: 0;
    font-size: 0.91rem;
}

.elis-primary-nav a,
.elis-header-actions a,
.elis-footer-nav a,
.elis-footer-legal-nav a {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    text-decoration: none;
}

.elis-primary-nav a:hover,
.elis-header-actions a:hover,
.elis-footer-nav a:hover,
.elis-footer-legal-nav a:hover {
    text-decoration: underline;
}

.elis-header-actions {
    justify-content: flex-end;
    gap: 16px;
    font-size: 0.88rem;
}

.elis-search input {
    width: 150px;
    min-height: 44px;
    padding: 7px 10px;
    border: 1px solid var(--elis-control);
    background: transparent;
    color: var(--elis-ink);
}

.elis-search input::placeholder {
    color: var(--elis-ink-soft);
}

.elis-menu-button,
.elis-mobile-action,
.elis-mobile-search {
    display: none;
}

.elis-primary-nav .elis-mobile-action {
    display: none;
}

/* Shared controls */
.elis-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.elis-button,
.elis-load-more,
.elis-catalog-entry__cart,
.elis-product-add {
    display: inline-flex !important;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 10px 18px !important;
    border: 1px solid var(--elis-ink) !important;
    border-radius: 2px !important;
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.elis-button-primary,
.elis-product-add {
    border-color: var(--elis-action) !important;
    background: var(--elis-action) !important;
    color: var(--elis-white) !important;
}

.elis-button-primary:hover,
.elis-product-add:hover {
    border-color: var(--elis-action-dark) !important;
    background: var(--elis-action-dark) !important;
}

.elis-button-secondary,
.elis-load-more {
    background: transparent !important;
    color: var(--elis-ink) !important;
}

.elis-button-secondary:hover,
.elis-load-more:hover {
    background: var(--elis-paper-deep) !important;
}

.elis-load-more {
    margin: 44px auto 0;
}

/* Home */
.elis-home-hero,
.elis-home-section,
.elis-home-collections,
.elis-home-service {
    width: min(calc(100% - 48px), var(--elis-content));
    margin: 0 auto;
}

.elis-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.78fr);
    gap: clamp(44px, 7vw, 100px);
    align-items: center;
    padding: 64px 0 84px;
}

.elis-home-hero__copy {
    max-width: 680px;
}

.elis-home-hero h1 {
    max-width: 650px;
    margin-top: 0;
    font-size: clamp(3.25rem, 6.2vw, 4.75rem);
    line-height: 0.98;
}

.elis-home-hero h1 em {
    color: var(--elis-action);
    font-weight: 500;
}

.elis-home-lede {
    max-width: 62ch;
    margin-top: 24px !important;
    color: var(--elis-ink-soft);
    font-size: 1.14rem;
}

.elis-home-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    padding: 18px 0 0;
    margin: 28px 0 0;
    border-top: 1px solid var(--elis-line);
    color: var(--elis-ink-soft);
    font-size: 0.86rem;
    list-style: none;
}

.elis-home-facts li::before {
    content: "— ";
    color: var(--elis-action);
}

.elis-home-hero__image {
    justify-self: end;
    width: min(100%, 520px);
}

.elis-home-hero__image img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.elis-home-hero__image figcaption {
    padding-top: 10px;
    color: var(--elis-ink-soft);
    font-size: 0.8rem;
}

.elis-home-section {
    padding: 84px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-home-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
    gap: 40px;
    align-items: end;
}

.elis-home-section__heading h2,
.elis-home-collections h2,
.elis-home-service h2,
.elis-product-information h2,
.elis-product-support h2,
.elis-product-reviews h2 {
    font-size: clamp(2.35rem, 4.3vw, 3.55rem);
    line-height: 1.02;
}

.elis-home-section__heading p,
.elis-home-collections__copy > p,
.elis-home-service p {
    max-width: 58ch;
    color: var(--elis-ink-soft);
}

.elis-home-paths {
    margin-top: 52px;
    border-bottom: 1px solid var(--elis-line);
}

.elis-home-paths a {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 28px;
    gap: 28px;
    align-items: center;
    min-height: 86px;
    padding: 18px 0;
    border-top: 1px solid var(--elis-line);
    text-decoration: none;
}

.elis-home-paths a > span:first-child {
    color: var(--elis-action);
    font-size: 0.9rem;
    font-weight: 700;
}

.elis-home-paths strong {
    font-family: "Newsreader", Georgia, serif;
    font-size: clamp(1.35rem, 2.3vw, 2rem);
    font-weight: 500;
}

.elis-home-paths a > span:last-child,
.elis-home-collection-links a > span:last-child {
    justify-self: end;
    font-size: 1.3rem;
}

.elis-home-paths a:hover strong,
.elis-home-collection-links a:hover span:first-child {
    color: var(--elis-action);
}

.elis-home-index {
    margin-top: 52px;
    border-bottom: 1px solid var(--elis-line);
}

.elis-home-product {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr) minmax(130px, 180px);
    gap: 32px;
    align-items: center;
    padding: 20px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-home-product__image {
    display: block;
    background: var(--elis-field);
}

.elis-home-product__image img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.elis-home-product__copy > p:first-child,
.elis-catalog-entry__sku,
.elis-product-buy__reference {
    color: var(--elis-action);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.elis-home-product__copy h3 {
    margin-top: 4px;
    font-size: clamp(1.55rem, 2.4vw, 2.1rem);
}

.elis-home-product__copy h3 a,
.elis-home-product__price a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    text-decoration: none;
}

.elis-home-product__copy > p:last-child {
    max-width: 58ch;
    margin-top: 8px;
    color: var(--elis-ink-soft);
}

.elis-home-product__price {
    display: grid;
    gap: 12px;
    justify-items: end;
    text-align: right;
}

.elis-home-product__price span {
    font-size: 1.12rem;
    font-weight: 700;
}

.elis-home-product__price a,
.elis-catalog-entry__link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: var(--elis-action);
    font-weight: 700;
    text-decoration: underline;
}

.elis-home-section__action {
    margin-top: 32px !important;
    text-align: right;
}

.elis-home-collections {
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
    gap: clamp(44px, 7vw, 96px);
    align-items: center;
    padding: 84px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-home-collections__media {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.elis-home-collections__media img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.elis-home-collections__media img:last-child {
    margin-top: 44px;
}

.elis-home-collections__copy > p {
    margin-top: 20px;
}

.elis-home-collection-links {
    margin-top: 32px;
    border-bottom: 1px solid var(--elis-line);
}

.elis-home-collection-links a {
    display: grid;
    grid-template-columns: minmax(110px, 0.35fr) minmax(0, 1fr) 24px;
    gap: 18px;
    align-items: center;
    min-height: 68px;
    padding: 12px 0;
    border-top: 1px solid var(--elis-line);
    text-decoration: none;
}

.elis-home-collection-links a > span:first-child {
    font-weight: 700;
}

.elis-home-collection-links small {
    color: var(--elis-ink-soft);
    font-size: 0.88rem;
}

.elis-home-service {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.55fr);
    gap: 52px;
    align-items: end;
    padding: 72px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-home-service p {
    margin-top: 16px;
}

.elis-home-service nav,
.elis-product-support nav {
    display: grid;
    border-bottom: 1px solid var(--elis-line);
}

.elis-home-service nav a,
.elis-product-support nav a {
    min-height: 48px;
    padding: 10px 0;
    border-top: 1px solid var(--elis-line);
    color: var(--elis-action);
    font-weight: 700;
}

/* Catalog and search */
.elis-category-heading,
.elis-search-heading {
    width: min(calc(100% - 48px), var(--elis-content));
    margin: 0 auto;
    padding: 64px 0 28px;
}

.elis-category-heading h1,
.elis-search-heading h1 {
    margin-top: 14px;
    font-size: clamp(3rem, 6vw, 4.75rem);
    line-height: 1;
}

.elis-category-heading > p,
.elis-search-heading > div > p {
    max-width: 62ch;
    margin-top: 16px;
    color: var(--elis-ink-soft);
}

.elis-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    color: var(--elis-ink-soft);
    font-size: 0.84rem;
}

.elis-breadcrumb a {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    color: var(--elis-action);
}

.elis-catalog-index {
    margin-top: 28px;
    border-bottom: 1px solid var(--elis-line);
}

.elis-catalog-entry {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) minmax(145px, 190px);
    gap: 28px;
    align-items: center;
    width: 100%;
    padding: 20px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-catalog-entry__media {
    min-width: 0;
    background: var(--elis-field);
}

.elis-catalog-entry__media a {
    display: block;
}

.elis-catalog-entry__image,
.elis-catalog-entry__image img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    background: transparent !important;
    transform: none !important;
}

.elis-catalog-entry__copy h2 {
    margin-top: 4px;
    font-size: clamp(1.55rem, 2.5vw, 2.15rem);
    line-height: 1.05;
}

.elis-catalog-entry__copy h2 a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    text-decoration: none;
}

.elis-catalog-entry__prompt {
    max-width: 50ch;
    margin-top: 10px !important;
    color: var(--elis-ink-soft);
    font-size: 0.92rem;
}

.elis-catalog-entry__commerce {
    display: grid;
    gap: 10px;
    justify-items: stretch;
    align-self: center;
}

.elis-catalog-entry__price {
    font-size: 1.05rem;
    font-weight: 700;
    text-align: right;
}

.elis-catalog-entry__price * {
    font: inherit !important;
}

.elis-catalog-entry__link {
    text-align: right;
}

.elis-catalog-entry__cart {
    min-height: 46px;
    padding: 8px 12px !important;
    border-color: var(--elis-ink) !important;
    background: transparent !important;
    color: var(--elis-ink) !important;
    font-size: 0.88rem;
}

.elis-catalog-entry__cart:hover {
    background: var(--elis-paper-deep) !important;
}

.elis-catalog-empty,
.elis-empty-note {
    padding: 52px 0;
    color: var(--elis-ink-soft);
}

.elis-catalog-error {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    align-items: center;
    padding: 24px 0;
    border-top: 1px solid var(--elis-line);
    border-bottom: 1px solid var(--elis-line);
    color: var(--elis-ink-soft);
}

.elis-inline-retry {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 8px 14px;
    border: 1px solid var(--elis-control);
    background: transparent;
    color: var(--elis-action);
    font-weight: 700;
}

/* Product detail */
.elis-product-breadcrumb,
.elis-product-shell,
.elis-product-information,
.elis-product-support,
.elis-product-reviews {
    width: min(calc(100% - 48px), var(--elis-content));
    margin-right: auto;
    margin-left: auto;
}

.elis-product-breadcrumb {
    padding-top: 24px;
}

.elis-product-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.72fr);
    gap: clamp(44px, 6vw, 84px);
    align-items: start;
    padding: 32px 0 84px;
}

.elis-product-gallery {
    min-width: 0;
}

.elis-product-gallery__stage {
    display: grid;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    place-items: center;
    background: var(--elis-field);
}

.elis-product-gallery__zoom {
    position: relative;
    display: block;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.elis-product-gallery__zoom img,
.elis-product-gallery__video {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.elis-product-gallery__zoom-label {
    position: absolute;
    right: 12px;
    bottom: 12px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid var(--elis-ink);
    background: var(--elis-paper);
    font-size: 0.78rem;
    font-weight: 700;
}

.elis-product-gallery__loading {
    position: absolute;
    inset: 0;
    display: grid;
    z-index: 2;
    place-items: center;
    background: var(--elis-field);
    color: var(--elis-ink-soft);
}

.elis-product-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 86px));
    gap: 8px;
    margin-top: 10px;
}

.elis-product-gallery__thumb {
    display: grid;
    min-width: 72px;
    min-height: 0;
    aspect-ratio: 1 / 1;
    padding: 0;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--elis-control);
    background: var(--elis-paper);
}

.elis-product-gallery__thumb[aria-current="true"] {
    border: 2px solid var(--elis-action);
}

.elis-product-gallery__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.elis-product-gallery__empty {
    color: var(--elis-ink-soft);
}

.elis-product-buy {
    position: sticky;
    top: 24px;
    padding-top: 8px;
}

.elis-product-buy h1 {
    margin-top: 10px;
    font-size: clamp(3rem, 5vw, 4.2rem);
    line-height: 0.98;
}

.elis-product-buy__rating {
    display: inline-block;
    margin-top: 10px;
    color: var(--elis-action);
    font-size: 0.9rem;
}

.elis-product-buy__price {
    margin-top: 24px;
    font-size: 1.65rem;
    font-weight: 700;
}

.elis-product-buy__price * {
    font: inherit !important;
}

.elis-product-buy__tax {
    margin-top: 4px !important;
    color: var(--elis-ink-soft);
    font-size: 0.82rem;
}

.elis-product-buy__summary {
    max-width: 54ch;
    margin-top: 22px !important;
    color: var(--elis-ink-soft);
}

.elis-product-buy__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 24px;
    border-top: 1px solid var(--elis-line);
    border-bottom: 1px solid var(--elis-line);
}

.elis-product-buy__facts div {
    padding: 12px 0;
}

.elis-product-buy__facts div + div {
    padding-left: 16px;
    border-left: 1px solid var(--elis-line);
}

.elis-product-buy__facts dt,
.elis-product-information__facts dt {
    color: var(--elis-ink-soft);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.elis-product-buy__facts dd,
.elis-product-information__facts dd {
    margin-top: 3px;
    font-weight: 650;
}

.elis-product-buy__actions {
    display: grid;
    grid-template-columns: minmax(150px, 0.55fr) minmax(200px, 1fr);
    gap: 12px;
    align-items: end;
    margin-top: 28px;
}

.elis-product-buy__quantity {
    display: grid;
    gap: 6px;
    font-size: 0.82rem;
    font-weight: 700;
}

.elis-quantity {
    display: grid !important;
    grid-template-columns: 44px minmax(36px, 1fr) 44px;
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--elis-control) !important;
    background: transparent !important;
}

.elis-quantity button {
    display: grid;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
}

.elis-quantity button:first-of-type {
    border-right: 1px solid var(--elis-control);
}

.elis-quantity button:last-of-type {
    border-left: 1px solid var(--elis-control);
}

.elis-quantity p {
    width: auto !important;
    align-self: center;
    text-align: center;
}

.elis-product-add {
    width: 100% !important;
}

.elis-product-buy__help {
    margin-top: 18px !important;
    color: var(--elis-ink-soft);
    font-size: 0.88rem;
}

.elis-product-buy__help a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: var(--elis-action);
    font-weight: 700;
}

.elis-product-information,
.elis-product-support {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
    gap: clamp(44px, 7vw, 96px);
    padding: 72px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-product-information__copy p,
.elis-product-support p {
    max-width: 60ch;
    margin-top: 18px !important;
    color: var(--elis-ink-soft);
    font-size: 1.04rem;
}

.elis-product-information__facts {
    border-bottom: 1px solid var(--elis-line);
}

.elis-product-information__facts div {
    display: grid;
    grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1fr);
    gap: 18px;
    padding: 12px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-product-information__facts dd {
    text-align: right;
}

.elis-product-reviews {
    padding: 72px 0;
    border-top: 1px solid var(--elis-line);
}

.elis-product-reviews > h2 {
    margin-bottom: 32px;
}

/* Content, forms, cart and consent */
.elis-cms-page,
.elis-contact-page {
    width: min(calc(100% - 48px), 940px);
    margin: 0 auto;
    padding: 64px 0 84px;
}

.elis-cms-page h1,
.elis-contact-page h1 {
    max-width: 780px;
    font-size: clamp(3rem, 6vw, 4.75rem);
    line-height: 1;
}

.elis-cms-page > .elis-breadcrumb + h1 {
    margin-top: 14px;
}

.elis-cms-page h2 {
    margin-top: 44px;
    font-size: clamp(2rem, 4vw, 3rem);
}

.elis-cms-page h3 {
    margin-top: 28px;
    font-size: 1.65rem;
}

.elis-cms-page p,
.elis-cms-page li,
.elis-contact-page__intro,
.elis-contact-page__details {
    max-width: 72ch;
}

.elis-cms-page p,
.elis-contact-page__intro,
.elis-contact-page__details {
    margin-top: 16px;
}

.elis-cms-page ul,
.elis-cms-page ol {
    max-width: 72ch;
    padding-left: 22px;
}

.elis-cms-page a,
.elis-contact-page a {
    color: var(--elis-action);
    font-weight: 650;
}

.elis-cms-page hr {
    margin: 44px 0;
    border: 0;
    border-top: 1px solid var(--elis-line);
}

.elis-contact-page__intro,
.elis-contact-page__details {
    color: var(--elis-ink-soft);
}

.elis-contact-page__form {
    max-width: 700px;
    padding-top: 24px;
    margin-top: 44px;
    border-top: 1px solid var(--elis-line);
}

.elis-contact-page__form [class*="control-group"] {
    margin-top: 20px;
}

.elis-contact-page__form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 650;
}

.elis-contact-page__form input,
.elis-contact-page__form textarea,
.elis-page main input:not([type="checkbox"]):not([type="radio"]),
.elis-page main select,
.elis-page main textarea {
    min-height: 46px;
    border: 1px solid var(--elis-control) !important;
    background: var(--elis-white) !important;
}

.elis-toolbar-toggle,
.elis-toolbar-option {
    min-height: 44px;
    border-color: var(--elis-control) !important;
}

.elis-dropdown-panel {
    border-color: var(--elis-control) !important;
}

.elis-dropdown-option {
    min-height: 44px;
    border: 0;
    background: transparent;
    color: var(--elis-ink);
}

.elis-dropdown-option:hover,
.elis-dropdown-option:focus-visible {
    background: var(--elis-paper-deep);
}

.elis-mobile-filter-toggle,
.elis-filter-clear,
.elis-drawer-close {
    min-width: 44px;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: var(--elis-ink);
}

.elis-filter-option {
    display: flex;
    gap: 12px;
    align-items: center;
    min-height: 44px;
    padding: 8px 4px;
}

.elis-filter-checkbox-mark {
    flex: 0 0 auto;
}

.elis-contact-page__form textarea {
    min-height: 150px;
}

.elis-contact-page__submit {
    margin-top: 24px;
}

.elis-checkout-empty {
    max-width: 720px;
    padding: 96px 24px;
    margin: 0 auto;
    text-align: center;
}

.elis-checkout-brand {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    color: var(--elis-ink);
    font-family: "Newsreader", Georgia, serif;
    font-size: 1.55rem;
    font-weight: 600;
    text-decoration: none;
}

.elis-checkout-brand img {
    width: 42px;
    height: 42px;
}

.elis-page--shop-checkout-cart-index [class*="rounded"] {
    border-radius: 2px !important;
}

.elis-page input.sr-only:focus-visible + label {
    outline: 3px solid var(--elis-action);
    outline-offset: 3px;
}

.elis-cart-action {
    min-width: 44px;
    min-height: 44px;
    padding: 6px 8px;
    border: 0;
    background: transparent;
    color: var(--elis-action) !important;
    font-weight: 700;
}

.elis-cart-details-toggle {
    min-height: 44px;
    padding: 6px 0;
    border: 0;
    background: transparent;
    color: var(--elis-ink);
    text-align: left;
}

.elis-cart-quantity {
    width: min(150px, 100%);
}

.elis-checkout-empty img {
    display: none;
}

.elis-checkout-empty h1 {
    font-size: clamp(2.6rem, 6vw, 4.5rem);
    line-height: 1;
}

.elis-checkout-empty small {
    display: block;
    margin-top: 16px;
    color: var(--elis-ink-soft);
}

.elis-checkout-empty a {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    margin-top: 24px;
    padding: 10px 18px;
    border: 1px solid var(--elis-action);
    background: var(--elis-action);
    color: var(--elis-white);
    font-weight: 700;
    text-decoration: none;
}

.elis-cookie-consent {
    position: fixed;
    z-index: 80;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    max-height: 80vh;
    padding: 16px max(24px, calc((100vw - var(--elis-content)) / 2));
    overflow: auto;
    border-top: 1px solid var(--elis-ink);
    background: var(--elis-paper);
}

.elis-cookie-consent[hidden] {
    display: none;
}

.elis-cookie-consent p {
    max-width: 78ch;
    color: var(--elis-ink-soft);
    font-size: 0.86rem;
}

.elis-cookie-consent__title {
    color: var(--elis-ink) !important;
    font-weight: 700;
}

.elis-cookie-consent a {
    color: var(--elis-action);
}

.elis-cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.elis-cookie-consent__actions button {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid var(--elis-ink);
    background: transparent;
    color: var(--elis-ink);
    font-weight: 650;
}

.elis-cookie-consent__actions button:last-child {
    border-color: var(--elis-action);
    background: var(--elis-action);
    color: var(--elis-white);
}

/* Footer */
.elis-site-footer {
    border-top: 1px solid var(--elis-line);
    background: var(--elis-paper-deep);
}

.elis-footer-inner,
.elis-footer-legal {
    width: min(calc(100% - 48px), var(--elis-content));
    margin: 0 auto;
}

.elis-footer-inner {
    display: grid;
    grid-template-columns: minmax(230px, 1fr) minmax(0, 1.4fr);
    gap: 40px;
    align-items: end;
    padding: 48px 0 36px;
}

.elis-footer-mark {
    display: block;
    width: max-content;
    min-height: 44px;
    text-decoration: none;
}

.elis-footer-mark img {
    display: block;
    width: 260px;
    height: auto;
}

.elis-footer-nav,
.elis-footer-legal-nav {
    justify-content: flex-end;
    gap: 12px 22px;
}

.elis-footer-legal {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr);
    gap: 32px;
    padding: 22px 0 28px;
    border-top: 1px solid var(--elis-line);
    color: var(--elis-ink-soft);
    font-size: 0.82rem;
}

@media (max-width: 1120px) {
    .elis-header-inner {
        gap: 18px;
    }

    .elis-brand img {
        width: 204px;
    }

    .elis-primary-nav {
        gap: 14px;
        font-size: 0.86rem;
    }

    .elis-header-actions {
        gap: 10px;
    }

    .elis-search input {
        width: 118px;
    }

}

@media (max-width: 1040px) {
    .elis-header-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 70px;
    }

    .elis-header-actions {
        display: none;
    }

    .elis-menu-button {
        display: inline-flex;
        min-width: 48px;
        min-height: 44px;
        align-items: center;
        justify-content: center;
        padding: 8px 10px;
        border: 1px solid var(--elis-ink);
        background: transparent;
        color: var(--elis-ink);
    }

    .elis-primary-nav {
        display: none;
        grid-column: 1 / -1;
        align-items: stretch;
        gap: 0;
        padding: 0 0 16px;
        border-top: 1px solid var(--elis-line);
    }

    .elis-primary-nav.is-open {
        display: flex;
        flex-direction: column;
    }

    .elis-primary-nav a {
        display: flex;
        min-height: 46px;
        align-items: center;
        border-bottom: 1px solid var(--elis-line);
    }

    .elis-primary-nav .elis-mobile-action {
        display: flex;
    }

    .elis-mobile-search {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        padding: 12px 0;
        border-bottom: 1px solid var(--elis-line);
    }

    .elis-mobile-search input,
    .elis-mobile-search button {
        min-height: 46px;
        border: 1px solid var(--elis-control);
    }

    .elis-mobile-search input {
        min-width: 0;
        padding: 8px 10px;
        background: var(--elis-white);
    }

    .elis-mobile-search button {
        padding: 8px 14px;
        background: var(--elis-action);
        color: var(--elis-white);
        font-weight: 700;
    }

}

@media (max-width: 940px) {

    .elis-home-hero,
    .elis-home-collections,
    .elis-product-shell {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);
        gap: 40px;
    }

    .elis-home-section__heading,
    .elis-home-service,
    .elis-product-information,
    .elis-product-support {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .elis-home-product,
    .elis-catalog-entry {
        grid-template-columns: 140px minmax(0, 1fr) 140px;
        gap: 20px;
    }

    .elis-product-buy__actions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .elis-page {
        font-size: 16px;
    }

    .elis-header-inner,
    .elis-home-hero,
    .elis-home-section,
    .elis-home-collections,
    .elis-home-service,
    .elis-category-heading,
    .elis-search-heading,
    .elis-product-breadcrumb,
    .elis-product-shell,
    .elis-product-information,
    .elis-product-support,
    .elis-product-reviews,
    .elis-footer-inner,
    .elis-footer-legal {
        width: min(calc(100% - 32px), var(--elis-content));
    }

    .elis-brand img {
        width: 210px;
    }

    .elis-home-hero,
    .elis-home-collections,
    .elis-product-shell {
        grid-template-columns: 1fr;
    }

    .elis-home-hero {
        gap: 36px;
        padding: 44px 0 56px;
    }

    .elis-home-hero h1 {
        font-size: clamp(3rem, 12vw, 3.25rem);
    }

    .elis-home-hero__image {
        justify-self: stretch;
        width: 100%;
    }

    .elis-home-facts {
        display: grid;
    }

    .elis-home-section,
    .elis-home-collections,
    .elis-home-service,
    .elis-product-information,
    .elis-product-support,
    .elis-product-reviews {
        padding: 56px 0;
    }

    .elis-home-section__heading {
        display: block;
    }

    .elis-home-section__heading p {
        margin-top: 14px;
    }

    .elis-home-paths,
    .elis-home-index {
        margin-top: 36px;
    }

    .elis-home-paths a {
        grid-template-columns: minmax(0, 1fr) 24px;
        gap: 4px 12px;
        min-height: 92px;
    }

    .elis-home-paths a > span:first-child,
    .elis-home-paths strong {
        grid-column: 1;
    }

    .elis-home-paths a > span:last-child {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .elis-home-product,
    .elis-catalog-entry {
        grid-template-columns: 112px minmax(0, 1fr);
        gap: 16px;
        align-items: start;
    }

    .elis-home-product__copy h3,
    .elis-catalog-entry__copy h2 {
        font-size: 1.55rem;
    }

    .elis-home-product__copy > p:last-child,
    .elis-catalog-entry__prompt {
        display: none;
    }

    .elis-home-product__price,
    .elis-catalog-entry__commerce {
        grid-column: 2;
        display: flex;
        flex-wrap: wrap;
        gap: 8px 16px;
        align-items: center;
        justify-content: space-between;
        justify-items: start;
        text-align: left;
    }

    .elis-catalog-entry__price,
    .elis-catalog-entry__link {
        text-align: left;
    }

    .elis-catalog-entry__cart {
        width: 100%;
    }

    .elis-home-section__action {
        text-align: left;
    }

    .elis-home-collections__media img:last-child {
        margin-top: 28px;
    }

    .elis-home-collection-links a {
        grid-template-columns: minmax(90px, 0.4fr) minmax(0, 1fr) 20px;
        gap: 10px;
    }

    .elis-home-collection-links small {
        font-size: 0.8rem;
    }

    .elis-category-heading,
    .elis-search-heading {
        padding: 44px 0 20px;
    }

    .elis-category-heading h1,
    .elis-search-heading h1 {
        font-size: clamp(2.8rem, 13vw, 3.8rem);
    }

    .elis-product-breadcrumb {
        padding-top: 16px;
    }

    .elis-product-shell {
        padding: 24px 0 56px;
    }

    .elis-product-gallery__thumbs {
        display: flex;
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x proximity;
    }

    .elis-product-gallery__thumb {
        flex: 0 0 64px;
        min-width: 64px;
        min-height: 0;
        scroll-snap-align: start;
    }

    .elis-product-gallery__thumb img {
        height: 100%;
    }

    .elis-product-buy {
        position: static;
    }

    .elis-product-buy h1 {
        font-size: clamp(3rem, 12vw, 3.25rem);
    }

    .elis-product-information__facts div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .elis-product-information__facts dd {
        text-align: left;
    }

    .elis-footer-inner,
    .elis-footer-legal {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .elis-footer-nav,
    .elis-footer-legal-nav {
        justify-content: flex-start;
    }

    .elis-cookie-consent {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 14px 16px;
    }
}

@media (max-width: 390px) {
    .elis-brand img {
        width: 196px;
    }

    .elis-home-hero h1,
    .elis-product-buy h1 {
        font-size: 2.9rem;
    }

    .elis-cta-row {
        display: grid;
    }

    .elis-button {
        width: 100%;
    }

    .elis-home-product,
    .elis-catalog-entry {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .elis-home-collection-links small {
        display: none;
    }

    .elis-home-collection-links a {
        grid-template-columns: minmax(0, 1fr) 20px;
    }

    .elis-product-buy__facts {
        grid-template-columns: 1fr;
    }

    .elis-product-buy__facts div + div {
        padding-left: 0;
        border-top: 1px solid var(--elis-line);
        border-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}


/* elis-story/final.css */
/* Lora by The Lora Project Authors; SIL OFL in assets/fonts/Lora-OFL.txt. */
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/lora-italic-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: 'Lora';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/lora-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(assets/fonts/lora-normal-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: 'Lora';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url(assets/fonts/lora-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/source-sans-3-latin.woff2") format("woff2");
}

:root {
  --paper: #fff9f6;
  --paper-deep: #f3dce3;
  --white: #ffffff;
  --ink: #321b2c;
  --ink-soft: #684f60;
  --berry: #a91e4d;
  --berry-dark: #7c1236;
  --blue: #2f6578;
  --olive: #6d733e;
  --line: #c7aeb7;
  --line-soft: #eadde1;
  --focus: #0b708f;
  --measure: 70rem;
}

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

html {
  color-scheme: light;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
}

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

a {
  color: inherit;
}

button,
select {
  font: inherit;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  z-index: 50;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  background: var(--white);
  color: var(--ink);
  transform: translateY(-160%);
}

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

.site-header {
  border-bottom: 1px solid var(--line);
  background: rgba(255, 249, 246, 0.98);
}

.site-header__inner {
  width: min(calc(100% - 40px), var(--measure));
  min-height: 86px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(520px, 1.5fr);
  align-items: center;
  gap: 28px;
}

.brand-name {
  display: inline-grid;
  width: fit-content;
  color: var(--ink);
  text-decoration: none;
}

.brand-name__word {
  font-family: "Lora", Georgia, serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 0.95;
}

.brand-name__line {
  margin-top: 5px;
  color: var(--ink-soft);
  font-size: 0.75rem;
  letter-spacing: 0.035em;
}

.menu-button {
  display: none;
  width: 48px;
  min-height: 44px;
  border: 1px solid var(--ink);
  border-radius: 1px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.primary-navigation ul {
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(16px, 2.2vw, 34px);
  list-style: none;
}

.primary-navigation a {
  position: relative;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
}

.primary-navigation a[aria-current="page"]::after,
.primary-navigation a:hover::after {
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 2px;
  background: var(--berry);
  content: "";
}

main {
  overflow: clip;
}

.frame {
  width: min(calc(100% - 40px), var(--measure));
  margin-inline: auto;
}

.opening {
  min-height: 700px;
  display: grid;
  grid-template-columns: minmax(330px, 0.8fr) minmax(520px, 1.35fr);
  border-bottom: 1px solid var(--line);
}

.opening__copy {
  padding: clamp(70px, 9vw, 142px) clamp(32px, 5vw, 72px) 70px max(20px, calc((100vw - var(--measure)) / 2));
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--line);
}

.opening__copy h1,
.route-opening__copy h1,
.brand-opening h1,
.campaign-opening h1 {
  max-width: 10ch;
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(3.9rem, 7vw, 7.2rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.035em;
}

.route-opening__copy h1 {
  max-width: 100%;
  font-size: clamp(3.7rem, 5.8vw, 5.9rem);
  line-height: 0.91;
}

.opening__copy > p,
.route-opening__copy > p,
.brand-opening > p,
.campaign-opening > p {
  max-width: 35rem;
  margin: 28px 0 0;
  color: var(--ink-soft);
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
}

.opening__actions,
.route-actions {
  margin-top: 34px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
}

.action-primary,
.action-secondary {
  min-height: 48px;
  padding: 12px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--berry);
  border-radius: 1px;
  font-weight: 700;
  text-decoration: none;
}

.action-primary {
  background: var(--berry);
  color: var(--white);
}

.action-primary:hover {
  background: var(--berry-dark);
  border-color: var(--berry-dark);
}

.action-secondary {
  background: transparent;
  color: var(--berry-dark);
}

.action-secondary:hover {
  background: var(--paper-deep);
}

.text-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 5px;
}

.opening__media {
  position: relative;
  min-width: 0;
  background: var(--white);
}

.opening__media img {
  width: 100%;
  height: 100%;
  min-height: 700px;
  object-fit: cover;
  object-position: center;
}

.opening__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(360px, 55%);
  margin: 0;
  padding: 18px 24px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: rgba(255, 249, 246, 0.95);
  color: var(--ink);
  font-size: 0.9rem;
}

.story-index {
  padding: 92px 0 40px;
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(230px, 0.7fr) minmax(300px, 1fr);
  gap: 38px;
  align-items: end;
  margin-bottom: 42px;
}

.section-heading h2,
.editorial-copy h2,
.edition-intro h2,
.gift-finder h2,
.campaign-copy h2,
.brand-section h2 {
  max-width: 13ch;
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(2.8rem, 5.2vw, 5.2rem);
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.035em;
}

.section-heading p {
  max-width: 44rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.12rem;
}

.story-index__list,
.edition-list,
.process-ledger,
.brand-rules {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.story-entry {
  min-height: 260px;
  display: grid;
  grid-template-columns: 86px minmax(280px, 0.8fr) minmax(280px, 1fr) minmax(220px, 0.8fr);
  border-bottom: 1px solid var(--line);
  align-items: stretch;
}

.story-entry__number {
  padding: 28px 20px 20px 0;
  color: var(--berry);
  font-family: "Lora", Georgia, serif;
  font-size: 1.6rem;
}

.story-entry__title,
.story-entry__copy {
  padding: 30px 28px;
  border-left: 1px solid var(--line-soft);
}

.story-entry__title h3,
.edition-entry h3,
.campaign-entry h2 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(2rem, 3.5vw, 3.35rem);
  font-weight: 500;
  line-height: 0.95;
}

.story-entry__copy p {
  max-width: 34rem;
  margin: 0 0 18px;
  color: var(--ink-soft);
}

.story-entry__media {
  overflow: hidden;
  border-left: 1px solid var(--line-soft);
  background: var(--white);
}

.story-entry__media img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}

.editorial-band {
  margin-top: 72px;
  display: grid;
  grid-template-columns: minmax(440px, 1.2fr) minmax(320px, 0.8fr);
  background: var(--ink);
  color: var(--white);
}

.editorial-band__media img {
  width: 100%;
  height: 100%;
  min-height: 640px;
  object-fit: cover;
}

.editorial-copy {
  padding: clamp(54px, 8vw, 110px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.editorial-copy p {
  max-width: 36rem;
  margin: 28px 0 0;
  color: #eadde1;
  font-size: 1.12rem;
}

.editorial-copy .text-action {
  margin-top: 26px;
  color: var(--white);
}

.edition-preview {
  padding: 100px 0;
}

.edition-intro {
  margin-bottom: 44px;
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(300px, 1fr);
  gap: 50px;
  align-items: end;
}

.edition-intro p {
  max-width: 38rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.1rem;
}

.edition-entry {
  display: grid;
  grid-template-columns: 76px minmax(160px, 0.5fr) minmax(230px, 0.8fr) minmax(270px, 1fr);
  min-height: 220px;
  border-bottom: 1px solid var(--line);
  align-items: center;
}

.edition-entry__number {
  color: var(--olive);
  font-size: 0.95rem;
}

.edition-entry__image {
  height: 220px;
  overflow: hidden;
  border-left: 1px solid var(--line-soft);
  border-right: 1px solid var(--line-soft);
  background: var(--white);
}

.edition-entry__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.edition-entry__name,
.edition-entry__details {
  padding: 26px 30px;
}

.edition-entry__details {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  color: var(--ink-soft);
}

.edition-entry__details p {
  margin: 0;
}

.route-opening {
  display: grid;
  grid-template-columns: minmax(340px, 0.82fr) minmax(520px, 1.18fr);
  min-height: 690px;
  border-bottom: 1px solid var(--line);
}

.route-opening__copy {
  padding: clamp(60px, 8vw, 120px) clamp(32px, 5vw, 76px) 60px max(20px, calc((100vw - var(--measure)) / 2));
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--line);
}

.route-opening__media {
  min-width: 0;
  background: var(--white);
}

.route-opening__media img {
  width: 100%;
  height: 100%;
  min-height: 690px;
  object-fit: cover;
}

.process-section {
  padding: 96px 0;
}

.process-ledger {
  margin-top: 48px;
}

.process-step {
  display: grid;
  grid-template-columns: 82px minmax(230px, 0.7fr) minmax(300px, 1fr);
  min-height: 132px;
  border-bottom: 1px solid var(--line);
  align-items: center;
}

.process-step__number {
  color: var(--berry);
  font-family: "Lora", Georgia, serif;
  font-size: 1.65rem;
}

.process-step h3 {
  margin: 0;
  padding: 24px 30px;
  border-left: 1px solid var(--line-soft);
  font-family: "Lora", Georgia, serif;
  font-size: 1.8rem;
  font-weight: 500;
}

.process-step p {
  margin: 0;
  padding: 24px 30px;
  border-left: 1px solid var(--line-soft);
  color: var(--ink-soft);
}

.image-spread {
  display: grid;
  grid-template-columns: minmax(420px, 1.15fr) minmax(320px, 0.85fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.image-spread__primary img {
  width: 100%;
  height: 100%;
  min-height: 720px;
  object-fit: cover;
}

.image-spread__notes {
  display: grid;
  grid-template-rows: 1fr auto;
  border-left: 1px solid var(--line);
}

.image-spread__notes img {
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
}

.image-spread__copy {
  padding: clamp(36px, 5vw, 68px);
  border-top: 1px solid var(--line);
}

.image-spread__copy h2 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(2.3rem, 4vw, 4rem);
  font-weight: 500;
  line-height: 0.95;
}

.image-spread__copy p {
  margin: 22px 0 0;
  color: var(--ink-soft);
}

.gift-finder {
  padding: 94px 0;
}

.gift-finder__form {
  margin-top: 46px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.gift-field {
  min-width: 0;
  padding: 22px 24px 26px;
  border-right: 1px solid var(--line);
}

.gift-field label {
  display: block;
  margin-bottom: 10px;
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 600;
}

.gift-field select {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--ink);
  border-radius: 1px;
  background: var(--paper);
  color: var(--ink);
}

.gift-finder__submit {
  min-width: 190px;
  border: 0;
  border-radius: 0;
  background: var(--berry);
  color: var(--white);
  font-weight: 700;
  cursor: pointer;
}

.gift-finder__submit:hover {
  background: var(--berry-dark);
}

.gift-result {
  margin: 26px 0 0;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 1.1rem;
}

.gift-result[hidden] {
  display: none;
}

.gift-result a {
  margin-left: 8px;
  color: var(--berry-dark);
  font-weight: 700;
}

.piece-opening {
  display: grid;
  grid-template-columns: minmax(400px, 1fr) minmax(390px, 0.82fr);
  grid-template-rows: auto 1fr;
  min-height: 730px;
  border-bottom: 1px solid var(--line);
}

.piece-gallery {
  grid-column: 1;
  grid-row: 1 / 3;
  min-width: 0;
  padding: 48px;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--white);
}

.piece-gallery__stage {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.piece-gallery__stage img {
  width: min(100%, 720px);
  max-height: 630px;
  object-fit: contain;
}

.piece-gallery__controls {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding-top: 24px;
}

.piece-gallery__controls button {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--ink);
  border-radius: 1px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.piece-gallery__controls button[aria-pressed="true"] {
  background: var(--ink);
  color: var(--white);
}

.piece-summary {
  grid-column: 2;
  grid-row: 1;
  padding: clamp(58px, 8vw, 108px) max(20px, calc((100vw - var(--measure)) / 2)) 24px clamp(44px, 6vw, 86px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-left: 1px solid var(--line);
}

.piece-summary h1 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(4rem, 7vw, 7rem);
  font-weight: 500;
  line-height: 0.9;
}

.piece-summary > p {
  max-width: 34rem;
  margin: 26px 0 0;
  color: var(--ink-soft);
  font-size: 1.15rem;
}

.piece-purchase {
  grid-column: 2;
  grid-row: 2;
  padding: 0 max(20px, calc((100vw - var(--measure)) / 2)) 58px clamp(44px, 6vw, 86px);
  border-left: 1px solid var(--line);
}

.piece-facts {
  margin: 10px 0 0;
  border-top: 1px solid var(--line);
}

.piece-facts div {
  padding: 14px 0;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 18px;
  border-bottom: 1px solid var(--line-soft);
}

.piece-facts dt {
  color: var(--ink-soft);
}

.piece-facts dd {
  margin: 0;
  font-weight: 600;
}

.brand-opening,
.campaign-opening {
  padding: clamp(88px, 11vw, 170px) 0 78px;
  border-bottom: 1px solid var(--line);
}

.brand-opening h1,
.campaign-opening h1 {
  max-width: 11ch;
}

.brand-section {
  padding: 84px 0;
  border-bottom: 1px solid var(--line);
}

.brand-section__grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(420px, 1.28fr);
  gap: 72px;
}

.brand-wordmark {
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  background: var(--white);
  font-family: "Lora", Georgia, serif;
  font-size: clamp(4.8rem, 9vw, 9rem);
  font-weight: 600;
  letter-spacing: -0.045em;
}

.brand-signatures {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(180px, 0.36fr);
  gap: 18px;
}

.brand-symbol {
  min-height: 360px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  background: var(--ink);
  overflow: hidden;
}

.brand-symbol img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.brand-rules {
  border-top-color: var(--line);
}

.brand-rule {
  padding: 22px 0;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 28px;
  border-bottom: 1px solid var(--line);
}

.brand-rule strong {
  color: var(--berry-dark);
}

.brand-rule p {
  margin: 0;
  color: var(--ink-soft);
}

.type-ledger {
  margin-top: 42px;
  border-top: 1px solid var(--line);
}

.type-specimen {
  min-height: 230px;
  padding: 34px 0;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 42px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.type-specimen__label {
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.type-specimen__display,
.type-specimen__body {
  margin: 0;
}

.type-specimen__display {
  max-width: 12ch;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(3.4rem, 7vw, 7rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.04em;
}

.type-specimen__body {
  max-width: 42rem;
  color: var(--ink-soft);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
}

.palette-ledger {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.palette-entry {
  min-height: 230px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-right: 1px solid var(--line);
}

.palette-entry:last-child {
  border-right: 0;
}

.palette-entry strong,
.palette-entry span {
  display: block;
}

.palette-entry span {
  margin-top: 4px;
  font-size: 0.83rem;
}

.palette-entry--paper { background: #fff9f6; }
.palette-entry--ink { background: #321b2c; color: #fff9f6; }
.palette-entry--berry { background: #a91e4d; color: #fff9f6; }
.palette-entry--blue { background: #2f6578; color: #fff9f6; }
.palette-entry--rose { background: #f3dce3; }
.palette-entry--olive { background: #6d733e; color: #fff9f6; }

.brand-application {
  margin-top: 50px;
  display: grid;
  grid-template-columns: minmax(440px, 1.12fr) minmax(320px, 0.88fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.brand-application img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}

.brand-application__copy {
  padding: clamp(42px, 6vw, 80px);
  border-left: 1px solid var(--line);
}

.brand-application__copy h3 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(2.7rem, 5vw, 4.8rem);
  font-weight: 500;
  line-height: 0.94;
}

.brand-application__copy p {
  margin: 24px 0 0;
  color: var(--ink-soft);
}

.campaign-index {
  padding: 80px 0 110px;
}

.campaign-entry {
  display: grid;
  grid-template-columns: minmax(250px, 0.55fr) minmax(580px, 1.45fr);
  gap: 46px;
  padding: 60px 0;
  border-bottom: 1px solid var(--line);
}

.campaign-entry:first-child {
  border-top: 1px solid var(--line);
}

.campaign-copy {
  align-self: start;
}

.campaign-copy h2 {
  font-size: clamp(2.8rem, 5vw, 4.8rem);
}

.campaign-copy p {
  margin: 22px 0 0;
  color: var(--ink-soft);
}

.campaign-copy > .text-action {
  margin-top: 24px;
}

.campaign-message {
  margin-top: 30px;
  border-top: 1px solid var(--line);
}

.campaign-message div {
  padding: 14px 0;
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 20px;
  border-bottom: 1px solid var(--line-soft);
}

.campaign-message dt {
  color: var(--ink-soft);
}

.campaign-message dd {
  margin: 0;
}

.campaign-visuals {
  display: grid;
  grid-template-columns: 1fr 0.79fr;
  gap: 18px;
  align-items: start;
}

.campaign-visuals figure {
  margin: 0;
}

.campaign-visuals img {
  width: 100%;
  height: auto;
  border: 1px solid var(--line);
}

.campaign-visuals figcaption {
  margin-top: 9px;
  color: var(--ink-soft);
  font-size: 0.84rem;
}

.closing-band {
  padding: 88px 0;
  background: var(--paper-deep);
}

.closing-band__inner {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(300px, 1fr);
  gap: 48px;
  align-items: end;
}

.closing-band h2 {
  max-width: 12ch;
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: clamp(3rem, 5.4vw, 5.4rem);
  font-weight: 500;
  line-height: 0.92;
}

.closing-band__copy p {
  max-width: 40rem;
  margin: 0 0 26px;
  color: var(--ink-soft);
  font-size: 1.1rem;
}

.site-footer {
  padding: 54px 0 34px;
  border-top: 1px solid var(--line);
  background: var(--ink);
  color: var(--white);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(240px, 0.55fr) minmax(240px, 0.55fr);
  gap: 46px;
}

.site-footer h2,
.site-footer h3 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-weight: 500;
}

.site-footer h2 {
  font-size: 2.8rem;
}

.site-footer h3 {
  font-size: 1.35rem;
}

.site-footer p {
  max-width: 32rem;
  color: #eadde1;
}

.site-footer ul {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.site-footer li + li {
  margin-top: 8px;
}

.site-footer a {
  color: var(--white);
  text-underline-offset: 4px;
}

.site-footer__end {
  margin-top: 42px;
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid #654e5f;
  color: #d7c6cd;
  font-size: 0.86rem;
}

@media (max-width: 980px) {
  .site-header__inner {
    grid-template-columns: auto 1fr;
  }

  .primary-navigation ul {
    gap: 16px;
  }

  .opening,
  .route-opening {
    min-height: auto;
    grid-template-columns: 0.88fr 1.12fr;
  }

  .opening__copy,
  .route-opening__copy {
    padding-left: 30px;
  }

  .opening__media img,
  .route-opening__media img {
    min-height: 620px;
  }

  .opening__caption {
    width: 100%;
    padding: 12px 18px;
    border-left: 0;
    font-size: 0.82rem;
  }

  .story-entry {
    grid-template-columns: 66px minmax(220px, 0.7fr) minmax(270px, 1fr);
  }

  .story-entry__media {
    grid-column: 2 / -1;
    border-top: 1px solid var(--line-soft);
  }

  .story-entry__media img {
    min-height: 300px;
  }

  .gift-finder__form {
    grid-template-columns: 1fr 1fr;
  }

  .gift-field:nth-child(2) {
    border-right: 0;
  }

  .gift-field:nth-child(3) {
    border-top: 1px solid var(--line);
  }

  .gift-finder__submit {
    min-height: 94px;
    border-top: 1px solid var(--line);
  }

  .palette-ledger {
    grid-template-columns: repeat(3, 1fr);
  }

  .brand-signatures {
    grid-template-columns: minmax(0, 1fr) minmax(130px, 0.4fr);
    gap: 12px;
  }

  .brand-wordmark {
    min-width: 0;
    font-size: clamp(3.2rem, 7vw, 5rem);
  }

  .site-footer__grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.65fr) minmax(0, 0.65fr);
    gap: 28px;
  }

  .palette-entry:nth-child(3) {
    border-right: 0;
  }

  .palette-entry:nth-child(-n + 3) {
    border-bottom: 1px solid var(--line);
  }

  .campaign-entry {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .site-header__inner {
    width: min(calc(100% - 28px), var(--measure));
    min-height: 74px;
    grid-template-columns: 1fr auto;
    gap: 14px;
  }

  .brand-name__word {
    font-size: 1.7rem;
  }

  .brand-name__line {
    font-size: 0.68rem;
  }

  .menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .primary-navigation {
    display: none;
    grid-column: 1 / -1;
    padding: 0 0 14px;
  }

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

  .primary-navigation ul {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--line);
  }

  .primary-navigation a {
    min-height: 48px;
    border-bottom: 1px solid var(--line-soft);
  }

  .primary-navigation a::after {
    display: none;
  }

  .frame {
    width: min(calc(100% - 28px), var(--measure));
  }

  .opening,
  .route-opening,
  .piece-opening {
    display: flex;
    flex-direction: column;
  }

  .opening__copy,
  .route-opening__copy {
    padding: 62px 14px 44px;
    border-right: 0;
  }

  .opening__copy h1,
  .route-opening__copy h1,
  .brand-opening h1,
  .campaign-opening h1 {
    max-width: 9ch;
    font-size: clamp(3.6rem, 18vw, 5.6rem);
  }

  .opening__copy > p,
  .route-opening__copy > p {
    margin-top: 22px;
    font-size: 1.06rem;
  }

  .opening__actions,
  .route-actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

  .opening__media,
  .route-opening__media {
    border-top: 1px solid var(--line);
  }

  .opening__media img,
  .route-opening__media img {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .opening__caption {
    position: static;
    width: 100%;
    border-right: 0;
    border-left: 0;
  }

  .story-index,
  .process-section,
  .gift-finder,
  .edition-preview {
    padding: 68px 0;
  }

  .section-heading,
  .edition-intro,
  .closing-band__inner,
  .brand-section__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .section-heading h2,
  .editorial-copy h2,
  .edition-intro h2,
  .gift-finder h2,
  .campaign-copy h2,
  .brand-section h2 {
    font-size: clamp(2.7rem, 14vw, 4.2rem);
  }

  .story-entry {
    min-height: 0;
    grid-template-columns: 48px 1fr;
  }

  .story-entry__number {
    padding-top: 24px;
  }

  .story-entry__title,
  .story-entry__copy {
    padding: 24px 18px;
  }

  .story-entry__copy {
    grid-column: 2;
    border-top: 1px solid var(--line-soft);
  }

  .story-entry__media {
    grid-column: 1 / -1;
    border-left: 0;
  }

  .editorial-band,
  .image-spread,
  .brand-application {
    grid-template-columns: 1fr;
  }

  .editorial-band__media img,
  .image-spread__primary img,
  .brand-application img {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .editorial-copy {
    padding: 54px 24px;
  }

  .edition-entry {
    grid-template-columns: 42px minmax(110px, 0.55fr) 1fr;
    min-height: 170px;
  }

  .edition-entry__image {
    height: 170px;
  }

  .edition-entry__name {
    padding: 20px 18px;
  }

  .edition-entry__details {
    grid-column: 2 / -1;
    padding: 18px;
    border-top: 1px solid var(--line-soft);
  }

  .process-step {
    grid-template-columns: 48px 1fr;
  }

  .process-step h3,
  .process-step p {
    padding: 20px 18px;
  }

  .process-step p {
    grid-column: 2;
    border-top: 1px solid var(--line-soft);
  }

  .image-spread__notes {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .image-spread__notes img {
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .gift-finder__form {
    grid-template-columns: 1fr;
  }

  .gift-field,
  .gift-field:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .gift-field:nth-child(3) {
    border-top: 0;
  }

  .gift-finder__submit {
    min-height: 58px;
    border-top: 0;
  }

  .piece-gallery {
    order: 2;
    padding: 28px 18px 34px;
    border-top: 1px solid var(--line);
  }

  .piece-gallery__stage img {
    max-height: 520px;
  }

  .piece-summary {
    order: 1;
    padding: 60px 28px 44px;
    border-left: 0;
  }

  .piece-purchase {
    order: 3;
    padding: 26px 28px 50px;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .piece-summary h1 {
    font-size: 4.8rem;
  }

  .brand-opening,
  .campaign-opening {
    padding: 70px 0 54px;
  }

  .brand-wordmark {
    min-height: 260px;
    font-size: clamp(4rem, 21vw, 7rem);
  }

  .brand-signatures {
    grid-template-columns: 1fr;
  }

  .brand-symbol {
    min-height: 210px;
  }

  .brand-rule {
    grid-template-columns: 88px 1fr;
  }

  .type-specimen {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .palette-ledger {
    grid-template-columns: repeat(2, 1fr);
  }

  .palette-entry {
    min-height: 180px;
    border-bottom: 1px solid var(--line);
  }

  .palette-entry:nth-child(2n) {
    border-right: 0;
  }

  .brand-application__copy {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .campaign-index {
    padding-top: 40px;
  }

  .campaign-entry {
    padding: 46px 0;
  }

  .campaign-visuals {
    grid-template-columns: 1fr;
  }

  .campaign-visuals figure:nth-child(2) {
    width: 80%;
    justify-self: end;
  }

  .closing-band {
    padding: 66px 0;
  }

  .site-footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .site-footer__intro {
    grid-column: 1 / -1;
  }

  .site-footer__end {
    display: grid;
  }
}

@media (max-width: 390px) {
  .story-entry__title h3,
  .edition-entry h3,
  .campaign-entry h2 {
    font-size: 1.85rem;
  }

  .edition-entry {
    grid-template-columns: 36px 108px 1fr;
  }

  .edition-entry__details {
    grid-template-columns: 1fr;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .site-footer__intro {
    grid-column: auto;
  }
}


/* elis-story/desktop-refinement.css */
/* Refinamiento editorial para tablet y escritorio.
   Este archivo se carga despues de final.css y no interviene en <= 760 px. */

@media (min-width: 761px) {
  .opening,
  .route-opening,
  .piece-opening,
  .site-header__inner,
  .site-footer__grid,
  .brand-section__grid,
  .brand-signatures,
  .brand-application,
  .campaign-entry,
  .campaign-visuals {
    min-width: 0;
  }

  .opening__copy,
  .route-opening__copy,
  .opening__media,
  .route-opening__media,
  .piece-gallery,
  .piece-summary,
  .piece-purchase,
  .site-footer__intro,
  .brand-wordmark,
  .brand-symbol,
  .campaign-copy,
  .campaign-visuals {
    min-width: 0;
  }

  .opening,
  .route-opening {
    min-height: 0;
  }

  .opening__media,
  .route-opening__media {
    overflow: hidden;
  }

  .opening__media img,
  .route-opening__media img {
    min-height: 0;
    object-fit: cover;
  }

  .opening__copy h1 {
    max-width: 9.5ch;
    font-size: clamp(4rem, 6.1vw, 6.25rem);
    line-height: 0.9;
    letter-spacing: -0.03em;
  }

  .route-opening__copy h1 {
    max-width: 100%;
    font-size: clamp(3.7rem, 5.2vw, 5.5rem);
    line-height: 0.92;
    letter-spacing: -0.025em;
  }

  .page-personalized .personalization-proof {
    min-width: 0;
    padding: 20px;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(150px, 0.75fr);
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 14px;
    overflow: hidden;
    background: var(--paper-deep);
  }

  .page-personalized .personalization-proof__piece {
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--white);
  }

  .page-personalized .personalization-proof__piece--primary {
    grid-row: 1 / 3;
  }

  .page-personalized .personalization-proof__piece img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center;
  }

  .page-personalized .personalization-proof__note {
    margin: 0;
    padding: 14px 16px;
    background: var(--ink);
    color: var(--white);
    font-weight: 600;
    line-height: 1.35;
  }

  .page-collection .catalog-opening {
    min-width: 0;
    padding-block: 0;
    display: grid;
    gap: 0;
    align-items: stretch;
    border-bottom: 1px solid var(--line);
  }

  .page-collection .catalog-opening__copy,
  .page-collection .catalog-opening__media {
    min-width: 0;
  }

  .page-collection .catalog-opening__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid var(--line);
  }

  .page-collection .catalog-opening__kicker {
    max-width: none;
    margin: 0 0 18px;
    color: var(--berry-dark);
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .page-collection .catalog-opening h1 {
    max-width: 10ch;
    margin: 0;
    font-family: "Bodoni Moda", Georgia, serif;
    font-size: clamp(3.7rem, 5.4vw, 5.2rem);
    font-weight: 500;
    line-height: 0.92;
    letter-spacing: -0.025em;
  }

  .page-collection .catalog-opening__copy > p:not(.catalog-opening__kicker) {
    max-width: 32rem;
    margin: 24px 0 0;
    color: var(--ink-soft);
    font-size: 1.08rem;
  }

  .page-collection .catalog-opening__media {
    margin: 0;
    overflow: hidden;
    background: var(--white);
  }

  .page-collection .catalog-opening__media img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .story-index {
    padding-block: 76px 36px;
  }

  .process-section,
  .gift-finder,
  .edition-preview {
    padding-block: 78px;
  }

  .editorial-band {
    margin-top: 56px;
  }

  .image-spread__primary img {
    min-height: 580px;
  }

  .image-spread__notes img {
    min-height: 340px;
  }

  .edition-entry {
    min-height: 200px;
    grid-template-columns: 72px minmax(180px, 0.55fr) minmax(210px, 0.75fr) minmax(270px, 1fr);
  }

  .edition-entry__image {
    height: 200px;
  }

  .edition-entry__image img,
  .edition-entry__image img[src*="assets/products/"],
  .piece-gallery__stage img {
    transform: none;
    object-fit: contain;
  }

  .page-collection .edition-entry__image img[src*="assets/products/"] {
    position: static;
    left: auto;
    place-self: center;
    width: auto;
    max-width: none;
    height: 280px;
    max-height: none;
    translate: none;
    transform: none;
    object-fit: contain;
  }

  .page-collection .edition-entry__image {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
  }

  .piece-opening {
    min-height: 700px;
  }

  .page-piece .piece-gallery {
    padding: 36px 32px 28px;
    overflow: hidden;
  }

  .page-piece .piece-gallery__stage {
    overflow: hidden;
  }

  .page-piece .piece-gallery__stage img {
    width: min(100%, 720px);
    height: auto;
    max-height: 610px;
    translate: none;
    transform: none;
    object-fit: contain;
  }

  .piece-gallery__controls {
    padding-top: 14px;
  }

  .brand-opening,
  .campaign-opening {
    padding-block: clamp(68px, 7vw, 108px) clamp(48px, 4.5vw, 62px);
  }

  .brand-opening h1,
  .campaign-opening h1 {
    font-size: clamp(3.8rem, 6.2vw, 6.2rem);
    line-height: 0.9;
  }

  .brand-section {
    padding-block: 68px;
  }

  .brand-signatures {
    align-items: center;
  }

  .brand-symbol {
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    align-self: center;
  }

  .brand-symbol img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    object-position: center;
  }

  .brand-application img {
    min-height: 560px;
  }

  .campaign-index {
    padding-block: 40px 84px;
  }

  .campaign-entry {
    padding-block: 48px;
  }

  .campaign-entry:first-child {
    border-top: 0;
  }

  .closing-band {
    padding-block: 72px;
  }
}

@media (min-width: 761px) and (max-width: 960px) {
  .frame,
  .site-header__inner {
    width: min(calc(100% - 32px), var(--measure));
  }

  .site-header__inner {
    grid-template-columns: minmax(150px, auto) minmax(0, 1fr);
    gap: 18px;
  }

  .primary-navigation ul {
    gap: clamp(10px, 1.8vw, 16px);
  }

  .primary-navigation a {
    font-size: 0.86rem;
  }

  .opening,
  .route-opening {
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  }

  .opening__copy,
  .route-opening__copy {
    padding: 44px 24px 42px 30px;
  }

  .opening__copy h1,
  .route-opening__copy h1 {
    max-width: 100%;
    font-size: clamp(3.2rem, 6.8vw, 3.65rem);
    line-height: 0.93;
    letter-spacing: -0.02em;
  }

  .opening__copy > p,
  .route-opening__copy > p {
    margin-top: 20px;
    font-size: 1rem;
  }

  .opening__actions,
  .route-actions {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .opening__media img,
  .route-opening__media img {
    height: 620px;
  }

  .page-personalized .personalization-proof {
    height: 620px;
    padding: 14px;
    grid-template-columns: minmax(0, 1.28fr) minmax(130px, 0.72fr);
    gap: 10px;
  }

  .page-personalized .personalization-proof__piece img {
    height: 100%;
  }

  .page-personalized .personalization-proof__note {
    padding: 12px;
    font-size: 0.84rem;
  }

  .page-collection .catalog-opening {
    min-height: 540px;
    grid-template-columns: minmax(280px, 0.84fr) minmax(0, 1.16fr);
  }

  .page-collection .catalog-opening__copy {
    padding: 38px 28px;
  }

  .page-collection .catalog-opening h1 {
    max-width: 100%;
    font-size: clamp(3.15rem, 6.8vw, 3.6rem);
    line-height: 0.94;
  }

  .page-collection .catalog-opening__copy > p:not(.catalog-opening__kicker) {
    margin-top: 18px;
    font-size: 1rem;
  }

  .page-collection .catalog-opening__media img {
    height: 540px;
  }

  .page-collection .edition-entry__image img[src*="assets/products/"] {
    height: 250px;
  }

  .story-index,
  .process-section,
  .gift-finder,
  .edition-preview {
    padding-block: 60px;
  }

  .section-heading,
  .edition-intro {
    gap: 28px;
    margin-bottom: 32px;
  }

  .story-entry {
    grid-template-columns: 54px minmax(190px, 0.72fr) minmax(0, 1fr);
  }

  .edition-entry {
    min-height: 190px;
    grid-template-columns: 52px minmax(160px, 0.58fr) minmax(170px, 0.72fr) minmax(0, 1fr);
  }

  .edition-entry__image {
    height: 190px;
  }

  .edition-entry__name,
  .edition-entry__details {
    padding: 20px 18px;
  }

  .edition-entry h3 {
    font-size: clamp(2rem, 4.2vw, 2.55rem);
  }

  .process-step {
    grid-template-columns: 64px minmax(190px, 0.72fr) minmax(0, 1fr);
  }

  .image-spread,
  .editorial-band,
  .brand-application {
    grid-template-columns: minmax(0, 1.08fr) minmax(260px, 0.92fr);
  }

  .image-spread__primary img,
  .editorial-band__media img,
  .brand-application img {
    min-height: 500px;
  }

  .page-piece .piece-opening {
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    height: 680px;
    min-height: 680px;
    max-height: 680px;
  }

  .page-piece .piece-gallery {
    padding: 28px 20px 24px;
  }

  .page-piece .piece-gallery__stage {
    height: 530px;
  }

  .page-piece .piece-gallery__stage img {
    width: min(100%, 530px);
    max-width: 100%;
    height: auto;
    max-height: 530px;
  }

  .piece-summary {
    padding: 42px 24px 18px 30px;
  }

  .piece-summary h1 {
    font-size: clamp(3.8rem, 8vw, 4.6rem);
  }

  .piece-summary > p {
    margin-top: 18px;
    font-size: 1.04rem;
  }

  .piece-purchase {
    padding: 0 24px 38px 30px;
  }

  .piece-facts div {
    grid-template-columns: minmax(86px, 0.75fr) minmax(0, 1.25fr);
    gap: 12px;
  }

  .brand-opening,
  .campaign-opening {
    padding-block: 56px 44px;
  }

  .brand-section {
    padding-block: 56px;
  }

  .brand-section__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .brand-signatures {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 180px);
    gap: 18px;
  }

  .brand-wordmark {
    min-height: 260px;
    font-size: clamp(3.4rem, 8vw, 4.8rem);
  }

  .brand-symbol {
    max-width: 180px;
    justify-self: end;
  }

  .brand-application__copy {
    padding: 42px 36px;
  }

  .campaign-index {
    padding-block: 30px 68px;
  }

  .campaign-entry {
    gap: 30px;
    padding-block: 40px;
  }

  .site-footer__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 34px 48px;
  }

  .site-footer__intro {
    grid-column: 1 / -1;
  }

  .site-footer__end {
    margin-top: 32px;
  }
}

@media (min-width: 961px) {
  .opening {
    grid-template-columns: minmax(390px, 0.82fr) minmax(0, 1.28fr);
  }

  .route-opening {
    grid-template-columns: minmax(410px, 0.88fr) minmax(0, 1.12fr);
  }

  .opening__copy,
  .route-opening__copy {
    padding-top: clamp(58px, 6vw, 88px);
    padding-right: clamp(34px, 4vw, 56px);
    padding-bottom: 52px;
  }

  .opening__media img,
  .route-opening__media img {
    height: clamp(700px, 56vw, 820px);
  }

  .page-personalized .personalization-proof {
    height: clamp(700px, 56vw, 820px);
  }

  .page-personalized .personalization-proof__piece img {
    height: 100%;
  }

  .page-collection .catalog-opening {
    min-height: 580px;
    grid-template-columns: minmax(470px, 0.92fr) minmax(0, 1.08fr);
  }

  .page-collection .catalog-opening__copy {
    padding: 44px clamp(36px, 3.4vw, 48px);
  }

  .page-collection .catalog-opening h1 {
    font-size: clamp(3.6rem, 4.8vw, 4.5rem);
  }

  .page-collection .catalog-opening__media img {
    height: 580px;
  }

  .page-piece .piece-opening {
    grid-template-columns: minmax(0, 1.06fr) minmax(390px, 0.78fr);
    height: 740px;
    min-height: 740px;
    max-height: 740px;
  }

  .page-piece .piece-gallery__stage {
    height: 610px;
  }

  .page-piece .piece-gallery__stage img {
    width: min(100%, 610px);
    max-width: 100%;
    height: auto;
    max-height: 610px;
  }

  .piece-summary {
    padding-top: clamp(56px, 6vw, 82px);
    padding-left: clamp(44px, 5vw, 70px);
  }

  .piece-purchase {
    padding-left: clamp(44px, 5vw, 70px);
    padding-bottom: 46px;
  }

  .brand-signatures {
    grid-template-columns: minmax(0, 1fr) minmax(170px, 0.36fr);
  }
}


/* elis-story/mobile-refinement.css */
@media (max-width: 900px) {
  .site-header {
    position: relative;
    z-index: 30;
  }

  .site-header__inner {
    position: relative;
    width: min(calc(100% - 32px), var(--measure));
    min-height: 76px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
  }

  .menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .primary-navigation {
    position: absolute;
    z-index: 40;
    top: calc(100% - 1px);
    right: 0;
    width: min(360px, calc(100vw - 32px));
    padding: 0;
    display: none;
    border: 1px solid var(--line);
    background: var(--paper);
  }

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

  .primary-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border: 0;
  }

  .primary-navigation li {
    min-width: 0;
    border-right: 1px solid var(--line-soft);
    border-bottom: 1px solid var(--line-soft);
  }

  .primary-navigation li:nth-child(2n),
  .primary-navigation li:last-child {
    border-right: 0;
  }

  .primary-navigation li:last-child {
    grid-column: 1 / -1;
    border-bottom: 0;
  }

  .primary-navigation a {
    width: 100%;
    min-width: 44px;
    min-height: 48px;
    padding: 0 16px;
    justify-content: flex-start;
    border: 0;
  }

  .primary-navigation a::after {
    display: none;
  }

  .opening,
  .route-opening {
    min-height: 520px;
  }

  .opening__copy,
  .route-opening__copy {
    padding: 48px 28px 40px;
  }

  .opening__copy h1,
  .route-opening__copy h1,
  .brand-opening h1,
  .campaign-opening h1,
  .piece-summary h1 {
    max-width: 12ch;
    font-size: 3.25rem;
    line-height: 0.96;
    letter-spacing: -0.03em;
  }

  .opening__media {
    margin: 0;
  }

  .opening__media img,
  .route-opening__media img {
    min-height: 520px;
  }

  .story-index,
  .process-section,
  .gift-finder,
  .edition-preview {
    padding-block: 62px;
  }

  .brand-section {
    padding-block: 58px;
  }

  .campaign-index {
    padding: 40px 0 68px;
  }

  .campaign-entry {
    gap: 30px;
    padding-block: 42px;
  }

  .editorial-band {
    margin-top: 48px;
  }

  .editorial-band__media img,
  .brand-application img {
    min-height: 480px;
  }

  .image-spread__primary img {
    min-height: 540px;
  }

  .closing-band {
    padding-block: 58px;
  }

  .brand-symbol,
  .brand-symbol img {
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .brand-symbol img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .site-footer a {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }

  .site-footer li + li {
    margin-top: 0;
  }
}

@media (max-width: 760px) {
  .page-review .review-navigation .frame {
    min-height: 44px;
    padding-block: 0;
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    overflow-x: auto;
  }

  .page-review .review-navigation span {
    display: none;
  }

  .page-review .review-navigation a {
    min-width: 44px;
    min-height: 44px;
    flex: 0 0 auto;
    justify-content: flex-start;
  }

  .site-header__inner {
    width: min(calc(100% - 28px), var(--measure));
    min-height: 72px;
  }

  .brand-name__word {
    font-size: 1.75rem;
  }

  .brand-name__line {
    margin-top: 4px;
    font-size: 0.75rem;
    line-height: 1.25;
  }

  .primary-navigation {
    width: min(360px, calc(100vw - 28px));
  }

  .opening,
  .route-opening,
  .piece-opening {
    min-height: 0;
  }

  .opening__copy,
  .route-opening__copy {
    padding: 34px 20px 26px;
  }

  .opening__copy h1,
  .route-opening__copy h1,
  .brand-opening h1,
  .campaign-opening h1,
  .piece-summary h1 {
    max-width: 100%;
    font-size: 3.125rem;
    line-height: 0.96;
  }

  .opening__copy > p,
  .route-opening__copy > p,
  .brand-opening > p,
  .campaign-opening > p {
    margin-top: 16px;
    font-size: 1rem;
    line-height: 1.5;
  }

  .opening__actions,
  .route-actions {
    margin-top: 20px;
    gap: 6px;
  }

  .action-primary,
  .action-secondary {
    min-height: 48px;
    padding-block: 10px;
  }

  .opening__media,
  .route-opening__media {
    min-height: 0;
  }

  .opening__media img,
  .route-opening__media img {
    width: 100%;
    height: clamp(260px, 82vw, 360px);
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 42%;
  }

  .opening__caption {
    padding: 10px 18px;
    font-size: 0.8rem;
    line-height: 1.4;
  }

  .story-index,
  .process-section,
  .gift-finder,
  .edition-preview {
    padding-block: 46px;
  }

  .section-heading,
  .edition-intro,
  .closing-band__inner,
  .brand-section__grid {
    gap: 16px;
    margin-bottom: 26px;
  }

  .section-heading h2,
  .editorial-copy h2,
  .edition-intro h2,
  .gift-finder h2,
  .campaign-copy h2,
  .brand-section h2,
  .closing-band h2,
  .image-spread__copy h2,
  .brand-application__copy h3 {
    font-size: 2.5rem;
    line-height: 0.96;
  }

  .section-heading p,
  .edition-intro p,
  .editorial-copy p,
  .closing-band__copy p {
    font-size: 1rem;
    line-height: 1.5;
  }

  .story-entry {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .story-entry__number {
    padding: 18px 8px 12px 0;
    font-size: 1.2rem;
  }

  .story-entry__title,
  .story-entry__copy {
    padding: 16px 14px;
  }

  .story-entry__copy p {
    margin-bottom: 8px;
  }

  .story-entry__media {
    height: clamp(180px, 58vw, 240px);
  }

  .story-entry__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .editorial-band {
    margin-top: 36px;
  }

  .editorial-band__media img,
  .brand-application img {
    height: clamp(190px, 62vw, 280px);
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .editorial-copy,
  .brand-application__copy {
    padding: 36px 20px;
  }

  .editorial-copy p,
  .brand-application__copy p {
    margin-top: 16px;
  }

  .editorial-copy .text-action {
    margin-top: 12px;
  }

  .edition-intro {
    margin-bottom: 26px;
  }

  .edition-entry {
    min-height: 180px;
    grid-template-columns: 36px clamp(128px, 42vw, 168px) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    align-items: stretch;
  }

  .edition-preview .edition-entry {
    grid-template-columns: 36px clamp(128px, 42vw, 168px) minmax(0, 1fr);
  }

  .edition-entry__number {
    grid-column: 1;
    grid-row: 1 / 3;
    padding-top: 18px;
    align-self: start;
  }

  .edition-entry__image {
    grid-column: 2;
    grid-row: 1 / 3;
    width: 100%;
    height: auto;
    min-height: 180px;
    overflow: hidden;
  }

  .edition-entry__name {
    grid-column: 3;
    grid-row: 1;
    padding: 16px 14px 6px;
    align-self: end;
  }

  .edition-entry__name h3 {
    font-size: 1.75rem;
    line-height: 0.98;
  }

  .edition-entry__details {
    grid-column: 3;
    grid-row: 2;
    padding: 6px 14px 14px;
    display: block;
    border-top: 0;
  }

  .edition-entry__details p {
    margin-bottom: 6px;
    font-size: 0.92rem;
    line-height: 1.4;
  }

  .edition-entry__details .text-action {
    min-height: 44px;
  }

  .process-ledger {
    margin-top: 26px;
  }

  .process-step {
    min-height: 0;
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .process-step__number {
    font-size: 1.25rem;
  }

  .process-step h3,
  .process-step p {
    padding: 14px;
  }

  .process-step h3 {
    font-size: 1.55rem;
  }

  .image-spread__primary img {
    height: clamp(190px, 62vw, 280px);
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .image-spread__notes {
    grid-template: auto / minmax(118px, 0.8fr) minmax(0, 1.2fr);
  }

  .image-spread__notes img {
    width: 100%;
    height: 100%;
    min-height: 180px;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .image-spread__copy {
    padding: 24px 18px;
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .image-spread__copy p {
    margin-top: 12px;
  }

  .gift-finder__form {
    margin-top: 26px;
  }

  .gift-field {
    padding: 14px 16px;
  }

  .gift-field label {
    margin-bottom: 7px;
  }

  .gift-finder__submit {
    min-height: 52px;
  }

  .piece-summary {
    order: 1;
    padding: 34px 20px 22px;
  }

  .piece-summary > p {
    margin-top: 12px;
    font-size: 1rem;
  }

  .piece-gallery {
    order: 2;
    padding: 16px 14px 18px;
    grid-template-rows: auto auto;
  }

  .piece-gallery__stage {
    width: 100%;
    height: clamp(320px, 100vw, 400px);
    min-height: 0;
  }

  .piece-gallery__stage img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
    transform: none;
  }

  .page-piece .piece-gallery__stage {
    overflow: hidden;
  }

  .page-piece .piece-gallery__stage img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
    transform: none;
  }

  /* Keep the product stage authoritative when later refinement sheets load. */
  .page-piece main .piece-gallery__stage {
    height: clamp(320px, 100vw, 400px);
    aspect-ratio: auto;
    overflow: hidden;
  }

  .page-piece main .piece-gallery__stage img {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    transform: none;
  }

  .piece-gallery__controls {
    gap: 8px;
    padding-top: 12px;
  }

  .piece-gallery__controls button {
    min-height: 48px;
    flex: 1;
    padding-inline: 10px;
  }

  .piece-purchase {
    order: 3;
    padding: 18px 20px 34px;
    display: flex;
    flex-direction: column;
  }

  .piece-purchase .route-actions {
    order: 1;
    margin: 0 0 18px;
  }

  .piece-facts {
    order: 2;
    margin-top: 0;
  }

  .piece-facts div {
    padding-block: 11px;
  }

  .page-piece .piece-facts div {
    grid-template-columns: minmax(90px, 0.75fr) minmax(0, 1.25fr);
    gap: 12px;
  }

  .brand-opening,
  .campaign-opening {
    padding: 34px 0 30px;
  }

  .brand-section {
    padding-block: 48px;
  }

  .brand-wordmark {
    min-height: 180px;
    font-size: clamp(3.3rem, 18vw, 5.5rem);
  }

  .brand-symbol {
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .brand-symbol img {
    min-height: 0;
    aspect-ratio: 1 / 1;
    object-fit: contain;
  }

  .brand-rule {
    padding-block: 14px;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 16px;
  }

  .type-ledger,
  .palette-ledger {
    margin-top: 26px;
  }

  .type-specimen {
    padding-block: 22px;
    gap: 12px;
  }

  .type-specimen__display {
    font-size: 3rem;
    line-height: 0.96;
  }

  .palette-entry {
    min-height: 138px;
    padding: 16px;
  }

  .brand-application {
    margin-top: 32px;
  }

  .campaign-index {
    padding: 16px 0 48px;
  }

  .campaign-entry {
    gap: 18px;
    padding-block: 30px;
  }

  .campaign-copy p {
    margin-top: 12px;
  }

  .campaign-message {
    display: none;
  }

  .campaign-copy > .text-action {
    margin-top: 10px;
  }

  .campaign-visuals {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
    gap: 10px;
    align-items: start;
  }

  .campaign-visuals figure,
  .campaign-visuals figure:nth-child(2) {
    width: 100%;
    justify-self: stretch;
  }

  .campaign-visuals figcaption {
    margin-top: 6px;
    font-size: 0.78rem;
    line-height: 1.35;
  }

  .campaign-visuals figcaption a {
    min-width: 44px;
    min-height: 44px;
    margin-top: 4px;
    padding-block: 8px;
    display: flex;
    align-items: center;
    border-top: 1px solid var(--line-soft);
  }

  .campaign-opening .route-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-meta .campaign-opening {
    padding-top: 24px;
    padding-bottom: 22px;
  }

  .page-meta .campaign-entry {
    gap: 18px;
    padding-block: 26px;
  }

  .page-meta .campaign-entry .campaign-visuals {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
    gap: 10px;
  }

  .page-collection .catalog-opening {
    width: 100%;
    padding: 0;
    gap: 0;
  }

  .page-collection .catalog-opening__copy {
    padding: 32px 20px 26px;
  }

  .page-collection .catalog-opening__kicker {
    margin-bottom: 10px;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
  }

  .page-collection .catalog-opening h1 {
    max-width: 100%;
    font-size: 3.125rem;
    line-height: 0.96;
  }

  .page-collection .catalog-opening__media {
    order: 0;
    border-inline: 0;
  }

  .page-collection .catalog-opening__media img {
    width: 100%;
    height: clamp(230px, 70vw, 300px);
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
  }

  .page-xv .image-spread--product-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-xv .image-spread--product-pair .image-spread__notes {
    display: contents;
  }

  .page-xv .image-spread--product-pair .image-spread__primary {
    grid-column: 1;
  }

  .page-xv .image-spread--product-pair .image-spread__notes > img {
    grid-column: 2;
  }

  .page-xv .image-spread--product-pair .image-spread__primary img,
  .page-xv .image-spread--product-pair .image-spread__notes > img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
    object-fit: contain;
  }

  .page-xv .image-spread--product-pair .image-spread__copy {
    grid-column: 1 / -1;
    padding: 24px 20px;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .campaign-opening .action-primary,
  .campaign-opening .action-secondary {
    padding-inline: 10px;
    text-align: center;
  }

  .closing-band {
    padding-block: 46px;
  }

  .closing-band__inner {
    margin-bottom: 0;
  }

  .closing-band__copy p {
    margin-bottom: 16px;
  }

  .site-footer {
    padding: 36px 0 26px;
  }

  .site-footer__grid {
    gap: 18px 24px;
  }

  .site-footer h2 {
    font-size: 2.35rem;
  }

  .site-footer ul {
    margin-top: 6px;
  }

  .site-footer__end {
    margin-top: 24px;
    padding-top: 16px;
    gap: 8px;
  }
}

@media (max-width: 390px) {
  .opening__copy h1,
  .route-opening__copy h1,
  .brand-opening h1,
  .campaign-opening h1,
  .piece-summary h1 {
    font-size: 2.875rem;
    line-height: 0.98;
  }

  .opening__copy,
  .route-opening__copy {
    padding-top: 30px;
  }

  .opening__actions,
  .route-actions {
    grid-template-columns: 1fr;
  }

  .campaign-opening .route-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .section-heading h2,
  .editorial-copy h2,
  .edition-intro h2,
  .gift-finder h2,
  .campaign-copy h2,
  .brand-section h2,
  .closing-band h2,
  .image-spread__copy h2,
  .brand-application__copy h3 {
    font-size: 2.25rem;
  }

  .story-entry__title h3,
  .edition-entry h3,
  .campaign-entry h2 {
    font-size: 1.7rem;
  }

  .edition-entry {
    grid-template-columns: 32px 128px minmax(0, 1fr);
  }

  .edition-preview .edition-entry {
    grid-template-columns: 32px 128px minmax(0, 1fr);
  }

  /* Crop only the blank canvas around each doll, never the garment or hair. */
  body .edition-preview .edition-entry__image img[src*="assets/products/"] {
    width: auto;
    max-width: none;
    height: 220px;
    object-fit: contain;
    transform: none;
  }

  .page-collection .catalog-opening h1 {
    font-size: 2.875rem;
    line-height: 0.98;
  }

  .edition-entry__name,
  .edition-entry__details {
    padding-right: 10px;
    padding-left: 10px;
  }

  .image-spread__notes {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .campaign-visuals {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.72fr);
    gap: 8px;
  }

  .page-meta .campaign-entry .campaign-visuals {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.72fr);
    gap: 8px;
  }

  .campaign-visuals figcaption {
    font-size: 0.74rem;
  }

  .site-footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .site-footer__intro {
    grid-column: 1 / -1;
  }
}


/* elis-story/ux-refinement.css */
/* Refinamientos de reflow, interacción y accesibilidad. */

main {
  overflow: visible;
}

:where(
  .site-header__inner > *,
  .opening > *,
  .route-opening > *,
  .section-heading > *,
  .story-entry > *,
  .editorial-band > *,
  .edition-intro > *,
  .edition-entry > *,
  .process-step > *,
  .image-spread > *,
  .image-spread__notes > *,
  .gift-finder__form > *,
  .piece-opening > *,
  .piece-facts > *,
  .brand-section__grid > *,
  .brand-signatures > *,
  .brand-rule > *,
  .type-specimen > *,
  .palette-ledger > *,
  .brand-application > *,
  .campaign-entry > *,
  .campaign-visuals > *,
  .campaign-message > *,
  .closing-band__inner > *,
  .site-footer__grid > *,
  .site-footer__end > *
) {
  min-width: 0;
}

:where(h1, h2, h3, p, li, dt, dd, figcaption, label) {
  overflow-wrap: break-word;
  word-break: normal;
}

:where(.text-action, .action-primary, .action-secondary, .brand-name__line) {
  overflow-wrap: anywhere;
}

.site-footer a,
.campaign-visuals figcaption a {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

:where(a, button, select):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

main#contenido[tabindex="-1"]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: -3px;
}

.menu-button,
.gift-finder__submit,
.piece-gallery__controls button {
  min-width: 44px;
  min-height: 44px;
}

.gift-field select[aria-invalid="true"] {
  border: 2px solid var(--berry-dark);
}

.gift-result[data-state="error"],
.gift-result[data-state="success"] {
  padding-inline: 18px;
  border-left: 3px solid var(--berry-dark);
}

.gift-result[data-state="error"] {
  background: var(--paper-deep);
}

.gift-result[data-state="success"] {
  border-left-color: var(--blue);
}

.piece-gallery,
.piece-gallery__stage {
  min-width: 0;
  overflow: visible;
}

.piece-gallery__stage img {
  width: min(100%, 630px);
  height: auto;
  max-height: none;
  object-fit: contain;
  transform: none;
}

@media (max-width: 860px) {
  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer__intro {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .site-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .brand-name {
    max-width: 100%;
    min-width: 0;
  }

  .brand-name__line {
    max-width: 100%;
    white-space: normal;
  }

  .menu-button {
    width: auto;
    min-width: 48px;
    padding: 10px 12px;
    white-space: nowrap;
  }

  .page-piece .piece-gallery__stage {
    height: auto;
    aspect-ratio: 1 / 1;
    overflow: visible;
  }

  .page-piece .piece-gallery__stage img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    transform: none;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  .page-collection .catalog-opening {
    grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  }
}

@media (max-width: 760px) {

  .section-heading,
  .edition-intro,
  .closing-band__inner,
  .brand-section__grid,
  .editorial-band,
  .brand-application,
  .campaign-entry,
  .gift-finder__form {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-collection .catalog-opening {
    grid-template-columns: minmax(0, 1fr);
  }

  .story-entry,
  .process-step {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .edition-entry {
    grid-template-columns: 42px minmax(110px, 0.55fr) minmax(0, 1fr);
  }

  .edition-entry__details,
  .campaign-message div,
  .type-specimen {
    grid-template-columns: minmax(0, 1fr);
  }

  .piece-facts div {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  }

  .brand-rule {
    grid-template-columns: 88px minmax(0, 1fr);
  }

  .piece-gallery__stage img {
    width: min(100%, 520px);
  }
}

@media (max-width: 390px) {
  .edition-entry {
    grid-template-columns: 32px 128px minmax(0, 1fr);
  }
}

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

@media (forced-colors: active) {
  .gift-field select[aria-invalid="true"],
  .gift-result[data-state="error"],
  .gift-result[data-state="success"],
  .piece-gallery__controls button[aria-pressed="true"] {
    border-color: currentColor;
  }
}


/* elis-story/integrated-refinement.css */
/* Route-specific composition after visual QA. */

.review-navigation {
  border-bottom: 1px solid var(--line);
  background: var(--ink);
  color: var(--white);
}

.review-navigation .frame {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 22px;
}

.review-navigation span {
  margin-right: auto;
  color: #d7c6cd;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.review-navigation a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 0.9rem;
  font-weight: 600;
  text-underline-offset: 5px;
}

.review-navigation a[aria-current="page"] {
  color: #fff;
  text-decoration-color: #e8a7bb;
  text-decoration-thickness: 2px;
}

.page-home .opening__media img {
  object-position: center;
}

.catalog-opening {
  padding-block: clamp(48px, 6vw, 84px);
  display: grid;
  grid-template-columns: minmax(360px, 0.84fr) minmax(440px, 1.16fr);
  gap: clamp(36px, 5vw, 74px);
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.catalog-opening__copy,
.catalog-opening__media {
  min-width: 0;
}

.catalog-opening__copy > p:not(.catalog-opening__kicker) {
  max-width: 34rem;
  margin: 24px 0 0;
  color: var(--ink-soft);
  font-size: 1.12rem;
}

.catalog-opening__kicker {
  margin: 0 0 18px;
  color: var(--berry-dark);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.catalog-opening h1 {
  max-width: 10ch;
  margin: 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(3.8rem, 5.2vw, 5.5rem);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.035em;
}

.catalog-opening__media {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
}

.catalog-opening__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.page-collection .edition-preview {
  padding-top: clamp(52px, 6vw, 84px);
}

.personalization-proof {
  position: relative;
  min-height: 650px;
  padding: 0;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 0.62fr;
  grid-template-rows: 1fr 0.62fr;
  gap: 1px;
  background: var(--line);
}

.personalization-proof__piece {
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: var(--white);
}

.personalization-proof__piece--primary {
  grid-row: 1 / 3;
}

.personalization-proof__piece img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}

.personalization-proof__piece--primary img {
  object-position: center;
}

.personalization-proof__piece--secondary img {
  object-position: center 42%;
}

.personalization-proof__note {
  margin: 0;
  padding: 24px;
  display: flex;
  align-items: flex-end;
  background: var(--ink);
  color: var(--white);
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.5rem, 2.4vw, 2.4rem);
  line-height: 1;
}

.image-spread--product-pair {
  background: var(--paper);
}

.image-spread--product-pair .image-spread__primary,
.image-spread--product-pair .image-spread__notes {
  background: var(--white);
}

.image-spread--product-pair .image-spread__primary img,
.image-spread--product-pair .image-spread__notes > img {
  min-height: 0;
  height: 100%;
  object-fit: contain;
}

.image-spread--product-pair .image-spread__primary img {
  aspect-ratio: 1 / 1;
}

.image-spread--product-pair .image-spread__notes > img {
  aspect-ratio: 1 / 1;
}

.page-piece .piece-purchase .route-actions {
  margin-top: 0;
  margin-bottom: 26px;
}

.page-piece .piece-purchase .action-primary,
.page-piece .piece-purchase .action-secondary {
  flex: 1 1 15rem;
}

.brand-rule strong {
  overflow-wrap: anywhere;
}

.edition-entry__image {
  display: grid;
  place-items: center;
  overflow: hidden;
}

.edition-entry__image img[src*="assets/products/"] {
  position: relative;
  left: 50%;
  width: auto;
  max-width: none;
  height: 282px;
  object-fit: contain;
  translate: -57% 0;
  transform: none;
}

.piece-gallery__stage {
  overflow: hidden;
}

.piece-gallery__stage img {
  width: auto;
  max-width: none;
  height: clamp(520px, 52vw, 720px);
  object-fit: contain;
  transform: none;
}

.page-not-found main {
  min-height: 100svh;
  display: grid;
  align-items: center;
}

.page-not-found .brand-opening {
  width: min(calc(100% - 40px), 56rem);
  border: 0;
}

@media (min-width: 981px) {
  .page-home .opening,
  .page-xv .route-opening,
  .page-gifts .route-opening {
    height: min(76svh, 820px);
    min-height: 650px;
  }

  .page-home .opening__media img,
  .page-xv .route-opening__media img,
  .page-gifts .route-opening__media img {
    min-height: 0;
    height: 100%;
  }

  .page-personalized .route-opening {
    min-height: 650px;
    height: min(72svh, 760px);
  }

  .page-personalized .personalization-proof {
    min-height: 0;
    height: 100%;
  }
}

@media (max-width: 980px) {
  .personalization-proof {
    min-height: 560px;
  }
}

@media (max-width: 760px) {
  .review-navigation .frame {
    min-height: 0;
    padding-block: 8px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
  }

  .review-navigation span {
    grid-column: 1 / -1;
    margin: 0;
  }

  .review-navigation a {
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .catalog-opening {
    width: 100%;
    padding: 0 0 44px;
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .catalog-opening__media {
    order: initial;
    border-inline: 0;
  }

  .catalog-opening__copy {
    width: min(calc(100% - 28px), var(--measure));
    margin-inline: auto;
  }

  .catalog-opening h1 {
    max-width: 9ch;
    font-size: clamp(3rem, 14vw, 3.6rem);
  }

  .catalog-opening__copy > p:not(.catalog-opening__kicker) {
    margin-top: 18px;
    font-size: 1rem;
  }

  .page-home .opening__media img {
    aspect-ratio: 3 / 2;
  }

  .personalization-proof {
    min-height: 0;
    height: 430px;
    grid-template-columns: 1fr 0.72fr;
  }

  .personalization-proof__note {
    padding: 18px;
    font-size: 1.3rem;
  }

  .image-spread--product-pair {
    grid-template-columns: 1fr 1fr;
  }

  .image-spread--product-pair .image-spread__primary,
  .image-spread--product-pair .image-spread__notes {
    min-width: 0;
  }

  .image-spread--product-pair .image-spread__notes {
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .image-spread--product-pair .image-spread__copy {
    grid-column: 1 / -1;
  }

  .page-piece .piece-purchase .route-actions {
    display: grid;
  }

  .edition-entry__image img[src*="assets/products/"] {
    height: 238px;
  }

  .piece-gallery__stage img {
    width: auto;
    max-width: none;
    height: 510px;
  }

  .page-meta .campaign-visuals {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.72fr);
  }
}

@media (max-width: 390px) {
  .personalization-proof {
    height: 380px;
  }

  .personalization-proof__note {
    padding: 14px;
    font-size: 1.08rem;
  }

  .review-navigation a {
    font-size: 0.8rem;
  }

  .piece-gallery__stage img {
    height: 470px;
  }
}

/* Endurecimiento responsive final.
   Las aperturas crecen con su contenido y conservan una medida util estable. */

.opening__media {
  margin: 0;
}

:where(h1, h2, h3) {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

/* La fotografia horizontal de Inicio permanece completa en tablet. */
@media (min-width: 761px) and (max-width: 1279px) {
  .page-home .opening {
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .page-home .opening__copy {
    padding: clamp(48px, 6vw, 72px) max(28px, calc((100vw - var(--measure)) / 2));
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .page-home .opening__copy h1 {
    max-width: 10.5ch;
    font-size: clamp(3.25rem, 6.25vw, 5rem);
    line-height: 0.92;
    letter-spacing: -0.025em;
  }

  .page-home .opening__copy > p {
    max-width: 42rem;
  }

  .page-home .opening__media {
    align-self: auto;
    min-height: 0;
    overflow: hidden;
    border-top: 0;
  }

  .page-home .opening__media img {
    position: static;
    width: 100%;
    height: auto;
    min-height: 0;
    display: block;
    aspect-ratio: auto;
    object-fit: contain;
  }
}

/* Rieles de escritorio con ancho util constante y limite para ultrawide. */
@media (min-width: 981px) {
  .page-xv .route-opening,
  .page-gifts .route-opening,
  .page-personalized .route-opening,
  .page-piece .piece-opening {
    --hero-gutter: clamp(20px, calc((100vw - var(--measure)) / 2), 400px);
    width: min(100%, 1920px);
    margin-inline: auto;
  }

  .page-xv .route-opening,
  .page-gifts .route-opening,
  .page-personalized .route-opening {
    grid-template-columns: minmax(0, calc(var(--hero-gutter) + 536px)) minmax(0, 1fr);
    height: auto;
    min-height: 650px;
  }

  .page-xv .route-opening__copy,
  .page-gifts .route-opening__copy,
  .page-personalized .route-opening__copy {
    padding: clamp(44px, 6vh, 64px) 56px clamp(44px, 6vh, 64px) var(--hero-gutter);
    justify-content: center;
  }

  .page-xv .route-opening__copy h1,
  .page-gifts .route-opening__copy h1,
  .page-personalized .route-opening__copy h1 {
    max-width: 100%;
    font-size: clamp(4.2rem, 4.4vw, 5.25rem);
    line-height: 0.94;
    letter-spacing: -0.02em;
  }

  .page-xv .route-opening__media,
  .page-gifts .route-opening__media {
    position: relative;
    align-self: stretch;
    min-height: 0;
    overflow: hidden;
  }

  .page-xv .route-opening__media img,
  .page-gifts .route-opening__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .page-personalized .personalization-proof {
    align-self: stretch;
    height: auto;
    min-height: 650px;
  }

  .page-piece .piece-opening {
    grid-template-columns: minmax(0, 1fr) minmax(0, calc(var(--hero-gutter) + 500px));
    height: auto;
    min-height: 740px;
    max-height: none;
  }

  .page-piece .piece-gallery__stage {
    height: clamp(460px, calc(100svh - 300px), 610px);
  }

  .page-piece .piece-summary,
  .page-piece .piece-purchase {
    padding-right: var(--hero-gutter);
    padding-left: clamp(44px, 5vw, 70px);
  }

  .page-piece .piece-summary h1 {
    font-size: clamp(4.5rem, 4.6vw, 5.5rem);
    line-height: 0.92;
  }
}

/* Inicio cambia a dos paneles solo cuando ambos tienen espacio real. */
@media (min-width: 1280px) {
  .page-home .opening {
    --hero-gutter: clamp(20px, calc((100vw - var(--measure)) / 2), 400px);
    width: min(100%, 1920px);
    margin-inline: auto;
    grid-template-columns: minmax(0, calc(var(--hero-gutter) + 536px)) minmax(0, 1fr);
    height: auto;
    min-height: 0;
  }

  .page-home .opening__copy {
    padding: clamp(44px, 6vh, 64px) 56px clamp(44px, 6vh, 64px) var(--hero-gutter);
    justify-content: center;
  }

  .page-home .opening__copy h1 {
    max-width: 100%;
    font-size: clamp(4.5rem, 4.6vw, 5.5rem);
    line-height: 0.92;
    letter-spacing: -0.025em;
  }

  .page-home .opening__media {
    position: relative;
    align-self: center;
    min-height: 0;
    margin: 16px clamp(20px, 2vw, 40px);
    overflow: hidden;
    aspect-ratio: 3 / 2;
  }

  .page-home .opening__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }
}

/* Rejillas editoriales: el texto conserva su propia columna en cualquier zoom. */
@media (min-width: 981px) {
  .story-entry {
    grid-template-columns: 64px minmax(0, 1.05fr) minmax(0, 0.85fr) 280px;
  }

  .story-entry__title h3 {
    font-size: clamp(2.4rem, 3vw, 2.8rem);
  }
}

@media (min-width: 761px) and (max-width: 980px) {
  .story-entry {
    min-height: 260px;
    grid-template-columns: 56px minmax(0, 1fr) minmax(260px, 36%);
    grid-template-rows: auto 1fr;
  }

  .story-entry__number {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .story-entry__title {
    grid-column: 2;
    grid-row: 1;
    padding: 24px 22px 16px;
  }

  .story-entry__copy {
    grid-column: 2;
    grid-row: 2;
    padding: 12px 22px 24px;
    border-top: 1px solid var(--line-soft);
  }

  .story-entry__title h3 {
    font-size: clamp(2rem, 4vw, 2.4rem);
  }

  .story-entry__media {
    grid-column: 3;
    grid-row: 1 / 3;
    height: 260px;
    min-height: 0;
    border-top: 0;
  }

  .story-entry__media img {
    height: 100%;
    min-height: 0;
  }
}

.story-entry__media img {
  object-fit: contain;
  background: var(--white);
}

.edition-entry h3 {
  font-size: clamp(2rem, 3vw, 2.55rem);
}

.page-collection .catalog-opening__media img {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}

@media (min-width: 761px) and (max-width: 1080px) {
  .page-collection .catalog-opening {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }

  .page-collection .catalog-opening__copy {
    max-width: 42rem;
    padding: 0;
  }
}

@media (min-width: 761px) and (max-width: 1120px) {
  .editorial-band {
    grid-template-columns: minmax(0, 1fr);
  }

  .editorial-band__media img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .editorial-copy {
    padding: clamp(48px, 7vw, 72px);
  }
}

.editorial-copy h2 {
  max-width: 100%;
  font-size: clamp(3rem, 4.1vw, 4.1rem);
}

.page-meta .campaign-copy h2 {
  font-size: clamp(2rem, 3vw, 3.1rem);
}

.site-footer a {
  min-width: 44px;
  min-height: 44px;
  padding-block: 8px;
  display: inline-flex;
  align-items: center;
}

/* Download links are standalone actions, so their complete interactive area
   remains usable on pointer and touch layouts alike. */
.campaign-visuals figcaption a {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  padding-block: 8px;
  align-items: center;
}

@media (max-width: 390px) {
  .page-personalized #referencia-title {
    font-size: 2.15rem;
  }

  .edition-entry__name h3 {
    font-size: clamp(1.45rem, 7vw, 1.75rem);
  }

  .site-footer h3 {
    font-size: clamp(1.15rem, 5vw, 1.35rem);
  }
}

/* Reflow para usuarios que amplian solamente el texto del navegador. */
@media (min-width: 0) {
  html[data-text-scale="large"] .site-header__inner {
    position: relative;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
  }

  html[data-text-scale="large"] .menu-button {
    width: auto;
    min-width: 48px;
    min-height: 48px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  html[data-text-scale="large"] .primary-navigation {
    position: absolute;
    z-index: 40;
    top: calc(100% - 1px);
    right: 0;
    width: min(360px, calc(100vw - 32px));
    display: none;
    border: 1px solid var(--line);
    background: var(--paper);
  }

  html[data-text-scale="large"] .primary-navigation[data-open="true"] {
    display: block;
  }

  html[data-text-scale="large"] .primary-navigation ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  html[data-text-scale="large"] .primary-navigation a {
    width: 100%;
    min-height: 48px;
    padding-inline: 16px;
    justify-content: flex-start;
    border: 0;
  }

  html[data-text-scale="large"] .primary-navigation a::after {
    display: none;
  }

  html[data-text-scale="large"] :is(
    .opening,
    .route-opening,
    .catalog-opening,
    .section-heading,
    .edition-intro,
    .editorial-band,
    .image-spread,
    .brand-application,
    .brand-section__grid,
    .campaign-entry,
    .closing-band__inner,
    .site-footer__grid,
    .piece-opening
  ) {
    height: auto;
    min-height: 0;
    max-height: none;
    grid-template-columns: minmax(0, 1fr);
  }

  html[data-text-scale="large"] :is(.opening__copy, .route-opening__copy) {
    padding: 32px 20px;
    border-right: 0;
  }

  html[data-text-scale="large"] :is(
    .opening__copy h1,
    .route-opening__copy h1,
    .catalog-opening h1,
    .piece-summary h1,
    .brand-opening h1,
    .campaign-opening h1
  ) {
    max-width: 100%;
    font-size: 1.7rem;
    line-height: 0.96;
  }

  html[data-text-scale="large"] :is(
    .section-heading h2,
    .edition-intro h2,
    .editorial-copy h2,
    .image-spread__copy h2,
    .gift-finder h2,
    .brand-section h2,
    .campaign-copy h2,
    .closing-band h2,
    .brand-application__copy h3
  ) {
    max-width: 100%;
    font-size: 1.65rem;
    line-height: 1;
  }

  html[data-text-scale="large"] .story-entry {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }

  html[data-text-scale="large"] .story-entry > * {
    grid-column: 1;
    grid-row: auto;
  }

  html[data-text-scale="large"] .story-entry__number {
    padding: 18px 14px 0;
  }

  html[data-text-scale="large"] :is(.story-entry__title, .story-entry__copy) {
    padding: 14px;
    border-left: 0;
  }

  html[data-text-scale="large"] .story-entry__title h3 {
    font-size: 1.2rem;
  }

  html[data-text-scale="large"] .story-entry__media {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    border-left: 0;
  }

  html[data-text-scale="large"] .story-entry__media img {
    height: 100%;
    min-height: 0;
  }

  html[data-text-scale="large"] .edition-entry {
    min-height: 0;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }

  html[data-text-scale="large"] .edition-entry__number {
    grid-column: 1;
    grid-row: 1 / 4;
    padding: 18px 8px 0 0;
  }

  html[data-text-scale="large"] .edition-entry__image {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 220px;
    min-height: 0;
  }

  html[data-text-scale="large"] .edition-entry__name {
    grid-column: 2;
    grid-row: 2;
    padding: 14px;
  }

  html[data-text-scale="large"] .edition-entry__name h3 {
    font-size: 1.2rem;
  }

  html[data-text-scale="large"] .edition-entry__details {
    grid-column: 2;
    grid-row: 3;
    padding: 0 14px 18px;
    display: block;
    border-top: 0;
  }

  html[data-text-scale="large"] .process-step {
    grid-template-columns: minmax(0, 1fr);
  }

  html[data-text-scale="large"] .process-step > * {
    grid-column: 1;
  }

  html[data-text-scale="large"] .process-step__number {
    padding: 18px 14px 0;
  }

  html[data-text-scale="large"] .process-step h3,
  html[data-text-scale="large"] .process-step p {
    padding: 14px;
    border-left: 0;
  }

  html[data-text-scale="large"] .process-step h3 {
    font-size: 1.2rem;
  }

  html[data-text-scale="large"] :is(.gift-finder__form, .piece-facts div) {
    grid-template-columns: minmax(0, 1fr);
  }

  html[data-text-scale="large"] .campaign-visuals {
    grid-template-columns: minmax(0, 1fr);
  }

  html[data-text-scale="large"] :is(.image-spread__notes, .palette-ledger) {
    grid-template-columns: minmax(0, 1fr);
  }

  html[data-text-scale="large"] .image-spread__copy {
    grid-column: 1;
    padding: 20px;
  }

  html[data-text-scale="large"] .image-spread__copy h2 {
    font-size: 1.4rem;
  }

  html[data-text-scale="large"] .page-personalized #referencia-title {
    font-size: 1.4rem;
  }

  html[data-text-scale="large"] .piece-opening > * {
    grid-column: 1;
    grid-row: auto;
  }

  html[data-text-scale="large"] .review-navigation .frame {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  html[data-text-scale="large"] .review-navigation :is(span, a) {
    width: 100%;
    margin: 0;
  }

html[data-text-scale="large"] .site-footer__grid {
    gap: 24px;
  }
}

/* Home: final workshop page */
.story-route {
  border-top: 1px solid var(--line);
  background: var(--paper-deep);
}

.story-route__inner {
  display: grid;
  grid-template-areas:
    "content content"
    "process choices";
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  gap: clamp(28px, 2.5vw, 38px) clamp(32px, 4vw, 48px);
  padding-block: clamp(50px, 4vw, 68px);
}

.story-route__content {
  grid-area: content;
  display: grid;
  grid-template-columns: minmax(320px, 0.88fr) minmax(320px, 1.12fr);
  gap: clamp(34px, 5vw, 76px);
  align-items: end;
  min-width: 0;
}

.story-route__cta {
  display: none;
}

.story-route h2 {
  max-width: 9.5ch;
  margin: 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(3.4rem, 4vw, 4.5rem);
  font-weight: 500;
  line-height: 0.93;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.story-route__intro {
  max-width: 34rem;
  margin: 0 0 5px;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.55;
}

.story-route__choices {
  grid-area: choices;
  min-width: 0;
  align-self: stretch;
}

.story-route__choices ul {
  display: grid;
  grid-template-rows: repeat(4, minmax(74px, 1fr));
  height: 100%;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.story-route__choices li {
  margin: 0;
  border-bottom: 1px solid var(--line);
}

.story-route__choices a {
  display: grid;
  grid-template-columns: 38px minmax(135px, 0.8fr) minmax(150px, 1fr) 22px;
  gap: 13px;
  align-items: center;
  height: 100%;
  min-width: 0;
  min-height: 74px;
  padding: 12px 0;
  color: var(--ink);
  text-decoration: none;
}

.story-route__number {
  color: var(--berry-dark);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.story-route__name {
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.24rem, 1.4vw, 1.5rem);
  font-weight: 600;
  line-height: 1;
}

.story-route__detail {
  min-width: 0;
  color: var(--ink-soft);
  line-height: 1.35;
}

.story-route__arrow {
  justify-self: end;
  font-size: 1.25rem;
}

.story-route__process {
  grid-area: process;
  margin: 0;
  align-self: start;
  border: 1px solid var(--line);
  background: var(--paper);
}

.story-route__process img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  object-position: center;
}

.story-route__process figcaption {
  padding: 13px 16px 14px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.35;
}

@media (hover: hover) {
  .story-route__choices a:hover .story-route__name,
  .story-route__choices a:hover .story-route__arrow {
    color: var(--berry-dark);
  }
}

@media (max-width: 1080px) {
  .story-route__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  }

  .story-route__content {
    grid-template-columns: minmax(280px, 0.9fr) minmax(280px, 1.1fr);
    gap: clamp(28px, 4vw, 52px);
  }

  .story-route__choices a {
    grid-template-columns: 38px minmax(0, 1fr) 24px;
    gap: 12px;
  }

  .story-route__detail {
    grid-column: 2;
    padding-top: 2px;
  }

  .story-route__arrow {
    grid-column: 3;
    grid-row: 1 / 3;
  }
}

@media (max-width: 860px) {
  .story-route__content {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .story-route__intro {
    margin: 0;
    font-size: 1rem;
  }
}

@media (max-width: 719px) {
  .story-route__inner {
    grid-template-areas:
      "content"
      "process"
      "choices";
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .story-route__process img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: 50% 45%;
  }

  .story-route__choices a {
    min-height: 78px;
  }
}

@media (min-width: 520px) and (max-width: 719px) {
  .story-route__choices ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(112px, auto));
  }

  .story-route__choices li:nth-child(even) {
    border-left: 1px solid var(--line);
  }

  .story-route__choices a {
    grid-template-columns: 34px minmax(0, 1fr) 20px;
    gap: 9px;
    min-height: 112px;
    padding: 14px 12px;
  }

  .story-route__detail {
    grid-column: 2;
  }

  .story-route__arrow {
    grid-column: 3;
    grid-row: 1 / 3;
  }
}

@media (max-width: 560px) {
  .story-route__inner {
    gap: 26px;
    padding-block: 46px;
  }

  .story-route h2 {
    max-width: 10ch;
    font-size: clamp(2.8rem, 13vw, 3.4rem);
  }

  .story-route__choices a {
    grid-template-columns: 36px minmax(0, 1fr) 22px;
    gap: 10px;
    min-height: 84px;
  }

  .story-route__detail {
    grid-column: 2;
  }

  .story-route__arrow {
    grid-column: 3;
    grid-row: 1 / 3;
  }
}

@media (max-width: 480px) {
  .story-route__choices ul {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(4, auto);
  }

  .story-route__choices li:nth-child(even) {
    border-left: 0;
  }
}

html[data-text-scale="large"] .story-route__inner {
  grid-template-areas:
    "content"
    "process"
    "choices";
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
  padding-block: 32px;
}

html[data-text-scale="large"] .story-route__content {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

html[data-text-scale="large"] .story-route h2 {
  max-width: 100%;
  font-size: 1.65rem;
  line-height: 1;
}

html[data-text-scale="large"] .story-route__intro {
  margin: 0;
}

html[data-text-scale="large"] .story-route__choices a {
  grid-template-columns: 40px minmax(0, 1fr) 24px;
  min-height: 72px;
}

html[data-text-scale="large"] .story-route__choices ul {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(4, auto);
}

html[data-text-scale="large"] .story-route__choices li:nth-child(even) {
  border-left: 0;
}

html[data-text-scale="large"] .story-route__detail {
  grid-column: 2;
}

html[data-text-scale="large"] .story-route__arrow {
  grid-column: 3;
  grid-row: 1 / 3;
}

html[data-text-scale="large"] .story-route__process {
  width: min(100%, 760px);
}

html[data-text-scale="large"] .story-route__process img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: 50% 45%;
}

@media (max-width: 390px) {
  html[data-text-scale="large"] .story-route__choices a {
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 8px 10px;
    padding-block: 14px;
  }

  html[data-text-scale="large"] .story-route__number {
    grid-column: 1;
    grid-row: 1;
  }

  html[data-text-scale="large"] .story-route__name {
    grid-column: 1;
    grid-row: 2;
    font-size: 1.12rem;
  }

  html[data-text-scale="large"] .story-route__detail {
    grid-column: 1;
    grid-row: 3;
  }

  html[data-text-scale="large"] .story-route__arrow {
    grid-column: 2;
    grid-row: 1 / 4;
  }
}


/* elis-story/campaign-extension.css */
:root {
  --campaign-width: 76rem;
  --campaign-gutter: clamp(1rem, 3vw, 2.5rem);
}

.page-conversion main,
.page-social-library main,
.page-meta-conversion main,
.page-tiktok main {
  overflow: visible;
}

.campaign-frame {
  width: min(calc(100% - (2 * var(--campaign-gutter))), var(--campaign-width));
  margin-inline: auto;
}

.campaign-header {
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.campaign-header__inner {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.campaign-header__return {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 5px;
}

.campaign-header .brand-name {
  min-height: 44px;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
}

.delivery-navigation {
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.delivery-navigation__inner {
  min-height: 52px;
  display: flex;
  align-items: stretch;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.delivery-navigation a {
  position: relative;
  min-width: max-content;
  min-height: 48px;
  padding: 0 1.1rem;
  display: inline-flex;
  align-items: center;
  border-right: 1px solid var(--line-soft);
  font-weight: 700;
  text-decoration: none;
}

.delivery-navigation a:first-child {
  padding-left: 0;
}

.delivery-navigation a[aria-current="page"] {
  color: var(--berry-dark);
}

.delivery-navigation a[aria-current="page"]::after {
  position: absolute;
  right: 1.1rem;
  bottom: 0;
  left: 1.1rem;
  height: 3px;
  background: var(--berry);
  content: "";
}

.conversion-hero {
  border-bottom: 1px solid var(--line);
}

.conversion-hero__inner {
  display: grid;
  grid-template-columns: minmax(21rem, 0.82fr) minmax(30rem, 1.18fr);
  align-items: stretch;
}

.conversion-hero__copy {
  min-width: 0;
  padding: clamp(3.5rem, 7vw, 7.5rem) clamp(2rem, 5vw, 5rem) clamp(3rem, 6vw, 6rem) 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.campaign-scope {
  margin: 0.8rem 0 0;
  color: var(--berry-dark);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.conversion-hero h1,
.library-opening h1,
.meta-opening h1,
.video-opening h1 {
  max-width: 11ch;
  margin: 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(3.25rem, 6.2vw, 6rem);
  font-weight: 500;
  line-height: 0.91;
  letter-spacing: -0.04em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.conversion-hero h1 {
  max-width: 12ch;
  padding-inline: 0.02em;
  font-size: clamp(3.25rem, 5.35vw, 5.25rem);
}

.conversion-hero__lead {
  max-width: 35rem;
  margin: 1.7rem 0 0;
  color: var(--ink-soft);
  font-size: clamp(1.05rem, 1.5vw, 1.28rem);
}

.conversion-hero__action {
  margin-top: 2rem;
  align-self: flex-start;
}

.conversion-hero__note {
  max-width: 32rem;
  margin: 0.9rem 0 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.conversion-hero__media {
  min-width: 0;
  margin: 0;
  border-left: 1px solid var(--line);
  background: var(--white);
}

.conversion-hero__media img {
  width: 100%;
  height: 100%;
  max-height: 860px;
  object-fit: cover;
  object-position: center;
}

.conversion-facts {
  border-bottom: 1px solid var(--line);
}

.conversion-facts dl {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.conversion-facts div {
  min-width: 0;
  padding: 1.5rem 2rem 1.6rem 0;
}

.conversion-facts div + div {
  padding-left: 2rem;
  border-left: 1px solid var(--line);
}

.conversion-facts dt {
  color: var(--berry-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.conversion-facts dd {
  margin: 0.45rem 0 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.08;
}

.conversion-section {
  padding-block: clamp(4.5rem, 8vw, 8rem);
}

.conversion-section__intro {
  display: grid;
  grid-template-columns: minmax(17rem, 0.9fr) minmax(20rem, 1.1fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.conversion-section__intro h2,
.conversion-final h2,
.library-opening h2,
.social-chapter h2,
.meta-entry h2,
.voice-panel h2,
.storyboard h2 {
  max-width: 12ch;
  margin: 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 500;
  line-height: 0.93;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.conversion-section__intro p {
  max-width: 38rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.08rem;
}

.evidence-strip {
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.evidence-strip figure {
  min-width: 0;
  margin: 0;
  padding-block: 1rem;
}

.evidence-strip figure + figure {
  padding-left: 1rem;
  border-left: 1px solid var(--line);
}

.evidence-strip img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: var(--white);
}

.evidence-strip figcaption {
  padding: 0.9rem 0.35rem 0.2rem 0;
  color: var(--ink-soft);
}

.conversion-steps {
  padding-bottom: clamp(4.5rem, 8vw, 8rem);
}

.conversion-steps h2 {
  max-width: 12ch;
  margin: 0 0 2.5rem;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2.8rem, 5vw, 4.7rem);
  font-weight: 500;
  line-height: 0.93;
  letter-spacing: -0.035em;
}

.conversion-steps ol {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  list-style: none;
}

.conversion-steps li {
  min-width: 0;
  padding: 1.6rem 2rem 2rem 0;
}

.conversion-steps li + li {
  padding-left: 2rem;
  border-left: 1px solid var(--line);
}

.conversion-steps__number {
  color: var(--berry-dark);
  font-weight: 700;
}

.conversion-steps h3 {
  margin: 2.5rem 0 0.65rem;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.75rem, 2.35vw, 2.35rem);
  font-weight: 500;
  line-height: 1;
}

.conversion-steps p {
  max-width: 28rem;
  margin: 0;
  color: var(--ink-soft);
}

.conversion-final {
  padding-block: clamp(4rem, 8vw, 7rem);
  background: var(--ink);
  color: var(--white);
}

.conversion-final__inner {
  display: grid;
  grid-template-columns: minmax(20rem, 1.1fr) minmax(18rem, 0.9fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: center;
}

.conversion-final p {
  max-width: 33rem;
  margin: 0 0 1.5rem;
  color: #f2dfe6;
  font-size: 1.08rem;
}

.conversion-final .action-primary {
  background: var(--white);
  border-color: var(--white);
  color: var(--berry-dark);
}

.conversion-final .action-primary:hover {
  background: var(--paper-deep);
  border-color: var(--paper-deep);
}

.campaign-footer {
  padding-block: 1.4rem;
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.campaign-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.campaign-footer a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 5px;
}

.piece-choice {
  margin-top: 3rem;
  border-top: 1px solid var(--line);
}

.piece-choice__entry {
  min-height: 19rem;
  display: grid;
  grid-template-columns: 9rem minmax(12rem, 0.8fr) minmax(17rem, 1.2fr);
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.piece-choice__entry img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
}

.piece-choice__name {
  padding: 2rem;
}

.piece-choice__name span {
  color: var(--berry-dark);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.piece-choice__name h3 {
  margin: 0.5rem 0 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2.2rem, 4vw, 4rem);
  font-weight: 500;
  line-height: 0.95;
}

.piece-choice__details {
  padding: 2rem 0 2rem 2rem;
  border-left: 1px solid var(--line);
}

.piece-choice__details p {
  max-width: 31rem;
  margin: 0 0 1rem;
  color: var(--ink-soft);
}

.library-opening,
.meta-opening,
.video-opening {
  border-bottom: 1px solid var(--line);
}

.library-opening__inner,
.meta-opening__inner,
.video-opening__inner {
  padding-block: clamp(4rem, 8vw, 8rem);
  display: grid;
  grid-template-columns: minmax(20rem, 0.82fr) minmax(28rem, 1.18fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: center;
}

.library-opening__inner,
.meta-opening__inner {
  grid-template-columns: minmax(20rem, 0.94fr) minmax(25rem, 1.06fr);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

.library-opening h1,
.meta-opening h1,
.video-opening h1 {
  max-width: 9ch;
}

.library-opening p,
.meta-opening p,
.video-opening p {
  max-width: 34rem;
  margin: 1.5rem 0 0;
  color: var(--ink-soft);
  font-size: 1.08rem;
}

.library-opening figure,
.meta-opening figure,
.video-opening figure {
  margin: 0;
}

.library-opening img,
.meta-opening img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.social-chapter {
  padding-block: clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid var(--line);
}

.social-chapter__intro {
  display: grid;
  grid-template-columns: minmax(17rem, 0.7fr) minmax(20rem, 1.3fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
}

.social-chapter__intro p {
  max-width: 35rem;
  margin: 0;
  color: var(--ink-soft);
}

.social-grid {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}

.social-item {
  min-width: 0;
  margin: 0;
  padding: 1.25rem 0 2.5rem;
  border-bottom: 1px solid var(--line);
}

.social-item:nth-child(odd) {
  padding-right: clamp(1rem, 3vw, 2.5rem);
}

.social-item:nth-child(even) {
  padding-left: clamp(1rem, 3vw, 2.5rem);
  border-left: 1px solid var(--line);
}

.social-item img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: var(--white);
}

.social-item figcaption {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding-top: 1.1rem;
}

.social-item__number {
  color: var(--berry-dark);
  font-weight: 700;
}

.social-item__caption {
  margin: 0;
  color: var(--ink-soft);
}

.download-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 5px;
  white-space: nowrap;
}

.meta-index {
  padding-bottom: clamp(4rem, 8vw, 8rem);
}

.meta-entry {
  padding-block: clamp(4rem, 8vw, 7rem);
  display: grid;
  grid-template-columns: minmax(18rem, 0.88fr) minmax(23rem, 1.12fr);
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.meta-entry:nth-child(even) .meta-entry__visual {
  order: 2;
}

.meta-entry__visual {
  margin: 0;
}

.meta-entry__visual img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.meta-entry__visual figcaption {
  padding-top: 0.75rem;
  color: var(--ink-soft);
}

.meta-entry h2 {
  margin-top: 0.7rem;
  font-size: clamp(2.8rem, 4.8vw, 4.6rem);
}

.meta-entry__copy > p {
  max-width: 34rem;
  color: var(--ink-soft);
  font-size: 1.06rem;
}

.meta-copy-ledger {
  margin: 2rem 0 0;
  border-top: 1px solid var(--line);
}

.meta-copy-ledger div {
  padding-block: 1rem;
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  gap: 1.25rem;
  border-bottom: 1px solid var(--line);
}

.meta-copy-ledger dt {
  color: var(--berry-dark);
  font-weight: 700;
}

.meta-copy-ledger dd {
  margin: 0;
}

.meta-entry__actions {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.25rem;
}

.video-opening__player {
  min-width: 0;
  margin: 0;
  background: var(--ink);
}

.video-opening video {
  width: 100%;
  max-height: 760px;
  display: block;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: var(--ink);
}

.voice-panel {
  padding-block: clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid var(--line);
}

.voice-panel__inner {
  display: grid;
  grid-template-columns: minmax(18rem, 0.8fr) minmax(22rem, 1.2fr);
  gap: clamp(2rem, 8vw, 8rem);
}

.voice-panel audio {
  width: 100%;
  margin-top: 1.5rem;
}

.voice-panel blockquote {
  margin: 0;
  padding-left: 2rem;
  border-left: 1px solid var(--line);
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  line-height: 1.22;
}

.voice-panel__actions {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.storyboard {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.storyboard__grid {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}

.storyboard figure {
  min-width: 0;
  margin: 0;
  padding: 1rem 0 1.5rem;
  border-bottom: 1px solid var(--line);
}

.storyboard figure + figure {
  padding-left: 1rem;
  border-left: 1px solid var(--line);
}

.storyboard img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

:is(
    .evidence-strip img,
    .piece-choice__entry img,
    .library-opening img,
    .meta-opening img,
    .social-item img,
    .meta-entry__visual img,
    .storyboard img
  ) {
  height: auto;
}

.video-opening figure.video-opening__player {
  width: min(100%, 427px);
  justify-self: center;
}

.video-opening video {
  height: auto;
  max-height: none;
}

.storyboard figcaption {
  padding-top: 1rem;
  color: var(--ink-soft);
}

@media (max-width: 900px) {
  .conversion-hero__inner,
  .library-opening__inner,
  .meta-opening__inner,
  .video-opening__inner {
    grid-template-columns: 1fr;
  }

  .conversion-hero__copy {
    padding: clamp(3rem, 9vw, 5rem) 0;
  }

  .conversion-hero__media {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .conversion-hero__media img {
    width: min(100%, 720px);
    height: auto;
    max-height: none;
    margin-inline: auto;
    aspect-ratio: 4 / 5;
  }

  .conversion-section__intro,
  .social-chapter__intro,
  .voice-panel__inner {
    grid-template-columns: 1fr;
  }

  .piece-choice__entry {
    grid-template-columns: 8rem minmax(12rem, 0.75fr) minmax(16rem, 1.25fr);
  }

  .library-opening__inner,
  .meta-opening__inner,
  .video-opening__inner {
    padding-block: clamp(3rem, 9vw, 5rem);
  }

  .library-opening figure,
  .meta-opening figure,
  .video-opening figure {
    width: min(100%, 620px);
  }

  .meta-entry {
    grid-template-columns: minmax(16rem, 0.8fr) minmax(18rem, 1.2fr);
    gap: 2.5rem;
  }
}

@media (min-width: 901px) and (max-height: 680px) {
  .conversion-hero__copy {
    padding-block: 2rem;
  }

  .conversion-hero h1 {
    font-size: clamp(3rem, 4.6vw, 4.35rem);
  }

  .conversion-hero__lead {
    margin-top: 1rem;
    font-size: 1rem;
  }

  .conversion-hero__action {
    margin-top: 1.25rem;
  }

  .conversion-hero__media img {
    max-height: calc(100svh - 78px);
  }
}

@media (max-width: 720px) {
  .campaign-header__inner {
    min-height: 68px;
  }

  .campaign-header .brand-name__line {
    display: none;
  }

  .campaign-header__return {
    font-size: 0.9rem;
  }

  .conversion-hero h1,
  .library-opening h1,
  .meta-opening h1,
  .video-opening h1 {
    max-width: 10ch;
    font-size: clamp(3.1rem, 15vw, 4.4rem);
  }

  .conversion-facts dl,
  .evidence-strip,
  .conversion-steps ol,
  .conversion-final__inner,
  .social-grid,
  .meta-entry,
  .storyboard__grid {
    grid-template-columns: 1fr;
  }

  .conversion-facts div,
  .conversion-facts div + div {
    padding: 1.25rem 0;
    border-top: 0;
    border-left: 0;
  }

  .conversion-facts div + div {
    border-top: 1px solid var(--line);
  }

  .evidence-strip figure,
  .evidence-strip figure + figure {
    padding: 1rem 0;
    border-left: 0;
  }

  .evidence-strip figure + figure {
    border-top: 1px solid var(--line);
  }

  .evidence-strip img {
    max-height: 32rem;
    object-fit: contain;
  }

  .conversion-steps li,
  .conversion-steps li + li {
    padding: 1.3rem 0 1.6rem;
    border-left: 0;
  }

  .conversion-steps li + li {
    border-top: 1px solid var(--line);
  }

  .conversion-steps h3 {
    margin-top: 1.25rem;
  }

  .campaign-footer__inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }

  .piece-choice__entry {
    min-height: 0;
    padding-block: 1rem;
    grid-template-columns: 7.5rem minmax(0, 1fr);
  }

  .piece-choice__name {
    padding: 1rem 0 1rem 1rem;
  }

  .piece-choice__name h3 {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .piece-choice__details {
    grid-column: 1 / -1;
    padding: 1rem 0 0;
    border-top: 1px solid var(--line-soft);
    border-left: 0;
  }

  .social-item,
  .social-item:nth-child(odd),
  .social-item:nth-child(even) {
    padding: 1rem 0 2rem;
    border-left: 0;
  }

  .social-item:nth-child(even) {
    border-top: 0;
  }

  .social-item figcaption {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .social-item .download-action {
    grid-column: 2;
    justify-self: start;
  }

  .meta-entry,
  .meta-entry:nth-child(even) {
    gap: 2rem;
  }

  .meta-entry:nth-child(even) .meta-entry__visual {
    order: 0;
  }

  .meta-copy-ledger div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .voice-panel blockquote {
    padding-left: 1rem;
  }

  .storyboard figure,
  .storyboard figure + figure {
    padding: 1rem 0 1.5rem;
    border-left: 0;
  }

  .storyboard figure + figure {
    border-top: 1px solid var(--line);
  }
}

@media (min-width: 721px) and (max-width: 1320px) {
  html[data-text-scale="large"] .conversion-steps ol,
  html[data-text-scale="large"] .conversion-facts dl,
  html[data-text-scale="large"] .evidence-strip,
  html[data-text-scale="large"] .storyboard__grid,
  html[data-text-scale="large"] .social-grid,
  html[data-text-scale="large"] .meta-entry,
  html[data-text-scale="large"] .conversion-final__inner {
    grid-template-columns: 1fr;
  }

  html[data-text-scale="large"] .conversion-steps li,
  html[data-text-scale="large"] .conversion-steps li + li,
  html[data-text-scale="large"] .conversion-facts div,
  html[data-text-scale="large"] .conversion-facts div + div,
  html[data-text-scale="large"] .evidence-strip figure,
  html[data-text-scale="large"] .evidence-strip figure + figure,
  html[data-text-scale="large"] .storyboard figure,
  html[data-text-scale="large"] .storyboard figure + figure {
    padding-inline: 0;
    border-left: 0;
  }

  html[data-text-scale="large"] .conversion-steps li + li,
  html[data-text-scale="large"] .conversion-facts div + div,
  html[data-text-scale="large"] .evidence-strip figure + figure,
  html[data-text-scale="large"] .storyboard figure + figure {
    border-top: 1px solid var(--line);
  }
}

html[data-text-scale="large"] .campaign-frame,
html[data-text-scale="large"] .campaign-header__inner,
html[data-text-scale="large"] .delivery-navigation__inner {
  max-width: 100%;
}

html[data-text-scale="large"] .campaign-header__inner {
  flex-wrap: wrap;
  padding-block: 0.75rem;
}

html[data-text-scale="large"] .delivery-navigation__inner {
  overflow-x: auto;
  max-width: none;
  margin-left: var(--campaign-gutter);
  margin-right: 0;
}

html[data-text-scale="large"] .campaign-header__return,
html[data-text-scale="large"] .action-primary,
html[data-text-scale="large"] .action-secondary,
html[data-text-scale="large"] .download-action {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: break-word;
}

html[data-text-scale="large"] .page-conversion h1,
html[data-text-scale="large"] .page-conversion h2,
html[data-text-scale="large"] .page-conversion h3,
html[data-text-scale="large"] .page-social-library h1,
html[data-text-scale="large"] .page-social-library h2,
html[data-text-scale="large"] .page-meta-conversion h1,
html[data-text-scale="large"] .page-meta-conversion h2,
html[data-text-scale="large"] .page-tiktok h1,
html[data-text-scale="large"] .page-tiktok h2 {
  max-width: 100%;
  font-size: clamp(1.7rem, 8.4vw, 3.1rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
  overflow-wrap: break-word;
}

html[data-text-scale="large"] .conversion-steps h3,
html[data-text-scale="large"] .piece-choice__name h3 {
  font-size: clamp(1.45rem, 5vw, 2.3rem);
  line-height: 1;
}

html[data-text-scale="large"] .campaign-scope {
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  overflow-wrap: break-word;
}

html[data-text-scale="large"] .voice-panel blockquote {
  padding-left: 0;
  border-left: 0;
  font-size: clamp(1.35rem, 6vw, 2.2rem);
  overflow-wrap: break-word;
}

html[data-text-scale="large"] audio {
  max-width: 100%;
}

html[data-text-scale="large"] .conversion-hero__inner,
html[data-text-scale="large"] .library-opening__inner,
html[data-text-scale="large"] .meta-opening__inner,
html[data-text-scale="large"] .video-opening__inner,
html[data-text-scale="large"] .conversion-section__intro,
html[data-text-scale="large"] .social-chapter__intro,
html[data-text-scale="large"] .voice-panel__inner {
  grid-template-columns: minmax(0, 1fr);
}

html[data-text-scale="large"] .conversion-hero__copy {
  padding-inline: 0;
}

html[data-text-scale="large"] :is(.conversion-hero__inner, .library-opening__inner, .meta-opening__inner, .video-opening__inner, .conversion-section__intro, .social-chapter__intro, .voice-panel__inner, .conversion-final__inner, .meta-entry) > * {
  min-width: 0;
}

html[data-text-scale="large"] .piece-choice__entry {
  grid-template-columns: minmax(0, 1fr);
}

html[data-text-scale="large"] .piece-choice__entry img {
  width: min(100%, 24rem);
}

html[data-text-scale="large"] .piece-choice__name,
html[data-text-scale="large"] .piece-choice__details {
  padding-inline: 0;
  border-left: 0;
}

html[data-text-scale="large"] .piece-choice__details {
  border-top: 1px solid var(--line-soft);
}

@media (max-width: 390px) {
  .campaign-header .brand-name__word {
    font-size: 1.55rem;
  }

  .campaign-header__return {
    max-width: 9.5rem;
    text-align: right;
  }

  .delivery-navigation a {
    padding-inline: 0.85rem;
  }

  html[data-text-scale="large"] .page-conversion h1,
  html[data-text-scale="large"] .page-conversion h2,
  html[data-text-scale="large"] .page-conversion h3,
  html[data-text-scale="large"] .page-social-library h1,
  html[data-text-scale="large"] .page-social-library h2,
  html[data-text-scale="large"] .page-meta-conversion h1,
  html[data-text-scale="large"] .page-meta-conversion h2,
  html[data-text-scale="large"] .page-tiktok h1,
  html[data-text-scale="large"] .page-tiktok h2 {
    font-size: clamp(1.45rem, 7vw, 2.25rem);
  }

  html[data-text-scale="large"] .conversion-steps h3,
  html[data-text-scale="large"] .piece-choice__name h3 {
    font-size: clamp(1.25rem, 5.8vw, 1.8rem);
  }
}

@media (max-width: 480px) {
  .delivery-navigation__inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow-x: visible;
  }

  .delivery-navigation a,
  .delivery-navigation a:first-child {
    min-width: 0;
    padding: 0.55rem 0.4rem;
    justify-content: center;
    text-align: center;
    line-height: 1.15;
    white-space: normal;
  }

  .delivery-navigation a[aria-current="page"]::after {
    right: 0.4rem;
    left: 0.4rem;
  }

  html[data-text-scale="large"] .delivery-navigation__inner {
    margin-inline: var(--campaign-gutter);
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-conversion *,
  .page-social-library *,
  .page-meta-conversion *,
  .page-tiktok * {
    scroll-behavior: auto;
  }
}


/* elis-story/mobile-overhaul.css */
@media (max-width: 900px) {
/*
 * Elis Doll — mobile system: "Indice de bolsillo"
 * This layer is intentionally last in the cascade. It replaces the desktop
 * ledger on small screens with native-ratio imagery, open spacing and one
 * clear decision at a time.
 */

@media (max-width: 900px) {
  :root {
    --mobile-edge: clamp(18px, 4.8vw, 28px);
    --mobile-space: clamp(56px, 9vw, 78px);
  }

  html {
    scroll-padding-top: 68px;
  }

  body {
    font-size: 1rem;
    line-height: 1.55;
  }

  main {
    overflow: visible;
  }

  .frame {
    width: min(calc(100% - (2 * var(--mobile-edge))), var(--measure));
  }

  /* Header and navigation */
  .site-header {
    position: relative;
    z-index: 30;
    border-bottom: 1px solid var(--line-soft);
  }

  .site-header__inner {
    width: calc(100% - (2 * var(--mobile-edge)));
    min-height: 64px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .brand-name__word {
    font-size: 1.55rem;
    line-height: 0.95;
  }

  .brand-name {
    min-height: 44px;
    align-content: center;
  }

  .brand-name__line {
    margin-top: 3px;
    font-size: 0.68rem;
  }

  .menu-button {
    width: auto;
    min-width: 48px;
    min-height: 48px;
    padding: 8px 0 8px 12px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: 0.92rem;
    font-weight: 700;
  }

  .menu-button::after {
    margin-left: 7px;
    color: var(--berry-dark);
    content: "+";
    font-size: 1.15rem;
    font-weight: 400;
  }

  .menu-button[aria-expanded="true"]::after {
    content: "×";
  }

  .primary-navigation {
    top: 100%;
    right: 0;
    left: 0;
    width: 100%;
    padding: 14px var(--mobile-edge) 18px;
    border: 0;
    background: var(--ink);
    color: var(--white);
  }

  .primary-navigation ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .primary-navigation li,
  .primary-navigation li:nth-child(2n),
  .primary-navigation li:last-child {
    grid-column: auto;
    border: 0;
  }

  .primary-navigation a {
    min-height: 48px;
    padding: 0;
    color: var(--white);
    font-family: "Bodoni Moda", Georgia, serif;
    font-size: 1.25rem;
    font-weight: 500;
  }

  .primary-navigation a[aria-current="page"] {
    color: #f5c7d6;
  }

  /* Type and actions */
  .opening__copy h1,
  .route-opening__copy h1,
  .catalog-opening h1,
  .piece-summary h1,
  .brand-opening h1,
  .campaign-opening h1 {
    max-width: 11ch;
    font-size: clamp(2.75rem, 11vw, 3.45rem);
    line-height: 0.94;
    letter-spacing: -0.035em;
    text-wrap: balance;
  }

  .section-heading h2,
  .editorial-copy h2,
  .edition-intro h2,
  .gift-finder h2,
  .campaign-copy h2,
  .brand-section h2,
  .image-spread__copy h2,
  .closing-band h2,
  .story-route h2 {
    max-width: 15ch;
    font-size: clamp(2.15rem, 8.7vw, 2.75rem);
    line-height: 0.96;
    letter-spacing: -0.03em;
    text-wrap: balance;
  }

  .opening__copy > p,
  .route-opening__copy > p,
  .catalog-opening__copy > p:not(.catalog-opening__kicker),
  .piece-summary > p,
  .brand-opening > p,
  .campaign-opening > p,
  .section-heading p,
  .edition-intro p {
    max-width: 34rem;
    color: var(--ink-soft);
    font-size: 1rem;
    line-height: 1.55;
  }

  .opening__actions,
  .route-actions {
    width: 100%;
    margin-top: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .action-primary {
    width: 100%;
    min-height: 50px;
  }

  .action-secondary {
    width: fit-content;
    min-height: 46px;
    padding: 10px 0;
    border: 0;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
  }

  .action-secondary::after {
    margin-left: 8px;
    content: "→";
    text-decoration: none;
  }

  .text-action {
    min-height: 44px;
    font-size: 0.92rem;
  }

  /* Openings: content first, imagery in its native ratio */
  .opening,
  .route-opening,
  .catalog-opening,
  .piece-opening {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    border: 0;
  }

  .opening__copy,
  .route-opening__copy,
  .catalog-opening__copy,
  .piece-summary,
  .piece-purchase {
    width: min(calc(100% - (2 * var(--mobile-edge))), var(--measure));
    margin-inline: auto;
    padding: 34px 0 28px;
    border: 0;
  }

  .opening__copy,
  .route-opening__copy {
    justify-content: flex-start;
  }

  .opening__copy > p,
  .route-opening__copy > p,
  .piece-summary > p {
    margin-top: 16px;
  }

  .opening__media,
  .route-opening__media,
  .catalog-opening__media {
    width: 100%;
    min-width: 0;
    margin: 0;
    border: 0;
    background: var(--paper);
  }

  .opening__media img,
  .route-opening__media img,
  .catalog-opening__media img {
    width: 100%;
    height: auto;
    min-height: 0;
    object-position: center;
  }

  .page-home .opening__media img,
  .page-collection .catalog-opening__media img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .page-xv .route-opening__media,
  .page-gifts .route-opening__media {
    width: min(100%, 560px);
    margin-inline: auto;
  }

  .page-xv .route-opening__media img,
  .page-gifts .route-opening__media img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }

  .opening__caption {
    position: static;
    width: auto;
    padding: 11px var(--mobile-edge) 0;
    border: 0;
    background: transparent;
    color: var(--ink-soft);
    font-size: 0.78rem;
  }

  .catalog-opening {
    width: 100%;
    padding: 0 0 22px;
    gap: 0;
  }

  .catalog-opening__kicker {
    margin-bottom: 12px;
  }

  /* Section rhythm */
  .story-index,
  .process-section,
  .gift-finder,
  .edition-preview,
  .brand-section,
  .campaign-index {
    padding-block: var(--mobile-space);
    border: 0;
  }

  .section-heading,
  .edition-intro {
    display: block;
    margin-bottom: 34px;
  }

  .section-heading p,
  .edition-intro p {
    margin-top: 14px;
  }

  /* A compact thematic index — no table grid */
  .story-index__list {
    display: grid;
    gap: clamp(36px, 8vw, 52px);
    border: 0;
  }

  .story-entry {
    min-height: 0;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) clamp(108px, 34vw, 150px);
    grid-template-areas:
      "number title media"
      "number copy media";
    gap: 8px 14px;
    align-items: start;
    border: 0;
  }

  .story-entry__number {
    grid-area: number;
    padding: 4px 0 0;
    color: var(--berry-dark);
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
  }

  .story-entry__title {
    grid-area: title;
  }

  .story-entry__copy {
    grid-area: copy;
  }

  .story-entry__title,
  .story-entry__copy {
    min-width: 0;
    padding: 0;
    border: 0;
  }

  .story-entry__title h3 {
    font-size: clamp(1.55rem, 6vw, 1.95rem);
    line-height: 0.98;
  }

  .story-entry__copy p {
    margin: 4px 0 4px;
    color: var(--ink-soft);
    font-size: 0.92rem;
    line-height: 1.42;
  }

  .story-entry__copy .text-action {
    min-height: 44px;
    align-items: flex-start;
    font-size: 0.84rem;
    line-height: 1.3;
  }

  .story-entry__media {
    grid-area: media;
    align-self: start;
    overflow: hidden;
    border: 0;
    background: transparent;
  }

  .story-entry__media img {
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: cover;
  }

  .story-entry:nth-child(1) .story-entry__media img {
    aspect-ratio: 4 / 5;
  }

  .story-entry:nth-child(n + 2) .story-entry__media img {
    aspect-ratio: 3 / 2;
  }

  /* Process: open chapters instead of ruled cells */
  .process-ledger {
    margin-top: 34px;
    display: grid;
    gap: 30px;
    border: 0;
  }

  .process-step {
    min-height: 0;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 6px 14px;
    align-items: start;
    border: 0;
  }

  .process-step__number {
    grid-row: 1 / 3;
    padding-top: 3px;
    color: var(--berry-dark);
    font-family: "Source Sans 3", system-ui, sans-serif;
    font-size: 0.78rem;
  }

  .process-step h3,
  .process-step p {
    margin: 0;
    padding: 0;
    border: 0;
  }

  .process-step h3 {
    font-size: 1.42rem;
    line-height: 1.05;
  }

  .process-step p {
    color: var(--ink-soft);
    font-size: 0.94rem;
    line-height: 1.48;
  }

  /* One quiet editorial plate */
  .editorial-band {
    margin: 18px 0 0;
    display: block;
    border: 0;
    background: var(--paper);
    color: var(--ink);
  }

  .editorial-band__media {
    width: calc(100% - var(--mobile-edge));
    margin-left: var(--mobile-edge);
  }

  .editorial-band__media img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .page-home .editorial-band__media img {
    aspect-ratio: 1 / 1;
  }

  .editorial-copy {
    width: min(calc(100% - (2 * var(--mobile-edge))), var(--measure));
    margin-inline: auto;
    padding: 26px 0 var(--mobile-space);
    color: var(--ink);
  }

  .editorial-copy p {
    margin-top: 15px;
    color: var(--ink-soft);
    font-size: 1rem;
  }

  .editorial-copy .text-action {
    margin-top: 12px;
    color: var(--berry-dark);
  }

  /* Product and reference collections — visual grid without cards */
  .edition-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 18px;
    border: 0;
  }

  .edition-entry,
  .edition-preview .edition-entry {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template:
      "number image" auto
      "name name" auto
      "details details" auto /
      24px minmax(0, 1fr);
    gap: 8px;
    align-content: start;
    align-items: start;
    border: 0;
  }

  .edition-entry__number {
    grid-area: number;
    align-self: start;
    padding-top: 5px;
    color: var(--olive);
    font-size: 0.72rem;
  }

  .edition-entry__image {
    grid-area: image;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    overflow: hidden;
    border: 0;
    background: var(--white);
  }

  .edition-entry__image img,
  .edition-entry__image img[src*="assets/products/"] {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  /* Neutralize the legacy catalogue crop so each product stays inside its
     own mobile column at every intermediate width. */
  body .edition-preview .edition-entry__image img[src*="assets/products/"] {
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .edition-entry:nth-child(1) .edition-entry__image img {
    transform: scale(1.12);
  }

  .edition-entry:nth-child(3) .edition-entry__image img,
  .edition-entry:nth-child(4) .edition-entry__image img {
    transform: scale(1.1);
  }

  .edition-entry__name {
    grid-area: name;
  }

  .edition-entry__details {
    grid-area: details;
  }

  .edition-entry__name,
  .edition-entry__details {
    min-width: 0;
    padding: 0;
  }

  .edition-entry__name h3 {
    font-size: clamp(1.45rem, 5.8vw, 1.8rem);
    line-height: 0.98;
  }

  .edition-entry__details {
    display: block;
    color: var(--ink-soft);
  }

  .edition-entry__details p {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.42;
  }

  .edition-entry__details .text-action {
    margin-top: 4px;
    min-height: 44px;
    font-size: 0.82rem;
  }

  /* Image stories */
  .image-spread,
  .image-spread--product-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border: 0;
    background: var(--paper);
  }

  .image-spread__primary img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .image-spread__notes,
  .image-spread--product-pair .image-spread__notes {
    display: grid;
    grid-template-columns: minmax(120px, 0.42fr) minmax(0, 0.58fr);
    grid-template-rows: auto;
    border: 0;
    background: var(--white);
  }

  .image-spread__notes > img {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }

  .image-spread__copy {
    padding: 30px var(--mobile-edge);
    border: 0;
  }

  .image-spread__copy p {
    margin-top: 12px;
    font-size: 0.94rem;
  }

  .page-xv .image-spread--product-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background: var(--white);
  }

  .page-xv .image-spread--product-pair .image-spread__primary img,
  .page-xv .image-spread--product-pair .image-spread__notes > img {
    aspect-ratio: 1;
    object-fit: contain;
  }

  .page-xv .image-spread--product-pair .image-spread__notes {
    display: contents;
  }

  .page-xv .image-spread--product-pair .image-spread__copy {
    grid-column: 1 / -1;
    width: min(calc(100% - (2 * var(--mobile-edge))), var(--measure));
    margin-inline: auto;
    padding: 30px 0 var(--mobile-space);
  }

  /* Gift finder */
  .gift-finder {
    width: 100%;
    padding-inline: var(--mobile-edge);
    background: var(--paper-deep);
  }

  .gift-finder h2 {
    max-width: 13ch;
  }

  .gift-finder__form {
    margin-top: 30px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    border: 0;
  }

  .gift-field {
    padding: 0;
    border: 0;
  }

  .gift-field select {
    min-height: 50px;
    padding-inline: 12px;
    background: var(--paper);
  }

  .gift-finder__submit {
    min-height: 50px;
  }

  .gift-result {
    border: 0;
  }

  .gift-result a {
    min-height: 44px;
    margin: 8px 0 0;
    display: inline-flex;
    align-items: center;
  }

  .review-navigation a {
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
  }

  /* Piece page */
  .page-piece .piece-opening {
    height: auto;
    min-height: 0;
    max-height: none;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: start;
    overflow: visible;
    padding-bottom: 32px;
  }

  .page-piece .piece-summary {
    grid-column: 1;
    grid-row: 1;
    padding-bottom: 18px;
  }

  .page-piece .piece-gallery {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    padding: 0 var(--mobile-edge) 26px;
    overflow: visible;
    background: var(--paper);
  }

  .page-piece .piece-gallery__stage {
    width: min(100%, 520px);
    height: auto;
    margin-inline: auto;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--white);
  }

  .page-piece .piece-gallery__stage img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    transform: none;
  }

  .page-piece .piece-gallery__controls {
    width: min(100%, 520px);
    margin-inline: auto;
    padding: 12px 0 0;
  }

  .page-piece .piece-gallery__controls button {
    flex: 1;
    min-height: 48px;
  }

  .page-piece .piece-purchase {
    grid-column: 1;
    grid-row: 3;
    padding-top: 0;
  }

  .piece-facts {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 24px;
    border: 0;
  }

  .piece-facts div {
    padding: 0;
    display: block;
    border: 0;
  }

  .piece-facts dt {
    font-size: 0.82rem;
  }

  .piece-facts dd {
    margin-top: 3px;
    font-size: 0.96rem;
  }

  /* Personalization proof */
  .personalization-proof {
    width: 100%;
    height: clamp(340px, 96vw, 470px);
    min-height: 0;
    grid-template-columns: minmax(0, 1.35fr) minmax(110px, 0.65fr);
    border: 0;
  }

  .personalization-proof__piece {
    border: 0;
  }

  .personalization-proof__piece img {
    object-fit: contain;
  }

  .personalization-proof__piece--secondary img {
    object-fit: cover;
    object-position: center;
  }

  .personalization-proof__note {
    padding: 16px var(--mobile-edge);
    border: 0;
    background: var(--ink);
    color: var(--white);
    font-size: 1.15rem;
  }

  /* Compact closing fields */
  .closing-band {
    padding-block: var(--mobile-space);
    background: var(--paper-deep);
  }

  .closing-band__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .closing-band__copy p {
    margin-bottom: 20px;
    font-size: 1rem;
  }

  .story-route {
    border: 0;
  }

  .story-route__inner {
    grid-template-areas:
      "content"
      "process"
      "choices";
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding-block: var(--mobile-space);
  }

  .story-route__content {
    display: block;
  }

  .story-route__intro {
    margin-top: 14px;
  }

  .story-route__cta {
    width: fit-content;
    margin-top: 22px;
    display: inline-flex;
  }

  .story-route__process {
    width: 100%;
    border: 0;
    background: transparent;
  }

  .story-route__process img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: 50% 45%;
  }

  .story-route__process figcaption {
    padding: 10px 0 0;
    border: 0;
    font-size: 0.78rem;
  }

  .story-route__choices ul {
    height: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;
    gap: 22px 18px;
    border: 0;
  }

  .page-home .story-route__choices {
    display: none;
  }

  .story-route__choices li,
  .story-route__choices li:nth-child(even) {
    border: 0;
  }

  .story-route__choices a {
    min-height: 82px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22px;
    gap: 4px 8px;
    padding: 0;
  }

  .story-route__number {
    grid-column: 1;
    font-size: 0.72rem;
  }

  .story-route__name {
    grid-column: 1;
    font-size: 1.3rem;
  }

  .story-route__detail {
    display: none;
  }

  .story-route__arrow {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: end;
  }

  /* Dossier pages */
  .brand-opening,
  .campaign-opening {
    padding: 46px 0 40px;
    border: 0;
  }

  .brand-section__grid,
  .brand-signatures,
  .brand-application,
  .campaign-entry {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    border: 0;
  }

  .brand-wordmark,
  .brand-symbol {
    width: min(100%, 260px);
    min-height: 0;
    margin-inline: auto;
    aspect-ratio: 1;
    border: 0;
  }

  .brand-wordmark {
    aspect-ratio: 1.4;
    font-size: clamp(3.7rem, 18vw, 5rem);
  }

  .brand-rules,
  .type-ledger,
  .palette-ledger,
  .campaign-message {
    border: 0;
  }

  .brand-rule,
  .type-specimen,
  .campaign-message div {
    border: 0;
  }

  .brand-rules {
    display: grid;
    gap: 24px;
  }

  .brand-rule {
    padding: 0;
  }

  .type-specimen {
    min-height: 0;
    padding: 28px 0;
  }

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

  .palette-entry {
    min-height: 148px;
    border: 0;
  }

  .brand-application {
    margin-top: 30px;
  }

  .brand-application img {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .brand-application__copy {
    padding: 0;
    border: 0;
  }

  .campaign-index {
    padding-top: 26px;
  }

  .campaign-entry {
    padding: 44px 0;
    border: 0;
  }

  .campaign-entry:first-child {
    border: 0;
  }

  .campaign-visuals {
    grid-row: 1;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.72fr);
    gap: 12px;
  }

  .campaign-copy {
    grid-row: 2;
  }

  .campaign-visuals img {
    border: 0;
  }

  .campaign-visuals a,
  .campaign-visuals figcaption a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* Footer */
  .site-footer {
    padding: 44px 0 24px;
    border: 0;
  }

  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 24px;
  }

  .site-footer__intro {
    grid-column: 1 / -1;
  }

  .site-footer h2 {
    font-size: 2.25rem;
  }

  .site-footer h3 {
    font-size: 1.15rem;
  }

  .site-footer p {
    margin-bottom: 0;
    font-size: 0.92rem;
  }

  .site-footer a {
    min-height: 44px;
    padding-block: 6px;
    font-size: 0.9rem;
    text-decoration-thickness: 1px;
  }

  .site-footer__end {
    margin-top: 28px;
    padding-top: 18px;
    display: grid;
    gap: 4px;
    font-size: 0.78rem;
  }

  /* Remove duplicated explanatory inventories on phones and tablets. */
  .page-xv .edition-preview,
  .page-personalized .edition-preview,
  .page-collection .process-section,
  .page-piece .process-section {
    display: none;
  }
}

@media (min-width: 600px) and (max-width: 900px) {
  .opening,
  .route-opening {
    grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
    align-items: stretch;
  }

  .opening__copy,
  .route-opening__copy {
    width: auto;
    padding: 52px 34px;
  }

  .opening__media,
  .page-xv .route-opening__media,
  .page-gifts .route-opening__media {
    width: 100%;
    height: 100%;
  }

  .opening__media img,
  .page-xv .route-opening__media img,
  .page-gifts .route-opening__media img {
    height: 100%;
    max-height: 620px;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .opening__caption {
    position: absolute;
    width: min(300px, 72%);
    padding: 12px 16px;
    background: rgba(255, 249, 246, 0.94);
  }

  .story-entry {
    grid-template-columns: 30px minmax(0, 1fr) 180px;
  }

  .process-ledger {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 42px;
  }

  .edition-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 42px 22px;
  }

  .page-collection .edition-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .editorial-band {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    align-items: center;
  }

  .editorial-band__media {
    width: 100%;
    margin: 0;
  }

  .editorial-copy {
    width: 100%;
    max-width: 100%;
    padding: 42px 34px;
  }

  .story-route__inner {
    grid-template-areas:
      "content content"
      "process choices";
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
    gap: 28px 34px;
  }
}

@media (min-width: 600px) and (max-width: 760px) {
  .page-collection .edition-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 359px) {
  .edition-list {
    gap-inline: 12px;
  }

  .edition-entry,
  .edition-preview .edition-entry {
    grid-template-columns: 18px minmax(0, 1fr);
  }

  .edition-entry__name h3 {
    font-size: 1.32rem;
  }

  .story-entry {
    grid-template-columns: 22px minmax(0, 1fr) 94px;
    gap-inline: 10px;
  }

  .story-route__choices ul {
    grid-template-columns: minmax(0, 1fr);
  }
}

html[data-text-scale="large"] .story-entry,
html[data-text-scale="large"] .process-step,
html[data-text-scale="large"] .edition-list,
html[data-text-scale="large"] .story-route__choices ul,
html[data-text-scale="large"] .site-footer__grid,
html[data-text-scale="large"] .piece-facts {
  grid-template-columns: minmax(0, 1fr);
}

html[data-text-scale="large"] .story-entry {
  grid-template-areas:
    "number"
    "title"
    "media"
    "copy";
}

html[data-text-scale="large"] .story-entry__media {
  width: min(100%, 420px);
}

html[data-text-scale="large"] .process-step__number {
  grid-row: auto;
}

html[data-text-scale="large"] .edition-entry {
  width: min(100%, 440px);
}

html[data-text-scale="large"] .site-footer__intro {
  grid-column: auto;
}

html[data-text-scale="large"] .campaign-opening .route-actions,
html[data-text-scale="large"] .page-meta .campaign-visuals {
  grid-template-columns: minmax(0, 1fr);
}

html[data-text-scale="large"] :where(
  .action-primary,
  .action-secondary,
  .text-action,
  .campaign-visuals a
) {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

@media (prefers-reduced-motion: reduce) {
  .menu-button,
  .primary-navigation,
  .story-entry,
  .edition-entry {
    scroll-behavior: auto;
  }
}

}


/* elis-story/bagisto-adapter.css */
/*
 * Elis Doll — Bagisto adapter
 * Keeps the editorial system intact while making Bagisto's dynamic catalogue,
 * product, form and consent components feel like part of the same site.
 */

:root {
  --elis-paper: var(--paper);
  --elis-paper-deep: var(--paper-deep);
  --elis-ink: var(--ink);
  --elis-ink-soft: var(--ink-soft);
  --elis-action: var(--berry);
  --elis-action-dark: var(--berry-dark);
  --elis-field: #f8ecef;
  --elis-line: var(--line);
  --elis-control: #8a6e79;
  --elis-white: var(--white);
  --elis-content: var(--measure);
}

html {
  min-width: 0;
  scroll-behavior: auto;
  scroll-padding-top: 24px;
  scroll-padding-bottom: var(--elis-consent-inset, 0px);
}

body.elis-page,
body.elis-page > .skip-link,
#app,
#app :where(button, input, select, textarea) {
  font-family: "Source Sans 3", system-ui, sans-serif;
}

#app :where(*) {
  font-family: inherit;
}

#app :where(h1, h2, h3, h4, h5, h6) {
  font-family: "Bodoni Moda", Georgia, serif;
}

body.elis-page {
  min-width: 0;
  padding-bottom: var(--elis-consent-inset, 0px);
  background: var(--paper);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.55;
}

#app :where(button, input, select, textarea) {
  border-radius: 1px !important;
}

#app :where(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

body.elis-page .action-primary,
body.elis-page .action-primary:visited,
body.elis-page .action-primary:hover,
body.elis-page .action-primary:active {
  color: var(--white);
}

body.elis-page .conversion-final .action-primary,
body.elis-page .conversion-final .action-primary:visited,
body.elis-page .conversion-final .action-primary:hover,
body.elis-page .conversion-final .action-primary:active {
  color: var(--berry-dark);
}

body.elis-page .conversion-final h2 {
  color: var(--white);
}

body.elis-page .personalization-proof__note {
  font-family: "Bodoni Moda", Georgia, serif;
  font-weight: 500;
}

@media (min-width: 901px) {
  body.elis-page .editorial-band h2 {
    color: var(--white);
  }
}

@media (max-width: 900px) {
  body.elis-page.page-piece .process-section {
    display: block;
  }
}

#contenido:focus {
  outline: 0;
}

.elis-image-zoomer {
  z-index: 1200 !important;
  background: var(--paper);
}

.brand-name--logo {
  width: min(190px, 100%);
  min-height: 52px;
  align-items: center;
}

.brand-name--logo img {
  width: 190px;
  height: auto;
  max-height: 66px;
  object-fit: contain;
  object-position: left center;
}

.site-header__inner {
  grid-template-columns: minmax(190px, 0.7fr) minmax(520px, 1.5fr);
}

.site-footer {
  background: var(--ink);
  color: var(--paper);
}

.site-footer :where(h2, h3, a, p, span) {
  color: inherit;
}

.site-footer__intro h2 a {
  text-decoration: none;
}

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
}

.site-footer__legal a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #f1dfe5;
}

.campaign-header .brand-name--logo,
.campaign-header__brand.brand-name--logo {
  width: min(190px, 58vw);
}

.campaign-header .brand-name--logo img,
.campaign-header__brand.brand-name--logo img {
  width: 190px;
}

/* Dynamic collection */
.elis-live-catalog {
  padding-block: clamp(68px, 9vw, 112px);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 24px;
}

.elis-live-catalog > .section-heading {
  margin-bottom: 42px;
}

.elis-collection-search {
  max-width: 34rem;
  margin-top: 22px;
}

.elis-collection-search label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-weight: 700;
}

.elis-collection-search > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.elis-collection-search input,
.elis-collection-search button {
  min-height: 48px;
  border: 1px solid var(--ink);
}

.elis-collection-search input {
  min-width: 0;
  padding: 10px 13px;
  background: var(--white);
  color: var(--ink);
}

.elis-collection-search button {
  padding: 10px 18px;
  background: var(--ink);
  color: var(--white);
  font-weight: 700;
}

.elis-live-catalog .container,
.elis-search-page .container {
  width: 100%;
  max-width: none;
  padding: 0 !important;
}

.elis-live-catalog .container > .flex,
.elis-search-page .container > .flex {
  gap: clamp(28px, 4vw, 52px);
  margin-top: 0;
}

.elis-live-catalog .panel-side,
.elis-search-page .panel-side {
  min-width: 220px;
  max-width: 250px;
  padding-right: 24px;
}

.elis-live-catalog .panel-side > div:first-child,
.elis-search-page .panel-side > div:first-child {
  border-color: var(--line);
}

.elis-filter-clear,
.elis-dropdown-option,
.elis-toolbar-option {
  color: var(--berry-dark);
}

.elis-filter-option {
  min-height: 44px;
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--ink) !important;
}

.elis-price-filter {
  padding: 4px 0 18px;
  display: grid;
  gap: 12px;
}

.elis-price-filter__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.elis-price-filter label {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--ink-soft);
  font-size: 0.78rem;
  font-weight: 700;
}

.elis-price-filter input {
  width: 100%;
  min-height: 44px;
  padding: 8px;
  border: 1px solid var(--line) !important;
  background: var(--paper);
  color: var(--ink);
  font-size: 0.9rem;
}

.elis-price-filter button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--ink) !important;
  background: transparent !important;
  color: var(--ink) !important;
  font-weight: 700;
}

.elis-price-filter button:hover {
  background: var(--paper-deep) !important;
}

.elis-filter-panel input[type="range"]::-webkit-slider-thumb {
  width: 24px;
  height: 24px;
  border: 2px solid var(--berry);
  border-radius: 1px;
  background: var(--paper);
  box-shadow: none;
}

.elis-filter-panel input[type="range"]::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border: 2px solid var(--berry);
  border-radius: 1px;
  background: var(--paper);
  box-shadow: none;
}

.elis-filter-option:hover,
.elis-dropdown-option:hover,
.elis-toolbar-option:hover {
  background: var(--paper-deep) !important;
}

.elis-toolbar-toggle {
  min-height: 48px;
  border-color: var(--line) !important;
  background: var(--paper) !important;
  color: var(--ink);
}

.elis-catalog-index {
  margin-top: 26px;
  border-color: var(--line);
}

.elis-catalog-entry {
  border-color: var(--line);
}

.elis-catalog-entry__media {
  background: var(--white);
}

.elis-catalog-entry__image,
.elis-catalog-entry__image img {
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
}

.elis-catalog-entry__sku {
  color: var(--berry-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.elis-catalog-entry__copy h2 {
  font-family: "Bodoni Moda", Georgia, serif;
}

.elis-catalog-entry__price,
.elis-catalog-entry__price * {
  color: var(--ink) !important;
  font-family: "Source Sans 3", system-ui, sans-serif !important;
}

.elis-catalog-entry__link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: flex-end;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 5px;
}

.elis-load-more,
.elis-inline-retry {
  min-height: 48px;
  margin-top: 26px;
  padding: 11px 18px !important;
  border: 1px solid var(--berry) !important;
  background: transparent !important;
  color: var(--berry-dark) !important;
  font-weight: 700;
}

.elis-load-more:hover,
.elis-inline-retry:hover {
  background: var(--paper-deep) !important;
}

.elis-catalog-empty,
.elis-catalog-error {
  min-height: 120px;
  padding: 36px 0;
}

.elis-search-heading {
  width: min(calc(100% - 40px), var(--measure));
  padding: clamp(58px, 8vw, 100px) 0 30px;
}

.elis-search-heading h1 {
  max-width: 14ch;
  font-size: clamp(3.2rem, 6vw, 5.5rem);
  line-height: 0.94;
}

.elis-search-refine {
  max-width: 34rem;
}

.elis-search-refine label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-weight: 700;
}

.elis-search-refine > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.elis-search-refine input,
.elis-search-refine button {
  min-height: 48px;
  border: 1px solid var(--ink);
}

.elis-search-refine input {
  min-width: 0;
  padding: 10px 13px;
  background: var(--white);
  color: var(--ink);
}

.elis-search-refine button {
  padding: 10px 18px;
  background: var(--ink);
  color: var(--white);
  font-weight: 700;
}

.elis-search-page .container {
  width: min(calc(100% - 40px), var(--measure));
  margin-inline: auto;
  padding-bottom: 88px !important;
}

/* Product detail */
.elis-product-breadcrumb {
  padding-top: 18px;
}

.elis-product-breadcrumb a {
  justify-content: flex-start;
}

.elis-piece-opening {
  align-items: stretch;
}

.elis-piece-opening .piece-gallery {
  min-width: 0;
  align-content: center;
}

.elis-product-gallery,
.elis-product-gallery__stage,
.elis-product-gallery__zoom,
.elis-product-gallery__zoom img,
.elis-product-gallery__video {
  width: 100%;
  min-width: 0;
}

.elis-product-gallery__stage,
.elis-product-gallery__zoom,
.elis-product-gallery__zoom img,
.elis-product-gallery__video {
  aspect-ratio: 1 / 1 !important;
}

.elis-product-gallery__stage {
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: var(--white);
}

.elis-product-gallery__zoom {
  position: relative;
  display: grid;
  padding: 0;
  place-items: center;
  overflow: hidden;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.elis-product-gallery__zoom img,
.elis-product-gallery__video {
  display: block;
  height: 100%;
  object-fit: contain;
}

.elis-product-gallery__loading,
.elis-product-gallery__error {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: grid;
  padding: 24px;
  place-items: center;
  background: var(--white);
  color: var(--ink-soft);
  text-align: center;
}

.elis-product-gallery__error {
  color: var(--berry-dark);
}

.elis-product-gallery__zoom-label {
  right: 12px;
  bottom: 12px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border-color: var(--ink);
  background: rgba(255, 249, 246, 0.94);
  color: var(--ink);
}

.elis-product-gallery__thumbs {
  grid-template-columns: repeat(4, minmax(64px, 86px));
  justify-content: center;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.elis-product-gallery__thumbs > li {
  min-width: 0;
  list-style: none;
}

.elis-product-gallery__thumb {
  width: 100%;
  min-width: 64px;
  border-color: var(--line);
  background: var(--paper);
  cursor: pointer;
}

.elis-product-gallery__thumb[aria-pressed="true"] {
  border-color: var(--berry);
}

.elis-product-gallery__thumb img {
  object-fit: contain;
}

.piece-summary__reference {
  margin: 0 0 12px !important;
  color: var(--berry-dark) !important;
  font-size: 0.78rem !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.piece-purchase__price,
.piece-purchase__price * {
  color: var(--ink) !important;
  font-family: "Source Sans 3", system-ui, sans-serif !important;
  font-size: clamp(1.35rem, 2vw, 1.7rem) !important;
  font-weight: 700 !important;
}

.piece-purchase__tax,
.piece-purchase__availability,
.piece-purchase__help {
  margin-top: 7px !important;
  color: var(--ink-soft);
  font-size: 0.86rem;
}

.piece-purchase__help {
  max-width: 36rem;
  margin-top: 18px !important;
}

.piece-purchase__availability {
  max-width: 33rem;
}

.piece-purchase__help a {
  color: var(--berry-dark);
  font-weight: 700;
}

.piece-purchase__policies {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
}

.piece-purchase__policies a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--berry-dark);
  font-size: 0.86rem;
  font-weight: 700;
  text-underline-offset: 4px;
}

.piece-purchase .route-actions {
  margin-top: 24px;
}

.piece-purchase__quantity {
  width: 100%;
  display: grid;
  gap: 8px;
}

.piece-purchase__quantity > span {
  font-weight: 700;
}

.elis-product-add {
  width: 100%;
  min-height: 50px;
  border-color: var(--berry) !important;
  background: var(--berry) !important;
  color: var(--white) !important;
}

.image-spread--product-pair img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--white);
}

.elis-product-reviews {
  padding-block: 80px;
  border-bottom: 1px solid var(--line);
}

.elis-product-reviews > h2 {
  margin-bottom: 30px;
  font-size: clamp(2.4rem, 4.5vw, 4.2rem);
  line-height: 0.96;
}

/* Forms and utility routes */
.elis-contact-page {
  width: min(calc(100% - 40px), 54rem);
  padding: clamp(64px, 9vw, 116px) 0;
}

.elis-contact-page h1 {
  max-width: 12ch;
  font-size: clamp(3.4rem, 7vw, 6.5rem);
  line-height: 0.9;
}

.elis-contact-page__intro {
  max-width: 40rem;
  margin-top: 22px !important;
  font-size: 1.12rem;
}

.elis-contact-page__whatsapp,
.elis-contact-page__details {
  margin-top: 22px !important;
}

.elis-contact-page__form {
  max-width: 42rem;
  margin-top: 52px;
  padding-top: 36px;
  border-top: 1px solid var(--line);
}

.elis-contact-page__form label {
  color: var(--ink);
  font-weight: 700;
}

.elis-contact-page__form input,
.elis-contact-page__form textarea,
.elis-contact-page__form select {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line) !important;
  background: var(--white) !important;
  color: var(--ink) !important;
}

.elis-contact-page__form textarea {
  min-height: 150px;
}

.page-not-found .brand-opening {
  min-height: 58vh;
}

.page-not-found .brand-opening h1 {
  max-width: 11ch;
}

/* Bagisto overlays and consent */
.elis-cookie-consent {
  max-height: min(42svh, 360px);
  border-color: var(--ink);
  background: var(--paper);
  color: var(--ink);
}

.elis-cookie-consent__actions button {
  min-height: 46px;
  border-color: var(--ink);
  color: var(--ink);
}

.elis-cookie-consent__actions button:last-child {
  border-color: var(--berry);
  background: var(--berry);
  color: var(--white);
}

.elis-cookie-settings {
  position: fixed;
  z-index: 60;
  left: 10px;
  bottom: max(10px, env(safe-area-inset-bottom));
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--ink);
  border-radius: 3px;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 0.75rem;
  cursor: pointer;
}

.elis-cookie-settings:focus-visible,
.elis-cookie-consent button:focus-visible {
  outline: 2px solid var(--berry);
  outline-offset: 3px;
}

.route-actions > .text-action + .action-primary,
.route-actions > .action-primary + .text-action {
  margin-left: 0;
}

@media (max-width: 1024px) {
  .elis-live-catalog .panel-side,
  .elis-search-page .panel-side {
    min-width: 210px;
    max-width: 220px;
    padding-right: 18px;
  }

  .elis-catalog-entry {
    grid-template-columns: 150px minmax(0, 1fr) 150px;
    gap: 20px;
  }
}

@media (max-width: 900px) {
  html {
    scroll-behavior: auto;
    scroll-padding-top: 68px;
  }

  .brand-name--logo,
  .brand-name--logo img {
    width: 150px;
  }

  .brand-name--logo {
    min-height: 44px;
  }

  .site-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .primary-navigation[data-open="false"] {
    display: none;
  }

  .primary-navigation[data-open="true"] {
    position: absolute;
    display: block;
  }

  .elis-live-catalog {
    width: 100%;
    padding: var(--mobile-space) var(--mobile-edge);
  }

  .elis-live-catalog > .section-heading {
    width: 100%;
  }

  .elis-product-breadcrumb {
    padding-top: 10px;
  }

  .page-piece .piece-opening {
    padding-bottom: 40px;
  }

  .page-piece .piece-gallery {
    padding-right: var(--mobile-edge);
    padding-left: var(--mobile-edge);
  }

  .page-piece .elis-product-gallery__stage,
  .page-piece .elis-product-gallery__zoom,
  .page-piece .elis-product-gallery__zoom img,
  .page-piece .elis-product-gallery__video {
    aspect-ratio: 1 / 1 !important;
  }

  .page-piece .piece-summary,
  .page-piece .piece-purchase {
    width: min(calc(100% - (2 * var(--mobile-edge))), var(--measure));
  }

  .piece-purchase .route-actions {
    gap: 6px;
  }

  .piece-purchase .route-actions .action-secondary {
    width: fit-content;
  }

  .elis-contact-page {
    width: min(calc(100% - (2 * var(--mobile-edge))), 54rem);
  }
}

@media (max-width: 767px) {
  body.elis-page {
    padding-bottom: var(--elis-consent-inset, 0px);
  }

  body.elis-catalog-page,
  body.elis-search-page {
    padding-bottom: calc(55px + var(--elis-consent-inset, 0px));
  }

  .elis-live-catalog .container > .flex,
  .elis-search-page .container > .flex {
    display: block;
  }

  .elis-live-catalog .fixed.bottom-0,
  .elis-search-page .fixed.bottom-0 {
    min-height: 55px;
    border-color: var(--line);
    background: var(--paper);
  }

  .elis-mobile-filter-toggle {
    min-height: 52px;
    color: var(--ink);
    font-size: 0.9rem;
  }

  .elis-catalog-entry {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 16px;
    padding: 18px 0;
  }

  .elis-catalog-entry__commerce {
    grid-column: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 14px;
    align-items: center;
  }

  .elis-catalog-entry__price,
  .elis-catalog-entry__link {
    text-align: left;
  }

  .elis-catalog-entry__link {
    justify-content: flex-start;
  }

  .elis-catalog-entry__prompt {
    display: none;
  }

  .elis-search-page .container {
    width: min(calc(100% - 32px), var(--measure));
  }

  .elis-product-gallery__thumbs {
    display: flex;
    justify-content: flex-start;
    overflow-x: auto;
    padding: 2px 2px 8px;
    scroll-snap-type: x proximity;
  }

  .elis-product-gallery__thumbs > li {
    flex: 0 0 68px;
    scroll-snap-align: start;
  }

  .elis-product-gallery__thumb {
    width: 68px;
  }

  .image-spread--product-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .elis-cookie-consent {
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    max-height: min(42svh, calc(100dvh - 16px - env(safe-area-inset-bottom)));
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ink);
  }

  .elis-cookie-consent__actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .elis-cookie-consent__actions button {
    width: 100%;
    min-height: 44px;
    padding-inline: 8px;
    font-size: 0.82rem;
  }
}

@media (max-width: 390px) {
  .brand-name--logo,
  .brand-name--logo img {
    width: 138px;
  }

  .elis-collection-search > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .elis-collection-search button {
    width: 100%;
  }

  .elis-catalog-entry {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 13px;
  }

  .elis-catalog-entry__commerce {
    grid-template-columns: minmax(0, 1fr);
  }

  .elis-contact-page h1 {
    font-size: 3rem;
  }
}

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

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

/* Official 2026 brand assets. The supplied lockup stays unmodified and the
   surrounding field supplies the contrast required by its ivory artwork. */
.site-header,
.campaign-header {
  border-color: #684f60;
  background: var(--ink);
  color: var(--paper);
}

.site-header__inner {
  min-height: 104px;
  grid-template-columns: minmax(160px, 0.56fr) minmax(520px, 1.5fr);
  background: transparent;
}

.brand-name--logo,
.brand-name--logo picture,
.brand-name--logo img {
  display: block;
  width: 146px;
  height: auto;
}

.brand-name--logo {
  min-height: 0;
}

.brand-name--logo img {
  max-height: none;
  aspect-ratio: 2550 / 1450;
  object-fit: contain;
  object-position: left center;
}

.site-header .primary-navigation a,
.site-header .menu-button {
  color: var(--paper);
}

.site-header .menu-button {
  border-color: var(--paper);
}

.site-header .primary-navigation a[aria-current="page"]::after,
.site-header .primary-navigation a:hover::after {
  background: var(--paper-deep);
}

.site-footer__brand,
.site-footer__brand picture,
.site-footer__brand img {
  display: block;
  width: 164px;
  height: auto;
}

.site-footer__brand {
  margin-bottom: 18px;
}

.site-footer__brand img {
  aspect-ratio: 2550 / 1450;
  object-fit: contain;
}

.campaign-header__inner {
  min-height: 104px;
}

.campaign-header .brand-name--logo,
.campaign-header .brand-name--logo picture,
.campaign-header .brand-name--logo img,
.campaign-header__brand.brand-name--logo,
.campaign-header__brand.brand-name--logo picture,
.campaign-header__brand.brand-name--logo img {
  width: 138px;
}

.campaign-header__return {
  color: var(--paper) !important;
}

.elis-checkout-brand img {
  border-radius: 1px;
}

.elis-cart-page,
.elis-checkout-page {
  background: var(--paper);
  color: var(--ink);
}

.elis-cart-header,
.elis-checkout-header {
  min-height: 96px;
  align-items: center;
  border-color: var(--ink) !important;
  background: var(--ink);
}

.elis-checkout-brand,
.elis-checkout-brand img {
  display: block;
  width: 138px;
  height: auto;
}

.elis-cart-header *,
.elis-checkout-header * {
  color: var(--paper) !important;
}

.elis-cart-heading {
  min-height: 92px;
  padding-bottom: 18px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--line);
}

.elis-cart-heading > div > p {
  margin-bottom: 4px;
  color: var(--berry-dark);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.elis-cart-heading h1 {
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2.8rem, 5vw, 4.4rem);
  font-weight: 500;
  line-height: 0.94;
}

.elis-cart-heading > p {
  color: var(--ink-soft);
  font-weight: 700;
}

.elis-cart-page .elis-cart-item-image {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--white);
}

.elis-cart-page .secondary-button,
.elis-cart-page .elis-cart-action {
  border-radius: 0 !important;
  border-color: var(--ink) !important;
  color: var(--ink) !important;
}

.elis-cart-summary {
  padding: 24px;
  border: 1px solid var(--line);
  background: var(--white);
}

.elis-cart-summary__title {
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2rem, 3vw, 2.8rem) !important;
  line-height: 1;
}

.elis-cart-page .elis-checkout-proceed {
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--berry) !important;
  border-radius: 0 !important;
  background: var(--berry) !important;
  color: var(--white) !important;
  font-weight: 700;
}

.elis-cart-page .elis-checkout-proceed:hover {
  border-color: var(--ink) !important;
  background: var(--ink) !important;
}

@media (min-width: 901px) {
  .page-piece .elis-product-gallery__stage {
    width: min(100%, 600px);
    height: 600px;
    margin-inline: auto;
  }

  .page-piece .piece-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
  }

  .page-piece .piece-facts div {
    grid-template-columns: minmax(76px, 0.8fr) minmax(0, 1.2fr);
    padding-block: 11px;
  }
}

.elis-checkout-page .container {
  padding-top: clamp(24px, 4vw, 48px);
  padding-bottom: 64px;
}

.elis-checkout-page :is(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), select, textarea) {
  border-radius: 0 !important;
  border-color: var(--line);
  background-color: var(--white) !important;
  color: var(--ink) !important;
  min-height: 46px;
  font-size: 16px !important;
}

.elis-checkout-page :is(input, select, textarea):focus {
  border-color: var(--berry) !important;
  box-shadow: 0 0 0 2px rgba(169, 30, 77, 0.14) !important;
}

.elis-checkout-page .primary-button,
.elis-checkout-page .elis-checkout-place-order {
  border: 1px solid var(--berry) !important;
  border-radius: 0 !important;
  background: var(--berry) !important;
  color: var(--white) !important;
}

html[data-display-mode="standalone"] .site-header {
  padding-top: env(safe-area-inset-top);
}

html[data-display-mode="standalone"] .site-footer {
  padding-bottom: max(34px, env(safe-area-inset-bottom));
}

/* Visual chapters stay within one screen on desktop. Ruled indexes and product
   lists remain content-led so no item or copy is clipped. */
@media (min-width: 901px) {
  .opening__media,
  .catalog-opening__media {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto;
    min-height: 0;
    max-height: calc(100svh - 104px);
    aspect-ratio: 3 / 2;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .opening__media img,
  .catalog-opening__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
  }

  /* Inicio conserva su margen editorial sin sumar ese espacio al ancho de la
     columna. `auto` descuenta ambos margenes del area disponible. */
  .page-home .opening__media {
    width: auto;
  }

  .route-opening__media {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: min(650px, calc(100svh - 104px));
    min-height: 0;
    max-height: calc(100svh - 104px);
    overflow: hidden;
  }

  .route-opening__media img {
    max-height: 100%;
  }

  .editorial-band__media {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto;
    min-height: 0;
    max-height: 100svh;
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  .editorial-band__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
  }

  html:not([data-text-scale="large"]) .image-spread {
    height: min(900px, 100svh);
    max-height: 100svh;
    overflow: hidden;
  }

  .image-spread__primary,
  .image-spread__notes,
  .image-spread--product-pair .image-spread__primary,
  .image-spread--product-pair .image-spread__notes {
    min-height: 0;
  }

  .image-spread__primary {
    height: 100%;
    min-width: 0;
    max-height: 100svh;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .image-spread__primary img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
  }

  .image-spread__notes {
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
  }

  .image-spread__notes > img {
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
  }

  html[data-text-scale="large"] .image-spread,
  html[data-text-scale="large"] .image-spread__primary,
  html[data-text-scale="large"] .image-spread__notes {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  html[data-text-scale="large"] .image-spread__notes {
    grid-template-rows: auto auto;
  }

  html[data-text-scale="large"] .image-spread__primary img,
  html[data-text-scale="large"] .image-spread__notes > img {
    height: auto;
    max-height: none;
  }

  .image-spread--product-pair .image-spread__primary img {
    width: 100%;
    height: auto;
    max-height: min(720px, calc(100svh - 160px));
    object-fit: contain;
  }

  .image-spread--product-pair .image-spread__notes > img {
    width: 100%;
    height: auto;
    max-height: min(420px, calc(55svh - 40px));
    object-fit: contain;
  }

  .process-section {
    padding-block: clamp(52px, 6vh, 72px);
  }

  .process-section .section-heading,
  .edition-preview .edition-intro {
    margin-bottom: clamp(24px, 4vh, 36px);
  }

  .process-step {
    min-height: clamp(100px, 13vh, 118px);
  }

  .edition-preview {
    padding-block: clamp(56px, 7vh, 76px);
  }

  .edition-entry {
    min-height: clamp(170px, 20vh, 190px);
    height: auto;
  }

  .edition-entry__image {
    height: clamp(170px, 20vh, 190px);
  }
}

@media (min-width: 901px) and (max-height: 760px) {
  .process-section,
  .edition-preview {
    padding-block: 36px;
  }

  .process-step {
    min-height: 96px;
  }

  .edition-entry,
  .edition-entry__image {
    min-height: 145px;
  }

  .edition-entry {
    height: auto;
  }

  .edition-entry__image {
    height: 145px;
  }
}

@media (min-width: 981px) {
  .page-xv .route-opening,
  .page-gifts .route-opening,
  .page-personalized .route-opening {
    min-height: min(650px, calc(100svh - 104px));
  }

  .page-xv .route-opening__media img,
  .page-gifts .route-opening__media img {
    object-fit: contain;
  }

  .page-piece .piece-opening {
    min-height: 0;
  }

  .page-piece .piece-gallery__stage {
    height: clamp(320px, calc(100svh - 280px), 610px);
  }
}

@media (max-width: 900px) {
  .site-header__inner {
    min-height: 86px;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .brand-name--logo,
  .brand-name--logo picture,
  .brand-name--logo img {
    width: 116px;
  }

  .site-header .menu-button {
    width: auto;
    min-width: 48px;
    max-width: max-content;
    justify-self: end;
  }

  .site-header .primary-navigation,
  html[data-text-scale="large"] .site-header .primary-navigation {
    max-height: calc(100dvh - 86px - env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border-color: #684f60;
    background: var(--ink);
  }

  .site-header .primary-navigation li,
  .site-header .primary-navigation a {
    border-color: #684f60;
  }

  .page-piece .piece-purchase {
    grid-row: 3;
    padding-top: 0;
  }

  .page-piece .piece-gallery {
    grid-row: 2;
  }

  .page-piece .piece-gallery__stage {
    aspect-ratio: 1 / 1;
  }

  .edition-entry:nth-child(1) .edition-entry__image img,
  .edition-entry:nth-child(3) .edition-entry__image img,
  .edition-entry:nth-child(4) .edition-entry__image img {
    transform: none;
  }

  .page-xv .edition-preview,
  .page-collection .process-section {
    display: block;
  }
}

/* Sobre superficies ciruela, el foco marfil conserva un limite perceptible. */
.site-header :where(a, button):focus-visible,
.campaign-header :where(a, button):focus-visible {
  outline-color: var(--paper);
}

@media (max-width: 900px) and (max-height: 500px) {
  .opening__media,
  .catalog-opening__media,
  .route-opening__media,
  .editorial-band__media,
  .image-spread--product-pair .image-spread__primary,
  .page-piece .elis-product-gallery__stage {
    height: 100svh !important;
    min-height: 0 !important;
    max-height: 100svh !important;
    aspect-ratio: auto !important;
    display: grid;
    place-items: center;
  }

  .opening__media img,
  .catalog-opening__media img,
  .route-opening__media img,
  .editorial-band__media img,
  .image-spread--product-pair .image-spread__primary img,
  .page-piece .elis-product-gallery__zoom,
  .page-piece .elis-product-gallery__zoom img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }

  .image-spread--product-pair .image-spread__notes > img {
    width: 100%;
    height: auto;
    max-height: 100svh;
    object-fit: contain;
  }
}

@media (max-width: 390px) {
  .brand-name--logo,
  .brand-name--logo picture,
  .brand-name--logo img {
    width: 108px;
  }
}

/* Commerce-first storefront refinement. The visual premise is a quiet product
   index: full dolls, visible prices, direct purchase and restrained editorial
   support. No product image is cropped to manufacture variety. */
.primary-navigation__cart a {
  padding-inline: 16px;
  border: 1px solid rgba(255, 249, 246, 0.72);
}

.primary-navigation__cart a:hover,
.primary-navigation__cart a[aria-current="page"] {
  background: var(--paper);
  color: var(--ink);
}

.primary-navigation__cart a:hover::after,
.primary-navigation__cart a[aria-current="page"]::after {
  content: none !important;
}

/* Home */
.home-hero {
  min-height: min(720px, calc(100svh - 104px));
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  border-bottom: 1px solid var(--line);
}

.home-hero__copy {
  min-width: 0;
  padding: clamp(56px, 7vw, 96px) clamp(34px, 5vw, 72px) clamp(56px, 7vw, 96px) max(20px, calc((100vw - var(--measure)) / 2));
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--line);
}

.home-eyebrow,
.catalog-header__eyebrow {
  margin: 0 0 14px;
  color: var(--berry-dark);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.home-hero h1 {
  max-width: 11ch;
  margin: 0;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(3.4rem, 4.5vw, 4.9rem);
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: -0.035em;
}

.home-hero__copy > p:not(.home-eyebrow) {
  max-width: 35rem;
  margin: 26px 0 0;
  color: var(--ink-soft);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}

.home-hero__actions {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.home-hero__media {
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: clamp(18px, 3vw, 42px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--white);
}

.home-hero__media img {
  width: 100%;
  height: 100%;
  max-height: min(660px, calc(100svh - 150px));
  object-fit: contain;
  object-position: center;
}

.home-selection,
.home-routes {
  padding-block: clamp(54px, 7vw, 82px);
  border-bottom: 1px solid var(--line);
}

.home-section-heading {
  margin-bottom: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: clamp(32px, 7vw, 92px);
  align-items: end;
}

.home-section-heading h2 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.8rem, 4.4vw, 4.8rem);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.03em;
}

.home-section-heading p:not(.home-eyebrow),
.home-section-heading > p {
  max-width: 36rem;
  margin: 0;
  color: var(--ink-soft);
}

.home-selection__loading,
.home-selection__error {
  min-height: 240px;
  display: grid;
  place-items: center;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
}

.home-selection__products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 clamp(18px, 2.4vw, 34px);
  border-top: 1px solid var(--line);
}

.home-routes__list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  list-style: none;
}

.home-routes__list li {
  min-width: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.home-routes__list li:last-child {
  border-right: 0;
}

.home-routes__list a {
  min-height: 178px;
  padding: 26px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  text-decoration: none;
}

.home-routes__list a:hover {
  background: var(--paper-deep);
}

.home-routes__number {
  color: var(--berry-dark);
  font-size: 0.78rem;
  font-weight: 700;
}

.home-routes__list strong,
.home-routes__list small {
  display: block;
}

.home-routes__list strong {
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1;
}

.home-routes__list small {
  margin-top: 13px;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.45;
}

/* Catalog */
.catalog-header {
  padding-block: clamp(48px, 6.5vw, 78px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: clamp(40px, 8vw, 110px);
  align-items: end;
  border-bottom: 1px solid var(--line);
}

.catalog-header h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3.6rem, 6.5vw, 6.6rem);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.04em;
}

.catalog-header > div:last-child > p {
  max-width: 36rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.05rem;
}

.elis-catalog-page .elis-live-catalog {
  padding-block: clamp(42px, 5vw, 64px) clamp(62px, 7vw, 90px);
}

.elis-live-catalog .container > .flex,
.elis-search-page .container > .flex {
  display: grid;
  grid-template-columns: minmax(220px, 248px) minmax(0, 1fr);
  gap: clamp(30px, 4vw, 54px);
  align-items: start;
}

.elis-live-catalog .panel-side,
.elis-search-page .panel-side,
.elis-filter-panel {
  min-width: 0;
  width: 100%;
  max-width: none;
  max-height: none;
  padding-right: clamp(18px, 2.4vw, 30px);
  display: block;
  overflow: visible;
  border-right: 1px solid var(--line);
}

.elis-filter-panel > div:first-child {
  min-height: 50px;
  border-color: var(--line) !important;
}

.elis-filter-panel > div:not(:first-child) {
  border-bottom: 1px solid var(--line-soft);
}

.elis-filter-drawer__header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--white);
}

.elis-catalog-index > .grid,
.elis-catalog-index > .grid > .relative.grid,
.elis-catalog-index .shimmer {
  min-width: 0 !important;
  max-width: 100%;
}

.elis-catalog-index > .grid > .relative.grid {
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
}

.elis-filter-option-search {
  display: grid;
  gap: 4px;
}

.elis-filter-search-input {
  width: 100%;
  min-height: 44px;
  padding: 9px 12px 9px 40px;
  border: 1px solid var(--line) !important;
  background: var(--white);
  color: var(--ink);
}

.elis-filter-option-row {
  min-height: 44px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.elis-filter-checkbox {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--berry);
  cursor: pointer;
}

.elis-filter-option {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  color: var(--ink) !important;
  font-size: 0.95rem !important;
}

.elis-catalog-toolbar {
  min-height: 58px;
  padding-bottom: 18px;
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  border-bottom: 1px solid var(--line);
}

.elis-results-summary {
  margin: 14px 0 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.elis-results-summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 5px;
}

.elis-toolbar-field {
  display: grid;
  grid-template-columns: auto minmax(160px, 220px);
  gap: 9px;
  align-items: center;
  color: var(--ink-soft);
  font-size: 0.86rem;
  font-weight: 600;
}

.elis-toolbar-field--limit {
  grid-template-columns: auto 92px;
}

.elis-toolbar-field select {
  min-height: 44px;
  padding: 8px 34px 8px 11px;
  border: 1px solid var(--line) !important;
  background-color: var(--paper);
  color: var(--ink);
  font-weight: 600;
}

.elis-catalog-page .elis-catalog-index,
.elis-search-page .elis-catalog-index,
.elis-category-page .elis-catalog-index {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 clamp(20px, 2.4vw, 34px);
  border-top: 1px solid var(--line);
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry {
  min-width: 0;
  min-height: 0;
  padding: clamp(18px, 2vw, 26px) 0 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto 1fr;
  gap: 16px;
  border-bottom: 1px solid var(--line);
  background: transparent;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__media {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--white);
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__media > a,
:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__image,
:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__image img {
  width: 100%;
  height: 100%;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__image img {
  object-fit: contain !important;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__copy {
  min-width: 0;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__copy h2 {
  margin: 5px 0 0;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 500;
  line-height: 1.02;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__copy h2 a {
  text-decoration: none;
}

.elis-catalog-entry__availability {
  margin: 9px 0 0;
  color: var(--olive);
  font-size: 0.84rem;
  font-weight: 700;
}

.elis-catalog-entry__availability.is-unavailable {
  color: var(--berry-dark);
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__commerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 14px;
  align-content: end;
  align-items: center;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__price {
  font-size: 1.1rem;
  font-weight: 700;
}

:is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__link {
  justify-content: flex-end;
}

.elis-catalog-entry__cart {
  grid-column: 1 / -1;
  min-height: 46px;
  padding: 9px 14px;
  border: 1px solid var(--berry) !important;
  background: var(--berry) !important;
  color: var(--white) !important;
  font-weight: 700;
}

.elis-catalog-entry__cart:hover:not(:disabled) {
  background: var(--berry-dark) !important;
}

.elis-catalog-entry__cart:disabled {
  border-color: var(--line) !important;
  background: var(--line-soft) !important;
  color: var(--ink-soft) !important;
  cursor: not-allowed;
}

.elis-pagination {
  margin-top: 34px;
  padding-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
  border-top: 1px solid var(--line);
}

.elis-pagination button {
  min-width: 44px;
  min-height: 44px;
  padding: 8px 13px;
  border: 1px solid var(--line) !important;
  background: transparent !important;
  color: var(--ink) !important;
  font-weight: 700;
}

.elis-pagination button:hover:not(:disabled),
.elis-pagination__page.is-current {
  border-color: var(--ink) !important;
  background: var(--ink) !important;
  color: var(--paper) !important;
}

.elis-pagination button:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

.elis-pagination__direction {
  min-width: 96px !important;
}

.elis-pagination__ellipsis {
  min-width: 32px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-soft);
  font-weight: 700;
}

/* Product purchase */
.page-piece .piece-opening {
  min-height: 0;
  grid-template-columns: minmax(480px, 1.08fr) minmax(420px, 0.92fr);
}

.page-piece .piece-gallery {
  padding: clamp(24px, 3vw, 42px);
}

.page-piece .piece-summary {
  padding-top: clamp(40px, 6vw, 78px);
  padding-left: clamp(38px, 5vw, 68px);
}

.page-piece .piece-summary h1 {
  max-width: 11ch;
  font-size: clamp(3.5rem, 5.5vw, 5.8rem);
}

.page-piece .piece-purchase {
  padding-left: clamp(38px, 5vw, 68px);
}

.piece-purchase__availability strong {
  color: var(--olive);
}

.piece-purchase .route-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.piece-purchase__quantity,
.piece-purchase__cart-link {
  grid-column: 1 / -1;
}

.elis-product-add,
.elis-product-buy-now {
  width: 100%;
  min-height: 50px;
  justify-content: center;
}

.elis-product-buy-now {
  border-color: var(--berry) !important;
  color: var(--berry-dark) !important;
  font-weight: 700;
}

.piece-purchase__cart-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--berry-dark);
  font-weight: 700;
  text-underline-offset: 4px;
}

@media (max-width: 1100px) {
  .home-selection__products,
  .elis-catalog-page .elis-catalog-index,
  .elis-search-page .elis-catalog-index,
  .elis-category-page .elis-catalog-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-piece .piece-opening {
    grid-template-columns: minmax(430px, 1fr) minmax(360px, 0.9fr);
  }
}

@media (max-width: 900px) {
  .primary-navigation__cart a {
    margin: 12px 20px 18px;
    justify-content: center;
  }

  .home-hero {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .home-hero__copy {
    padding: 48px var(--mobile-edge);
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .home-hero h1 {
    font-size: clamp(3.2rem, 11.5vw, 5.4rem);
  }

  .home-hero__media {
    min-height: 0;
    padding: 14px;
  }

  .home-hero__media img {
    height: auto;
    max-height: min(64svh, 620px);
  }

  .home-section-heading,
  .catalog-header {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

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

  .home-routes__list li {
    border-right: 0;
  }

  .home-routes__list a {
    min-height: 132px;
  }

  .catalog-header {
    width: 100%;
    padding: 44px var(--mobile-edge);
  }

  .catalog-header h1 {
    font-size: clamp(3.4rem, 12vw, 5.2rem);
  }

  .page-piece .piece-opening {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-piece .piece-summary h1 {
    max-width: none;
  }

  .page-piece .piece-summary {
    grid-row: 1;
  }

  .page-piece .piece-purchase {
    grid-row: 2;
    padding-top: 0;
  }

  .page-piece .piece-gallery {
    grid-row: 3;
  }

  .page-piece .piece-purchase__help {
    order: 3;
  }
}

@media (max-width: 767px) {
  .home-selection,
  .home-routes {
    width: 100%;
    padding: 46px var(--mobile-edge);
  }

  .home-selection__products,
  .elis-catalog-page .elis-catalog-index,
  .elis-search-page .elis-catalog-index,
  .elis-category-page .elis-catalog-index {
    grid-template-columns: minmax(0, 1fr);
  }

  .elis-live-catalog .container > .flex,
  .elis-search-page .container > .flex {
    display: block;
  }

  .elis-catalog-page .elis-live-catalog {
    padding: 24px var(--mobile-edge) 70px;
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry {
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 12px 16px;
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__media {
    grid-row: 1 / 3;
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__commerce {
    grid-column: 2;
  }

  .elis-catalog-entry__cart {
    min-height: 44px;
  }

  .elis-pagination {
    justify-content: flex-start;
  }

  .elis-pagination__direction {
    flex: 1 1 42%;
  }

  .piece-purchase .route-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .piece-purchase__quantity,
  .piece-purchase__cart-link {
    grid-column: 1;
  }
}

@media (max-width: 430px) {
  .home-hero__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .home-hero__actions > * {
    width: 100%;
    justify-content: center;
  }

  .home-section-heading h2 {
    font-size: 2.8rem;
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 10px 14px;
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__commerce {
    grid-template-columns: minmax(0, 1fr);
  }

  :is(.elis-catalog-page, .elis-search-page, .elis-category-page, .home-selection) .elis-catalog-entry__link {
    justify-content: flex-start;
  }
}

/* Commerce navigation: the cart remains visible at every breakpoint and only
   gains a badge when the session contains products. */
.site-header__inner {
  grid-template-columns: minmax(146px, 0.55fr) minmax(480px, 1.45fr) auto;
  grid-template-areas: "brand navigation actions";
}

.site-header .brand-name--logo {
  grid-area: brand;
}

.site-header .primary-navigation {
  grid-area: navigation;
}

.site-header__actions {
  grid-area: actions;
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: flex-end;
}

.header-cart {
  position: relative;
  width: 48px;
  min-width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 249, 246, 0.72);
  color: var(--paper) !important;
  text-decoration: none;
}

.header-cart .icon-cart {
  font-size: 1.5rem;
  line-height: 1;
}

.header-cart:hover,
.header-cart[aria-current="page"] {
  background: var(--paper);
  color: var(--ink) !important;
}

.header-cart__count {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 21px;
  height: 21px;
  padding-inline: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--berry);
  color: var(--white);
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1;
}

.piece-purchase__shipping {
  max-width: 33rem;
  margin-top: 7px;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.piece-facts__title {
  margin: 28px 0 2px;
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.piece-purchase__policies {
  margin-top: 2px;
}

/* Native select and checkbox controls stay visually quiet but unmistakable. */
.elis-toolbar-field select,
.elis-price-filter input,
.elis-price-filter button {
  border-radius: 1px !important;
}

[role="dialog"][aria-label="Filtros del catálogo"],
[role="dialog"][aria-label="Ordenar catálogo"] {
  z-index: 2100 !important;
}

.elis-mobile-catalog-controls {
  z-index: 60 !important;
}

@media (min-width: 981px) {
  .page-piece .piece-gallery__stage {
    height: clamp(320px, calc(100svh - 360px), 540px);
  }
}

@media (max-width: 900px) {
  .site-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "brand actions";
    gap: 10px;
  }

  .site-header__actions {
    gap: 2px;
  }

  .site-header .menu-button {
    width: 48px;
    min-width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    font-size: 1.55rem;
  }

  .site-header .menu-button::after {
    content: none !important;
  }

  .site-header .primary-navigation {
    grid-area: auto;
  }

  .header-cart {
    border-color: transparent;
  }

  .page-piece .piece-gallery {
    grid-row: 1;
  }

  .page-piece .piece-summary {
    grid-row: 2;
  }

  .page-piece .piece-purchase {
    grid-row: 3;
  }

  .page-piece .piece-summary,
  .page-piece .piece-purchase {
    padding-left: 0;
  }

  .page-piece .piece-summary {
    padding-top: 28px;
  }

  .catalog-header {
    gap: 18px;
    padding: 34px var(--mobile-edge);
  }

  .catalog-header h1 {
    font-size: clamp(3.15rem, 11vw, 4.6rem);
  }

  .elis-collection-search {
    margin-top: 16px;
  }
}

@media (max-width: 767px) {
  html {
    scroll-padding-bottom: calc(70px + env(safe-area-inset-bottom));
  }

  body.elis-catalog-page,
  body.elis-search-page,
  body.elis-category-page {
    padding-bottom: calc(70px + env(safe-area-inset-bottom) + var(--elis-consent-inset, 0px));
  }

  .elis-mobile-catalog-controls {
    min-height: calc(56px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media (max-width: 390px) {
  .elis-collection-search > div {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .elis-collection-search button {
    width: auto;
    padding-inline: 15px;
  }
}

/* A short domestic address and continuous shipping/payment choices. */
.elis-address-form { margin-top: 20px; }
.elis-address-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
.elis-address-form > :not(.elis-address-pair) { max-width: 100%; }
.elis-address-form input, .elis-address-form select { transition: border-color 120ms ease; }
.elis-checkout-methods { margin-top: 32px; margin-bottom: 28px; }
.elis-checkout-methods h2 { font-size: 24px; margin-bottom: 16px; }
.elis-method-options { border: 0; padding: 0; margin: 0; min-width: 0; }
.elis-payment-option { display: flex; align-items: center; gap: 16px; min-height: 92px; padding: 18px 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); cursor: pointer; }
.elis-payment-option + .elis-payment-option { border-top: 0; }
.elis-payment-option.is-selected { background-color: #fff5f7; border-bottom-color: var(--berry); }
.elis-payment-option:focus-within { outline: 2px solid var(--berry); outline-offset: 2px; }
.elis-checkout-page .elis-payment-option input[type="radio"] { appearance: auto; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; padding: 0; accent-color: var(--berry); box-shadow: none !important; }
.elis-payment-copy { display: grid; gap: 4px; min-width: 0; flex: 1; }
.elis-payment-copy strong { color: var(--ink); font-size: 18px; font-weight: 600; }
.elis-payment-copy > span { color: var(--muted); font-size: 15px; line-height: 1.45; }
.elis-payment-logo { width: 80px; height: 40px; object-fit: contain; }
.elis-shipping-price { font-size: 18px; white-space: nowrap; }
.elis-method-options:disabled { opacity: .65; }
.elis-checkout-feedback, .elis-checkout-error { margin-top: 12px; font-size: 15px; line-height: 1.45; }
.elis-checkout-error { color: #a31636; }
.elis-checkout-page .elis-checkout-place-order { min-height: 48px; width: 100%; white-space: normal; }
.elis-checkout-page #steps-container { overflow: visible; min-width: 0; }
@media (max-width: 600px) {
  .elis-address-pair { grid-template-columns: minmax(0, 1fr); }
  .elis-checkout-methods { margin-top: 24px; }
  .elis-checkout-methods h2 { font-size: 21px; }
  .elis-payment-option { gap: 12px; padding-inline: 8px; }
  .elis-payment-copy strong { font-size: 17px; }
  .elis-payment-copy > span { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .elis-address-form input, .elis-address-form select { transition: none; }
}

.elis-checkout-page select { appearance: auto !important; background-image: none !important; padding-right: 16px; }
.elis-checkout-submit { display: grid; justify-items: stretch; }
.elis-checkout-mobile-total { display: none; }
.elis-checkout-page .elis-cookie-settings { position: static; display: block; width: max-content; margin: 0 16px 24px; border-radius: 1px; }
@media (max-width: 768px) {
  .elis-checkout-mobile-total { display: flex; justify-content: space-between; gap: 16px; padding-block: 16px; border-top: 1px solid var(--line); font-size: 18px; }
}

/* Elis Doll: celebration, clear choices and an explicit order journey. */
.home-hero--xv { min-height: 0; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.home-hero--xv .home-hero__copy { padding-block: 48px; }
.home-hero--xv h1 { max-width: 13ch; font-size: clamp(42px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.025em; }
.home-hero--xv .home-hero__media { padding: 16px 32px 20px; background: #fff; }
.home-hero--xv .home-hero__media img { max-height: 530px; height: auto; aspect-ratio: 1; }
.home-hero--xv .home-hero__actions { align-items: center; gap: 20px; }
.home-hero--xv .home-hero__note { font-size: 15px; max-width: 34ch; }
.home-hero__media figcaption, .elis-commission-opening figcaption { font-size: 14px; color: var(--ink-soft); text-align: center; }
.home-hero__media figcaption a { text-decoration: underline; text-underline-offset: 4px; }
.elis-purchase-assurance { display: flex; flex-wrap: wrap; gap: 16px 40px; justify-content: space-between; align-items: center; padding-block: 24px; border-bottom: 1px solid var(--line); font-size: 16px; }
.elis-purchase-assurance p { margin: 0; }
.elis-purchase-assurance a { text-decoration: underline; text-underline-offset: 4px; }
.elis-order-guide, .elis-customer-voices, .elis-buying-help, .elis-order-request, .elis-personal-story, .elis-detail-story { padding-block: 64px; border-bottom: 1px solid var(--line); }
.home-section-heading h2, .elis-personal-story h2, .elis-detail-story h2, .elis-buying-help h2, .elis-order-request h2 { max-width: 20ch; font-family: 'Bodoni Moda', Georgia, serif; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.1; letter-spacing: -.02em; font-weight: 500; margin: 0 0 20px; }
.home-section-heading { gap: 32px; margin-bottom: 32px; align-items: start; }
.home-section-heading p { max-width: 48ch; }
.elis-order-steps { list-style: none; padding: 0; margin: 0 0 28px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.elis-order-steps li { border-top: 1px solid var(--line); padding-top: 20px; }
.elis-order-steps li > span { font-size: 20px; font-family: 'Bodoni Moda', Georgia, serif; color: var(--berry-dark); }
.elis-order-steps h3 { font-family: 'Source Sans 3', sans-serif; font-size: 19px; font-weight: 600; margin: 14px 0 8px; line-height: 1.25; }
.elis-order-steps p { color: var(--ink-soft); font-size: 16px; line-height: 1.55; margin: 0; }
.elis-personal-story, .elis-detail-story { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.elis-personal-story figure { margin: 0; }
.elis-personal-story img, .elis-detail-story > img { display: block; width: 100%; max-height: 460px; object-fit: contain; background: #fff; }
.elis-personal-story p, .elis-detail-story p { max-width: 48ch; }
.elis-personal-story .text-action { display: table; margin-top: 20px; }
.elis-customer-voices__list { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.elis-customer-voices figure { margin: 0; border-top: 1px solid var(--line); padding-top: 24px; }
.elis-customer-voices blockquote { margin: 0 0 24px; font-family: 'Bodoni Moda', Georgia, serif; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.35; }
.elis-customer-voices blockquote p { margin: 0; }
.elis-customer-voices figcaption { font-size: 15px; line-height: 1.6; }
.elis-customer-voices figcaption span { display: block; color: var(--ink-soft); }
.elis-customer-voices figcaption a { display: inline-block; padding-block: 12px; text-decoration: underline; text-underline-offset: 4px; }
.elis-buying-help, .elis-order-request { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; }
.elis-buying-questions details { border-top: 1px solid var(--line); padding: 18px 0; }
.elis-buying-questions summary { cursor: pointer; font-weight: 600; min-height: 24px; }
.elis-buying-questions p { color: var(--ink-soft); margin-top: 16px; }
.elis-buying-questions a { text-decoration: underline; text-underline-offset: 3px; }
.elis-footer-shopping { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; border-top: 1px solid #ffffff40; padding: 28px 0; margin-top: 32px; }
.elis-footer-shopping h3 { font-family: 'Source Sans 3', sans-serif; font-weight: 600; font-size: 18px; }
.elis-footer-shopping ul { padding: 0; list-style: none; }
.elis-footer-shopping a { display: inline-block; padding-block: 8px; text-decoration: underline; text-underline-offset: 4px; }
.elis-footer-shopping p { font-size: 15px; }
.elis-channel-label, .elis-footer-shopping a.elis-channel-label { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.elis-channel-label > span { min-width: 0; }
.elis-channel-icon { display: block; flex: 0 0 36px; width: 36px; height: 36px; object-fit: contain; }
.elis-channel-link { width: fit-content; max-width: 100%; padding-block: 8px; text-decoration: underline; text-underline-offset: 4px; }
#app .elis-channel-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.elis-commission-opening { min-height: 0; }
.elis-commission-opening .route-opening__copy { padding-block: 48px; }
.elis-commission-opening h1 { max-width: 15ch; font-size: clamp(42px, 4.7vw, 64px); line-height: 1.04; }
.elis-commission-opening .route-opening__media { margin: 0; padding: 24px; display: grid; background: white; }
.elis-commission-opening .route-opening__media img { width: 100%; height: auto; max-height: 510px; aspect-ratio: 1; object-fit: contain; }
.elis-commission-opening .elis-commission-note { font-size: 15px; }
.elis-order-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.elis-order-field { min-width: 0; }
.elis-order-field--wide { grid-column: 1 / -1; }
.elis-order-field label { display: block; font-weight: 600; font-size: 16px; margin-bottom: 8px; }
.elis-order-field label span { font-weight: 400; font-size: 14px; color: var(--ink-soft); }
.elis-order-field input, .elis-order-field textarea { width: 100%; min-width: 0; border: 1px solid #88747f; border-radius: 0; background: #fff; color: var(--ink); font: inherit; padding: 12px; min-height: 48px; }
.elis-order-field input[aria-invalid="true"], .elis-order-field textarea[aria-invalid="true"] { border: 2px solid #a42237; }
.elis-order-field small { display: block; margin-top: 6px; color: var(--ink-soft); }
.elis-order-privacy { font-size: 14px; margin: 0; }
.elis-order-privacy a { text-decoration: underline; }
.elis-order-review { border-top: 2px solid var(--berry-dark); padding-top: 24px; }
.elis-order-review h3 { font-size: 25px; margin: 0 0 20px; }
.elis-order-review pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.65; margin-bottom: 24px; }
.elis-order-review .route-actions { flex-wrap: wrap; }
.elis-order-form[hidden], .elis-order-review[hidden] { display: none; }
.elis-catalog-entry__dimensions { margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--ink-soft); }
.elis-checkout-intro { padding-block: 28px 16px; }
.elis-checkout-intro h1 { font-family: 'Bodoni Moda', Georgia, serif; font-size: clamp(30px,4vw,42px); line-height: 1.1; }
.elis-checkout-intro p { margin-top: 12px; color: var(--ink-soft); }
.elis-checkout-progress { display: flex; flex-wrap: wrap; list-style: none; gap: 12px 32px; padding: 16px 0 24px; margin: 0 0 24px; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.elis-checkout-progress li[aria-current="step"] { color: var(--berry-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 6px; }
.elis-checkout-progress .is-complete { color: var(--ink); }
.elis-mobile-order-summary { border-block: 1px solid var(--line); padding-block: 14px; }
.elis-mobile-order-summary summary { font-size: 15px; cursor: pointer; font-weight: 600; }
.elis-mobile-order-summary summary span { font-weight: 400; }
.elis-mobile-order-summary[open] > div { margin-top: 20px; }
.elis-checkout-error { padding-block: 48px; }
.elis-checkout-error a { display: inline-block; margin-left: 24px; text-decoration: underline; }
.elis-filter-results { width: 100%; }
.page-piece .piece-summary h1 { max-width: 18ch; font-size: clamp(34px, 3.7vw, 52px); line-height: 1.08; }
@media (max-width: 1024px) {
  .elis-order-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .elis-personal-story, .elis-detail-story, .elis-buying-help, .elis-order-request { gap: 32px; }
}
@media (max-width: 767px) {
  .home-hero--xv { grid-template-columns: 1fr; }
  .home-hero--xv .home-hero__copy { padding: 28px 20px 20px; border-right: 0; }
  .home-hero--xv h1 { max-width: 15ch; font-size: clamp(36px,10vw,44px); line-height: 1.04; }
  .home-hero--xv .home-hero__copy > p:not(.home-eyebrow) { margin-top: 14px; font-size: 17px; line-height: 1.45; }
  .home-hero--xv .home-hero__actions { margin-top: 18px; gap: 8px 18px; flex-direction: row; }
  .home-hero--xv .home-hero__actions > * { width: auto; }
  .home-hero--xv .home-hero__note { display: none; }
  .home-hero--xv .home-hero__media { padding: 0 20px 16px; }
  .home-hero--xv .home-hero__media img { height: 310px; width: 100%; max-height: none; }
  .elis-purchase-assurance { gap: 8px; display: grid; padding-block: 20px; font-size: 15px; }
  .elis-order-guide, .elis-customer-voices, .elis-buying-help, .elis-order-request, .elis-personal-story, .elis-detail-story, .home-selection { padding-block: 40px; }
  .home-section-heading { grid-template-columns: 1fr; gap: 0; margin-bottom: 24px; }
  .home-section-heading h2 { max-width: 23ch; }
  .elis-order-steps { grid-template-columns: 1fr; gap: 20px; }
  .elis-order-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 8px 12px; padding-top: 16px; }
  .elis-order-steps h3 { margin: 0; }
  .elis-order-steps p { grid-column: 2; }
  .elis-personal-story, .elis-detail-story, .elis-buying-help, .elis-order-request, .elis-customer-voices__list, .elis-footer-shopping { grid-template-columns: 1fr; gap: 28px; }
  .elis-personal-story img, .elis-detail-story > img { max-height: 340px; }
  .elis-order-form { grid-template-columns: 1fr; }
  .elis-commission-opening .route-opening__copy { padding: 28px 20px; }
  .elis-commission-opening h1 { font-size: clamp(36px,10vw,44px); max-width: 15ch; }
  .elis-commission-opening .route-opening__media { padding: 0 20px 16px; }
  .elis-commission-opening .route-opening__media img { height: 320px; }
  .elis-checkout-progress { gap: 10px 20px; font-size: 14px; margin-bottom: 16px; }
  .page-piece .piece-summary { grid-row: 1; padding-top: 0; padding-bottom: 16px; }
  .page-piece .piece-gallery { grid-row: 2; padding: 0; }
  .page-piece .piece-purchase { grid-row: 3; padding-top: 20px; }
  .page-piece .piece-gallery__stage { min-height: 0; height: 300px; }
  .page-piece .piece-gallery__stage img { height: 300px; object-fit: contain; }
  .page-piece .piece-summary h1 { font-size: 32px; max-width: 20ch; }
  .page-piece .piece-summary > p { font-size: 16px; }
}

.piece-summary__mobile-price { display: none; }
@media (max-width: 767px) {
  .piece-summary__mobile-price { display: block; font-size: 21px; font-weight: 600; margin-top: 10px; }
  .page-piece .piece-purchase__price { display: none; }
  .page-piece .elis-product-gallery__stage, .page-piece .elis-product-gallery__zoom { height: 280px; min-height: 0; aspect-ratio: auto; }
  .page-piece .elis-product-gallery__stage img { width: 100%; height: 280px; object-fit: contain; }
  .page-piece .elis-product-gallery__thumb { width: 54px; height: 54px; }
  .page-piece .piece-purchase { padding-top: 12px; }
  .page-piece .piece-purchase__quantity { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .page-piece .piece-purchase__policies { margin-top: 10px; margin-bottom: 14px; font-size: 14px; }
  .page-piece .piece-summary > p { margin-top: 10px; }
}

.site-footer h3 { color: var(--paper); }
.home-hero--xv .home-hero__copy > .elis-commission-terms,
.elis-commission-opening .elis-commission-terms { font-size: 17px; line-height: 1.5; margin-top: 20px; max-width: 38ch; }
.elis-visit { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-areas: "photo copy"; gap: 48px; align-items: center; padding-block: 64px; border-bottom: 1px solid var(--line); scroll-margin-top: 100px; }
.elis-visit__copy { grid-area: copy; }
.elis-visit h2 { max-width: 22ch; font-family: 'Bodoni Moda', Georgia, serif; font-size: clamp(30px,3.2vw,42px); line-height: 1.1; letter-spacing: -.02em; font-weight: 500; margin: 0 0 20px; }
.elis-visit__copy > p { max-width: 48ch; margin: 0 0 20px; }
.elis-visit__address { color: var(--ink-soft); }
.elis-visit__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-bottom: 24px; }
.elis-visit__copy .elis-visit__custom { font-size: 16px; line-height: 1.6; border-top: 1px solid var(--line); padding-top: 20px; margin-bottom: 0; }
.elis-visit__custom strong { display: block; margin-bottom: 4px; }
.elis-visit__custom a, .elis-visit__media a { text-decoration: underline; text-underline-offset: 3px; }
.elis-visit__media { grid-area: photo; margin: 0; }
.elis-visit__media img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; }
.elis-visit__media figcaption { margin-top: 12px; font-size: 14px; line-height: 1.5; color: var(--ink-soft); }
@media (max-width: 1024px) {
  .elis-visit { gap: 32px; }
}
@media (max-width: 767px) {
  .elis-visit { grid-template-columns: 1fr; grid-template-areas: "copy" "photo"; padding-block: 40px; gap: 28px; }
}
.elis-cookie-settings { position: static; inset: auto; background: transparent; color: inherit; border: 0; min-height: 44px; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; }
.elis-cookie-settings-region { padding: 24px max(20px, calc((100vw - 1120px) / 2)); color: var(--ink-soft); }
@media (max-width: 900px) {
  .page-piece .piece-purchase .route-actions { order: 0; }
  .page-piece .piece-facts__title { order: 2; }
}


/* elis-story/atelier.css */
:root { --atelier-cream: #fbf1eb; --atelier-rose: #edd4d4; --atelier-plum: #513448; }
body { background: var(--atelier-cream); }
.site-header { position: relative; z-index: 100; background: var(--atelier-cream); border: 0; box-shadow: none; }
.site-header .site-header__inner { width: min(92%, 1360px); min-height: 98px; padding: 10px 0; display: grid; grid-template-columns: 160px 1fr 48px; grid-template-areas: "brand navigation actions"; gap: 28px; }
.site-header .brand-name--logo, .site-header .brand-name--logo picture, .site-header .brand-name--logo img { width: 130px; height: auto; min-width: 0; }
.site-header .brand-name--logo { grid-area: brand; padding: 0; background: transparent; }
.site-header .brand-name--logo picture, .site-footer__brand picture { background: var(--atelier-plum); border-radius: 50%; }
.site-header .primary-navigation { grid-area: navigation; width: auto; padding: 0; margin: 0; background: transparent; border: 0; position: static; }
.site-header .primary-navigation ul { display: flex; justify-content: center; align-items: center; gap: clamp(18px, 3vw, 44px); padding: 0; margin: 0; }
.site-header .primary-navigation a { color: var(--atelier-plum); font-size: 1rem; font-weight: 400; letter-spacing: .015em; text-transform: none; display: flex; align-items: center; min-height: 44px; padding: 0; background: transparent; }
.site-header .primary-navigation a::after { display: none; }
.site-header .primary-navigation a[aria-current="page"], .site-header .primary-navigation a:hover { color: var(--berry-dark); text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }
.site-header .menu-button { display: none; }
.site-header .header-cart { width: 44px; min-width: 44px; height: 44px; border: 0; border-radius: 50%; color: var(--atelier-plum) !important; background: transparent; }
.site-header .header-cart:hover { background: #eddee5; }
.site-header .header-cart__count { border-color: var(--atelier-cream); top: -2px; right: -3px; }
.site-header :where(a, button):focus-visible { outline-color: var(--berry-dark); }
.elis-home-editorial { background: linear-gradient(180deg, #fbf1eb 0%, #fbf1eb 36%, #f1e6ee 57%, #f5e9e6 80%, #f3e6e2 100%); color: var(--atelier-plum); overflow: clip; }
.elis-home-editorial .frame { width: min(88%, 1200px); max-width: none; }
.elis-scenes { position: relative; isolation: isolate; height: clamp(480px, 47vw, 740px); touch-action: pan-y; background: #e6c6ca; }
.elis-scenes .elis-scene { display: block; position: absolute; inset: 0; opacity: 0; pointer-events: none; color: #503443; text-decoration: none; transition: opacity 850ms ease; }
.elis-scenes .elis-scene[data-active="true"] { opacity: 1; pointer-events: auto; z-index: 1; }
.elis-scene picture, .elis-scene img { display: block; width: 100%; height: 100%; }
.elis-scene img { object-fit: cover; object-position: center top; }
.elis-scene__words { position: absolute; left: max(7%, calc((100vw - 1200px) / 2)); top: 50%; transform: translateY(-50%); width: 43%; }
.elis-scene__words h2 { font-family: "Lora", Georgia, serif; font-size: clamp(3rem, 5.4vw, 5.9rem); font-weight: 500; line-height: 1.04; letter-spacing: -.045em; margin: 0; text-wrap: balance; }
.elis-scene__words p { font-size: clamp(1rem, 1.35vw, 1.25rem); margin: 24px 0 0; max-width: 23rem; }
.elis-scenes__pause:not(:focus-visible) { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; padding: 0; border: 0; }
.elis-scenes__pause:focus-visible { position: absolute; z-index: 3; bottom: 20px; left: 24px; padding: 12px 20px; background: var(--atelier-cream); color: var(--atelier-plum); border-radius: 28px; }
.elis-keepsake { display: grid; grid-template-columns: .94fr 1fr; gap: clamp(40px, 8vw, 116px); align-items: center; padding-block: 75px 100px; }
.elis-keepsake__portrait { display: block; border-radius: 48% 48% 18px 18px; overflow: hidden; transform: rotate(-3deg); background: #e2c4cd; }
.elis-keepsake__portrait img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 68%; transition: transform 500ms ease; }
.elis-keepsake__portrait:hover img { transform: scale(1.025); }
.elis-keepsake__copy h2 { font: 500 clamp(2rem, 3.15vw, 3rem)/1.17 "Lora", Georgia, serif; margin: 0 0 24px; letter-spacing: -.04em; }
.elis-keepsake__copy h2 em { font-style: italic; font-weight: 500; color: #865569; }
.elis-keepsake__copy > p { font-size: 1.05rem; max-width: 29rem; margin: 0; }
.elis-keepsake__steps { list-style: none; display: grid; gap: 23px; padding: 0; margin: 30px 0; }
.elis-keepsake__steps li { display: grid; grid-template-columns: 28px 1fr; gap: 15px; }
.elis-keepsake__steps li > span { color: #85546a; font-size: .8rem; padding-top: 4px; }
.elis-keepsake__steps h3 { font: 600 1.02rem/1.4 "Source Sans 3", system-ui, sans-serif; margin: 0 0 3px; }
.elis-keepsake__steps p { font-size: .98rem; line-height: 1.5; margin: 0; max-width: 26rem; }
.elis-soft-action { display: inline-flex; align-items: center; justify-content: center; padding: 13px 29px; min-height: 48px; background: var(--atelier-plum); color: #fff8f1; text-decoration: none; border-radius: 40px; }
.elis-soft-action:hover { background: #713d57; }
.elis-keepsake__copy .elis-keepsake__terms { font-size: .84rem; line-height: 1.5; margin-top: 13px; color: #6d515e; }
.elis-world { display: grid; grid-template-columns: .82fr 1.1fr; gap: 10%; align-items: start; padding-block: 30px 70px; }
.elis-world > a { display: block; text-decoration: none; min-width: 0; }
.elis-world img { width: 100%; object-fit: cover; transition: border-radius 500ms ease; }
.elis-world__gift img { aspect-ratio: 4 / 4.6; object-position: center 68%; border-radius: 20px 20px 48% 48%; }
.elis-world__collection { padding-top: 110px; }
.elis-world__collection img { aspect-ratio: 1.13; object-position: 72% center; border-radius: 48% 48% 20px 20px; }
.elis-world h3 { font: 500 clamp(2rem, 3.5vw, 3.2rem)/1.15 "Lora", Georgia, serif; letter-spacing: -.035em; margin: 24px 0 8px; }
.elis-world p { margin: 0; font-size: 1.05rem; }
.elis-world a:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; }
.elis-voices-editorial.elis-customer-voices { border: 0; padding-block: 65px 100px; background: transparent; }
.elis-voices-editorial .elis-customer-voices__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12%; }
.elis-voices-editorial .elis-customer-voices__list figure { border: 0; background: transparent; padding: 0; margin: 0; }
.elis-voices-editorial blockquote { margin: 0; padding: 0; border: 0; }
.elis-voices-editorial blockquote p { font: 500 clamp(1.6rem, 2.3vw, 2.2rem)/1.35 "Lora", Georgia, serif; letter-spacing: -.02em; color: #654156; margin: 0; }
.elis-voices-editorial figcaption { margin-top: 15px; font-size: .85rem; color: #715769; }
.elis-voices-editorial figcaption a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 4px; }
.elis-cafe-note { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 8%; padding-block: 20px 100px; }
.elis-cafe-note figure { margin: 0; }
.elis-cafe-note img { width: 100%; height: auto; aspect-ratio: 1.25; object-fit: cover; border-radius: 22px 110px 22px 22px; }
.elis-cafe-note h2 { font: 500 clamp(1.9rem, 3vw, 2.9rem)/1.18 "Lora", Georgia, serif; letter-spacing: -.035em; margin: 0 0 22px; }
.elis-cafe-note p { margin: 0 0 20px; font-size: 1.02rem; }
.elis-cafe-note strong { font-weight: 600; }
.elis-cafe-note address { font-style: normal; font-size: .95rem; line-height: 1.6; }
.elis-cafe-note .elis-cafe-note__custom { font-size: .88rem; margin: 22px 0 0; color: #745561; max-width: 28rem; }
.site-footer { border: 0; background: #e4d1d8; color: var(--atelier-plum); padding-block: 36px 16px; }
.site-footer .frame { width: min(88%, 1200px); }
.site-footer h3 { color: var(--atelier-plum); font-weight: 600; font-size: .94rem; text-transform: none; letter-spacing: 0; }
.site-footer a, .site-footer .elis-cookie-settings { color: inherit; }
.site-footer__brand, .site-footer__brand picture, .site-footer__brand img { width: 145px; }
.site-footer__intro p { max-width: 16rem; font-size: 1rem; }
.site-footer .elis-channel-link { text-decoration: none; }
.site-footer .elis-channel-link:hover { text-decoration: underline; }
.site-footer .site-footer__end { border-color: #bda0ae; color: #604351; font-size: .8rem; gap: 20px; }

.site-footer .site-footer__legal { display: flex; flex-wrap: wrap; gap: 5px 18px; }
.site-footer .site-footer__legal a, .site-footer .elis-cookie-settings { min-height: 44px; display: inline-flex; align-items: center; }
.route-opening__media, .elis-detail-story > img { border-radius: 24px; overflow: hidden; }
.route-opening__media img { border-radius: inherit; }
.route-actions .action-primary, .elis-order-form button, .elis-order-form .action-primary { border-radius: 32px; }
.elis-order-guide .elis-guide-step, .elis-order-request, .elis-trust-faq { border-radius: 22px; }
@media (max-width: 900px) {
  .site-header .site-header__inner { min-height: 76px; width: calc(100% - 28px); padding: 4px 0; grid-template-columns: 44px 1fr 44px; grid-template-areas: "menu brand actions"; gap: 0 10px; }
  .site-header .brand-name--logo { justify-self: center; }
  .site-header .brand-name--logo, .site-header .brand-name--logo picture, .site-header .brand-name--logo img { width: 108px; }
  .site-header .menu-button { grid-area: menu; display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; border: 0; background: transparent; color: var(--atelier-plum); padding: 0; border-radius: 50%; }
  .site-header .menu-button svg path { transform-origin: 12px 12px; transition: transform 180ms ease; }
  .site-header .menu-button[aria-expanded="true"] .menu-line--top { transform: translateY(4px) rotate(45deg); transform-origin: 12px 8px; }
  .site-header .menu-button[aria-expanded="true"] .menu-line--bottom { transform: translateY(-4px) rotate(-45deg); transform-origin: 12px 16px; }
  .site-header .primary-navigation, html[data-text-scale="large"] .site-header .primary-navigation { display: none; position: absolute; top: 100%; left: 0; z-index: 3; max-height: calc(100dvh - 76px); overflow-y: auto; width: 100%; border: 0; box-shadow: 0 18px 25px #38273414; background: var(--atelier-cream); transform: none; opacity: 1; visibility: visible; padding: 14px 7% 28px; border-radius: 0 0 28px 28px; }
  .site-header .primary-navigation[data-open="true"], html[data-text-scale="large"] .site-header .primary-navigation[data-open="true"] { display: block; }
  .site-header .primary-navigation ul { display: grid; grid-template-columns: 1fr; gap: 2px; }
  .site-header .primary-navigation li { margin: 0; border: 0; }
  .site-header .primary-navigation a { min-height: 52px; padding: 8px 0; font-size: 1.25rem; }
  .elis-scene__words h2 { font-size: clamp(2.8rem, 6.5vw, 4rem); }
  .elis-keepsake { gap: 6%; padding-block: 50px 65px; }
  .elis-keepsake__copy h2 { font-size: 2.2rem; }
  .elis-keepsake__portrait img { aspect-ratio: 2 / 3; }
  .elis-world__collection { padding-top: 65px; }
  .elis-cafe-note { gap: 6%; padding-bottom: 65px; }
}
@media (max-width: 767px) {
  .elis-keepsake { grid-template-columns: 1fr; gap: 36px; padding-top: 38px; }
  .elis-keepsake__portrait { width: 78%; max-width: 420px; margin: 0 auto; }
  .elis-keepsake__portrait img { aspect-ratio: 4 / 5; }
  .elis-keepsake__copy { max-width: 540px; margin: 0 auto; }
  .elis-keepsake__copy h2 { font-size: clamp(2rem, 5vw, 2.7rem); }
  .elis-world { gap: 7%; padding-top: 5px; }
  .elis-voices-editorial.elis-customer-voices { padding-block: 40px 65px; }
  .elis-voices-editorial .elis-customer-voices__list { gap: 8%; }
  .elis-cafe-note { grid-template-columns: 1fr; gap: 30px; }
  .elis-cafe-note figure { width: 96%; }
  .elis-cafe-note img { aspect-ratio: 1.5; border-top-right-radius: 85px; }
  .elis-cafe-note > div { max-width: 500px; }
}
@media (max-width: 600px) {
  .elis-scenes { height: auto; aspect-ratio: 2 / 3; max-height: none; }
  .elis-scene img { object-position: center; }
  .elis-scene__words { top: 6%; left: 7%; width: 86%; transform: none; }
  .elis-scene__words h2 { font-size: clamp(2.1rem, 8.5vw, 3.15rem); line-height: 1.06; }
  .elis-scene__words p { font-size: .97rem; margin-top: 13px; }
  .elis-world { grid-template-columns: 1fr; gap: 48px; padding-bottom: 38px; }
  .elis-world__gift { width: 84%; }
  .elis-world__gift img { aspect-ratio: 4 / 4.2; }
  .elis-world__collection { width: 91%; justify-self: end; padding-top: 0; }
  .elis-world__collection img { aspect-ratio: 1.16; }
  .elis-world h3 { font-size: 2.25rem; margin-top: 20px; }
  .elis-voices-editorial .elis-customer-voices__list { grid-template-columns: 1fr; gap: 30px; }
  .elis-voices-editorial .elis-customer-voices__list figure { max-width: 30rem; }
  .elis-voices-editorial blockquote p { font-size: 1.65rem; }
  .elis-cafe-note { padding-bottom: 60px; }
  .site-footer { padding-top: 32px; }
  .site-footer .site-footer__legal { column-gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .elis-scenes .elis-scene, .elis-keepsake__portrait img, .elis-world img, .site-header .menu-button svg path { transition: none; }
}
html[data-text-scale="large"] .elis-scenes { min-height: 700px; }
html[data-text-scale="large"] .elis-scene__words { width: 80%; top: 6%; transform: none; padding: 12px; background: #fbf1ebee; border-radius: 12px; }
html[data-text-scale="large"] .elis-keepsake, html[data-text-scale="large"] .elis-cafe-note { grid-template-columns: 1fr; }

@media (max-width: 360px) {
}

.site-footer p, .site-footer .elis-channel-label { color: var(--atelier-plum); }

body.elis-page .elis-soft-action { color: #fff8f1; }
#app .elis-keepsake__steps h3 { font-family: "Source Sans 3", system-ui, sans-serif; }
#app .elis-voices-editorial blockquote p { font-family: "Lora", Georgia, serif; }
#app .site-header .menu-button { border-radius: 50% !important; }
#app .elis-scenes__pause:focus-visible { border-radius: 28px !important; }
@media (max-width: 900px) {
  html[data-text-scale="large"] .site-header .site-header__inner { grid-template-columns: 44px minmax(0, 1fr) 44px; grid-template-areas: "menu brand actions"; }
}

:root { --atelier-type: "Lora", Georgia, serif; --ink: #3e2939; --ink-soft: #6b5262; --berry: #70465e; --berry-dark: #513448; --line: #cbb6c1; }
body.elis-page { background: #fbf1eb; }
#app :where(h1, h2, h3, blockquote), #app .elis-scene__words h2, #app .elis-voices-editorial blockquote p { font-family: var(--atelier-type); font-weight: 500; letter-spacing: -.035em; }
#app :where(h1, h2, h3) { text-wrap: balance; }
#app :where(.elis-keepsake__steps h3, .elis-order-steps h3, .site-footer h3) { font-family: "Source Sans 3", system-ui, sans-serif; font-weight: 600; letter-spacing: 0; }
#app :where(.action-primary, .action-secondary, .primary-button, .secondary-button, .elis-button, .elis-catalog-entry__cart, .elis-catalog-entry__link) { border-radius: 28px !important; }
body.elis-page .action-primary, #app .elis-product-add { background: var(--atelier-plum) !important; border-color: var(--atelier-plum) !important; }
#app :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) { border-radius: 12px !important; }
#app :where(input, textarea, select) { accent-color: var(--atelier-plum); }
#app :where(.elis-soft-action, .action-primary, .primary-button):focus-visible { outline-color: #126b82; outline-offset: 5px; }
.elis-eyebrow { font-size: .82rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; margin: 0 0 20px; }
.elis-menu-backdrop[hidden] { display: none !important; }
.elis-menu-backdrop { display: none; }
.elis-scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #f8eee6e8 0%, #f8eee6bd 25%, #f8eee640 49%, transparent 64%); }
.elis-scene__words { z-index: 2; width: 39%; }
#app .elis-scene__words h2 { font-size: clamp(2.7rem, 4.5vw, 4.8rem); line-height: 1.12; font-weight: 600; }
.elis-scene__words p { font-weight: 500; }
body.elis-page .elis-scene--xv { color: #fff9f3; }
.elis-scene--xv::after { background: linear-gradient(90deg, #211b23cf 0%, #211b23a6 27%, #211b2320 52%, transparent 68%); }
.elis-voices-heading { max-width: 44rem; margin-bottom: 36px; }
#app .elis-voices-heading h2 { font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.25; margin: 0 0 12px; }
.elis-voices-heading p { margin: 0; color: var(--ink-soft); font-size: 1rem; }
#app .elis-voices-editorial blockquote p { font-size: clamp(1.35rem, 1.85vw, 1.8rem); line-height: 1.5; }
.site-footer .site-footer__grid { display: grid; grid-template-columns: 1.1fr .65fr .85fr 1.5fr; gap: 32px; padding: 0 0 24px; border: 0; }
.site-footer .site-footer__intro { grid-column: auto; }
.site-footer__brand, .site-footer__brand picture, .site-footer__brand img { width: 112px; }
.site-footer .site-footer__intro p { font-size: .9rem; margin: 12px 0 0; max-width: 17ch; }
.site-footer h3 { margin: 0 0 8px; line-height: 1.5; }
.site-footer ul { padding: 0; margin: 0; list-style: none; display: grid; gap: 0; }
.site-footer li a { min-height: 44px; display: inline-flex; align-items: center; font-size: .9rem; line-height: 1.4; padding: 4px 0; }
.site-footer .elis-footer-shopping { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; border: 0; }
.site-footer .elis-footer-shopping ul { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; }
.site-footer .elis-footer-shopping li { margin: 0; }
.site-footer .elis-channel-label { font-size: .88rem; gap: 8px; min-height: 36px; margin: 0; }
.site-footer .elis-channel-icon { width: 26px; height: 26px; flex-basis: 26px; }
.site-footer .site-footer__end { margin: 0; padding-top: 12px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 4px 24px; }
.site-footer .site-footer__legal { gap: 0 16px; }
.site-footer .elis-cookie-settings { padding: 0; font-size: inherit; }
.elis-journey { background: linear-gradient(180deg, #fbf1eb 20%, #f0e6ef 56%, #f8ede8 100%); overflow: clip; }
.elis-journey .frame, .elis-catalog-page .frame, .elis-product-page .frame { width: min(88%, 1200px); max-width: none; }
.elis-story-hero { position: relative; isolation: isolate; display: grid; align-items: center; min-height: clamp(540px, 49vw, 750px); background: #d5b1ba; }
.elis-story-hero > picture { position: absolute; inset: 0; z-index: -2; }
.elis-story-hero > picture img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.elis-story-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #fbefeadb 0%, #fbefeadb 27%, #fbefea50 46%, transparent 63%); }
.elis-story-hero__copy { width: 39%; margin-left: max(6%, calc((100vw - 1200px) / 2)); padding-block: 54px; }
#app .elis-story-hero h1 { font-size: clamp(2.5rem, 4.15vw, 4.4rem); line-height: 1.15; font-weight: 600; margin: 0 0 24px; max-width: none; }
.elis-story-hero__copy > p:not(.elis-eyebrow) { font-size: 1.12rem; line-height: 1.55; max-width: 29ch; margin: 0 0 24px; }
.elis-story-hero__copy .elis-hero-terms { font-size: .96rem !important; max-width: 34ch !important; }
.elis-story-hero--xv { color: #fff8f0; background: #6d5d53; }
.elis-story-hero--xv::before { background: linear-gradient(90deg, #211b23d9 0%, #211b239c 32%, #211b2320 53%, transparent 65%); }
body.elis-page .elis-story-hero--xv .elis-soft-action { color: #382b32; background: #f4e8e2; }
.elis-inspiration { display: grid; grid-template-columns: .85fr 1fr; gap: clamp(40px, 9vw, 130px); align-items: center; padding-block: 90px 55px; }
.elis-inspiration__photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 70%; border-radius: 46% 46% 24px 24px; }
.elis-inspiration--reverse .elis-inspiration__photo { order: 2; }
.elis-inspiration--reverse .elis-inspiration__photo img { border-radius: 24px 24px 46% 46%; }
#app .elis-inspiration h2, #app .elis-order-guide h2, #app .elis-order-request h2, #app .elis-buying-help h2 { font-size: clamp(1.9rem, 2.9vw, 2.8rem); line-height: 1.25; max-width: none; margin: 0 0 24px; }
.elis-inspiration__copy > p { max-width: 46ch; margin-bottom: 20px; }
.elis-inspiration__note { font-size: .94rem; color: var(--ink-soft); }
.elis-order-guide { display: grid; grid-template-columns: .65fr 1.35fr; column-gap: 7%; border: 0; padding-block: 65px; }
.elis-order-guide .home-section-heading { display: block; margin: 0; }
.elis-order-steps { grid-template-columns: 1fr 1fr; gap: 32px 36px; margin: 0; }
.elis-order-steps li { display: grid; grid-template-columns: 30px 1fr; align-content: start; gap: 12px; border: 0; padding: 0; }
.elis-order-steps li > span { font: 500 .85rem/1.7 "Source Sans 3", sans-serif; color: #875b70; padding-top: 1px; }
#app .elis-order-steps h3 { font-size: 1.05rem; line-height: 1.4; margin: 0 0 9px; }
.elis-order-steps p { font-size: .98rem; line-height: 1.6; }
.elis-guide-note { grid-column: 2; margin: 28px 0 0; font-size: .9rem; color: var(--ink-soft); }
.elis-order-request { border: 0; border-radius: 0; grid-template-columns: .8fr 1.2fr; gap: 9%; padding-block: 65px; }
.elis-order-request > div > p:not(.elis-eyebrow) { max-width: 39ch; margin-bottom: 20px; font-size: 1rem; }
.elis-order-form { gap: 20px; }
#app .elis-order-form input, #app .elis-order-form textarea, #app .gift-field select { background: #fffaf6; border: 1px solid #a88f9e; padding: 12px 14px; color: var(--ink); }
.elis-order-field small { font-size: .82rem; line-height: 1.45; }
.elis-order-field label { font-size: .94rem; }
.elis-order-form .action-primary { min-height: 48px; }
.elis-order-review { border: 0; padding: 24px; background: #eee0e9; border-radius: 24px; }
.elis-buying-help { border: 0; padding-block: 30px 80px; gap: 9%; }
.elis-buying-questions details { border-color: #d2bac7; padding: 0; }
.elis-buying-questions summary { min-height: 56px; padding: 16px 8px 16px 0; font-size: 1rem; }
.elis-buying-questions details p { margin: 0 0 16px; }
.elis-buying-questions details a { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: 12px; }
.elis-gift-opening { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; align-items: center; padding-block: 45px 65px; }
#app .elis-gift-opening h1 { font-size: clamp(2.6rem, 4.5vw, 4.5rem); line-height: 1.18; max-width: none; margin: 0 0 24px; }
.elis-gift-opening p:not(.elis-eyebrow) { font-size: 1.15rem; max-width: 32ch; margin-bottom: 28px; }
.elis-gift-opening > img { width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; object-position: center 70%; border-radius: 46% 46% 22px 22px; }
.elis-journey .gift-finder { border: 0; padding-block: 40px 65px; }
#app .gift-finder h2 { font-size: clamp(1.8rem, 2.5vw, 2.5rem); line-height: 1.3; margin-bottom: 28px; }
.elis-journey .gift-finder__form { border: 0; background: transparent; padding: 0; gap: 20px; }
#app .gift-finder__submit { min-width: 140px; padding: 12px 24px; white-space: nowrap; line-height: 1.4; border-radius: 28px !important; align-self: end; min-height: 48px; background: var(--atelier-plum); color: #fff8f2; }
.elis-gift-paths { display: grid; grid-template-columns: 1.1fr .85fr; align-items: start; gap: 10%; padding-block: 25px 60px; }
.elis-gift-paths > a { display: block; text-decoration: none; }
.elis-gift-paths > a:nth-child(2) { padding-top: 70px; }
.elis-gift-paths img { width: 100%; height: auto; aspect-ratio: 1.12; object-fit: cover; object-position: 70% center; border-radius: 24px 24px 45% 24px; }
.elis-gift-paths > a:nth-child(2) img { aspect-ratio: 4 / 5; object-position: center 65%; border-radius: 45% 45% 24px 24px; }
#app .elis-gift-paths h2 { font-size: clamp(1.8rem, 2.7vw, 2.7rem); line-height: 1.25; margin: 24px 0 14px; }
.elis-gift-paths p { max-width: 38ch; margin-bottom: 14px; }
.elis-gift-help { padding: 0 0 60px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 24px; }
.elis-gift-help p { margin: 0; }
.elis-catalog-page main, .elis-search-page main, .elis-product-page main, .elis-contact-route main { background: linear-gradient(145deg, #fbf1eb, #f5e9ef 65%, #f1ece8); }
#app .catalog-header { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 9%; padding-block: 48px 32px; border: 0; }
#app .catalog-header h1 { font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: 1.2; max-width: 16ch; }
.catalog-header__photo { display: block; width: 100%; aspect-ratio: 1.65; object-fit: cover; object-position: 72% center; border-radius: 110px 24px 100px 24px; }
.catalog-header__eyebrow { margin-bottom: 14px; font-size: .8rem; }
.catalog-header__description { max-width: 42ch; margin-top: 18px; }
#app .elis-collection-search > div, #app .elis-search-refine > div { gap: 8px; }
#app .elis-collection-search button, #app .elis-search-refine button { border-radius: 24px !important; }
.elis-live-catalog { padding-block: 32px 65px; border: 0; }
#app .elis-catalog-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 28px; border: 0; }
#app .elis-catalog-entry { display: flex; flex-direction: column; padding: 0; border: 0; gap: 0; background: transparent; min-width: 0; }
#app .elis-catalog-entry__media { width: 100%; min-width: 0; background: #f4e4e5; border: 0; border-radius: 100px 100px 18px 18px; overflow: hidden; }
#app .elis-catalog-entry__media a { display: block; width: 100%; }
#app .elis-catalog-entry__media img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }
#app .elis-catalog-entry__copy { padding: 18px 0 10px; }
#app .elis-catalog-entry h2 { font-size: 1.45rem; line-height: 1.3; margin: 0; }
#app .elis-catalog-entry__commerce { padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-top: auto; }
#app .elis-catalog-entry__price { width: 100%; text-align: left; font-size: 1.1rem; }
#app .elis-catalog-entry__link { min-height: 44px; text-decoration: underline; text-underline-offset: 4px; font-size: .94rem; }
#app .elis-catalog-entry__cart { font-size: .9rem; padding: 9px 17px; min-height: 44px; background: var(--atelier-plum); color: #fff8f3; }
body.elis-product-page #app .piece-opening { width: min(88%, 1200px); margin-inline: auto; border: 0; padding-block: 24px 65px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0 clamp(28px, 5vw, 72px); }
body.elis-product-page #app .piece-summary, body.elis-product-page #app .piece-purchase, body.elis-product-page #app .piece-gallery { border: 0; background: transparent; }
body.elis-product-page #app .piece-summary, body.elis-product-page #app .piece-purchase { width: 100%; min-width: 0; padding-inline: 0; }
body.elis-product-page #app .piece-gallery { min-width: 0; padding: 0; }
body.elis-product-page #app .piece-summary { padding-top: 20px; }
body.elis-product-page #app .piece-summary h1 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.22; }
#app .elis-product-gallery__stage { background: #f4e4e5; border-radius: 130px 130px 24px 24px; }
#app .elis-product-gallery__zoom { border-radius: 0 !important; }
#app .elis-product-gallery__zoom img { mix-blend-mode: multiply; }
#app .elis-product-gallery__thumb { border-radius: 14px !important; overflow: hidden; }
#app .elis-product-gallery__zoom-label { border-radius: 24px !important; }
body.elis-product-page #app .piece-purchase { padding-top: 24px; }
body.elis-product-page #app .piece-facts { border: 0; display: grid; grid-template-columns: minmax(0, 1fr); }
body.elis-product-page #app .piece-facts > div { display: grid; grid-template-columns: minmax(85px, .6fr) minmax(0, 1fr); }
body.elis-product-page #app .piece-purchase .route-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.elis-product-page #app .route-actions button { padding: 13px 18px; word-break: normal; overflow-wrap: normal; }
body.elis-product-page #app .piece-facts > div { border-color: #dcc9d4; }
.elis-product-reviews { border: 0; padding-block: 50px; }
#app .elis-product-reviews > h2 { font-size: 2rem; line-height: 1.3; }
#app .elis-contact-page { width: min(88%, 1100px); margin: auto; padding-block: 60px 80px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; align-items: start; }
#app .elis-contact-page h1 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); line-height: 1.2; max-width: 15ch; }
#app .elis-contact-page__form { border: 0; padding: 0; margin: 0; max-width: none; }
.elis-contact-photo { width: 100%; aspect-ratio: 1.35; object-fit: cover; object-position: 72% center; border-radius: 20px 80px 20px 80px; margin-top: 35px; }
#app .elis-contact-page__form :where(input, textarea, select) { background: #fffaf6 !important; }
#app .elis-cms-page { width: min(88%, 900px); padding-block: 35px 75px; }
#app .elis-cms-page h1 { font-size: clamp(2.1rem, 4vw, 3.8rem); line-height: 1.2; padding-bottom: 24px; border: 0; max-width: 22ch; }
#app .elis-cms-page__content { border: 0; max-width: 72ch; }
#app .elis-cms-page__content h2 { font-size: 1.65rem; line-height: 1.35; margin-top: 36px; }
#app .elis-cms-page__content :where(section, article) { border: 0; }
#app .elis-cms-page__content p, #app .elis-cms-page__content li { line-height: 1.8; }
body.elis-checkout-page, body.elis-page--shop-checkout-cart-index { background: #f8eee9; }
#app .elis-checkout-header { background: var(--atelier-plum); border: 0; }
#app .elis-checkout-intro h1 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.25; }
#app .elis-checkout-progress { border: 0; gap: 12px 28px; }
#app .elis-cart-summary { background: #eee1e9; padding: 26px; border-radius: 26px; }
body.elis-checkout-page #app :where(input, textarea, select) { background: #fffaf6; }
@media (max-width: 1100px) {
  .site-footer .site-footer__grid { grid-template-columns: 1fr .8fr 1fr; gap: 24px; }
  .site-footer .elis-footer-shopping { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
  .elis-order-guide { grid-template-columns: 1fr; gap: 24px; }
  .elis-guide-note { grid-column: 1; margin-top: 0; }
  .elis-order-guide .home-section-heading { display: flex; gap: 40px; align-items: center; }
}
@media (max-width: 900px) {
  html.elis-menu-open { overflow: hidden; }
  .site-header .site-header__inner { position: static; }
  .site-header .menu-button, .site-header .brand-name--logo, .site-header .site-header__actions { position: relative; z-index: 4; }
  .elis-menu-backdrop:not([hidden]) { display: block; position: fixed; inset: 76px 0 0; width: 100%; height: calc(100dvh - 76px); border: 0; background: #33253370; backdrop-filter: blur(3px); z-index: 2; }
  #app .elis-menu-backdrop { border-radius: 0 !important; }
  .elis-story-hero__copy { width: 43%; }
  #app .elis-story-hero h1 { font-size: clamp(2.2rem, 4.7vw, 3rem); }
}
@media (max-width: 767px) {
  .elis-inspiration { grid-template-columns: 1fr; gap: 32px; padding-block: 50px 25px; }
  .elis-inspiration__photo { width: 75%; max-width: 400px; margin-inline: auto; }
  .elis-inspiration--reverse .elis-inspiration__photo { order: 0; }
  .elis-inspiration__copy { max-width: 560px; margin-inline: auto; }
  .elis-order-guide { padding-block: 45px; }
  .elis-order-steps { gap: 28px; }
  .elis-order-steps li { grid-template-columns: 24px 1fr; gap: 10px; }
  .elis-order-steps p { grid-column: auto; }
  .elis-order-request { grid-template-columns: 1fr; gap: 24px; padding-block: 35px 50px; }
  .elis-order-request > div > p:not(.elis-eyebrow) { max-width: none; }
  .elis-order-form { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .elis-buying-help { grid-template-columns: 1fr; gap: 22px; padding-block: 10px 55px; }
  .elis-gift-opening { grid-template-columns: 1fr; gap: 28px; padding-block: 36px; }
  .elis-gift-opening > img { width: 82%; max-width: 420px; justify-self: end; aspect-ratio: 4 / 4.2; }
  .elis-gift-opening p:not(.elis-eyebrow) { max-width: none; }
  .elis-gift-paths { gap: 6%; }
  .elis-gift-paths > a:nth-child(2) { padding-top: 45px; }
  #app .catalog-header { grid-template-columns: 1fr; gap: 24px; padding-block: 30px 20px; }
  .catalog-header__photo { max-height: 220px; border-radius: 80px 20px 80px 20px; }
  #app .elis-catalog-index { gap: 30px 16px; }
  #app .elis-catalog-entry__media { border-radius: 60px 60px 14px 14px; }
  #app .elis-catalog-entry h2 { font-size: 1.17rem; }
  #app .elis-catalog-entry__commerce { gap: 4px; }
  #app .elis-catalog-entry__cart { padding-inline: 12px; width: 100%; }
  body.elis-product-page #app .piece-opening { width: 88%; }
  #app .elis-product-gallery__stage { border-radius: 75px 75px 18px 18px; }
  #app .elis-contact-page { grid-template-columns: 1fr; gap: 35px; padding-block: 35px 55px; }
  .elis-contact-photo { display: none; }
  .site-footer .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .site-footer .site-footer__intro { grid-column: 1 / -1; display: grid; grid-template-columns: 100px 1fr 44px; align-items: center; gap: 16px; }
  .site-footer__brand, .site-footer__brand picture, .site-footer__brand img { width: 100px; }
  .site-footer .site-footer__intro p { margin: 0; max-width: 22ch; font-size: .87rem; }
  .site-footer .elis-footer-shopping { flex-direction: column; align-items: start; gap: 8px; }
  .site-footer .elis-footer-shopping > div { width: 100%; }
  .site-footer .elis-footer-shopping > div:last-child { display: flex; gap: 6px 18px; flex-wrap: wrap; }
  .site-footer .site-footer__end { display: block; }
  .site-footer .site-footer__legal { margin-top: 8px; gap: 0 18px; }
}
@media (max-width: 600px) {
  .elis-scenes { aspect-ratio: auto; height: 165vw; min-height: 530px; max-height: 780px; }
  .elis-scene__words { top: 22px; left: 7%; width: 86%; }
  #app .elis-scene__words h2 { font-size: clamp(1.9rem, 8.2vw, 2.9rem); line-height: 1.12; }
  .elis-scene__words p { margin-top: 9px; font-size: .94rem; }
  .elis-scene::after { background: linear-gradient(180deg, #f8eee6eb 0%, #f8eee6b0 16%, transparent 40%); }
  .elis-scene--xv::after { background: linear-gradient(180deg, #211b23de 0%, #211b2399 17%, transparent 36%); }
  .elis-story-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; }
  .elis-story-hero > picture { position: relative; z-index: 0; order: 2; margin-top: -20px; }
  .elis-story-hero > picture img { height: auto; aspect-ratio: 2 / 3; object-position: center bottom; }
  .elis-story-hero__copy { width: auto; margin: 0; padding: 28px 6% 0; position: relative; z-index: 2; background: #f4e5e1; }
  .elis-story-hero__copy::after { content: ""; position: absolute; height: 110px; top: 100%; inset-inline: 0; background: linear-gradient(#f4e5e1, transparent); pointer-events: none; z-index: -1; }
  .elis-story-hero--xv .elis-story-hero__copy { background: #544b46; }
  .elis-story-hero--xv .elis-story-hero__copy::after { background: linear-gradient(#544b46, transparent); }
  .elis-story-hero::before { display: none; }
  .elis-story-hero .elis-eyebrow { margin-bottom: 14px; }
  #app .elis-story-hero h1 { font-size: clamp(2rem, 8.8vw, 3rem); line-height: 1.15; margin-bottom: 14px; }
  .elis-story-hero__copy > p:not(.elis-eyebrow) { font-size: 1rem; max-width: 35ch; margin-bottom: 14px; }
  .elis-story-hero__copy .elis-hero-terms { font-size: .88rem !important; }
  .elis-story-hero .elis-soft-action { min-height: 44px; padding: 10px 23px; }
  .elis-order-guide .home-section-heading { display: block; }
  .elis-order-steps { grid-template-columns: 1fr; gap: 23px; }
  .elis-gift-paths { grid-template-columns: 1fr; gap: 40px; }
  .elis-gift-paths > a:nth-child(2) { padding-top: 0; width: 88%; justify-self: end; }
  .elis-gift-paths > a:nth-child(2) img { aspect-ratio: 1; }
  .elis-order-form { grid-template-columns: 1fr; }
  #app .elis-contact-page h1 { max-width: none; }
}
@media (max-width: 360px) {
  .site-footer .site-footer__intro { grid-template-columns: 90px 1fr; gap: 12px; }
  .site-footer__brand, .site-footer__brand picture, .site-footer__brand img { width: 90px; }
  #app .elis-catalog-index { gap: 30px 12px; }
  #app .elis-catalog-entry__cart { font-size: .85rem; padding-inline: 8px; }
}
html[data-text-scale="large"] .elis-scene__words { width: 86%; top: 20px; color: #392936; background: #fbf1ebf5; }
html[data-text-scale="large"] .elis-scenes { min-height: 850px; }
html[data-text-scale="large"] .elis-story-hero__copy { width: 88%; }
@media (prefers-reduced-motion: reduce) {
  .elis-menu-backdrop { backdrop-filter: none; }
}
#app .elis-scene--xv h2, #app .elis-story-hero--xv :where(h1, p) { color: #fff8f0; }
html[data-text-scale="large"] #app .elis-scene--xv h2 { color: #392936; }
#app .elis-journey .gift-finder { background: transparent; padding-inline: 0; }
#app .gift-finder h2 { max-width: none; }
html[data-text-scale="large"] .elis-story-hero { display: flex; flex-direction: column; min-height: 0; }
html[data-text-scale="large"] .elis-story-hero > picture { position: relative; order: 2; z-index: 0; margin: 0; }
html[data-text-scale="large"] .elis-story-hero > picture img { height: auto; aspect-ratio: auto; }
html[data-text-scale="large"] .elis-story-hero__copy { width: auto; margin: 0; padding: 32px 6%; background: #f4e5e1; }
html[data-text-scale="large"] .elis-story-hero--xv .elis-story-hero__copy { background: #544b46; }
html[data-text-scale="large"] .elis-story-hero::before, html[data-text-scale="large"] .elis-story-hero__copy::after { display: none; }
html[data-text-scale="large"] .elis-order-form { grid-template-columns: 1fr; }
html[data-text-scale="large"] .site-footer .site-footer__grid { grid-template-columns: 1fr 1fr; }
html[data-text-scale="large"] .site-footer .site-footer__intro, html[data-text-scale="large"] .site-footer .elis-footer-shopping { grid-column: 1 / -1; }

/* The product grid is contained; its spacing must not depend on outer margins. */
@media (max-width: 900px) {
  body.elis-product-page #app .piece-opening { grid-template-columns: minmax(0, 1fr); gap: 0; }
  body.elis-product-page #app .piece-summary { grid-column: 1; grid-row: 1; padding-top: 0; }
  body.elis-product-page #app .piece-gallery { grid-column: 1; grid-row: 2; }
  body.elis-product-page #app .piece-purchase { grid-column: 1; grid-row: 3; }
}
.site-footer .site-footer__credit { display: inline-flex; min-height: 44px; align-items: center; gap: 5px; font-size: .85rem; }
.site-footer__credit a { text-decoration: underline; text-underline-offset: 4px; }
#app .elis-journey .gift-finder__form { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; }
#app .elis-journey .gift-field { min-width: 0; padding: 0; border: 0; }
@media (max-width: 1100px) {
  #app .elis-journey .gift-finder__form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #app .elis-journey .gift-finder__submit { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 767px) {
  #app .elis-journey .gift-finder__form { grid-template-columns: minmax(0, 1fr); }
  #app .elis-journey .gift-finder__submit { width: 100%; }
}

/* Compact link directory, using the storefront's approved oval logo. */
body.page-links { background: #fbf1eb; color: var(--atelier-plum); }
body.page-links .elis-cookie-settings-region { width: min(calc(100% - 40px), 440px); margin-inline: auto; padding: 0 0 20px; text-align: center; }
body.page-links .elis-cookie-settings-region .elis-cookie-settings { font-size: .8rem; }
#app .elis-links { width: min(calc(100% - 40px), 440px); margin-inline: auto; padding-block: 28px 20px; }
.elis-links__brand { display: block; width: 140px; margin: 0 auto; background: var(--atelier-plum); border-radius: 50%; }
.elis-links__brand img { display: block; width: 100%; height: auto; }
#app .elis-links__intro { margin: 16px 0 24px; font-size: 1rem; text-align: center; }
.elis-links__destinations { display: grid; }
.elis-links__destinations a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 12px; border-bottom: 1px solid #d7c3cd; font-size: 1rem; line-height: 1.4; text-decoration: none; }
#app .elis-links__catalog { background: var(--atelier-plum); color: #fff8f3; border: 1px solid var(--atelier-plum); border-radius: 2px; font-weight: 600; margin-bottom: 6px; }
#app .elis-links__catalog:hover { background: #382131; }
#app .elis-links h2 { margin: 22px 0 8px; font: 600 .95rem/1.4 'Source Sans 3', sans-serif; }
.elis-links__stores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.elis-links .elis-channel-label { display: flex; align-items: center; gap: 10px; min-height: 44px; min-width: 0; margin: 0; font-size: .95rem; line-height: 1.4; }
.elis-links .elis-channel-icon { width: 24px; height: 24px; flex: 0 0 24px; }
.elis-links__social { display: flex; justify-content: center; gap: 20px; margin-top: 20px; padding-top: 14px; border-top: 1px solid #d7c3cd; }
.elis-links__social .elis-channel-label { justify-content: center; width: 44px; }
.elis-links__social .elis-channel-label > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.elis-links__visit { display: flex; justify-content: center; align-items: center; min-height: 44px; margin-top: 4px; font-size: .95rem; }
.elis-links__credit { margin-top: 12px; text-align: center; font-size: .8rem; color: #6a5264; }
.elis-links__credit a { display: inline-flex; align-items: center; min-height: 44px; }
.elis-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.elis-links a:focus-visible, .site-footer a:focus-visible { outline: 3px solid var(--atelier-plum); outline-offset: 4px; }
.site-footer__stores, .site-footer__social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.site-footer a.elis-channel-label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; }
.site-footer__social { margin-top: 12px; gap: 4px 18px; }
.site-footer__social a { font-size: .9rem; }
.site-footer__stores { gap: 4px 20px; }
@media (max-width: 767px) {
  .site-footer .site-footer__intro { grid-template-columns: 100px minmax(0, 1fr); }
  .site-footer__social { grid-column: 1 / -1; margin-top: 0; }
}

body.elis-product-page #app .route-actions .elis-product-buy-now { width: 100%; min-height: 50px; display: inline-flex; justify-content: center; border: 1px solid var(--atelier-plum) !important; border-radius: 28px !important; text-decoration: none; background: transparent !important; }
body.elis-product-page #app .route-actions .elis-product-buy-now::after { content: none; }
@media (max-width: 600px) {
  body.elis-product-page #app .piece-purchase .route-actions { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}

