/* Francestle — a shared paper, cocoa and champagne editorial finish.
   Loaded after the page styles. Home composition is managed separately. */
body.storefront {
    --editorial-paper: #faf7ef;
    --editorial-surface: #fffdf8;
    --editorial-ink: #302218;
    --editorial-muted: #70604f;
    --editorial-line: #e0d7c8;
    --editorial-gold: #89612d;
    --editorial-cocoa: #2b1c14;
    --editorial-champagne: #e9d2a1;
    --editorial-section: clamp(56px, 6.5vw, 92px);
    --editorial-ease: cubic-bezier(.22, .68, .22, 1);
    --editorial-type-body: 1rem;
    --editorial-type-support: .875rem;
    --editorial-type-control: .8125rem;
    --editorial-type-meta: .75rem;
    --editorial-leading-body: 1.75;
    --editorial-measure-body: 68ch;
    color: var(--editorial-ink);
    background-color: var(--editorial-paper);
    font-size: var(--editorial-type-body);
    line-height: var(--editorial-leading-body);
    text-rendering: optimizeLegibility;
}

/* One reading scale across company information, enquiry help and navigation.
   Campaign composition and the product-detail ramp retain their own roles. */
.storefront :is(.about-page, .contact-page, .certificates-page, .collection-masthead) :is(h1, h2, h3) {
    text-wrap: balance;
    overflow-wrap: break-word;
}
.storefront :is(.about-hero-intro, .about-story-copy > p:not(.eyebrow), .about-capabilities dd,
    .about-partnership-copy > p:not(.eyebrow), .about-discovery-copy > p:not(.eyebrow),
    .contact-intro-copy, .contact-section-heading > p:not(.eyebrow), .contact-enquiry-card p,
    .contact-visit-intro, .cert-hero-note p, .cert-enquiry-copy > p:not(.eyebrow),
    .oem-enquiry-heading > p:not(.eyebrow)) {
    max-inline-size: var(--editorial-measure-body);
    font-size: var(--editorial-type-body);
    line-height: var(--editorial-leading-body);
    text-wrap: pretty;
    overflow-wrap: break-word;
}
.storefront :is(.breadcrumbs, .product-brand, .contact-location-type, .footer-contact-label,
    .footer-channel-label, .product-photo-status, .detail-code) {
    font-size: var(--editorial-type-meta);
    line-height: 1.6;
}
.storefront :is(.filter-group label, .filter-note, .filter-toolbar, .product-count) {
    font-size: var(--editorial-type-control);
    line-height: 1.6;
}
.storefront :is(.journey-note p:not(.eyebrow), .footer-identity > p, .enquiry-basket-delivery-note,
    .enquiry-field-error, .oem-enquiry-field-error) {
    font-size: var(--editorial-type-support);
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.storefront :is(.spotlight-scroll-hint, .discovery-top, .discovery-top > span, .about-archive .eyebrow) {
    font-size: var(--editorial-type-meta);
    line-height: 1.6;
}
.storefront :is(.contact-address address, .contact-location-card address) {
    font-size: var(--editorial-type-body);
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.storefront :is(.product-count, .selection-count, .product-photo-status) { font-variant-numeric: tabular-nums; }
.storefront .announcement {
    min-height: 32px;
    font-size: var(--editorial-type-meta);
    line-height: 1.5;
}

/* Quiet typographic hierarchy across company, visit and product information. */
.storefront :is(.about-page, .contact-page, .certificates-page) h2 {
    font-size: clamp(31px, 3.2vw, 45px);
    line-height: 1.15;
    letter-spacing: -.032em;
}
.storefront :is(.about-page, .contact-page, .certificates-page) h2 em {
    font-style: normal;
    color: var(--editorial-gold);
}
.storefront :is(.about-hero h1, .contact-intro h1, .cert-hero h1) {
    font-size: clamp(42px, 4.8vw, 66px);
    line-height: 1.1;
    letter-spacing: -.04em;
}
.storefront :is(.about-hero, .contact-hero, .cert-hero) {
    background: var(--editorial-cocoa);
    border-bottom-color: #6c5137;
}
.storefront .about-partnership h2 em { color: var(--editorial-champagne); }
.storefront :is(.about-page, .contact-page, .certificates-page) :is(p, dd) {
    text-wrap: pretty;
}
.storefront :is(.about-section-heading, .contact-section-heading, .cert-section-heading) {
    margin-bottom: clamp(24px, 3vw, 38px);
}

/* Gold is reserved for action and emphasis, rather than a frame on every layer. */
.storefront .button {
    border-radius: 3px;
    box-shadow: none;
    letter-spacing: .005em;
}
.storefront .button-outline {
    background: transparent;
    border-color: #bba88b;
}
.storefront :is(.text-link, .footer-invitation-secondary) {
    text-decoration-thickness: 1px;
    text-underline-offset: .4em;
}
.storefront .text-link { border-bottom-color: #b9aa92; }
.storefront :is(a, button, summary, input, textarea, select):focus-visible {
    outline-width: 2px;
    outline-offset: 4px;
}

/* A single image surface and a clear caption make the collection a gallery. */
.storefront .collection-masthead {
    background: var(--editorial-cocoa);
    border-bottom-color: #6c5137;
}
.storefront .collection-masthead::before { opacity: 0; }
.storefront .collection-masthead h1 {
    font-size: clamp(44px, 5.3vw, 72px);
    line-height: 1.07;
}
.storefront .collection-brand-link { background: transparent; border-color: var(--editorial-line); }
.storefront .collection-brand-link[aria-current] { background: #f0e7d6; border-color: #c5ac85; }
.storefront .catalog-filters {
    border: 0;
    border-top: 1px solid #bda37b;
    border-radius: 0;
    padding-inline: 0;
    background: transparent;
    box-shadow: none;
}
.storefront .filter-group { border-color: var(--editorial-line); }
.storefront .filter-note { border-color: var(--editorial-line); background: transparent; }
.storefront:not(.page-home) .product-grid { gap: 36px 24px; }
.storefront:not(.page-home) .product-grid .product-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.storefront:not(.page-home) .product-grid .product-visual {
    margin: 0;
    border: 1px solid #e7dfd3;
    border-radius: 3px;
    background: #fff;
    box-shadow: none;
}
.storefront:not(.page-home) .product-grid .product-image-link {
    aspect-ratio: 1;
    background: #fff;
}
.storefront:not(.page-home) .product-grid .product-image-link img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: clamp(20px, 2.3vw, 34px);
    mix-blend-mode: normal;
}
.storefront:not(.page-home) .product-grid .product-card-info { padding: 20px 1px 0; }
.storefront:not(.page-home) .product-grid .product-brand { font-size: var(--editorial-type-meta); letter-spacing: .1em; line-height: 1.6; }
.storefront:not(.page-home) .product-grid .product-card h3 {
    min-height: 2.7em;
    margin-top: 8px;
    font-size: clamp(18px, 1.65vw, 23px);
    line-height: 1.3;
    letter-spacing: -.02em;
}
.storefront:not(.page-home) .product-grid .product-card-bottom { margin-top: auto; padding-top: 14px; }
.storefront:not(.page-home) .product-grid .card-arrow {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.storefront:not(.page-home) .product-grid .quick-view-button {
    border-top-color: #e6dccb;
    background: #fffaf1f5;
}
.storefront:not(.page-home) .product-grid .save-button {
    border-color: #ded3c1;
    background: #fffdf8f2;
}
.storefront:not(.page-home) .product-grid .save-button[aria-pressed="true"] { background: #efdfbc; }

/* Product photography stays uncropped; the surrounding frame recedes. */
.storefront .gallery-product-page .product-detail .detail-image {
    padding: 0;
    border: 1px solid #e5dccf;
    border-radius: 3px;
    background: #fff;
    box-shadow: none;
}
.storefront .gallery-product-page .product-detail .detail-image-zoom {
    inset: 0;
    border: 0;
    border-radius: 2px;
    background: #fff;
}
.storefront .gallery-product-page .product-detail .detail-image-zoom > img {
    padding: clamp(20px, 3vw, 44px);
    object-fit: contain;
}
.storefront .gallery-product-page .detail-copy h1 {
    font-size: clamp(27px, 2.8vw, 39px);
    line-height: 1.22;
    letter-spacing: -.025em;
}
.storefront .gallery-product-page .product-notes {
    padding-inline: 0;
    padding-block: clamp(34px, 4vw, 56px);
    border-inline: 0;
    border-block: 1px solid var(--editorial-line);
    border-radius: 0;
    background: transparent;
}
.storefront .gallery-product-page .product-notes-image {
    border: 1px solid #e5dccf;
    border-radius: 3px;
    background: #fff;
    box-shadow: none;
}
.storefront .gallery-product-page .product-notes .detail-disclosure {
    border: 0;
    border-top: 1px solid var(--editorial-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.storefront .gallery-product-page .product-notes .detail-disclosure > summary { padding-inline-start: 0; }
.storefront .gallery-product-page .product-notes :is(.product-note-content, .product-note-empty, .detail-specs) { padding-inline: 0; }
.storefront .gallery-product-page .product-enquiry {
    border: 0;
    border-inline-start: 2px solid #c1a16d;
    border-radius: 0;
    background: #f1e9da;
}
.storefront .product-photo-rail { background: #f6f1e8; border-color: var(--editorial-line); }
.storefront .product-photo-rail--details { border: 0; border-top: 1px solid var(--editorial-line); border-radius: 0; }

/* Existing brand and certificate artwork remain intact and legible. */
.storefront .about-brand-card {
    border: 0;
    border-top: 1px solid var(--editorial-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.storefront .about-brand-name { border-color: var(--editorial-line); }
.storefront .about-quality {
    border: 0;
    border-inline-start: 2px solid #c1a16d;
    border-radius: 0;
    background: #f1e9da;
    box-shadow: none;
}
.storefront .cert-mark-grid { gap: clamp(14px, 2vw, 26px); }
.storefront .cert-mark-image {
    padding-block: clamp(20px, 2.6vw, 36px) 14px;
    border: 1px solid var(--editorial-line);
    border-radius: 3px;
    background: transparent;
}
.storefront .cert-mark-image:is(:hover, :focus-visible) { background: #f4ecde; border-color: #bba17a; }
.storefront .cert-mark-visual { height: clamp(82px, 9vw, 125px); }
.storefront .cert-mark-name { font-size: clamp(14px, 1.4vw, 18px); font-weight: 500; }
.storefront .certificates-page .cert-enquiry-card {
    border-inline: 0;
    border-block-color: var(--editorial-line);
    border-radius: 0;
    background: #f2eadc;
}

/* Visit details use one quiet surface without altering map controls or credit. */
.storefront .contact-information { border: 0; border-radius: 3px; background: #fbf7ee; box-shadow: none; }
.storefront .contact-enquiry-card { border: 0; border-radius: 3px; box-shadow: none; }
.storefront .contact-enquiry-product { background: #302016; }
.storefront .contact-visit { border-color: var(--editorial-line); background: #f2ece1; }
.storefront .contact-opening-hours { border: 0; border-radius: 3px; background: #302016; }
.storefront .visit-map { border-color: #d4c7b1; border-radius: 3px; box-shadow: none; }
.storefront .contact-location-card {
    border: 0;
    border-inline-start: 2px solid #c8b38d;
    border-radius: 0;
    background: #fffaf2;
}
.storefront .contact-location-card[data-location-selected] { border-inline-start-color: #89612d; }
.storefront .oem-enquiry {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1fr);
    gap: 28px clamp(28px, 5vw, 72px);
    padding: clamp(28px, 4vw, 50px) 0;
    border-inline: 0;
    border-block: 1px solid var(--editorial-line);
    border-radius: 0;
    background: transparent;
}
.storefront .oem-enquiry-heading { padding-top: 20px; }
.storefront .oem-enquiry-heading > p:not(.eyebrow) { max-width: 36ch; font-size: 14px; }
.storefront .oem-enquiry-heading h2 { font-size: clamp(31px, 3vw, 43px); }
.storefront .oem-enquiry form { min-width: 0; }
.storefront .oem-enquiry-success { grid-column: 2; }
.storefront .journey-note {
    margin-block: 0;
    padding: clamp(28px, 3vw, 42px) 0;
    border: 0;
    border-top: 1px solid var(--editorial-line);
    background: transparent;
    box-shadow: none;
}
.storefront .journey-note::before { content: none; }
.storefront .journey-note h2 { font-size: clamp(27px, 2.6vw, 37px); }
.storefront .journey-note p:not(.eyebrow) { max-width: 48ch; font-size: 13px; }
.storefront .journey-actions { gap: 10px 20px; }

/* The footer is an open invitation followed by useful, ordered information. */
.storefront .site-footer { border-top: 0; background: #2b1c14; }
.storefront .footer-invitation {
    margin-top: 0;
    padding: clamp(34px, 4.8vw, 64px) 0;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid #dcc29130;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.storefront .footer-invitation::before { content: none; }
.storefront .footer-invitation-copy h2 { font-size: clamp(35px, 3.6vw, 49px); letter-spacing: -.035em; }
.storefront .footer-invitation-copy h2 em { font-style: normal; color: #e9d2a1; }
.storefront .footer-invitation-description { max-width: 48ch; color: #dfd2c1; }
.storefront .site-footer .footer-main { gap: 32px clamp(24px, 3.8vw, 54px); padding-block: clamp(36px, 4.6vw, 62px); }
.storefront .site-footer .footer-links > a {
    border-bottom: 0;
    padding-block: 9px;
    min-height: 44px;
    color: #eadfd0;
}
.storefront .site-footer .footer-links > a > .icon { color: #bea47b; }
.storefront .site-footer .footer-main > .footer-identity > p { max-width: 28ch; color: #d2c2ac; }
.storefront .footer-contact-label, .storefront .footer-channel-label { color: #cdbb9e; }
.storefront .footer-contact-link > .icon { border: 0; padding: 0; width: 20px; height: 20px; border-radius: 0; }
.storefront .footer-channel-grid a { min-height: 44px; }
.storefront .footer-shop-links a { background: transparent; border-color: #a8906d66; border-radius: 3px; }
.storefront .footer-bottom { border-color: #dcc29130; color: #d0bfa7; }

@media (hover: hover) and (pointer: fine) {
    .storefront:not(.page-home) .product-grid .product-card:is(:hover, :focus-within) { box-shadow: none; }
    .storefront:not(.page-home) .product-grid .product-card:is(:hover, :focus-within) .product-visual { border-color: #bda47f; box-shadow: none; }
    .storefront .about-brand-card:hover { background: #f2ebdf; box-shadow: none; }
    .storefront .site-footer .footer-links > a:is(:hover, :focus-visible) { background: transparent; color: #f1d494; }
}
@media (max-width: 780px) {
    .storefront :is(.about-page, .contact-page, .certificates-page) h2 { font-size: clamp(30px, 7.7vw, 41px); }
    .storefront :is(.about-hero h1, .contact-intro h1, .cert-hero h1) { font-size: clamp(40px, 9vw, 56px); }
    .storefront .gallery-product-page .product-notes { padding-inline: 0; }
    .storefront .footer-invitation { gap: 24px; }
    .storefront .oem-enquiry { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .storefront .oem-enquiry-heading { padding-top: 0; }
    .storefront .oem-enquiry-heading > p:not(.eyebrow) { max-width: 48ch; }
    .storefront .oem-enquiry-success { grid-column: 1; }
    .storefront :is(.about-hero-intro, .about-story-copy > p, .about-capabilities dd,
        .about-partnership-copy > p:not(.eyebrow), .about-discovery-copy > p:not(.eyebrow),
        .contact-intro-copy, .contact-section-heading > p, .contact-enquiry-card p,
        .contact-visit-intro, .cert-hero-note p, .cert-enquiry-copy > p:not(.eyebrow),
        .oem-enquiry-heading > p:not(.eyebrow)) {
        font-size: var(--editorial-type-body);
        line-height: 1.75;
    }
    .storefront :is(.contact-address address, .contact-location-card address) {
        font-size: var(--editorial-type-body);
        line-height: 1.7;
        overflow-wrap: anywhere;
    }
    .storefront :is(.contact-detail dt, .contact-location-type,
        .footer-contact-label, .footer-channel-label, .product-photo-status, .detail-code) {
        font-size: var(--editorial-type-meta);
        line-height: 1.6;
    }
    .storefront :is(.contact-map-link, .contact-address .text-link) {
        font-size: var(--editorial-type-control);
        min-height: 44px;
    }
    .storefront .footer-contact-link {
        font-size: .9375rem;
        line-height: 1.7;
    }
    .storefront .footer-invitation-description {
        font-size: var(--editorial-type-body);
        line-height: 1.75;
    }
    .storefront .footer-bottom { font-size: var(--editorial-type-meta); line-height: 1.7; }
}
@media (max-width: 560px) {
    .storefront:not(.page-home) .product-grid { gap: 28px 14px; }
    .storefront:not(.page-home) .product-grid .product-card-info { padding-top: 15px; }
    .storefront:not(.page-home) .product-grid .product-card h3 { font-size: 17px; min-height: 3.9em; }
    .storefront:not(.page-home) .product-grid .product-image-link img { padding: 16px; }
    .storefront:not(.page-home) .product-grid .product-brand { font-size: var(--editorial-type-meta); }
    .storefront .gallery-product-page .detail-copy h1 { font-size: clamp(26px, 7vw, 33px); }
    .storefront .cert-mark-visual { height: 85px; }
    .storefront .cert-mark-grid { gap: 13px; }
    .storefront .site-footer .footer-main { gap: 30px; }
    .storefront .footer-invitation-actions { gap: 8px 18px; }
}
