
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/manrope-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../assets/manrope-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/manrope-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../assets/manrope-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../assets/manrope-4.ttf) format('truetype');
}

    /* BRAND TOKENS — change these to adjust the entire homepage. */
    :root {
      --green: var(--wp--preset--color--enosis-green, #005132);
      --green-dark: var(--wp--preset--color--green-dark, #003d29);
      --ink: var(--wp--preset--color--ink, #14392c);
      --lime: var(--wp--preset--color--lime, #d3ee93);
      --mint: var(--wp--preset--color--mint, #edf5ef);
      --paper: var(--wp--preset--color--paper, #ffffff);
      --muted: var(--wp--preset--color--muted, #58695f);
      --line: var(--wp--preset--color--line, #dce5de);
      --font: var(--wp--preset--font-family--manrope, 'Manrope', sans-serif);
      --radius: 22px;
      --container: 1280px;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; scroll-padding-top: 112px; }
    body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
    body.menu-open { overflow: hidden; }
    a { color: inherit; text-decoration: none; }
    button, input { font: inherit; }
    button { color: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    button { cursor: pointer; }
    img { max-width: 100%; display: block; }
    svg { flex: none; }
    h1, h2, h3, p { margin: 0; }
    h1, h2, h3 { font-weight: 650; }
    a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #538323; outline-offset: 5px; border-radius: 4px; }
    .on-dark a:focus-visible, .on-dark button:focus-visible, .on-dark summary:focus-visible { outline-color: var(--lime); }
    .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-link { position: fixed; left: 16px; top: -100px; padding: 12px 20px; background: var(--lime); z-index: 100; color: var(--green); border-radius: 8px; }
    .skip-link:focus { top: 16px; }
    .container { width: min(var(--container), calc(100% - 112px)); margin-inline: auto; }
    .eyebrow { font-size: .8125rem; font-weight: 750; letter-spacing: .135em; text-transform: uppercase; line-height: 1.5; }
    .section-heading { font-size: clamp(2.3rem, 3.7vw, 3.5rem); line-height: 1.12; letter-spacing: -.047em; }
    .section-heading .soft { color: #6b8c78; }
    .arrow { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
    .link-arrow { display: inline-flex; align-items: center; gap: 12px; font-size: .9375rem; font-weight: 700; }
    .link-arrow .arrow { transition: transform .22s ease; }
    .link-arrow:hover .arrow { transform: translateX(4px); }
    .link-arrow .label { border-bottom: 1px solid transparent; }
    .link-arrow:hover .label { border-bottom-color: currentColor; }
    .button { min-height: 54px; max-width: 100%; text-align: center; display: inline-flex; align-items: center; justify-content: center; gap: 22px; padding: 14px 24px; border-radius: 100px; border: 1px solid transparent; font-weight: 750; font-size: .9375rem; transition: background .2s ease, color .2s ease, transform .2s ease; }
    .button:hover { transform: translateY(-2px); }
    .button-lime { background: var(--lime); color: var(--green-dark); }
    .button-lime:hover { background: #e0f5b1; }
    .button-green { background: var(--green); color: white; }
    .button-green:hover { background: var(--green-dark); }
    .button-outline { border-color: #a8beb0; }
    .button-outline:hover { background: var(--mint); }
    .round-arrow { width: 47px; height: 47px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; transition: color .22s, background .22s, transform .22s; }
    .round-arrow .arrow { width: 20px; height: 20px; }
    .utility { height: 35px; background: var(--green); color: white; font-size: .75rem; }
    .utility-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
    .utility-message { letter-spacing: .05em; }
    .utility-links { display: flex; align-items: center; gap: 24px; }
    .utility-links a { min-height: 32px; display: inline-flex; align-items: center; gap: 7px; }
    .utility-links a:hover { color: var(--lime); }
    .utility-links .arrow { height: 13px; width: 13px; }
    .site-header { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.97); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
    .site-header.scrolled { border-bottom-color: var(--line); box-shadow: 0 4px 28px #003d2907; }
    .header-inner { height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
    .brand-home { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
    .brand-home img { width: 58px; height: 58px; object-fit: contain; }
    .brand-wordmark { font-size: 1.35rem; letter-spacing: .045em; line-height: 1.1; font-weight: 800; }
    .brand-wordmark small { display: block; font-size: .625rem; letter-spacing: .39em; font-weight: 650; margin-top: 7px; }
    .desktop-nav { display: flex; gap: clamp(22px, 2.5vw, 38px); margin-left: auto; align-items: center; }
    .desktop-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; font-weight: 650; position: relative; }
    .desktop-nav a::after { content: ''; position: absolute; bottom: 3px; left: 0; right: 0; height: 2px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .22s; }
    .desktop-nav a:hover::after, .desktop-nav a[aria-current="location"]::after { transform: scaleX(1); }
    .header-contact { min-height: 45px; font-size: .8125rem; padding: 10px 18px; margin-left: 18px; gap: 17px; }
    .menu-button { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: white; }
    .menu-button svg { width: 22px; height: 22px; stroke: var(--green); stroke-width: 1.5; fill: none; }
    .hero { margin: 0 24px; position: relative; isolation: isolate; background: var(--green); border-radius: var(--radius); overflow: hidden; color: white; display: grid; grid-template-columns: 47% 53%; min-height: 610px; }
    .hero-content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; padding: 66px max(34px, calc((100vw - 1280px) / 2 - 24px)); padding-right: 24px; }
    .hero .eyebrow { display: flex; align-items: center; gap: 12px; color: #d5e5d9; }
    .hero .eyebrow::before { content: ''; width: 30px; height: 1px; background: var(--lime); }
    h1 { font-size: clamp(3.9rem, 5.65vw, 5.6rem); line-height: 1.03; font-weight: 600; letter-spacing: -.065em; margin-top: 27px; }
    h1 span { display: block; }
    h1 .accent { color: var(--lime); }
    .hero-copy { font-size: 1rem; line-height: 1.75; max-width: 350px; margin-top: 26px; color: #e0e9e0; }
    .hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 30px; }
    .hero-actions .link-arrow { font-size: .875rem; }
    .hero-footer { display: flex; gap: 12px; align-items: center; margin-top: auto; padding-top: 44px; font-size: .75rem; letter-spacing: .01em; color: #d1e1d4; }
    .hero-footer .mini-line { width: 25px; height: 1px; background: #71947d; }
    .hero-media { min-width: 0; min-height: 610px; position: relative; }
    .hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; position: absolute; inset: 0; }
    .hero-media::before { content: ''; position: absolute; z-index: 1; width: 60px; height: 100%; top: 0; left: -1px; background: var(--green); clip-path: ellipse(100% 64% at 0 50%); }
    .hero-caption { position: absolute; bottom: 30px; right: 30px; z-index: 2; width: 231px; padding: 19px 21px; border-radius: 15px; color: var(--green-dark); background: rgba(255,255,255,.94); backdrop-filter: blur(12px); box-shadow: 0 5px 30px #153d2520; }
    .hero-caption small { font-size: .6875rem; letter-spacing: .09em; text-transform: uppercase; display: block; font-weight: 750; margin-bottom: 4px; }
    .hero-caption p { font-size: 1rem; line-height: 1.4; font-weight: 650; letter-spacing: -.015em; }
    .hero-caption-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
    .hero-caption .arrow { width: 18px; height: 18px; }
    .hero-caption:hover .arrow { transform: translate(2px,-2px); }
    .brand-strip { display: flex; align-items: center; gap: 46px; padding-block: 24px; border-bottom: 1px solid var(--line); }
    .brand-strip > p { flex: 0 0 173px; font-size: .8125rem; line-height: 1.6; color: var(--muted); }
    .brand-strip > p strong { color: var(--ink); font-weight: 700; }
    .brand-logos { display: flex; justify-content: space-around; gap: 32px; flex: 1; align-items: center; }
    .brand-logos a { width: 115px; height: 85px; display: grid; place-items: center; transition: transform .25s; }
    .brand-logos a:hover { transform: translateY(-4px); }
    .brand-logos img { width: 110px; height: 85px; object-fit: contain; }
    .section-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 42px; }
    .section-top .eyebrow { margin-bottom: 17px; }
    .section-top > .link-arrow { margin-bottom: 7px; flex-shrink: 0; }
    .brands-section { padding-block: 90px 96px; }
    .brand-grid { display: grid; grid-template-columns: 1.18fr 1fr 1fr; gap: 20px; margin-top: 38px; }
    .universe-card { min-width: 0; border-radius: 18px; overflow: hidden; position: relative; display: flex; flex-direction: column; min-height: 405px; padding: 26px; isolation: isolate; }
    .universe-card { background: #eaf1de; }
    .card-topline { display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 2; }
    .card-number { font-size: .75rem; color: #466252; }
    .category-tag { padding: 5px 11px; font-size: .6875rem; letter-spacing: .06em; font-weight: 700; border: 1px solid #14392c28; border-radius: 30px; text-transform: uppercase; }
    .product-stage { height: 240px; display: flex; justify-content: center; align-items: center; position: relative; margin-inline: -8px; }
    .product-stage::before { content: ''; position: absolute; width: 218px; height: 218px; border-radius: 50%; background: #ffffff65; z-index: -1; }
    .product-stage img { width: 90%; height: 228px; object-fit: contain; mix-blend-mode: multiply; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
    .product-stage.duo img { width: 57%; height: 222px; }
    .product-stage.duo img:first-child { margin-right: -24%; transform: translate(-25px,7px) rotate(-7deg); z-index: 1; }
    .product-stage.duo img:last-child { transform: translate(28px,-5px) rotate(6deg); }
    .universe-card:hover .product-stage > img { transform: translateY(-9px) rotate(-2deg); }
    .universe-card:hover .product-stage.duo img:first-child { transform: translate(-29px,0) rotate(-10deg); }
    .universe-card:hover .product-stage.duo img:last-child { transform: translate(31px,-14px) rotate(8deg); }
    .card-bottom { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
    .card-bottom h3 { font-size: 1.35rem; line-height: 1.28; letter-spacing: -.035em; }
    .card-bottom p { font-size: .8125rem; color: #526158; margin-top: 8px; }
    .card-bottom .round-arrow { width: 42px; height: 42px; flex-shrink: 0; }
    .universe-card:hover .round-arrow { background: var(--green); color: white; transform: rotate(-35deg); }
    .group-section { padding: 14px 0 100px; }
    .group-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 88px; align-items: center; }
    .group-art { background: var(--mint); border-radius: 20px; min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 32px; overflow: hidden; }
    .group-art > img { width: 262px; height: 262px; object-fit: contain; position: relative; z-index: 1; }
    .group-art::before { content: ''; width: 335px; height: 335px; border: 1px solid #c9ddcf; border-radius: 50%; position: absolute; }
    .group-art::after { content: ''; width: 430px; height: 430px; border: 1px solid #dce8df; border-radius: 50%; position: absolute; }
    .group-art p { font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; position: absolute; bottom: 26px; z-index: 1; }
    .group-content .eyebrow { margin-bottom: 21px; }
    .group-content > p { max-width: 560px; margin-top: 24px; color: var(--muted); line-height: 1.85; }
    .group-facts { display: grid; grid-template-columns: .9fr 1.1fr; gap: 25px; padding-block: 28px; margin-block: 26px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .fact-number { display: block; font-size: 2.55rem; letter-spacing: -.06em; line-height: 1.1; color: var(--green); }
    .fact-label { display: block; color: var(--muted); font-size: .8125rem; line-height: 1.6; margin-top: 8px; }
    .group-facts > div + div { border-left: 1px solid var(--line); padding-left: 30px; }
    .commitment-section { color: white; background: var(--green-dark); margin: 0 24px; border-radius: var(--radius); padding: 78px 0 76px; position: relative; overflow: hidden; }
    .commitment-inner { width: min(var(--container), calc(100% - 64px)); margin: auto; }
    .commitment-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: start; }
    .commitment-intro .eyebrow { color: #c0d5c6; margin-bottom: 25px; }
    .commitment-intro h2 { font-size: clamp(2.5rem, 3.9vw, 3.65rem); line-height: 1.14; letter-spacing: -.045em; }
    .commitment-intro h2 span { color: var(--lime); }
    .commitment-intro > p { color: #c7dace; max-width: 375px; margin-top: 25px; line-height: 1.8; }
    .commitment-intro > .link-arrow { color: var(--lime); margin-top: 31px; }
    .commitment-list { border-top: 1px solid #77968169; }
    .commitment-list details { border-bottom: 1px solid #77968169; padding-block: 23px; }
    .commitment-list summary { list-style: none; display: flex; align-items: center; gap: 22px; cursor: pointer; }
    .commitment-list summary::-webkit-details-marker { display: none; }
    .commitment-list .item-index { font-size: .75rem; color: #b5cdbb; padding-top: 2px; }
    .commitment-list .item-title { font-size: 1.24rem; letter-spacing: -.025em; font-weight: 650; line-height: 1.35; flex: 1; }
    .expand-icon { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #77968188; border-radius: 50%; }
    .expand-icon svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.5; fill: none; transition: transform .25s; }
    details[open] .expand-icon { background: var(--lime); color: var(--green-dark); border-color: var(--lime); }
    details[open] .expand-icon svg { transform: rotate(45deg); }
    .commitment-detail { padding: 14px 45px 3px 37px; color: #c7dace; font-size: .9375rem; line-height: 1.8; }
    .commitment-detail a { display: inline-block; color: var(--lime); border-bottom: 1px solid #d3ee9355; font-size: .875rem; margin-top: 13px; padding-block: 3px; }
    .commitment-detail a:hover { border-color: var(--lime); }
    .commitment-baseline { display: flex; align-items: center; gap: 15px; border-top: 1px solid #77968155; padding-top: 23px; margin-top: 44px; color: #bfd3c5; font-size: .8125rem; }
    .commitment-baseline svg { width: 22px; height: 22px; stroke: var(--lime); stroke-width: 1.4; fill: none; }
    .stories-section { padding-block: 96px; }
    .stories-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 24px; margin-top: 36px; }
    .story-main { position: relative; min-height: 420px; overflow: hidden; border-radius: 18px; background: #e8efe9; display: flex; flex-direction: column; }
    .story-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
    .story-main::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #002b20ef 0%, #002b2078 42%, #002b2000 72%); }
    .story-main:hover img { transform: scale(1.035); }
    .story-content { color: white; position: relative; z-index: 1; margin-top: auto; padding: 32px; }
    .story-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: .75rem; margin-bottom: 15px; }
    .story-tag { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; padding: 5px 10px; border: 1px solid #c0dac88c; border-radius: 30px; }
    .story-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
    .story-title-row h3 { font-size: 1.75rem; line-height: 1.25; letter-spacing: -.035em; max-width: 430px; }
    .story-title-row .round-arrow { flex-shrink: 0; }
    .story-side { background: var(--mint); border-radius: 18px; padding: 29px; display: flex; flex-direction: column; min-width: 0; }
    .story-side .story-meta { color: var(--muted); }
    .story-side .story-tag { border-color: #a3b6a5; }
    .story-side h3 { font-size: 1.7rem; line-height: 1.3; letter-spacing: -.04em; margin-top: 3px; }
    .story-side p { color: var(--muted); font-size: .9375rem; margin-top: 16px; max-width: 300px; }
    .story-side-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 15px; margin-top: auto; padding-top: 20px; }
    .story-side-visual { width: 126px; height: 126px; object-fit: cover; border-radius: 50%; }
    .story-side:hover .round-arrow { background: var(--green); color: white; }
    .talents-section { padding: 0 0 94px; }
    .talents-panel { border-top: 1px solid var(--line); padding-top: 56px; display: grid; grid-template-columns: 1.07fr .93fr; align-items: center; gap: 70px; }
    .talents-copy .eyebrow { margin-bottom: 17px; }
    .talents-copy h2 { font-size: clamp(2rem, 3.1vw, 3rem); line-height: 1.15; letter-spacing: -.045em; }
    .talents-copy p { color: var(--muted); margin-block: 21px 27px; max-width: 440px; }
    .talents-art { background: #e8f0df; height: 315px; border-radius: 18px; overflow: hidden; position: relative; }
    .talents-art img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.22); }
    .talents-note { position: absolute; bottom: 22px; left: 22px; padding: 11px 17px; background: white; color: var(--green); border-radius: 8px; font-size: .8125rem; font-weight: 750; }
    .partners { padding-block: 26px 34px; background: #f6f8f5; }
    .partners-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
    .partners p { font-size: .8125rem; color: var(--muted); max-width: 150px; }
    .partner-logos { display: flex; justify-content: space-around; flex: 1; gap: 36px; align-items: center; }
    .partner-logos img { width: 125px; height: 68px; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .75; }
    .site-footer { background: var(--green); color: white; padding: 57px 0 22px; }
    .footer-top { display: grid; grid-template-columns: 1.45fr .75fr 1fr 1.1fr; gap: 50px; }
    .footer-brand .brand-home img { filter: brightness(0) invert(1); }
    .footer-brand .brand-wordmark { font-size: 1.45rem; }
    .footer-brand > p { color: #cbded0; font-size: .9375rem; margin-top: 24px; max-width: 200px; }
    .footer-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 750; margin-bottom: 19px; color: var(--lime); }
    .footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
    .footer-links a { font-size: .8125rem; padding-block: 3px; color: #e1ebe1; }
    .footer-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
    .footer-contact { color: #e1ebe1; font-size: .8125rem; line-height: 1.8; }
    .footer-contact address { font-style: normal; margin-bottom: 15px; }
    .footer-contact > a { display: block; padding-block: 3px; }
    .footer-contact > a:hover { text-decoration: underline; text-underline-offset: 4px; }
    .footer-social { margin-top: 16px; display: inline-flex; font-size: .8125rem; align-items: center; gap: 12px; }
    .footer-social .social-mark { border: 1px solid #85a28e; border-radius: 50%; width: 34px; height: 34px; display: grid; place-items: center; font-weight: 800; font-family: Arial, sans-serif; }
    .footer-bottom { display: flex; justify-content: space-between; gap: 24px; align-items: center; border-top: 1px solid #749c8166; margin-top: 49px; padding-top: 23px; font-size: .75rem; color: #c3d8c9; }
    .back-to-top { display: inline-flex; align-items: center; gap: 12px; min-height: 35px; }
    .back-to-top svg { width: 16px; height: 16px; transform: rotate(-90deg); }
    .back-to-top:hover { color: white; }
    .mobile-dialog { width: 100%; max-width: none; max-height: 100dvh; height: 100dvh; margin: 0; border: 0; padding: 27px; background: var(--green-dark); color: white; }
    .mobile-dialog::backdrop { background: #003d2977; }
    .mobile-dialog-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; }
    .mobile-dialog .brand-home img { filter: brightness(0) invert(1); }
    .close-menu { width: 46px; height: 46px; border: 1px solid #719d84; border-radius: 50%; background: transparent; color: white; display: grid; place-items: center; }
    .close-menu svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.5; }
    .mobile-links { display: flex; flex-direction: column; }
    .mobile-links a { padding-block: 15px; border-bottom: 1px solid #73978366; font-size: clamp(1.4rem, 5.7vw, 2rem); letter-spacing: -.035em; display: flex; justify-content: space-between; align-items: center; }
    .mobile-links a:hover { color: var(--lime); }
    .mobile-dialog .button { margin-top: 34px; }
    .mobile-dialog-note { font-size: .8125rem; color: #c4d7c9; margin-top: 30px; }
    @keyframes enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
    .hero-content > .eyebrow { animation: enter .6s .08s both; }
    .hero-content > h1 { animation: enter .8s .13s both; }
    .hero-copy, .hero-actions { animation: enter .8s .22s both; }
    .hero-caption { animation: enter .8s .35s both; }
    /* Progressive enhancement: all content remains visible without JavaScript. */
    .reveal.is-visible { animation: enter .65s both; }
    @media (min-width: 1600px) {
      .hero { max-width: 1552px; margin-inline: auto; }
      .hero-content { padding-left: 110px; }
      .commitment-section { max-width: 1552px; margin-inline: auto; }
    }
    @media (max-width: 1150px) {
      .container { width: calc(100% - 72px); }
      .header-inner { gap: 15px; }
      .desktop-nav { gap: 21px; }
      .header-contact { margin-left: 6px; }
      .brand-home { gap: 7px; }
      .brand-wordmark { font-size: 1.18rem; }
      .hero-content { padding-left: 36px; }
      h1 { font-size: 4.05rem; }
      .hero-media, .hero { min-height: 590px; }
      .hero-content { padding-top: 58px; padding-bottom: 43px; }
      .hero-media::before { width: 34px; }
      .brand-strip { gap: 20px; }
      .brand-logos { gap: 15px; }
      .brand-logos a, .brand-logos img { width: 95px; }
      .group-layout { gap: 55px; }
      .commitment-layout { gap: 58px; }
      .universe-card { padding: 22px; }
      .card-bottom h3 { font-size: 1.2rem; }
      .footer-top { gap: 30px; }
    }
    @media (max-width: 940px) {
      .desktop-nav, .header-contact { display: none; }
      .menu-button { display: flex; }
      .header-inner { height: 82px; }
      .hero { grid-template-columns: 48% 52%; }
      h1 { font-size: 3.45rem; }
      .hero-content { padding-left: 29px; padding-top: 44px; padding-right: 17px; }
      .hero-copy { font-size: .9375rem; }
      .hero .eyebrow { font-size: .6875rem; }
      .hero-media, .hero { min-height: 560px; }
      .hero-caption { width: 204px; padding: 15px 17px; right: 20px; bottom: 20px; }
      .hero-caption p { font-size: .9375rem; }
      .brand-strip { flex-direction: column; gap: 10px; padding-block: 25px; }
      .brand-strip > p { flex: auto; }
      .brand-strip br { display: none; }
      .brand-logos { width: 100%; }
      .brand-logos a, .brand-logos img { height: 71px; }
      .brands-section { padding-block: 70px; }
      .section-top { align-items: flex-start; flex-direction: column; gap: 22px; }
      .brand-grid { gap: 14px; grid-template-columns: repeat(3, 1fr); margin-top: 25px; }
      .universe-card { padding: 19px; min-height: 380px; }
      .category-tag { font-size: .625rem; padding: 4px 8px; }
      .product-stage { height: 213px; }
      .product-stage::before { height: 175px; width: 175px; }
      .product-stage img { height: 190px; }
      .product-stage.duo img { height: 177px; width: 61%; }
      .card-bottom { align-items: flex-start; }
      .card-bottom h3 { font-size: 1.1rem; }
      .card-bottom p { font-size: .75rem; }
      .card-bottom .round-arrow { width: 33px; height: 33px; }
      .group-layout { gap: 36px; grid-template-columns: .82fr 1.18fr; }
      .group-art { min-height: 350px; }
      .group-art > img { width: 220px; height: 220px; }
      .group-content > p { font-size: .9375rem; }
      .group-facts { margin-block: 19px; }
      .fact-number { font-size: 2rem; }
      .commitment-section { padding-block: 58px; }
      .commitment-layout { gap: 42px; }
      .commitment-list .item-title { font-size: 1.05rem; }
      .commitment-list summary { gap: 13px; }
      .commitment-detail { padding-left: 28px; padding-right: 0; }
      .stories-section { padding-block: 70px; }
      .stories-grid { grid-template-columns: 1.1fr 1fr; gap: 18px; }
      .story-main { min-height: 390px; }
      .story-content, .story-side { padding: 24px; }
      .story-title-row h3 { font-size: 1.5rem; }
      .story-title-row { gap: 15px; }
      .story-title-row .round-arrow { width: 38px; height: 38px; }
      .story-side h3 { font-size: 1.45rem; }
      .talents-panel { gap: 35px; }
      .talents-art { height: 285px; }
      .partners-inner { flex-direction: column; gap: 16px; }
      .partners p { max-width: none; }
      .partner-logos { width: 100%; }
      .footer-top { grid-template-columns: 1.1fr .85fr .9fr; gap: 30px; }
      .footer-contact-column { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 35px; border-top: 1px solid #749c8166; padding-top: 25px; }
      .footer-contact-column .footer-title { margin-top: 5px; }
      .footer-contact { display: flex; flex-wrap: wrap; gap: 24px; flex: 1; align-items: flex-start; }
      .footer-contact address { margin-bottom: 0; }
    }
    @media (max-width: 680px) {
      html { scroll-padding-top: 86px; }
      .container { width: calc(100% - 40px); }
      .utility { height: 31px; }
      .utility-message { font-size: .625rem; letter-spacing: .015em; }
      .utility-links { gap: 13px; font-size: .6875rem; }
      .utility-links .utility-contact { display: none; }
      .header-inner { height: 73px; }
      .brand-home img { width: 48px; height: 48px; }
      .brand-wordmark { font-size: 1.15rem; }
      .brand-wordmark small { font-size: .55rem; }
      .menu-button { height: 43px; width: 43px; }
      .hero { margin-inline: 12px; grid-template-columns: 1fr; border-radius: 17px; min-height: 0; }
      .hero-content { padding: 34px 26px 31px; }
      .hero .eyebrow { font-size: .6875rem; }
      h1 { font-size: clamp(3.1rem, 11vw, 4.35rem); margin-top: 20px; line-height: 1.03; }
      .hero-copy { font-size: .9375rem; max-width: 380px; margin-top: 22px; }
      .hero-actions { margin-top: 24px; gap: 18px; }
      .hero-actions .button { font-size: .875rem; padding-inline: 21px; min-height: 51px; }
      .hero-footer { display: none; }
      .hero-media { height: 320px; min-height: 0; }
      .hero-photo { object-position: 53% 36%; }
      .hero-media::before { width: 100%; height: 26px; top: -1px; left: 0; clip-path: ellipse(60% 100% at 25% 0); }
      .hero-caption { width: 191px; right: 16px; bottom: 16px; padding: 13px 15px; }
      .hero-caption p { font-size: .875rem; }
      .hero-caption small { font-size: .625rem; }
      .brand-strip { padding-block: 23px 20px; gap: 11px; }
      .brand-strip > p { font-size: .75rem; text-align: center; }
      .brand-logos { flex-wrap: wrap; justify-content: center; gap: 0 13px; }
      .brand-logos a, .brand-logos img { width: 76px; height: 60px; }
      .section-heading { font-size: 2.25rem; }
      .eyebrow { font-size: .6875rem; }
      .brands-section { padding-block: 55px 59px; }
      .section-top { gap: 20px; }
      .section-top .eyebrow { margin-bottom: 14px; }
      .section-top > .link-arrow { margin: 0; font-size: .8125rem; }
      .brand-grid { grid-template-columns: 1fr; gap: 15px; margin-top: 26px; }
      .universe-card { min-height: 362px; padding: 23px; }
      .product-stage { height: 235px; margin-top: -5px; }
      .product-stage::before { height: 220px; width: 220px; }
      .product-stage img { height: 220px; }
      .product-stage.duo img { height: 215px; width: 48%; max-width: 220px; }
      .product-stage.duo img:first-child { margin-right: -23%; }
      .card-bottom h3 { font-size: 1.35rem; }
      .card-bottom p { font-size: .8125rem; }
      .card-bottom .round-arrow { width: 42px; height: 42px; }
      .card-number { font-size: .75rem; }
      .category-tag { font-size: .625rem; padding: 5px 10px; }
      .group-section { padding: 0 0 58px; }
      .group-layout { grid-template-columns: 1fr; gap: 30px; }
      .group-art { min-height: 286px; order: 2; }
      .group-art > img { width: 210px; height: 210px; }
      .group-art::before { width: 270px; height: 270px; }
      .group-art::after { width: 345px; height: 345px; }
      .group-art p { bottom: 18px; font-size: .625rem; }
      .group-content .eyebrow { margin-bottom: 17px; }
      .group-content > p { font-size: 1rem; margin-top: 20px; line-height: 1.75; }
      .group-facts { margin-block: 24px; padding-block: 24px; }
      .fact-number { font-size: 2.5rem; }
      .fact-label { font-size: .8125rem; }
      .group-facts > div + div { padding-left: 25px; }
      .group-content > .link-arrow { font-size: .875rem; }
      .commitment-section { margin-inline: 12px; padding: 43px 0 35px; border-radius: 17px; }
      .commitment-inner { width: calc(100% - 48px); }
      .commitment-layout { grid-template-columns: 1fr; gap: 35px; }
      .commitment-intro .eyebrow { margin-bottom: 18px; }
      .commitment-intro h2 { font-size: 2.4rem; }
      .commitment-intro > p { font-size: .9375rem; margin-top: 20px; }
      .commitment-intro > .link-arrow { font-size: .875rem; margin-top: 21px; }
      .commitment-list .item-title { font-size: 1.125rem; }
      .commitment-list details { padding-block: 21px; }
      .commitment-detail { font-size: .9375rem; }
      .commitment-baseline { font-size: .75rem; margin-top: 28px; align-items: flex-start; gap: 12px; }
      .stories-section { padding-block: 58px; }
      .stories-grid { grid-template-columns: 1fr; margin-top: 27px; gap: 18px; }
      .story-main { min-height: 372px; }
      .story-content { padding: 24px; }
      .story-title-row h3 { font-size: 1.5rem; }
      .story-side { min-height: 345px; }
      .story-side h3 { font-size: 1.65rem; }
      .story-side p { max-width: none; font-size: 1rem; }
      .story-side-visual { width: 107px; height: 107px; }
      .talents-section { padding-bottom: 57px; }
      .talents-panel { grid-template-columns: 1fr; padding-top: 40px; gap: 30px; }
      .talents-copy h2 { font-size: 2.25rem; }
      .talents-copy p { margin-block: 19px 23px; font-size: 1rem; }
      .talents-art { height: 268px; }
      .talents-note { bottom: 18px; left: 18px; }
      .partners { padding-block: 24px; }
      .partner-logos { gap: 12px; flex-wrap: wrap; justify-content: center; }
      .partner-logos img { width: 125px; height: 65px; }
      .site-footer { padding-top: 37px; }
      .footer-top { grid-template-columns: 1fr 1fr; gap: 34px 22px; }
      .footer-brand { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
      .footer-brand > p { margin: 0; font-size: .8125rem; max-width: 128px; }
      .footer-brand .brand-wordmark { font-size: 1.2rem; }
      .footer-brand .brand-home img { width: 48px; }
      .footer-contact-column { display: block; padding-top: 23px; }
      .footer-contact { display: block; font-size: .875rem; }
      .footer-contact address { margin-bottom: 13px; }
      .footer-title { font-size: .6875rem; margin-bottom: 13px; }
      .footer-links a { font-size: .875rem; padding-block: 4px; }
      .footer-bottom { margin-top: 30px; align-items: flex-start; font-size: .6875rem; }
      .footer-bottom > p { max-width: 185px; }
      .back-to-top { font-size: .75rem; gap: 8px; white-space: nowrap; }
    }
    @media (max-width: 360px) {
      .hero-content { padding-inline: 22px; }
      h1 { font-size: 2.85rem; }
      .utility-message { font-size: .5625rem; }
      .brand-logos a, .brand-logos img { width: 70px; }
      .footer-brand { flex-direction: column; align-items: flex-start; }
      .footer-brand > p { max-width: none; }
      .section-heading { font-size: 2rem; }
    }
    /* Brand slider: five visible on desktop, two on phones; controls loop manually. */
    .brand-strip { min-width: 0; }
    .brand-carousel { --brand-slides: 5; --brand-visible: 5; min-width: 0; flex: 1; display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; gap: 12px; width: 100%; }
    .brand-carousel-viewport { min-width: 0; overflow: hidden; padding-block: 9px; touch-action: pan-y; }
    .brand-carousel .brand-slider-track { width: 100%; display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 16px; }
    .brand-carousel .brand-slider-track > a, .brand-carousel .brand-slider-track > .brand-slide, .brand-carousel .brand-slider-track > .partner-slide { min-width: 0; flex: 0 0 calc((100% - (var(--brand-visible) - 1) * 16px) / var(--brand-visible)); width: auto; height: 88px; display: flex; align-items: center; justify-content: center; }
    .brand-carousel .brand-slider-track img { width: min(110px, 90%); height: 80px; object-fit: contain; }
    .brand-carousel-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #c9d9cf; border-radius: 50%; color: var(--green-dark); background: white; font: inherit; font-size: 25px; line-height: 1; cursor: pointer; transition: color .2s, background .2s, border-color .2s; }
    .brand-carousel-arrow:hover { color: white; background: var(--green-dark); border-color: var(--green-dark); }
    .brand-carousel-arrow:disabled { opacity: .3; cursor: default; }
    .brand-carousel-arrow:focus-visible, .brand-carousel-viewport:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 3px; }
    .brand-carousel .brand-slider-track > a:focus-visible { outline: 2px solid var(--green-dark); outline-offset: -3px; border-radius: 8px; }
    .brand-carousel [data-slider-clone] { pointer-events: none; }
    .brand-strip .brand-slider-track:not([data-slider-ready]), .partners .brand-slider-track:not([data-slider-ready]), .editor-styles-wrapper .brand-slider-track { display: flex; flex-wrap: wrap; justify-content: space-around; overflow: visible; }
    .editor-styles-wrapper .brand-slider-track > .wp-block { min-width: 100px; }
    .partners { background: white; border-top: 1px solid var(--line); }
    .partners-inner { min-width: 0; }
    .brand-carousel .partner-slider-track > .partner-slide { height: 116px; }
    .brand-carousel .partner-slider-track img { width: min(140px, 94%); height: 108px; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .75; transform: scale(var(--partner-logo-scale, 1)); }
    /* Optical sizing compensates for whitespace in the supplied artwork. */
    .partner-slider-track img[src*="enosis-partenaire-kazyon-"] { --partner-logo-scale: 1.3; }
    .partner-slider-track img[src*="enosis-partenaire-supeco-"] { --partner-logo-scale: .9; }
    .partner-slider-track img[src*="enosis-partenaire-bim-"] { --partner-logo-scale: .88; }
    @media (max-width: 900px) { .brand-carousel { --brand-slides: 3; } }
    @media (max-width: 560px) {
      .brand-carousel { --brand-slides: 2; gap: 6px; }
      .brand-carousel .brand-slider-track > a, .brand-carousel .brand-slider-track > .brand-slide, .brand-carousel .brand-slider-track > .partner-slide { height: 76px; }
      .brand-carousel .brand-slider-track img { width: min(95px, 90%); height: 68px; }
    }
    @media (prefers-reduced-motion: reduce) { .brand-carousel-arrow, .brand-carousel .brand-slider-track > a { transition: none; } }
    /* Keep small labels readable, including on narrow screens. */
    .category-tag, .hero-caption small, .story-tag, .group-art p { font-size: .75rem; }
    @media (max-width: 940px) { .hero .eyebrow { font-size: .75rem; } }
    @media (max-width: 680px) {
      .eyebrow, .utility-message, .footer-title, .footer-bottom { font-size: .75rem; }
      .utility-links { display: none; }
      .utility-inner { justify-content: center; }
      .category-tag { font-size: .75rem; }
      .brand-wordmark small { font-size: .625rem; }
    }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { animation: none !important; transition: none !important; }
    }
    @media print {
      .utility, .site-header, .mobile-dialog, .back-to-top { display: none !important; }
      body { font-size: 11pt; }
      .container { width: 100%; }
      .hero, .commitment-section { margin: 0; }
      .brands-section, .stories-section { padding-block: 35px; }
      .universe-card, .story-main, .story-side, .group-layout { break-inside: avoid; }
      details:not([open]) .commitment-detail { display: block; }
      * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    }
  
    /* FOUR-PAGE NAVIGATION */
    .desktop-nav { gap: clamp(18px, 1.8vw, 28px); }
    .desktop-nav a[aria-current="page"]::after { transform: scaleX(1); }
    @media (max-width: 1023px) {
      .desktop-nav, .header-contact { display: none; }
      .menu-button { display: flex; }
    }

    /* Keep the four homepage category cards on one row on desktop. */
    @media (min-width: 1050px) {
      .brand-grid.categories-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
      .brand-grid.categories-grid .category-home-card { min-height: 430px; }
      .brand-grid.categories-grid .product-stage { height: 215px; }
      .brand-grid.categories-grid .product-stage img { height: 205px; }
    }
    @media (min-width: 701px) and (max-width: 1049px) {
      .brand-grid.categories-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 700px) {
      .brand-grid.categories-grid { grid-template-columns: 1fr; }
    }
    /* Curated category packshots: preserve the source artwork and trim its empty canvas in CSS. */
    .brand-grid.categories-grid .category-product-selection {
      height: 230px;
      margin-inline: 0;
      padding: 0;
    }
    .category-product-selection::before { content: none; }
    .category-product-circle {
      display: block;
      position: relative;
      width: min(218px, 100%);
      aspect-ratio: 1;
      flex: 0 0 auto;
      border-radius: 50%;
      background: #ffffff65;
    }
    /* The whole arrangement fits inside an inscribed rectangle, even on hover. */
    .category-product-arrangement {
      position: absolute;
      inset: 20% 12.5%;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      gap: 3%;
    }
    .category-product-selection .category-packshot {
      position: relative;
      display: block;
      height: var(--pack-height, 100%);
      width: auto;
      flex: 0 0 auto;
      min-width: 0;
      overflow: hidden;
      mix-blend-mode: multiply;
      transition: transform .4s cubic-bezier(.2,.8,.2,1);
    }
    .brand-grid.categories-grid .category-packshot img {
      position: absolute;
      max-width: none;
      object-fit: fill;
      transform: none;
      transition: none;
    }
    /* Isolate the consumer pump already present in the original Claire's packshot. */
    .category-packshot-claires {
      clip-path: polygon(0 0, 68% 0, 68% 28%, 85% 37%, 97% 47%, 100% 58%, 100% 95%, 88% 100%, 12% 100%, 0 95%, 0 54%, 5% 43%, 24% 34%, 35% 28%, 35% 24%, 0 24%);
    }
    .category-home-card:hover .category-packshot,
    .category-home-card:focus-visible .category-packshot { transform: translateY(-3px); }
    .category-home-card:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
    @media (prefers-reduced-motion: reduce) {
      .category-product-selection .category-packshot { transition: none; }
      .category-home-card:hover .category-packshot,
      .category-home-card:focus-visible .category-packshot { transform: none; }
    }
    
/* Product proportions: wide tissue box and distinct consumer bottle silhouettes. */
.category-product-circle { overflow: hidden; }
.category-product-arrangement.category-paper-composition { inset: 0; display: block; }
.category-paper-composition .category-packshot { position: absolute; height: auto; bottom: 32%; }
.category-paper-composition .category-packshot:first-child { left: 10%; width: 36%; }
.category-paper-composition .category-packshot:last-child { right: 9%; width: 43%; }
.category-personal-composition .category-packshot:first-child { height: 100%; }
.category-personal-composition .category-packshot:last-child { height: 82%; }
/* Consumer pump proportions: Claire’s is slightly shorter than Loux. */
.category-personal-composition .category-packshot:first-child { height:86%; }
.category-personal-composition .category-packshot:last-child { height:100%; }

/* Homepage hero: calm, accessible photographic carousel. */
.hero-carousel{position:absolute;inset:0;overflow:hidden}
.hero-carousel .hero-photo{opacity:0;transition:opacity .8s ease;object-position:center center}
.hero-carousel .hero-photo.is-active{opacity:1}
/* Square lifestyle photos (1254x1254), framed like the Olly slide: full cover,
   biased slightly upwards so faces stay in frame on the 4:3 phone crop. */
.hero-carousel .hero-photo[data-slide="0"],
.hero-carousel .hero-photo[data-slide="1"],
.hero-carousel .hero-photo[data-slide="2"]{object-fit:cover;object-position:center 40%}
@media(min-width:681px){.hero-media:has(.hero-carousel)::before{width:24px}}
/* On phones, a consistent photographic ratio preserves people and products. */
@media(max-width:680px){.hero-media:has(.hero-carousel){height:auto;aspect-ratio:4/3}}

.home-carousel-controls{position:absolute;right:24px;bottom:22px;z-index:3;display:flex;align-items:center;gap:10px;padding:7px 11px;border-radius:999px;background:rgba(0,47,32,.82);color:#fff;box-shadow:0 3px 18px rgba(0,0,0,.17)}
.home-carousel-controls[hidden]{display:none!important}
.home-carousel-dot{border:0;background:transparent;color:#fff;cursor:pointer;width:24px;height:30px;padding:0;display:grid;place-items:center}
.home-carousel-dot::before{content:'';width:8px;height:8px;border:1px solid #fff;border-radius:50%;background:transparent}
.home-carousel-dot[aria-current=true]::before{background:#d4f38c;border-color:#d4f38c;width:10px;height:10px}
.home-carousel-pause{border:0;border-left:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;cursor:pointer;font-family:inherit;font-weight:700;font-size:12px;line-height:1.2;padding:9px 3px 9px 12px;min-width:60px;text-align:center}
.home-carousel-controls button:focus-visible{outline:2px solid #e0f5a4;outline-offset:2px;border-radius:5px}
.home-carousel-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.home-carousel-controls{right:14px;bottom:14px;gap:6px;padding:5px 9px}.home-carousel-dot{width:22px;height:28px}}
@media(prefers-reduced-motion:reduce){.hero-carousel .hero-photo{transition:none}}

.hero-carousel .hero-photo[data-slide="3"]{object-fit:cover;object-position:center center}
