/* Home-only layout. Shop, product pages and shared components keep their styles. */
.wave-front {
  --wave-front-ink: #173d5c;
  color: var(--wave-front-ink);
  background: #fff;
}
.wave-front .wave-front-container { width: 94%; max-width: 1800px; margin-inline: auto; }
.wave-front .wave-front-hero { position: relative; isolation: isolate; }
.wave-front .wave-front-hero__media { position: relative; isolation: isolate; }
.wave-front .wave-front-hero__picture, .wave-front .wave-front-hero__picture img { display: block; width: 100%; height: auto; }
.wave-front .wave-front-hero__action { position: absolute; z-index: 2; left: 9%; bottom: 4%; }
.wave-front .wave-front-hero__mobile { display: none; }
/* Reuse the theme's wave silhouette, with home-only motion and no JS dependency. */
.wave-front .wave-front-hero__wave { position: absolute; z-index: 1; inset: auto 0 0; height: clamp(20px, 3.2vw, 60px); overflow: hidden; pointer-events: none; }
.wave-front .wave-front-hero__wave svg { display: block; width: 100%; height: 100%; }
@media (prefers-reduced-motion: no-preference) {
  .wave-front .wave-front-hero__wave .custom-wave-path { animation: wave-front-hero-swell 2.5s ease-in-out infinite alternate; }
}
@keyframes wave-front-hero-swell {
  from { d: path("M0,100c0,0,379-92,1000,0s1000,0.5,1000,0.5V200H0V100z"); }
  to { d: path("M0,139.604c0,0,603,45.396,1000-39.104s1000-30.236,1000-30.236V200H0V139.604z"); }
}
.wave-front .wave-front-cta { background: #fff; color: #173d5c; border: 2px solid #173d5c; border-radius: 999px; min-height: 48px; padding: 10px 28px; font-weight: 600; }
.wave-front .wave-front-cta:disabled { opacity: 1; cursor: not-allowed; }
.wave-front a:focus-visible, .wave-front button:focus-visible { outline: 3px solid #1384a5; outline-offset: 5px; }
.wave-front .wave-front-cta:hover:not(:disabled) { background: #173d5c; color: #fff; }
.wave-front .wave-front-categories { max-width: 1640px; padding-block: 44px 50px; }
.wave-front .wave-front-categories__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: clamp(1rem, 1.5vw, 1.4rem); row-gap: 24px; margin: 0; padding: 0; list-style: none; }
.wave-front .wave-front-category { min-width: 0; text-align: center; }
.wave-front .wave-front-category a { display: block; color: inherit; text-decoration: none; }
.wave-front .wave-front-category img { display: block; width: min(100%, 180px); height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; margin: 0 auto 20px; }
.wave-front .wave-front-category__title { display: block; font-family: var(--wave-font-display, Congenial, Georgia, serif); font-size: clamp(18px, 1.45vw, 25px); line-height: 1.2; margin-bottom: 8px; }
.wave-front .wave-front-category__link { font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
/* Match the Shop container; Bootstrap supplies its fluid/xxl horizontal padding. */
.wave-front .wave-front-products { max-width: 1640px; padding-bottom: 70px; }
.wave-front .wave-front-products__heading { text-align: center; margin-bottom: 46px; }
.wave-front .wave-front-products__heading p { color: #52555c; }
.wave-front .wave-front-product-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: clamp(1rem, 1.5vw, 1.4rem); row-gap: 46px; }
.wave-front .wave-front-product { min-width: 0; }
/* Shop card UI; retain the approved uncropped, borderless home packshots. */
.wave-front .wave-home-product-card__media { background: transparent; border: 0; }
.wave-front .wave-home-product-card__image { object-fit: contain; }
.wave-front .wave-front-eco > section { background-color: var(--wave-front-ink) !important; color: #fff; }
.wave-front .wave-front-eco h2, .wave-front .wave-front-eco p { color: #fff; }
.wave-front .wave-front-eco img { filter: brightness(0) invert(1); max-width: 100%; }
.wave-front .wave-front-philosophy { padding-block: 32px 60px; }
.wave-front .wave-front-philosophy #has-fixed-element > .container-fluid > .row { align-items: center; }
.wave-front .wave-front-newsletter { position: relative; isolation: isolate; overflow: hidden; color: #fff; padding: 80px max(5%, calc((100vw - 1440px) / 2)); }
.wave-front .wave-front-newsletter__picture { position: absolute; inset: 0; z-index: -2; }
.wave-front .wave-front-newsletter__background { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.wave-front .wave-front-newsletter::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgb(10 26 37 / 56%); }
.wave-front .wave-front-newsletter__content { max-width: 720px; }
.wave-front .wave-front-newsletter h2, .wave-front .wave-front-newsletter p, .wave-front .wave-front-newsletter label, .wave-front .wave-front-newsletter a { color: #fff; }
.wave-front .wave-front-newsletter #wpforms-form-46 label { color: #fff; }
.wave-front .wave-front-newsletter input:not([type='checkbox']):not([type='radio']):not([type='submit']), .wave-front .wave-front-newsletter select, .wave-front .wave-front-newsletter textarea { background: #fff; color: #173d5c; width: 100%; max-width: 100%; }
.wave-front .wave-front-newsletter .wpforms-field-description, .wave-front .wave-front-newsletter .wpforms-field-sublabel, .wave-front .wave-front-newsletter .wpforms-confirmation-container-full { color: #fff; }
.wave-front .wave-front-newsletter .wpforms-confirmation-container-full { background: #173d5c; }
.wave-front .wave-front-newsletter .wpforms-error { color: #fff !important; font-weight: 600; }
.wave-front .wave-front-newsletter button[type='submit'] { border-color: #fff; color: #173d5c; background: #fff; min-height: 44px; }
/* Each supplied campaign image carries its headline; expose the matching h1 to AT. */
.wave-front .wave-front-hero__title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (min-width: 768px) {
  /* Briciole: the free space below the left paragraph, clear of packshot and price. */
  .wave-front .wave-front-hero__action { left: 15%; top: 85%; bottom: auto; transform: translate(-50%, -50%); }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .wave-front .wave-front-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wave-front .wave-front-categories__grid { gap: 16px; }
  .wave-front .wave-front-category img { max-width: 140px; }
  .wave-front .wave-front-cta { min-height: 40px; padding: 6px 20px; font-size: 14px; }
}
@media (max-width: 767.98px) {
  .wave-front .wave-front-hero__desktop { display: none; }
  .wave-front .wave-front-hero__mobile { display: inline; }
  .wave-front .wave-front-container { width: calc(100% - 32px); }
  /* Show the whole landscape artwork; a separate touch target must not cover it. */
  .wave-front .wave-front-hero__action { position: static; padding: 12px 16px 16px; text-align: center; }
  .wave-front .wave-front-categories { padding-block: 32px 38px; }
  /* Single row on request: five columns keep the icons comparable at a glance. */
  .wave-front .wave-front-categories__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 8px; }
  .wave-front .wave-front-category img { width: 100%; max-width: 64px; margin-bottom: 8px; }
  .wave-front .wave-front-category__title { font-size: clamp(9px, 2.9vw, 12px); line-height: 1.25; margin-bottom: 0; hyphens: auto; }
  /* No column left for the secondary label; the whole tile stays tappable. */
  .wave-front .wave-front-category__link { display: none; }
  .wave-front .wave-front-products__heading { margin-bottom: 28px; }
  .wave-front .wave-front-products__heading h2 { font-size: 28px; }
  .wave-front .wave-front-products__heading p { font-size: 14px; }
  .wave-front .wave-front-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 16px; }
  .wave-front .wave-front-products { padding-bottom: 42px; }
  .wave-front .wave-front-eco .mid-text { font-size: 10px; }
  .wave-front .wave-front-eco img { width: 90px; }
  .wave-front .wave-front-philosophy { padding-block: 0 36px; }
  .wave-front .wave-front-newsletter { padding: 48px 20px; }
  .wave-front .wave-front-newsletter__background { object-position: 60% center; }
  .wave-front .wave-front-newsletter .wpforms-field-row { display: flex; flex-wrap: wrap; gap: 12px; max-width: 100%; }
  .wave-front .wave-front-newsletter .wpforms-field-row-block { width: 100%; margin-left: 0; }
}
@media (max-width: 575.98px) {
  .wave-front .wave-front-product-grid { column-gap: 0.85rem; }
}
