/*
Theme Name: MyMedi Child
Theme URI: https://peptas.com/
Author: PEPTAS
Description: Production child theme for the PEPTAS research catalog.
Template: mymedi
Version: 2.3.0
License: GNU General Public License v2 or later
Text Domain: mymedi-child
*/

@font-face {
    font-display: swap;
    font-family: "Font Awesome 5 Brands";
    font-style: normal;
    font-weight: 400;
    src: url("../mymedi/css/fonts/Fontawesome/fa-brands-400.woff2") format("woff2");
}

@font-face {
    font-display: swap;
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-weight: 900;
    src: url("../mymedi/css/fonts/Fontawesome/fa-solid-900.woff2") format("woff2");
}

:root {
    --peptas-ink: #10213d;
    --peptas-ink-soft: #34445d;
    --peptas-blue: #1A4792;
    --peptas-blue-dark: #11336b;
    --peptas-teal: #087a76;
    --peptas-green: #16805f;
    --peptas-red: #a7343d;
    --peptas-surface: #ffffff;
    --peptas-surface-soft: #f5f7fa;
    --peptas-surface-blue: #eef4ff;
    --peptas-line: #dbe2ea;
    --peptas-line-strong: #aeb9c8;
    --peptas-muted: #64748b;
    --peptas-shadow: 0 14px 38px rgba(16, 33, 61, 0.12);
    --peptas-material: rgba(248, 251, 255, 0.82);
    --peptas-material-strong: rgba(255, 255, 255, 0.94);
    --peptas-material-line: rgba(112, 132, 160, 0.24);
    --peptas-material-shadow: 0 12px 30px rgba(16, 33, 61, 0.1);
    --peptas-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --peptas-shell: 1240px;
}

html {
    scroll-behavior: smooth;
}

body.peptas-site-v2 {
    background: var(--peptas-surface);
    color: var(--peptas-ink-soft);
    font-family: var(--peptas-font-sans);
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: 0;
    margin: 0;
    overflow-x: hidden;
}

body.peptas-site-v2 h1,
body.peptas-site-v2 h2,
body.peptas-site-v2 h3,
body.peptas-site-v2 h4,
body.peptas-site-v2 h5,
body.peptas-site-v2 h6 {
    font-family: var(--peptas-font-sans);
    letter-spacing: 0;
}

.peptas-site-v2 *,
.peptas-site-v2 *::before,
.peptas-site-v2 *::after {
    box-sizing: border-box;
    letter-spacing: 0;
}

.peptas-site-v2 img {
    height: auto;
    max-width: 100%;
}

.peptas-site-v2 a {
    color: var(--peptas-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.peptas-site-v2 a:hover {
    color: var(--peptas-blue-dark);
}

.peptas-site-v2 button,
.peptas-site-v2 input,
.peptas-site-v2 select,
.peptas-site-v2 textarea {
    font: inherit;
    letter-spacing: 0;
}

/*
 * Keyboard focus restoration, site-wide.
 *
 * The parent reset switches every focus ring off with four !important rules:
 *   css/reset.css:15    *                                 { outline: 0 !important }
 *   css/reset.css:240   a:focus, input[type="submit"]     { outline: none !important }
 *   css/reset.css:1003  input:hover, input:focus          { outline: none !important }
 *   css/reset.css:1015  html input[type^="button"]:focus,
 *                       html input[type^="submit"]:focus  { outline: none !important }
 *
 * The strongest of those is (0,2,2). The selectors below are (0,2,3) and carry
 * !important themselves, so they win on specificity and do not depend on the child
 * stylesheet happening to load after the parent.
 *
 * :focus-visible is deliberate: pointer users see no change at all, keyboard and
 * assistive-technology users get a ring. This supersedes an earlier amber rule
 * that carried no !important and was therefore suppressed by the reset.
 */
html body.peptas-site-v2 a:focus-visible,
html body.peptas-site-v2 button:focus-visible,
html body.peptas-site-v2 input:focus-visible,
html body.peptas-site-v2 select:focus-visible,
html body.peptas-site-v2 textarea:focus-visible,
html body.peptas-site-v2 summary:focus-visible,
html body.peptas-site-v2 details:focus-visible,
html body.peptas-site-v2 [tabindex]:focus-visible,
html body.peptas-site-v2 [role="button"]:focus-visible,
html body.peptas-site-v2 [role="link"]:focus-visible,
html body.peptas-site-v2 [role="tab"]:focus-visible,
html body.peptas-site-v2 [contenteditable]:focus-visible {
    outline: 2px solid var(--peptas-blue, #1A4792) !important;
    outline-offset: 2px !important;
}

/*
 * The switch control hides its own input (1px box, opacity 0), so the ring has to
 * sit on the visible track rather than on the input.
 */
html body.peptas-site-v2 .peptas-switch input:focus-visible + span {
    outline: 2px solid var(--peptas-blue, #1A4792) !important;
    outline-offset: 3px !important;
}

/*
 * Dark surfaces. #1A4792 measures 1.81:1 against --peptas-ink (#10213d) and 1.72:1
 * against the teal final-CTA, both under the 3:1 that WCAG 2.1 SC 1.4.11 asks of a
 * focus indicator, so those areas take a light ring instead. The footer's own entries
 * left this list in stage S5 with the rest of the footer: the component now lives in
 * assets/css/peptas.css, and it carries its own light ring for the same reason.
 */
html body.peptas-site-v2 .peptas-skip-link:focus,
html body.peptas-site-v2 .peptas-skip-link:focus-visible,
html body.peptas-site-v2 .peptas-button--dark:focus-visible,
html body.peptas-site-v2 .peptas-synthesis-assurance__summary a:focus-visible {
    outline: 2px solid #f2f7ff !important;
    outline-offset: 2px !important;
}

.peptas-shell {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--peptas-shell);
    padding-left: 24px;
    padding-right: 24px;
    width: 100%;
}

.peptas-page-frame,
#main.peptas-main {
    background: var(--peptas-surface);
    max-width: none;
    width: 100%;
}

.peptas-skip-link {
    background: var(--peptas-ink);
    color: #fff !important;
    left: 16px;
    padding: 10px 16px;
    position: fixed;
    top: -80px;
    z-index: 1000000;
}

.peptas-skip-link:focus {
    top: 12px;
}

/*
 * The header, the research bar, the primary navigation and its panels, the header
 * actions, the search panel and the whole footer left this file in Phase 1 stage S5.
 * They were not overridden from assets/css/peptas.css but deleted here and rebuilt
 * there (sections 10 and 11), for the same reason the access gate was in S4: the old
 * header carried a backdrop-filter, a shadow and a cart badge, and an override would
 * have left each of them one specificity accident away from coming back. Deleted with
 * them: the payment band, its "Payment methods" heading and its payment marks; the
 * footer social row; and the cart count badge.
 */

.peptas-button,
.peptas-site-v2 .button,
.peptas-site-v2 button.button,
.peptas-site-v2 input.button,
.peptas-site-v2 input[type="submit"] {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 5px;
    cursor: pointer;
    display: inline-flex;
    font-size: 15px;
    font-weight: 750;
    justify-content: center;
    line-height: 1.2;
    min-height: 46px;
    padding: 12px 20px;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.peptas-button:hover,
.peptas-site-v2 .button:hover,
.peptas-site-v2 button.button:hover,
.peptas-site-v2 input.button:hover,
.peptas-site-v2 input[type="submit"]:hover {
    transform: translateY(-1px);
}

.peptas-button--primary,
.peptas-site-v2 .button,
.peptas-site-v2 button.button,
.peptas-site-v2 input.button,
.peptas-site-v2 input[type="submit"] {
    background: var(--peptas-blue);
    border-color: var(--peptas-blue);
    color: #fff !important;
}

.peptas-button--primary:hover,
.peptas-site-v2 .button:hover,
.peptas-site-v2 button.button:hover,
.peptas-site-v2 input.button:hover,
.peptas-site-v2 input[type="submit"]:hover {
    background: var(--peptas-blue-dark);
    border-color: var(--peptas-blue-dark);
    color: #fff !important;
}

.peptas-button--secondary {
    background: #fff;
    border-color: #aeb9c8;
    color: var(--peptas-ink) !important;
}

.peptas-button--secondary:hover {
    background: var(--peptas-surface-blue);
    border-color: var(--peptas-blue);
}

.peptas-button--dark {
    background: var(--peptas-ink);
    color: #fff !important;
}

.peptas-button--dark:hover {
    background: #07142a;
}

.peptas-button--light {
    background: #fff;
    color: var(--peptas-ink) !important;
}

.peptas-button--light:hover {
    background: var(--peptas-surface-blue);
}

.peptas-eyebrow {
    color: var(--peptas-teal);
    font-size: 13px;
    font-weight: 800;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.peptas-section {
    padding: 92px 0;
}

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

.peptas-section-heading h2{
    color: var(--peptas-ink);
    font-size: 38px;
    line-height: 1.16;
    margin: 0;
}

.peptas-section-heading p:not(.peptas-eyebrow) {
    font-size: 17px;
    margin: 14px auto 0;
    max-width: 720px;
}

.peptas-section-heading--centered {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.peptas-text-link {
    flex: 0 0 auto;
    font-weight: 750;
    text-decoration: none;
}

.peptas-catalog-hero {
    background: var(--peptas-surface-blue);
    border-bottom: 1px solid #d7e3f5;
}

.peptas-catalog-hero__inner {
    max-width: 900px;
    padding-bottom: 54px;
    padding-top: 54px;
}

.peptas-catalog-hero h1 {
    color: var(--peptas-ink);
    font-size: 46px;
    line-height: 1.12;
    margin: 4px 0 14px;
}

.peptas-catalog-hero p:last-child {
    color: #455b78;
    font-size: 17px;
    margin: 0;
    max-width: 780px;
}

.peptas-catalog-page {
    padding-bottom: 90px;
    padding-top: 46px;
}

.peptas-catalog-toolbar {
    align-items: center;
    border-bottom: 1px solid var(--peptas-line);
    display: flex;
    gap: 20px;
    justify-content: space-between;
    margin: 0 0 28px;
    padding-bottom: 18px;
}

.peptas-catalog-toolbar .woocommerce-result-count,
.peptas-catalog-toolbar .woocommerce-ordering {
    float: none;
    margin: 0;
}

.peptas-catalog-toolbar .woocommerce-result-count {
    color: var(--peptas-muted);
    font-size: 13px;
}

.peptas-pagination {
    display: flex;
    justify-content: center;
    margin-top: 42px;
}

.peptas-pagination .page-numbers {
    align-items: center;
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* paginate_links( type => list ) wraps each control in an <li>. The parent reset
   (mymedi/css/reset.css "ul li { list-style: disc inside none }") declares the marker
   directly on the li, and a direct declaration beats the "list-style:none" the li would
   otherwise inherit from the ul above -- so discs painted next to the buttons. Suppress
   the marker on the li itself. Scoped to .peptas-pagination so prose lists keep bullets. */
.peptas-pagination .page-numbers li {
    list-style: none;
}

.peptas-pagination a,
.peptas-pagination span.current {
    align-items: center;
    border: 1px solid var(--peptas-line);
    border-radius: 5px;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    min-width: 42px;
    padding: 0 12px;
    text-decoration: none;
}

.peptas-pagination span.current {
    background: var(--peptas-ink);
    border-color: var(--peptas-ink);
    color: #fff;
}

.peptas-catalog-empty {
    padding: 40px 0 70px;
}

.peptas-single-product-page {
    padding-bottom: 92px;
}

.peptas-commerce-breadcrumb {
    align-items: center;
    color: var(--peptas-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    gap: 8px;
    padding: 22px 0 34px;
}

.peptas-commerce-breadcrumb a {
    color: var(--peptas-blue-dark);
    text-decoration: none;
}

.peptas-single-product__overview {
    align-items: start;
    display: grid;
    gap: 72px;
    grid-template-columns: minmax(0, 1fr) minmax(380px, 0.82fr);
    padding-bottom: 72px;
}

.peptas-single-product__summary {
    min-width: 0;
    padding-top: 10px;
}

.peptas-single-product__summary h1 {
    color: var(--peptas-ink);
    font-size: 46px;
    line-height: 1.08;
    margin: 6px 0 18px;
    overflow-wrap: anywhere;
}

.peptas-single-product__short-description {
    color: #46566d;
    font-size: 16px;
    line-height: 1.7;
}

.peptas-single-product__short-description p {
    margin: 0 0 18px;
}

.peptas-single-product__meta {
    border-bottom: 1px solid var(--peptas-line);
    border-top: 1px solid var(--peptas-line);
    display: grid;
    gap: 0;
    margin: 28px 0;
}

.peptas-single-product__meta > div {
    display: grid;
    gap: 10px;
    grid-template-columns: 110px minmax(0, 1fr);
    padding: 11px 0;
}

.peptas-single-product__meta dt {
    color: var(--peptas-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.peptas-single-product__meta dd {
    color: var(--peptas-ink);
    font-size: 13px;
    font-weight: 650;
    margin: 0;
}

.peptas-single-product__support {
    align-items: flex-start;
    background: var(--peptas-surface-blue);
    border-left: 3px solid var(--peptas-blue);
    display: flex;
    gap: 13px;
    padding: 15px 16px;
}

.peptas-single-product__support i {
    color: var(--peptas-blue);
    margin-top: 5px;
}

.peptas-single-product__support p {
    font-size: 13px;
    line-height: 1.55;
    margin: 0;
}

.peptas-single-product__information {
    border-top: 1px solid var(--peptas-line);
    display: grid;
    gap: 70px;
    grid-template-columns: minmax(220px, 0.35fr) minmax(0, 1fr);
    padding: 70px 0;
}

.peptas-single-product__information > header {
    position: sticky;
    top: 136px;
}

.peptas-single-product__information > header h2 {
    color: var(--peptas-ink);
    font-size: 30px;
    line-height: 1.2;
    margin: 7px 0 0;
}

.peptas-single-product__content {
    min-width: 0;
}

.peptas-related-products {
    border-top: 1px solid var(--peptas-line);
    padding-top: 70px;
}

.peptas-check-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 26px 0 30px;
    padding: 0;
}

.peptas-check-list li {
    align-items: flex-start;
    display: flex;
    gap: 10px;
}

.peptas-check-list i {
    color: #63d6cf;
    margin-top: 5px;
}

.peptas-process-section {
    background: var(--peptas-surface-soft);
}

.peptas-process-list {
    counter-reset: none;
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.peptas-process-list li {
    background: #fff;
    border: 1px solid var(--peptas-line);
    display: flex;
    gap: 16px;
    min-height: 200px;
    padding: 26px 22px;
}

.peptas-process-list > li:first-child {
    border-radius: 7px 0 0 7px;
}

.peptas-process-list > li:last-child {
    border-radius: 0 7px 7px 0;
}

.peptas-process-list > li > span {
    align-items: center;
    background: var(--peptas-blue);
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 800;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.peptas-process-list h3 {
    color: var(--peptas-ink);
    font-size: 19px;
    margin: 0 0 9px;
}

.peptas-process-list p {
    font-size: 14px;
    margin: 0;
}

.peptas-page-hero {
    background: var(--peptas-surface-blue);
    border-bottom: 1px solid var(--peptas-line);
}

.peptas-page-hero__inner {
    padding-bottom: 48px;
    padding-top: 48px;
}

.peptas-page-hero h1 {
    color: var(--peptas-ink);
    font-size: 42px;
    line-height: 1.15;
    margin: 0;
    max-width: 900px;
    overflow-wrap: anywhere;
}

.peptas-page-layout {
    padding-bottom: 84px;
    padding-top: 56px;
}

.peptas-page-content {
    margin: 0;
    max-width: none;
}

.peptas-page-content > :first-child {
    margin-top: 0;
}

.peptas-page-content h2,
.peptas-page-content h3,
.peptas-page-content h4 {
    color: var(--peptas-ink);
    line-height: 1.25;
}

.peptas-page-content h2 {
    font-size: 31px;
    margin: 48px 0 18px;
}

.peptas-page-content h3 {
    font-size: 22px;
    margin: 32px 0 12px;
}

.peptas-page-content h4 {
    font-size: 18px;
}

.peptas-page-content [id],
.peptas-single-product__content [id] {
    scroll-margin-top: 130px;
}

.peptas-page-content p,
.peptas-page-content li {
    max-width: 900px;
}

.peptas-page-content table {
    border-collapse: collapse;
    display: block;
    max-width: 100%;
    overflow-x: auto;
    width: max-content;
}

.peptas-page-content th,
.peptas-page-content td {
    border: 1px solid var(--peptas-line);
    padding: 12px;
    text-align: left;
    vertical-align: top;
}

.peptas-page-content th {
    background: var(--peptas-surface-soft);
    color: var(--peptas-ink);
}

.peptas-content-lead {
    color: #42526a;
    font-size: 20px;
    line-height: 1.6;
    max-width: 850px;
}

.peptas-content-band {
    border-bottom: 1px solid var(--peptas-line);
    display: grid;
    gap: 50px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.75fr);
    padding: 52px 0;
}

.peptas-content-band:first-child {
    padding-top: 0;
}

.peptas-content-band:last-child {
    border-bottom: 0;
}

.peptas-content-band__media img {
    aspect-ratio: 1.25 / 1;
    object-fit: cover;
    width: 100%;
}

.peptas-fact-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 34px 0;
}

.peptas-fact-item,
.peptas-contact-method,
.peptas-service-detail {
    border: 1px solid var(--peptas-line);
    border-radius: 7px;
    padding: 22px;
}

.peptas-fact-item h3,
.peptas-contact-method h3,
.peptas-service-detail h3 {
    margin-top: 0;
}

.peptas-notice {
    background: var(--peptas-surface-blue);
    border-left: 4px solid var(--peptas-blue);
    margin: 28px 0;
    max-width: 920px;
    padding: 18px 20px;
}

.peptas-notice--warning {
    background: #fff5f2;
    border-left-color: var(--peptas-red);
}

.peptas-contact-layout {
    align-items: start;
    display: grid;
    gap: 56px;
    grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);
}

.peptas-contact-methods {
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.peptas-contact-method p {
    margin: 0;
}

.peptas-contact-form {
    background: var(--peptas-surface-soft);
    border: 1px solid var(--peptas-line);
    border-radius: 7px;
    padding: 30px;
}

.peptas-contact-form h2 {
    margin-top: 0;
}

body.peptas-site-v2 .peptas-contact-form,
body.peptas-site-v2 .peptas-contact-form label,
body.peptas-site-v2 .peptas-contact-form input,
body.peptas-site-v2 .peptas-contact-form select,
body.peptas-site-v2 .peptas-contact-form textarea,
body.peptas-site-v2 .peptas-contact-form button,
body.peptas-site-v2 .peptas-contact-form .peptas-form-help,
body.peptas-site-v2 .peptas-contact-form .wpcf7-list-item-label {
    font-family: var(--peptas-font-sans) !important;
}

.peptas-form-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.peptas-form-field--full {
    grid-column: 1 / -1;
}

.peptas-contact-form label {
    color: var(--peptas-ink);
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 6px;
}

.peptas-contact-form input[type="text"],
.peptas-contact-form input[type="email"],
.peptas-contact-form input[type="tel"],
.peptas-contact-form select,
.peptas-contact-form textarea,
.peptas-site-v2 .woocommerce input.input-text,
.peptas-site-v2 .woocommerce textarea,
.peptas-site-v2 .woocommerce select {
    background: #fff;
    border: 1px solid #aeb9c8;
    border-radius: 5px;
    color: var(--peptas-ink);
    min-height: 46px;
    padding: 10px 12px;
    width: 100%;
}

.peptas-contact-form textarea {
    border-radius: 5px !important;
    min-height: 150px;
    resize: vertical;
}

.peptas-contact-form .wpcf7-list-item {
    margin: 0;
}

.peptas-contact-form .wpcf7-acceptance label {
    align-items: flex-start;
    display: flex;
    font-weight: 500;
    gap: 8px;
}

.peptas-contact-form .wpcf7-acceptance input {
    flex: 0 0 auto;
    margin-top: 5px;
}

.peptas-synthesis-page {
    --peptas-synthesis-rule: #cfd9e7;
}

.peptas-synthesis-intro {
    align-items: center;
    display: grid;
    gap: 58px;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.8fr);
    padding-bottom: 64px;
}

.peptas-synthesis-intro__copy h2 {
    font-size: 38px;
    margin: 0 0 20px;
    max-width: 720px;
}

.peptas-synthesis-intro__copy > p:not(.peptas-eyebrow) {
    max-width: 760px;
}

.peptas-synthesis-intro__actions,
.peptas-service-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.peptas-synthesis-intro__media {
    margin: 0;
}

.peptas-synthesis-intro__media img {
    aspect-ratio: 604 / 344;
    border: 1px solid var(--peptas-line);
    border-radius: 7px;
    display: block;
    object-fit: cover;
    width: 100%;
}

.peptas-synthesis-intro__media figcaption {
    color: var(--peptas-ink-soft);
    font-size: 13px;
    line-height: 1.5;
    margin-top: 10px;
}

.peptas-synthesis-section {
    border-top: 1px solid var(--peptas-synthesis-rule);
    padding: 64px 0;
}

.peptas-synthesis-section__header {
    margin-bottom: 32px;
    max-width: 820px;
}

.peptas-synthesis-section__header h2,
.peptas-synthesis-assurance h2,
.peptas-synthesis-request h2 {
    margin-top: 0;
}

.peptas-capability-list {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.peptas-capability-list > div {
    border-top: 1px solid var(--peptas-synthesis-rule);
    padding: 26px 30px 26px 0;
}

.peptas-capability-list > div:nth-child(even) {
    border-left: 1px solid var(--peptas-synthesis-rule);
    padding-left: 30px;
    padding-right: 0;
}

.peptas-capability-list dt {
    color: var(--peptas-ink);
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 8px;
}

.peptas-capability-list dd {
    color: var(--peptas-ink-soft);
    line-height: 1.65;
    margin: 0;
}

.peptas-synthesis-process .peptas-process-list li {
    min-height: 220px;
}

.peptas-synthesis-assurance {
    align-items: start;
    display: grid;
    gap: 64px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
}

.peptas-synthesis-assurance__summary {
    background: var(--peptas-ink);
    border-radius: 7px;
    color: #e7edf6;
    padding: 30px;
}

.peptas-synthesis-assurance__summary h3 {
    color: #fff;
    font-size: 21px;
    margin: 0 0 20px;
}

.peptas-synthesis-assurance__summary .peptas-check-list {
    margin: 0;
}

.peptas-synthesis-restriction {
    margin: 0;
    max-width: none;
    padding: 28px 30px;
}

.peptas-synthesis-restriction h2 {
    font-size: 25px;
    margin: 0 0 14px;
}

.peptas-synthesis-restriction p:last-child {
    margin-bottom: 0;
}

.peptas-synthesis-faq {
    border-top: 1px solid var(--peptas-synthesis-rule);
    max-width: 900px;
}

.peptas-synthesis-faq details {
    border-bottom: 1px solid var(--peptas-synthesis-rule);
    padding: 0;
}

.peptas-synthesis-faq summary {
    color: var(--peptas-ink);
    cursor: pointer;
    font-size: 17px;
    font-weight: 760;
    line-height: 1.4;
    min-height: 58px;
    padding: 17px 44px 17px 0;
    position: relative;
}

.peptas-synthesis-faq summary::after {
    content: "+";
    font-size: 24px;
    font-weight: 500;
    position: absolute;
    right: 8px;
    top: 12px;
}

.peptas-synthesis-faq details[open] summary::after {
    content: "-";
}

.peptas-synthesis-faq details p {
    margin: 0;
    max-width: 800px;
    padding: 0 44px 22px 0;
}

.peptas-synthesis-request {
    align-items: start;
    background: var(--peptas-surface-blue);
    border: 1px solid var(--peptas-line);
    border-radius: 7px;
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
    margin-top: 64px;
    padding: 40px;
    scroll-margin-top: 130px;
}

.peptas-synthesis-request__guidance {
    position: sticky;
    top: 120px;
}

.peptas-synthesis-request__guidance ul {
    display: grid;
    gap: 10px;
    margin: 24px 0;
    padding-left: 20px;
}

.peptas-synthesis-form {
    background: #fff;
    margin: 0;
}

.peptas-synthesis-form .peptas-form-help {
    color: var(--peptas-ink-soft);
    display: block;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    margin-top: 5px;
}

.peptas-synthesis-form .peptas-form-choice {
    align-items: flex-start;
    display: flex;
    font-weight: 500;
    gap: 8px;
}

.peptas-synthesis-form .peptas-form-choice input {
    flex: 0 0 auto;
    margin-top: 5px;
}

.peptas-synthesis-form .wpcf7-submit {
    min-height: 48px;
}

.peptas-synthesis-form .peptas-form-trap {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    top: auto;
    width: 1px;
}

.peptas-site-v2 .cf-turnstile {
    margin: 14px 0;
    max-width: 100%;
}

.peptas-site-v2 .cf-turnstile iframe {
    max-width: 100%;
}

.peptas-site-v2 .cfturnstile-widget-label {
    color: var(--peptas-ink-soft);
    font-size: 14px !important;
    font-weight: 700;
}

.peptas-site-v2 .cf-turnstile-failed-text {
    color: var(--peptas-red);
    font-size: 14px;
    line-height: 1.5;
}

.peptas-policy {
    color: #3c4a5f;
    font-size: 15px;
    line-height: 1.72;
}

body.peptas-site-v2 .peptas-policy > :not(style):not(.peptas-policy-toc):not(.peptas-policy-toc-toggle) {
    margin-left: auto;
    margin-right: auto;
    max-width: 800px;
}

.peptas-policy-toc-toggle {
    align-items: center;
    background: var(--peptas-surface-soft);
    border: 1px solid var(--peptas-line);
    border-radius: 6px;
    color: var(--peptas-ink);
    cursor: pointer;
    display: none;
    font-family: var(--peptas-font-sans);
    font-size: 15px;
    font-weight: 750;
    gap: 10px;
    justify-content: space-between;
    margin: 20px 0 8px;
    min-height: 48px;
    padding: 12px 14px;
    text-align: left;
    width: 100%;
}

.peptas-policy-toc-toggle__meta {
    color: var(--peptas-muted);
    font-size: 12px;
    font-weight: 650;
    margin-left: auto;
}

.peptas-policy-toc-toggle i {
    font-size: 12px;
    transition: transform 160ms ease;
}

.peptas-policy-toc-toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.peptas-policy__summary,
.peptas-policy__toc {
    background: var(--peptas-surface-soft);
    border: 1px solid var(--peptas-line);
    border-radius: 6px;
    margin-bottom: 26px;
    max-width: 980px;
    padding: 22px;
}

.peptas-policy__toc ol,
.peptas-policy__toc ul,
.peptas-policy__toc li {
    list-style: none !important;
}

.peptas-policy__toc ol,
.peptas-policy__toc ul {
    margin-left: 0;
    padding-left: 0;
}

.peptas-policy__toc li::marker,
.peptas-policy__toc li::before {
    content: "" !important;
    display: none !important;
}

body.peptas-site-v2 .peptas-policy .peptas-policy-toc ol,
body.peptas-site-v2 .peptas-policy .peptas-policy-toc li {
    list-style: none !important;
}

body.peptas-site-v2 .peptas-policy .peptas-policy-toc ol {
    padding-left: 0 !important;
}

body.peptas-site-v2 .peptas-policy .peptas-policy-toc li::marker,
body.peptas-site-v2 .peptas-policy .peptas-policy-toc li::before {
    content: "" !important;
    display: none !important;
}

body.peptas-site-v2 .peptas-policy .peptas-policy-toc h2 {
    border-top: 0;
    padding-top: 0;
}

.peptas-policy h2 {
    border-top: 1px solid var(--peptas-line);
    font-size: 24px;
    padding-top: 30px;
}

.peptas-policy h3 {
    font-size: 18px;
}

@media (max-width: 700px) {
    .peptas-policy-toc-toggle {
        display: flex;
    }

    body.peptas-site-v2 .peptas-policy .peptas-policy-toc--enhanced {
        display: none;
        margin-top: 8px;
    }

    body.peptas-site-v2 .peptas-policy .peptas-policy-toc--enhanced.is-open {
        display: block;
    }
}

.peptas-product-notice,
.peptas-catalog-notice {
    background: #fff5f2;
    border-left: 4px solid var(--peptas-red);
    color: #57252b;
    font-size: 13px;
    line-height: 1.55;
    margin: 18px 0;
    padding: 14px 16px;
}

.peptas-product-notice a {
    color: #7f2430;
    font-weight: 700;
}

.peptas-catalog-notice {
    clear: both;
    margin: 0 0 26px;
}

.peptas-site-v2.woocommerce-page #main,
.peptas-site-v2.woocommerce #main {
    min-height: max(500px, calc(100vh - 200px));
}

.peptas-site-v2 .page-container,
.peptas-site-v2 .woocommerce.archive #main-content,
.peptas-site-v2 .woocommerce.single-product #main-content {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--peptas-shell);
    padding-left: 24px;
    padding-right: 24px;
    width: 100%;
}

.peptas-site-v2 .woocommerce .products .product,
.peptas-site-v2.woocommerce .products .product {
    border: 1px solid var(--peptas-line);
    border-radius: 7px;
    overflow: hidden;
}

.peptas-site-v2 .woocommerce div.product div.images img,
.peptas-site-v2 .woocommerce ul.products li.product img {
    background: var(--peptas-surface-soft);
    object-fit: contain;
}

.peptas-site-v2 .woocommerce-message,
.peptas-site-v2 .woocommerce-info {
    background: var(--peptas-surface-blue);
    border-top-color: var(--peptas-blue);
}

.peptas-site-v2 .woocommerce-error {
    background: #fff5f2;
    border-top-color: var(--peptas-red);
}

.peptas-site-v2 .woocommerce table.shop_table {
    border-color: var(--peptas-line);
    border-radius: 6px;
}

.peptas-site-v2 .woocommerce form.checkout_coupon,
.peptas-site-v2 .woocommerce form.login,
.peptas-site-v2 .woocommerce form.register {
    border-color: var(--peptas-line);
    border-radius: 6px;
}

.peptas-site-v2.single-product .site-content {
    background: #fff;
}

.peptas-site-v2.single-product .woocommerce-breadcrumb {
    color: var(--peptas-muted);
    font-size: 12px;
    margin: 22px 0 34px;
}

.peptas-site-v2.single-product .woocommerce-breadcrumb a {
    color: var(--peptas-blue-dark);
}

.peptas-site-v2 .woocommerce div.product .product_title {
    color: var(--peptas-ink);
    font-size: 46px;
    line-height: 1.08;
    margin-bottom: 16px;
}

.peptas-site-v2 .woocommerce div.product p.price,
.peptas-site-v2 .woocommerce div.product span.price {
    color: var(--peptas-blue-dark);
    font-size: 24px;
    font-weight: 800;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-product-details__short-description {
    color: #455469;
    font-size: 16px;
    line-height: 1.7;
    max-width: 650px;
}

.peptas-site-v2 .woocommerce div.product form.cart {
    align-items: stretch;
    display: flex;
    gap: 10px;
    margin: 24px 0;
}

.peptas-site-v2 .woocommerce div.product form.cart .quantity .qty {
    border: 1px solid var(--peptas-line-strong);
    border-radius: 5px;
    height: 48px;
    min-width: 72px;
}

.peptas-site-v2 .woocommerce div.product form.cart .button,
.peptas-site-v2 .woocommerce a.button,
.peptas-site-v2 .woocommerce button.button,
.peptas-site-v2 .woocommerce input.button {
    background: var(--peptas-red);
    border-radius: 5px;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    min-height: 46px;
    padding: 13px 20px;
}

.peptas-site-v2 .woocommerce div.product form.cart .button:hover,
.peptas-site-v2 .woocommerce a.button:hover,
.peptas-site-v2 .woocommerce button.button:hover,
.peptas-site-v2 .woocommerce input.button:hover {
    background: #8c2532;
    color: #fff;
}

.peptas-site-v2 .woocommerce div.product .product_meta {
    border-top: 1px solid var(--peptas-line);
    color: var(--peptas-muted);
    display: grid;
    font-size: 12px;
    gap: 8px;
    margin-top: 24px;
    padding-top: 18px;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs {
    clear: both;
    padding-top: 54px;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs {
    border-bottom: 1px solid var(--peptas-line);
    margin: 0 0 36px;
    padding: 0;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs::before,
.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    margin: 0 24px 0 0;
    padding: 0;
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--peptas-red);
}

.peptas-site-v2 .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: var(--peptas-ink);
    font-size: 14px;
    padding: 13px 0;
}

.peptas-product-information {
    color: #3c4a5f;
    font-size: 15px;
    line-height: 1.78;
    max-width: 920px;
}

.peptas-product-information__eyebrow {
    color: var(--peptas-red);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.peptas-product-information h2 {
    color: var(--peptas-ink);
    font-size: 25px;
    line-height: 1.25;
    margin: 38px 0 14px;
}

.peptas-product-information__eyebrow + h2 {
    margin-top: 0;
}

.peptas-product-information p {
    margin: 0 0 16px;
}

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

.peptas-product-facts > div {
    display: grid;
    gap: 4px;
    padding: 17px 18px;
}

.peptas-product-facts > div:nth-child(odd) {
    background: var(--peptas-surface-soft);
}

.peptas-product-facts dt {
    color: var(--peptas-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.peptas-product-facts dd {
    color: var(--peptas-ink);
    font-size: 14px;
    font-weight: 700;
    margin: 0;
}

.peptas-product-information__checks {
    display: grid;
    gap: 9px;
    list-style: none;
    margin: 18px 0 28px;
    padding: 0;
}

.peptas-product-information__checks li {
    padding-left: 24px;
    position: relative;
}

.peptas-product-information__checks li::before {
    color: var(--peptas-blue);
    content: "\2713";
    font-weight: 900;
    left: 0;
    position: absolute;
    top: 0;
}

.peptas-product-information__links {
    border-top: 1px solid var(--peptas-line);
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 30px;
    padding-top: 22px;
}

.peptas-product-information__links a {
    color: var(--peptas-blue-dark);
    font-size: 13px;
    font-weight: 800;
}

/*
 * The controlled-access gate lives in assets/css/peptas.css section 9 as of Phase 1 stage S4.
 * The rules that used to sit here — a dark blurred scrim, a 680px panel, a dark label bar and
 * Font Awesome tick marks — were not overridden but deleted, because the new design is the
 * absence of that chrome and an override would have left the scrim one specificity accident away
 * from coming back.
 */

/* First-party consent manager with equal first-layer accept and reject choices. */
.peptas-consent-banner {
    background: #fff;
    border-top: 1px solid var(--peptas-line);
    bottom: 0;
    box-shadow: 0 -10px 32px rgba(16, 33, 61, 0.14);
    color: var(--peptas-ink-soft);
    left: 0;
    position: fixed;
    right: 0;
    z-index: 2000000000;
}

.peptas-access-required .peptas-consent-root,
.peptas-consent-saved .peptas-consent-banner,
.peptas-consent-banner[hidden] {
    display: none;
}

.peptas-consent-banner__inner {
    align-items: center;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0 auto;
    max-width: var(--peptas-shell);
    padding: 18px 24px;
}

.peptas-consent-banner h2 {
    color: var(--peptas-ink);
    font-size: 17px;
    line-height: 1.3;
    margin: 0 0 4px;
}

.peptas-consent-banner p {
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 3px;
    max-width: 760px;
}

.peptas-consent-banner a,
.peptas-consent-dialog a {
    font-size: 13px;
}

.peptas-consent-banner__actions,
.peptas-consent-dialog__actions {
    display: grid;
    gap: 8px;
    grid-auto-columns: minmax(132px, 1fr);
    grid-auto-flow: column;
}

.peptas-consent-button {
    border-radius: 5px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 750;
    min-height: 44px;
    padding: 9px 14px;
}

.peptas-consent-button--primary {
    background: var(--peptas-blue);
    border: 1px solid var(--peptas-blue);
    color: #fff;
}

body.peptas-site-v2 .peptas-consent-button--primary {
    -webkit-text-fill-color: #fff;
    color: #fff !important;
}

.peptas-consent-button--primary:hover {
    background: var(--peptas-blue-dark);
    border-color: var(--peptas-blue-dark);
}

.peptas-consent-button--secondary {
    background: #fff;
    border: 1px solid var(--peptas-blue);
    color: var(--peptas-blue);
}

.peptas-consent-button--secondary:hover {
    background: var(--peptas-surface-blue);
}

body.peptas-site-v2 .peptas-consent-banner .peptas-consent-button {
    -webkit-text-fill-color: var(--peptas-ink);
    background: #fff;
    border: 1px solid #7d8da5;
    color: var(--peptas-ink) !important;
}

body.peptas-site-v2 .peptas-consent-banner .peptas-consent-button:hover {
    -webkit-text-fill-color: var(--peptas-blue-dark);
    background: var(--peptas-surface-blue);
    border-color: var(--peptas-blue);
    color: var(--peptas-blue-dark) !important;
}

.peptas-consent-dialog {
    align-items: center;
    display: grid;
    inset: 0;
    justify-items: center;
    overflow: auto;
    padding: 20px;
    position: fixed;
    z-index: 2100000000;
}

.peptas-consent-dialog[hidden] {
    display: none;
}

.peptas-consent-dialog__backdrop {
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    background: rgba(5, 16, 34, 0.66);
    inset: 0;
    position: fixed;
}

.peptas-consent-dialog__panel {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.35);
    color: var(--peptas-ink-soft);
    font-family: var(--peptas-font-sans);
    max-width: 680px;
    overflow: hidden;
    position: relative;
    width: 100%;
    z-index: 1;
}

.peptas-consent-dialog__header {
    align-items: flex-start;
    background: var(--peptas-ink);
    color: #fff;
    display: flex;
    justify-content: space-between;
    padding: 20px 24px;
}

.peptas-consent-dialog__eyebrow {
    color: #6de0d2;
    font-size: 11px;
    font-weight: 800;
    margin: 0 0 2px;
    text-transform: uppercase;
}

.peptas-consent-dialog__header h2 {
    color: #fff;
    font-size: 24px;
    line-height: 1.25;
    margin: 0;
}

.peptas-consent-dialog__close {
    align-items: center;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    height: 44px;
    justify-content: center;
    padding: 0;
    width: 44px;
}

.peptas-consent-dialog__content {
    padding: 22px 24px 8px;
}

.peptas-consent-dialog__content > p:first-child {
    font-size: 14px;
    margin: 0 0 18px;
}

.peptas-consent-category {
    align-items: center;
    border-top: 1px solid var(--peptas-line);
    display: flex;
    font-family: var(--peptas-font-sans);
    gap: 20px;
    justify-content: space-between;
    padding: 16px 0;
}

.peptas-consent-category h3,
.peptas-consent-category strong {
    color: var(--peptas-ink);
    display: block;
    font-size: 15px;
    margin: 0 0 3px;
}

.peptas-consent-category p,
.peptas-consent-category small {
    color: #5a6a80;
    display: block;
    font-size: 12px;
    line-height: 1.5;
    margin: 0;
}

.peptas-consent-category__required {
    color: var(--peptas-green);
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 800;
}

.peptas-switch {
    display: inline-flex;
    flex: 0 0 auto;
    position: relative;
}

.peptas-switch input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.peptas-switch span {
    background: #aeb9c8;
    border-radius: 18px;
    cursor: pointer;
    display: block;
    height: 30px;
    position: relative;
    transition: background 160ms ease;
    width: 52px;
}

.peptas-switch span::after {
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    content: "";
    height: 22px;
    left: 4px;
    position: absolute;
    top: 4px;
    transition: transform 160ms ease;
    width: 22px;
}

.peptas-switch input:checked + span {
    background: var(--peptas-blue);
}

.peptas-switch input:checked + span::after {
    transform: translateX(22px);
}

.peptas-switch input:focus-visible + span {
    outline: 3px solid #f3b61f;
    outline-offset: 3px;
}

.peptas-switch input:disabled + span {
    cursor: not-allowed;
    opacity: 0.52;
}

.peptas-consent-gpc {
    background: #eef8f6;
    border-left: 3px solid var(--peptas-teal);
    color: #315a56;
    font-size: 12px;
    margin: 8px 0 12px;
    padding: 10px 12px;
}

.peptas-consent-gpc[hidden] {
    display: none !important;
}

.peptas-consent-dialog__links {
    font-size: 12px;
    margin: 10px 0 14px;
}

.peptas-consent-dialog__actions {
    border-top: 1px solid var(--peptas-line);
    padding: 16px 24px 20px;
}

body.peptas-consent-dialog-open {
    overflow: hidden;
}

@media (max-width: 760px) {
    .peptas-consent-banner__inner {
        gap: 10px;
        grid-template-columns: 1fr;
        padding: 12px 14px 14px;
    }

    .peptas-consent-banner__actions {
        gap: 6px;
        grid-auto-columns: minmax(0, 1fr);
        grid-auto-flow: column;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .peptas-consent-dialog__actions {
        grid-auto-flow: row;
        grid-template-columns: 1fr;
    }

    .peptas-consent-banner h2 {
        font-size: 16px;
    }

    .peptas-consent-banner p,
.peptas-consent-banner a {
        font-size: 12px;
    }

    .peptas-consent-banner .peptas-consent-button {
        font-size: 12px;
        line-height: 1.2;
        min-height: 46px;
        padding: 8px 5px;
    }

    .peptas-consent-dialog {
        align-items: start;
        padding: 12px;
    }

    .peptas-consent-dialog__header,
.peptas-consent-dialog__content,
.peptas-consent-dialog__actions {
        padding-left: 18px;
        padding-right: 18px;
    }
}

@media (max-width: 1100px) {

    .peptas-single-product__overview {
        gap: 44px;
        grid-template-columns: minmax(0, 1fr) minmax(350px, 0.82fr);
    }

    .peptas-single-product__information {
        gap: 42px;
    }

    

    

}

@media (max-width: 880px) {

    

    

    

    

    
.peptas-content-band,
.peptas-contact-layout,
.peptas-synthesis-intro,
.peptas-synthesis-assurance,
.peptas-synthesis-request {
        grid-template-columns: 1fr;
    }

    .peptas-synthesis-intro__media {
        max-width: 760px;
    }

    .peptas-synthesis-request__guidance {
        position: static;
    }

    

    
.peptas-process-list,
.peptas-fact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .peptas-single-product__overview {
        gap: 36px;
        grid-template-columns: 1fr;
        padding-bottom: 58px;
    }

    .peptas-single-product__summary {
        max-width: 760px;
    }

    .peptas-single-product__information {
        gap: 26px;
        grid-template-columns: 1fr;
        padding: 56px 0;
    }

    .peptas-single-product__information > header {
        position: static;
    }

    .peptas-process-list > li:first-child,
.peptas-process-list > li:last-child {
        border-radius: 0;
    }
}

@media (max-width: 680px) {
    .peptas-shell {
        padding-left: 18px;
        padding-right: 18px;
    }

    

    .peptas-section {
        padding: 66px 0;
    }

    .peptas-section-heading {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 28px;
    }

    .peptas-section-heading h2{
        font-size: 30px;
    }

    

    

    

    .peptas-page-hero__inner {
        padding-bottom: 34px;
        padding-top: 34px;
    }

    .peptas-page-hero h1 {
        font-size: 34px;
    }

    .peptas-synthesis-intro {
        gap: 34px;
        padding-bottom: 48px;
    }

    .peptas-synthesis-intro__copy h2 {
        font-size: 30px;
    }

    .peptas-synthesis-intro__actions,
.peptas-service-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .peptas-synthesis-intro__actions .peptas-button,
.peptas-service-actions .peptas-button {
        justify-content: center;
        width: 100%;
    }

    .peptas-synthesis-section {
        padding: 48px 0;
    }

    .peptas-capability-list {
        grid-template-columns: 1fr;
    }

    .peptas-capability-list > div,
.peptas-capability-list > div:nth-child(even) {
        border-left: 0;
        padding: 22px 0;
    }

    .peptas-synthesis-assurance {
        gap: 28px;
    }

    .peptas-synthesis-assurance__summary,
.peptas-synthesis-restriction,
.peptas-synthesis-request,
.peptas-synthesis-form {
        padding: 24px;
    }

    .peptas-synthesis-request {
        gap: 28px;
        margin-left: -6px;
        margin-right: -6px;
        margin-top: 48px;
    }

    .peptas-catalog-hero__inner {
        padding-bottom: 38px;
        padding-top: 38px;
    }

    .peptas-catalog-hero h1 {
        font-size: 34px;
    }

    .peptas-catalog-hero p:last-child {
        font-size: 16px;
    }

    .peptas-catalog-page {
        padding-bottom: 68px;
        padding-top: 34px;
    }

    .peptas-catalog-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 12px;
    }

    .peptas-single-product-page {
        padding-bottom: 68px;
    }

    .peptas-commerce-breadcrumb {
        padding: 18px 0 26px;
    }

    .peptas-single-product__overview {
        gap: 30px;
        padding-bottom: 48px;
    }

    .peptas-single-product__summary h1 {
        font-size: 34px;
    }

    .peptas-single-product__information {
        padding: 48px 0;
    }

    .peptas-related-products {
        padding-top: 48px;
    }

    .peptas-site-v2 .woocommerce div.product .product_title {
        font-size: 34px;
    }

    .peptas-site-v2 .woocommerce div.product form.cart {
        flex-wrap: wrap;
    }

    .peptas-product-facts {
        grid-template-columns: 1fr;
    }

    .peptas-product-facts > div:nth-child(even) {
        background: #fff;
    }

    .peptas-page-layout {
        padding-bottom: 62px;
        padding-top: 40px;
    }

    .peptas-contact-form {
        padding: 20px;
    }

    .peptas-form-field--full {
        grid-column: auto;
    }

}

@media (max-width: 420px) {

    .peptas-single-product__meta > div {
        gap: 3px;
        grid-template-columns: 1fr;
    }
}

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

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

/* The parent theme hardcodes its own vendor blue in nine rules of mymedi/style.css. That
   stylesheet is load-bearing and must not be edited, so the rules are restated here at equal
   specificity: the child sheet loads after the parent, so source order carries the override.
   None of these selectors currently render on this site, but the components remain reachable
   through the parent templates, so the values are pinned to the brand token. */
.owl-nav > .owl-prev,
.owl-nav > .owl-next {
    background: var(--peptas-blue, #1A4792);
}

.vc_custom_heading {
    color: var(--peptas-blue, #1A4792) !important;
}

.ts-social-icons .social-icons li.custom .ts-tooltip {
    background-color: var(--peptas-blue, #1A4792);
}

.ts-social-icons .social-icons li.custom .ts-tooltip:before,
.ts-social-icons .social-icons li.custom a:hover {
    color: var(--peptas-blue, #1A4792);
}

.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range:before {
    background: var(--peptas-blue, #1A4792);
}

.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
    background: var(--peptas-blue, #1A4792);
}

.widget_calendar caption {
    background: var(--peptas-blue, #1A4792);
}

.meta-wrapper .stock-quantity > span {
    color: var(--peptas-blue, #1A4792);
}

body .wc-block-components-notice-banner .wc-block-components-notice-banner__content a:not(.button) {
    color: var(--peptas-blue, #1A4792);
}

/* Illustrative office imagery: inert figures, not clickable or zoomable */
.peptas-illustration {
    margin: 28px 0;
    pointer-events: none;
    -webkit-user-select: none;
    user-select: none;
}

.peptas-illustration img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
}

.peptas-illustration figcaption {
    margin-top: 6px;
    font-size: 11px;
    line-height: 1.5;
    color: var(--peptas-muted, #64748b);
}

/*
 * Reduced-scale illustrations.
 *
 * The illustrative office photography carries less visual weight than the product
 * and documentation imagery around it. The reduction works by making the slot the
 * photograph sits in smaller - a narrower media column, a shorter card banner, a
 * tighter inset in the running text - and then letting the image fill that smaller
 * slot edge to edge. An image is never shrunk inside a slot it no longer fills, so
 * no side gutters or vertical voids are introduced: the neighbouring text column
 * takes back the width the media gives up, and the media unit is centred against
 * it so the space above and below stays symmetric.
 *
 * Display-size change only: image files, srcset candidates and intrinsic
 * width/height attributes are untouched, so the browser still picks from the same
 * source set and the reserved aspect ratios still hold.
 */

:root {
    /* Width of an inset figure standing in a single-column text flow. */
    --peptas-illustration-inset: 72%;
}

/* ---- Inset figures in a single-column text flow -------------------------- */

.peptas-illustration.peptas-illustration--reduced {
    margin: 30px auto;
}

.peptas-illustration.peptas-illustration--reduced img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: var(--peptas-illustration-inset);
}

.peptas-illustration.peptas-illustration--reduced figcaption {
    text-align: center;
}

/* ---- Two-column content bands -------------------------------------------- */

.peptas-content-band:has(> .peptas-content-band__media--reduced) {
    align-items: center;
}

.peptas-content-band:has(> .peptas-content-band__media--reduced:first-child) {
    grid-template-columns: minmax(0, 0.52fr) minmax(0, 1fr);
}

.peptas-content-band:has(> .peptas-content-band__media--reduced:last-child) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.52fr);
}

.peptas-content-band__media.peptas-content-band__media--reduced img {
    display: block;
    width: 100%;
}

.peptas-content-band__media.peptas-content-band__media--reduced .peptas-illustration__caption {
    text-align: center;
}

/* ---- Custom-synthesis intro ---------------------------------------------- */

.peptas-synthesis-intro:has(> .peptas-synthesis-intro__media--reduced) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.52fr);
}

.peptas-synthesis-intro__media.peptas-synthesis-intro__media--reduced {
    margin: 0;
}

.peptas-synthesis-intro__media.peptas-synthesis-intro__media--reduced img {
    /*
     * The source is 3:2; the full-width treatment cropped it to a 604/344
     * letterbox. At the reduced column width the natural ratio crops less and
     * gives the media enough height to sit level with the copy beside it.
     */
    aspect-ratio: 3 / 2;
    display: block;
    width: 100%;
}

.peptas-synthesis-intro__media.peptas-synthesis-intro__media--reduced figcaption {
    text-align: center;
}

/* ---- Front page quality band --------------------------------------------- */

/* ---- Front page service cards -------------------------------------------- */
/*
 * The card banner stays full-bleed. Inset inside the card it left white margins on
 * three sides and read as an accident rather than as a decision, so its visual
 * weight comes down through a shorter banner crop instead, which keeps the card's
 * top edge and its corner radius intact.
 */

/* ---- Narrow viewports ----------------------------------------------------- */

@media (max-width: 1024px) {
    .peptas-content-band:has(> .peptas-content-band__media--reduced:first-child),
    .peptas-content-band:has(> .peptas-content-band__media--reduced:last-child),
    .peptas-synthesis-intro:has(> .peptas-synthesis-intro__media--reduced){
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    :root {
        --peptas-illustration-inset: 92%;
    }

    
}
