/* Independently authored M31 demo styles. No external assets. */
/* Tokens and document foundations */
.m31f {
  --ink:#20342c;
  --paper:#f6f3e9;
  --accent:#d9ef99;
  --line:#a9b6a8;
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.55 system-ui,sans-serif
}

.m31f * {
  box-sizing:border-box
}

.m31f a {
  color:inherit
}

.m31f button,.m31f select {
  font:inherit
}

.m31f button,.m31f a,.m31f select {
  touch-action:manipulation
}

.m31f :focus-visible {
  outline:3px solid #a04b19;
  outline-offset:5px
}

.m31f button {
  cursor:pointer
}

.m31f [hidden] {
  display:none!important
}

.m31f h1,.m31f h2,.m31f p {
  margin:0
}

.m31f h1,.m31f h2 {
  line-height:1.04;
  letter-spacing:-.045em;
  text-wrap:balance
}

.m31f .m31f-tools {
  padding:14px 4vw;
  border-bottom:1px solid var(--line);
  display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
  background:#fff
}

.m31f .m31f-tools a {
  font-weight:700
}

.m31f .m31f-tools label {
  margin-left:auto
}

.m31f select {
  padding:6px;
  background:white;
  border:1px solid #7e8e80;
  border-radius:4px
}

.m31f .m31f-demo {
  font-size:11px;
  letter-spacing:.16em;
  font-weight:750
}

.m31f .m31f-status {
  min-height:1.6em;
  padding:10px 4vw;
  font-size:14px;
  background:#edf0e7
}

.m31f .m31f-wrap {
  max-width:1380px;
  margin:auto;
  padding:64px 5vw
}

.m31f .m31f-kicker {
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
  margin-bottom:22px
}

.m31f .m31f-link {
  display:inline-flex;
  gap:36px;
  align-items:center;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding:13px 0;
  font-weight:600
}

.m31f .m31f-link::after {
  content:'↗';
  font-size:23px
}

.m31f .m31f-btn {
  border:1px solid currentColor;
  border-radius:100px;
  background:transparent;
  color:inherit;
  padding:12px 22px
}

/* Header and hero stages */
.m31f .m31f-header-stage {
  position:relative;
  min-height:720px;
  background:#344a3c;
  color:white;
  overflow:hidden
}

.m31f .m31f-art {
  position:relative;
  overflow:hidden;
  min-height:360px;
  background:#dbe3c6
}

.m31f .m31f-art svg {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}

.m31f .m31f-header-stage>.m31f-art {
  position:absolute;
  inset:0;
  opacity:.55
}

.m31f .m31f-header {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  padding:26px 4vw;
  border-bottom:1px solid #ffffff55
}

.m31f .m31f-brand {
  font-size:25px;
  font-weight:800;
  text-decoration:none;
  letter-spacing:-.04em
}

.m31f .m31f-nav,.m31f .m31f-actions {
  display:flex;
  align-items:center;
  gap:24px
}

.m31f .m31f-nav a {
  text-decoration:none
}

.m31f .m31f-actions {
  justify-content:flex-end
}

.m31f .m31f-actions button {
  background:none;
  color:inherit;
  border:0;
  padding:8px
}

.m31f .m31f-mobile-toggle {
  display:none
}

.m31f .m31f-stage-copy {
  position:relative;
  max-width:900px;
  margin:120px auto;
  padding:0 28px;
  text-align:center
}

.m31f .m31f-stage-copy h1 {
  font-size:clamp(44px,7vw,96px)
}

.m31f .m31f-stage-copy p {
  margin:24px auto;
  max-width:450px
}

/* Manual slides and controls */
.m31f .m31f-carousel {
  position:relative;
  background:#283e32;
  color:#fff;
  overflow:hidden
}

.m31f .m31f-slide {
  position:relative;
  min-height:700px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:90px 90px 125px
}

.m31f .m31f-slide>.m31f-art {
  position:absolute;
  inset:0;
  opacity:.45;
  min-height:0
}

.m31f .m31f-slide-copy {
  position:relative;
  max-width:950px
}

.m31f .m31f-slide h1,.m31f .m31f-slide h2 {
  font-size:clamp(46px,7vw,100px)
}

.m31f .m31f-slide .m31f-link {
  margin-top:30px
}

.m31f .m31f-carousel-controls {
  position:absolute;
  bottom:28px;
  left:4vw;
  right:4vw;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px
}

.m31f .m31f-arrow {
  width:48px;
  height:48px;
  border-radius:50%;
  background:#233c32;
  color:#fff;
  border:1px solid #fff8
}

.m31f .m31f-dots {
  display:flex;
  gap:4px
}

.m31f .m31f-dot {
  width:44px;
  height:44px;
  background:none;
  border:0;
  position:relative
}

.m31f .m31f-dot::after {
  content:'';
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#fff7;
  inset:18px
}

.m31f .m31f-dot[aria-current=true]::after {
  background:#fff;
  outline:1px solid white;
  outline-offset:5px
}

/* Featured product and contact footer */
.m31f .m31f-product {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:640px
}

.m31f .m31f-product>.m31f-art {
  min-height:620px
}

.m31f .m31f-product-copy {
  padding:10vw 7vw;
  background:#eee6d5;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}

.m31f .m31f-product h1 {
  font-size:clamp(42px,5vw,74px)
}

.m31f .m31f-product p {
  margin-top:24px;
  max-width:420px
}

.m31f .m31f-product .m31f-link {
  margin-top:32px
}

.m31f .m31f-price {
  font-weight:700;
  font-size:20px
}

.m31f .m31f-promo .m31f-slide {
  min-height:550px;
  text-align:left;
  justify-items:start
}

.m31f .m31f-promo .m31f-slide-copy {
  max-width:800px
}

.m31f .m31f-contact {
  background:#dce8c5;
  padding:80px 5vw 28px
}

.m31f .m31f-contact h1 {
  font-size:clamp(50px,9vw,132px);
  max-width:1000px
}

.m31f .m31f-email {
  display:inline-block;
  margin:35px 0 65px;
  font-size:clamp(19px,3vw,36px);
  text-underline-offset:8px;
  overflow-wrap:anywhere
}

.m31f .m31f-footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:35px;
  border-top:1px solid #748165;
  padding-top:35px
}

.m31f .m31f-footer-grid nav {
  display:flex;
  flex-direction:column;
  gap:13px
}

.m31f .m31f-footer-bottom {
  margin-top:70px;
  border-top:1px solid #748165;
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:13px
}

/* Gallery and filters */
.m31f .m31f-gallery-intro {
  display:flex;
  justify-content:space-between;
  gap:32px;
  align-items:end
}

.m31f .m31f-gallery-intro h1 {
  font-size:clamp(48px,7vw,90px)
}

.m31f .m31f-gallery-intro p {
  max-width:390px
}

.m31f .m31f-filter {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:40px 0
}

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

.m31f .m31f-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}

.m31f .m31f-card {
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff
}

.m31f .m31f-card>a {
  display:block;
  text-decoration:none
}

.m31f .m31f-card .m31f-art {
  min-height:240px
}

.m31f .m31f-card-copy {
  padding:24px
}

.m31f .m31f-card h2 {
  font-size:27px;
  margin:12px 0
}

.m31f .m31f-card p {
  font-size:14px
}

.m31f .m31f-note {
  font-size:14px;
  max-width:800px;
  margin-top:36px
}

.m31f .m31f-sr {
  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:900px) {
  .m31f .m31f-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .m31f .m31f-header {
    gap:12px
  }

  .m31f .m31f-nav {
    gap:12px
  }

  .m31f .m31f-gallery-intro {
    display:block
  }

  .m31f .m31f-gallery-intro p {
    margin-top:24px
  }

}

@media(max-width:640px) {
  .m31f .m31f-grid,.m31f .m31f-product {
    grid-template-columns:1fr
  }

  .m31f .m31f-wrap {
    padding:40px 20px
  }

  .m31f .m31f-header {
    padding:18px 16px
  }

  .m31f .m31f-mobile-toggle {
    display:block;
    background:none;
    color:inherit;
    border:1px solid #fff8;
    padding:9px 12px
  }

  .m31f .m31f-nav {
    display:none;
    position:absolute;
    top:80px;
    left:16px;
    right:16px;
    padding:22px;
    background:#20342c;
    flex-direction:column;
    align-items:flex-start
  }

  .m31f .m31f-nav[data-open=true] {
    display:flex
  }

  .m31f .m31f-brand {
    font-size:21px
  }

  .m31f .m31f-actions {
    gap:2px
  }

  .m31f .m31f-actions button {
    font-size:12px;
    padding:8px 3px
  }

  .m31f .m31f-slide {
    min-height:600px;
    padding:75px 24px 120px
  }

  .m31f .m31f-promo .m31f-slide {
    min-height:520px
  }

  .m31f .m31f-product>.m31f-art {
    min-height:350px
  }

  .m31f .m31f-product-copy {
    padding:56px 24px
  }

  .m31f .m31f-footer-grid {
    grid-template-columns:1fr 1fr
  }

  .m31f .m31f-footer-grid>div {
    grid-column:1/-1
  }

  .m31f .m31f-footer-bottom {
    display:block
  }

  .m31f .m31f-footer-bottom p+p {
    margin-top:12px
  }

  .m31f .m31f-tools label {
    margin-left:0
  }

  .m31f .m31f-header-stage {
    min-height:600px
  }

}

.m31f .m31f-sr:focus {
  position:fixed;
  top:8px;
  left:8px;
  width:auto;
  height:auto;
  padding:12px;
  margin:0;
  clip:auto;
  overflow:visible;
  background:white;
  color:#20342c;
  z-index:1000
}

/* Shared section variations and service cards */
.m31f .m31f-dark {
  background:#233930;
  color:#fff
}

.m31f .m31f-float-header {
  margin:20px;
  position:relative;
  border:0;
  border-radius:60px;
  background:#182c25;
  box-shadow:0 15px 35px #0002
}

.m31f .m31f-sticky-header {
  position:sticky;
  top:0;
  background:var(--paper);
  color:var(--ink);
  z-index:10
}

.m31f .m31f-split {
  display:grid;
  grid-template-columns:1.2fr 1fr
}

.m31f .m31f-split-copy {
  padding:80px 6vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:26px
}

.m31f .m31f-split h1 {
  font-size:clamp(46px,6vw,85px)
}

.m31f .m31f-split>.m31f-art {
  min-height:650px
}

.m31f .m31f-center {
  text-align:center
}

.m31f .m31f-heading {
  font-size:clamp(40px,5vw,70px);
  max-width:950px;
  margin-bottom:36px
}

.m31f .m31f-center .m31f-heading {
  margin-inline:auto
}

.m31f .m31f-cols {
  display:grid;
  grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));
  gap:24px
}

.m31f .m31f-tile {
  padding:30px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  color:var(--ink);
  min-width:0
}

.m31f .m31f-tile h2 {
  font-size:27px;
  margin:18px 0
}

.m31f .m31f-tile p {
  margin:14px 0
}

.m31f .m31f-tile .m31f-art {
  min-height:240px;
  border-radius:10px
}

.m31f .m31f-stat {
  padding:36px 0;
  border-top:1px solid currentColor
}

.m31f .m31f-stat strong {
  display:block;
  font-size:clamp(38px,6vw,80px);
  font-weight:600;
  letter-spacing:-.05em
}

.m31f .m31f-hero-card {
  position:relative;
  padding:100px 6vw;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:8vw;
  align-items:center;
  color:white;
  min-height:680px
}

.m31f .m31f-hero-card>.m31f-art {
  position:absolute;
  inset:0;
  opacity:.35
}

.m31f .m31f-hero-card>div:not(.m31f-art) {
  position:relative
}

.m31f .m31f-hero-card h1 {
  font-size:clamp(45px,6vw,85px)
}

.m31f .m31f-hero-card .m31f-tile {
  padding:40px
}

.m31f .m31f-shortcut {
  text-decoration:none;
  display:block;
  padding:34px;
  border-radius:100px;
  background:#e5eccf;
  text-align:center;
  font-size:24px;
  font-weight:600
}

.m31f .m31f-imageband {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px
}

.m31f .m31f-imageband .m31f-art {
  min-height:540px
}

.m31f .m31f-quote {
  font-size:20px;
  line-height:1.6
}

.m31f .m31f-logo-strip {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
  justify-content:space-around;
  border-block:1px solid var(--line);
  padding:40px 0
}

.m31f .m31f-logo-mark {
  font-size:21px;
  font-weight:700;
  padding:20px;
  letter-spacing:.1em
}

.m31f .m31f-recommended {
  background:#213a2e;
  color:#fff;
  border:2px solid #213a2e
}

.m31f .m31f-plan-price {
  font-size:44px;
  font-weight:700
}

.m31f .m31f-tile ul {
  padding-left:22px
}

.m31f .m31f-modal {
  border:1px solid var(--line);
  border-radius:20px;
  max-width:630px;
  width:calc(100% - 32px);
  padding:32px;
  background:var(--paper);
  color:var(--ink);
  max-height:85vh;
  overflow:auto
}

.m31f .m31f-modal::backdrop {
  background:#10271bd9
}

.m31f .m31f-modal h2 {
  font-size:36px
}

.m31f .m31f-form label {
  display:block;
  margin:18px 0
}

.m31f .m31f-form input,.m31f .m31f-form select {
  display:block;
  width:100%;
  margin-top:7px;
  padding:12px;
  border:1px solid #748165;
  border-radius:7px;
  background:white;
  font:inherit
}

.m31f .m31f-modal-close {
  float:right
}

.m31f .m31f-form button {
  margin-top:14px
}

.m31f .m31f-four-footer {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:36px
}

.m31f .m31f-four-footer h2 {
  font-size:22px;
  margin-bottom:22px
}

.m31f .m31f-four-footer a {
  display:block;
  margin:14px 0
}

.m31f .m31f-anchor-section {
  min-height:55vh;
  scroll-margin-top:100px;
  padding:80px 6vw;
  border-bottom:1px solid var(--line)
}

@media(max-width:800px) {
  .m31f .m31f-split,.m31f .m31f-hero-card {
    grid-template-columns:1fr
  }

  .m31f .m31f-split>.m31f-art {
    min-height:380px
  }

  .m31f .m31f-cols {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .m31f .m31f-four-footer {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .m31f .m31f-imageband .m31f-art {
    min-height:300px
  }

}

@media(max-width:500px) {
  .m31f .m31f-cols {
    grid-template-columns:1fr
  }

  .m31f .m31f-imageband {
    grid-template-columns:1fr
  }

  .m31f .m31f-imageband .m31f-art {
    min-height:320px
  }

  .m31f .m31f-float-header {
    margin:12px;
    border-radius:18px
  }

  .m31f .m31f-split-copy {
    padding:55px 24px
  }

  .m31f .m31f-hero-card {
    padding:70px 24px
  }

  .m31f .m31f-hero-card .m31f-tile {
    padding:26px
  }

  .m31f .m31f-modal {
    padding:24px
  }

}

/* Editorial and portfolio layouts */
.m31f .m31f-editorial {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:40px
}

.m31f .m31f-masonry {
  columns:3;
  column-gap:20px
}

.m31f .m31f-masonry article {
  break-inside:avoid;
  margin-bottom:20px
}

.m31f .m31f-overlay-card {
  position:relative;
  overflow:hidden;
  border-radius:12px;
  min-height:300px;
  background:#20342c;
  color:#fff
}

.m31f .m31f-overlay-card>.m31f-art {
  position:absolute;
  inset:0;
  opacity:.4
}

.m31f .m31f-overlay-copy {
  position:relative;
  padding:30px;
  min-height:inherit;
  display:flex;
  flex-direction:column;
  justify-content:flex-end
}

.m31f .m31f-overlay-copy h2 {
  font-size:27px
}

.m31f .m31f-bento {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}

.m31f .m31f-bento>.m31f-wide {
  grid-column:span 2
}

.m31f .m31f-editorial-hero {
  position:relative;
  padding:90px 7vw;
  min-height:780px;
  background:#304438;
  color:white
}

.m31f .m31f-editorial-hero>.m31f-art {
  position:absolute;
  inset:0;
  opacity:.25
}

.m31f .m31f-editorial-hero .m31f-heading {
  position:relative;
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(54px,9vw,130px);
  z-index:1
}

.m31f .m31f-editorial-foreground {
  position:relative;
  max-width:480px;
  margin:35px 0 0 auto;
  border:8px solid #f6f3e9
}

.m31f .m31f-article-list article {
  border-top:1px solid var(--line);
  padding:30px 0
}

.m31f .m31f-article-list h2 {
  font-family:Georgia,serif;
  font-size:36px;
  margin:12px 0
}

.m31f .m31f-process {
  counter-reset:m31f-step;
  list-style:none;
  padding:0
}

.m31f .m31f-process li {
  counter-increment:m31f-step;
  display:grid;
  grid-template-columns:100px 1fr;
  gap:24px;
  padding:32px 0;
  border-top:1px solid var(--line)
}

.m31f .m31f-process li::before {
  content:counter(m31f-step,decimal-leading-zero);
  font-size:48px
}

.m31f .m31f-process h2 {
  font-size:35px;
  margin-bottom:18px
}

.m31f .m31f-announcement {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
  background:#243d31;
  color:white;
  padding:15px 24px
}

.m31f .m31f-announcement button {
  background:none;
  color:white;
  border:1px solid #fff8;
  border-radius:50%;
  width:36px;
  height:36px
}

@media(max-width:1050px) {
  .m31f .m31f-masonry {
    columns:2
  }

}

@media(max-width:760px) {
  .m31f .m31f-editorial {
    grid-template-columns:1fr
  }

  .m31f .m31f-bento {
    grid-template-columns:1fr
  }

  .m31f .m31f-bento>.m31f-wide {
    grid-column:auto
  }

}

@media(max-width:500px) {
  .m31f .m31f-masonry {
    columns:1
  }

  .m31f .m31f-process li {
    grid-template-columns:50px 1fr
  }

  .m31f .m31f-process li::before {
    font-size:30px
  }

}

/* PLP, PDP, board and FAQ */
.m31f .m31f-square {
  aspect-ratio:1;
  min-height:0!important
}

.m31f .m31f-card-media {
  position:relative
}

.m31f .m31f-badge {
  position:absolute;
  top:16px;
  left:16px;
  padding:5px 12px;
  background:#fff;
  border-radius:30px;
  font-size:12px
}

.m31f .m31f-item-info {
  padding:20px 0
}

.m31f .m31f-item-info h2 {
  font-size:22px;
  margin-bottom:10px
}

.m31f .m31f-inline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px
}

.m31f .m31f-pdp {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:start
}

.m31f .m31f-pdp h1 {
  font-size:clamp(36px,4vw,62px)
}

.m31f .m31f-pdp-info {
  padding:20px
}

.m31f .m31f-meta {
  padding:24px 0;
  border-block:1px solid var(--line);
  margin:28px 0
}

.m31f .m31f-qty {
  display:flex;
  gap:12px;
  align-items:center
}

.m31f .m31f-qty button {
  width:44px;
  height:44px;
  background:white;
  border:1px solid var(--line)
}

.m31f .m31f-qty input {
  width:65px;
  text-align:center;
  padding:10px;
  font:inherit
}

.m31f .m31f-tablinks {
  display:flex;
  flex-wrap:wrap;
  gap:30px;
  padding:26px 0;
  margin-top:60px;
  border-block:1px solid var(--line)
}

.m31f .m31f-tabpanel {
  padding:60px 0;
  scroll-margin-top:24px
}

.m31f .m31f-tabpanel h2 {
  font-size:34px;
  margin-bottom:22px
}

.m31f .m31f-board-layout {
  display:grid;
  grid-template-columns:170px minmax(0,1fr) 160px;
  gap:26px
}

.m31f .m31f-board-cats {
  display:flex;
  flex-direction:column;
  gap:12px
}

.m31f .m31f-board-cats button {
  text-align:left
}

.m31f .m31f-tablewrap {
  overflow:auto
}

.m31f .m31f-table {
  border-collapse:collapse;
  width:100%;
  min-width:510px
}

.m31f .m31f-table th,.m31f .m31f-table td {
  text-align:left;
  padding:19px 12px;
  border-bottom:1px solid var(--line)
}

.m31f .m31f-table th {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em
}

.m31f .m31f-board-search {
  display:flex;
  gap:10px;
  margin:30px 0
}

.m31f .m31f-board-search input {
  min-width:0;
  flex:1;
  padding:12px;
  border:1px solid var(--line);
  font:inherit
}

.m31f .m31f-article-body {
  max-width:800px;
  margin:40px auto
}

.m31f .m31f-article-body p {
  margin:25px 0;
  font-size:19px
}

.m31f .m31f-faq {
  max-width:980px;
  margin:auto
}

.m31f .m31f-faq details {
  border-bottom:1px solid var(--line);
  padding:22px 0
}

.m31f .m31f-faq summary {
  cursor:pointer;
  font-size:21px;
  padding:8px 0
}

.m31f .m31f-faq details p {
  padding:24px 0;
  max-width:760px
}

.m31f .m31f-buy-actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:28px
}

.m31f .m31f-buy-actions button:disabled {
  opacity:.55;
  cursor:not-allowed
}

@media(max-width:900px) {
  .m31f .m31f-board-layout {
    grid-template-columns:150px minmax(0,1fr)
  }

  .m31f .m31f-board-aside {
    display:none
  }

}

@media(max-width:650px) {
  .m31f .m31f-pdp {
    grid-template-columns:1fr
  }

  .m31f .m31f-pdp-info {
    padding:12px 0
  }

  .m31f .m31f-board-layout {
    grid-template-columns:1fr
  }

  .m31f .m31f-board-cats {
    flex-direction:row;
    flex-wrap:wrap
  }

  .m31f .m31f-table {
    min-width:460px
  }

  .m31f .m31f-tablinks {
    gap:18px
  }

}

/* Layout variants, rail and mobile navigation */
.m31f .m31f-variant-tools {
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
  margin:25px 0
}

.m31f .m31f-product-rail {
  display:flex;
  overflow-x:auto;
  gap:24px;
  scroll-snap-type:x proximity;
  padding-bottom:18px
}

.m31f .m31f-product-rail>article {
  flex:0 0 calc((100% - 48px)/3);
  scroll-snap-align:start
}

.m31f .m31f-mobile-categories {
  display:none
}

.m31f .m31f-checklist {
  list-style:none;
  padding:0
}

.m31f .m31f-checklist li {
  border-bottom:1px solid var(--line);
  padding:20px 0
}

.m31f .m31f-checklist li::before {
  content:'✓';
  margin-right:14px
}

.m31f .m31f-review-photo {
  display:none
}

.m31f [data-photo=true] .m31f-review-photo {
  display:block;
  margin-bottom:20px
}

.m31f .m31f-review-photo .m31f-art {
  min-height:160px
}

@media(max-width:640px) {
  .m31f .m31f-product-rail>article {
    flex-basis:85%
  }

  .m31f .m31f-mobile-categories {
    position:relative;
    display:flex;
    gap:25px;
    overflow-x:auto;
    padding:15px 20px;
    background:#20342c;
    color:white
  }

  .m31f .m31f-header-stage .m31f-nav[data-open=true] {
    position:fixed;
    z-index:50;
    top:140px;
    left:0;
    bottom:0;
    width:min(85vw,340px);
    right:auto;
    justify-content:flex-start;
    box-shadow:0 0 0 100vmax #10271b66
  }

  .m31f .m31f-header {
    z-index:10
  }

}


/* Independent collage: controllable spacing/tilt; mobile removes overlap. */
.m31f .m31f-collage {
  --collage-tilt:3deg;
  --collage-gap:24px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--collage-gap);
  padding:50px 24px;
  isolation:isolate;
}
.m31f .m31f-collage-card {
  min-width:0;
  padding:16px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 10px 25px #20342c22;
  transform:rotate(calc(-1 * var(--collage-tilt))) scale(1.06);
}
.m31f .m31f-collage-card:nth-child(2) {
  z-index:1;
  transform:translateY(24px) rotate(var(--collage-tilt)) scale(1.06);
}
.m31f .m31f-collage-card:nth-child(3) {
  transform:rotate(calc(-.5 * var(--collage-tilt))) scale(1.06);
}
.m31f .m31f-collage-card .m31f-art {
  min-height:280px;
}
.m31f .m31f-collage-card h2 {
  margin:24px 0 12px;
  font-size:30px;
}
@media (max-width:760px) {
  .m31f .m31f-collage {
    grid-template-columns:1fr;
    padding:24px 0;
  }
  .m31f .m31f-collage-card,
  .m31f .m31f-collage-card:nth-child(2),
  .m31f .m31f-collage-card:nth-child(3) {
    transform:none;
  }
}

/* Static event timetable: day-major DOM order and aligned desktop time rows. */
.m31f .m31f-schedule {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin-top:40px;
}
.m31f .m31f-schedule-day {
  min-width:0;
  display:grid;
  grid-template-rows:subgrid;
  grid-row:span 5;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.m31f .m31f-schedule-day header {
  padding:24px;
  background:#e5eccf;
}
.m31f .m31f-schedule-day h2 {
  font-size:30px;
}
.m31f .m31f-schedule-slots {
  display:contents;
  list-style:none;
  padding:0;
  margin:0;
}
.m31f .m31f-schedule-slots li {
  padding:24px;
  border-top:1px solid var(--line);
}
.m31f .m31f-schedule-slots time {
  font-size:14px;
  font-weight:700;
}
.m31f .m31f-schedule-slots h3 {
  font-size:22px;
  line-height:1.25;
  margin:16px 0;
  overflow-wrap:anywhere;
}
.m31f .m31f-schedule-slots p {
  font-size:13px;
}
@supports not (grid-template-rows:subgrid) {
  .m31f .m31f-schedule-day {
    display:block;
  }
  .m31f .m31f-schedule-slots {
    display:block;
  }
}
@media (max-width:760px) {
  .m31f .m31f-schedule {
    grid-template-columns:1fr;
  }
  .m31f .m31f-schedule-day {
    display:block;
    grid-row:auto;
  }
  .m31f .m31f-schedule-slots {
    display:block;
  }
}

.seo-language-picker,.site-start-languages{border:1px solid #dfe4ec;border-radius:10px;padding:14px;margin:0 0 16px;display:flex;gap:16px;flex-wrap:wrap}.seo-language-picker label,.site-start-languages label{display:flex;align-items:center;gap:7px;margin:0}.seo-language-picker input,.site-start-languages input{width:auto;margin:0}.seo-language-picker legend,.site-start-languages legend{font-size:12px;font-weight:600;padding:0 5px}.seo-recommendation{border:1px solid #d7e2f5;background:#f5f8ff;padding:14px;border-radius:10px;margin:16px 0}.seo-recommendation button{font-size:12px}.seo-recommendation article{border-top:1px solid #dce5f2;padding:12px 0}.seo-recommendation article small{color:#667085}.seo-recommendation article p{margin:6px 0;overflow-wrap:anywhere}.seo-fields textarea{width:100%;min-height:110px;resize:vertical}
