
.sm-container {
  container-type: inline-size;
  container-name: sm-container;
}

.sm-wrapper {
  --space: 30px;
  --green:#41b35a;
  --orange:#f09116;
  --beige:#fffcdb;
  --yellow:#ffee76;
  --grey:#606060;
  --black:#333;
  --radius:15px;
  font-size: 16px;
  line-height: 1.7;
  color:var(--black);
}

.sm-wrapper img {
  height: auto;
  max-width: 100%;
  object-fit: contain;
  vertical-align: bottom;
}

.sm-wrapper h2 {
  text-align: center;
  font-size: 36px;
}

.sm-wrapper > div {
  padding: calc(var(--space)*1.5);
  position: relative;
  overflow: hidden;
}

.sm-wrapper > div:not(.sm-top):before {
  content: "";
  display: block;
  width: 160px;
  aspect-ratio: 200/50;
  position: absolute;
  top: -2px;
  left: 0;
  right: 0;
  margin: auto;
  clip-path: polygon(100% 0, 0 0, 50% 100%);
}

.sm-wrapper > div.sm-header {
  background:var(--orange);
  color:white;
  padding: 20px 0;
}

.sm-header p {
  display:flex;
  justify-content: center;
  align-items: baseline;
  gap:10px;
}

.sm-header p:last-child {
  display:none;
  text-align: center;
}

.sm-header img {
  filter:brightness(200);
  width: 250px;
}

.sm-header span:nth-of-type(1) {
  font-size: 1.7em;
  font-weight: bold;
}

.sm-header span:nth-of-type(2) {
  font-size:.8em;
}

.sm-top {
  background: var(--green);
}

.sm-about:before,
.sm-registration:before,
.sm-top:before {
  background: var(--green);
}

.sm-about h2 {
  color: var(--grey);
  margin-top: 40px;
  display: flex;
  justify-content: center;
  align-items: baseline;
  font-size: 25px;
  margin-bottom: 15px;
  font-weight: bold;
}

.sm-about h2 span {
  color:var(--orange);
  font-weight:bold;
  font-size:1.3em;
  padding-right:10px;
  display: flex;
  justify-content: center;
  align-items: center;
  /* padding-bottom: 25px; */
}

.sm-about h2 span img {
  width: 400px;
  /* max-width: 100%; */
}

.sm-about h2 + p {
  text-align:center;
  margin-bottom: 40px;
  font-weight: bold;
  font-size: 18px;
  word-break: auto-phrase;
}

.sm-steps:before {
  background: var(--beige);
}

.sm-use:before {
  background: var(--yellow);
}

.sm-about {
  background: var(--beige);
}

ul.sm-list {
  display: grid;
  gap: calc(var(--space)*1.5) var(--space);
  grid-template-columns: repeat(2, 1fr);
  margin: var(--space) 0;
}

ul.sm-list li {
  position:relative;
}

ul.sm-list li:after {
  content:"";
  position: absolute;
  left: 20px;
  top: 20px;
  display: block;
  width:100%;
  height:100%;
  border-radius: var(--radius);
  background-image: 
    radial-gradient(var(--orange) 26%, transparent 26%),
    radial-gradient(var(--orange) 26%, transparent 26%);
  background-position: 0px 0px, 8.5px 8.5px;
  background-size: 17px 17px;
  background-color: white;
  z-index: 1;
}

ul.sm-list li > div {
  position:relative;
  background:white;
  border-radius: var(--radius);
  border: 2px solid var(--orange);
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: var(--space);
  text-align:center;
  height: 100%;
  box-sizing: border-box;
}

ul.sm-list li > div p:first-child {
  margin-bottom:5px;
}

ul.sm-list li > div p.list-heading {
  font-size: 26px;
  line-height: 1.4;
  word-break:auto-phrase;
  font-weight: bold;
  padding-bottom: 5px;
}

ul.sm-list li img {
  max-height: 190px;
  max-width: 380px;
  width: 100%;
}

ul.sm-list li div:has( > img) {
  margin-top: auto
}

ul.sm-list li p:last-child {
  margin-top:1em;
}

.sm-steps ul.sm-list li img {
  max-height:120px;
}

.sm-about .list-heading {
  margin-bottom:15px;  
}

.sm-wrapper hgroup {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  margin: 50px 0 30px;
}

.sm-wrapper hgroup * {
  font-weight: bold;  
}

.sm-wrapper hgroup p {
   font-size:1.3em;
}

.sm-wrapper hgroup span {
  padding: 0 5px;
}

.sm-steps ul.sm-list li > div p:has( + p.list-heading ) {
  font-weight:bold;
  font-size:26px;
  margin-bottom:15px;
}

.sm-steps ul.sm-list li > div p.list-heading {
    background: linear-gradient(transparent 30%, #9aefaa 30%);
    color: var(--black);
}

.sm-steps ul.sm-list li > div p.list-heading + p {
  margin:17px 0;
}

.sm-steps {
  background: var(--yellow);
}

.sm-steps hgroup {
  color: var(--green);  
}

.sm-steps > div {
  display: flex;
  gap:var(--space);
}

.sm-steps ul.sm-list {
    grid-template-columns: repeat(3, 1fr);
}

.sm-steps ul.sm-list li > div {
  border-color:var(--green);
  color: var(--green);
}

.sm-steps ul.sm-list li:after {
  background-image: 
    radial-gradient(var(--green) 26%, transparent 26%),
    radial-gradient(var(--green) 26%, transparent 26%);
  background-color: var(--yellow);
}

.sm-use {
  background:var(--green);
}

.sm-use hgroup {
  color:white;
}

.sm-use ul.sm-list {
    grid-template-columns: repeat(3, 1fr);
}

.sm-use ul.sm-list li > div {
  border-color:var(--green);
}

.sm-use ul.sm-list li:after {
  background-image:
    radial-gradient(white 26%, transparent 26%),
    radial-gradient(white 26%, transparent 26%);
  background-color: var(--green);
}

.sm-use .sm-list .list-heading {
  margin-bottom: auto;
}

.sm-use .sm-list .list-heading + p {
    margin-bottom:auto;
    word-break: auto-phrase;
}

.sm-registration {
  background:var(--beige);
}

.sm-registration > h2 {
  color:var(--green);
  font-weight: bold;
  background:linear-gradient(transparent 60%, var(--yellow) 60%);
  display: table;
  margin: 40px auto;
}

.sm-registration > div {
  display: flex;
  gap: 30px;
  justify-content: center;
}

.sm-registration > div > div:first-child {
  display: flex;
  gap: 35px;
  flex-direction: column;
  justify-content: center;
}

.sm-registration > div > div:first-child > div {
  display: grid;
  gap: 10px;
  justify-content: center;
  justify-items: center;
}

.sm-registration > div > div:first-child > div a {
  width: 200px;
  padding: 5px 42px;
  border-radius: 80px;
  font-size: 26px;
  font-weight: bold;
  text-align: center;
}

.sm-registration > div > div:first-child > div:first-child a {
  background: #eb9415;
  color: white;
}

.sm-registration > div > div:first-child > div:first-child a:hover {
  text-decoration:none;
  opacity:.7;
}

.sm-registration > div > div:first-child > div:last-child a {
  background: #dcc7f2;
}

.sm-registration > div > div:first-child > div:last-child a:hover {
  text-decoration:none;
  opacity:.7;
}


.sm-registration > div > div:last-child {
  text-align:center;
}

.sm-registration > div > div:last-child img {
  width: 290px;
}

.sm-registration > div > div:first-child > div:first-child img {
  filter: brightness(1000);
}

@container sm-container (max-width: 1000px) {
  .sm-wrapper {
  --space: 20px;
  }
  ul.sm-list li:after {
    top: 14px;
    left: 12px;
  }
}

@container sm-container (max-width: 800px) {
  .sm-wrapper ul.sm-list {
      grid-template-columns: repeat(1, 1fr);
      gap: calc(var(--space) * 2) var(--space);
  }
  .sm-registration > div {
      flex-direction: column;
  }
  
  .sm-registration > div > div:first-child > div a {
      font-size: 18px;
  }
  
  .sm-registration > div > div:last-child img {
      width: 250px;
  }
}

@container sm-container (max-width: 600px) {
  .sm-header p:first-child {
  display:none;    
  }
  .sm-header p:last-child  {
  display:block;
  }
  .sm-wrapper hgroup {
      margin: 40px 0 20px;
  }
  
  .sm-wrapper h2 {
      font-size: 28px;
  }
  

ul.sm-list li > div {
    padding: calc(var(--space)*1.5);
}

ul.sm-list li > div p.list-heading {
    font-size: 20px;
}

.sm-steps ul.sm-list li > div p:has( + p.list-heading ) {
    margin-bottom: 8px;
}

.sm-about h2 {
    font-size: 20px;
}

.sm-about h2 span img {
    width: 230px;
}


}

@container sm-container (max-width: 500px) {
  .sm-wrapper {
  --space: 15px;
  font-size: 14px;
  }
}



@container sm-container (max-width: 450px) {
  .sm-wrapper > div.sm-top {
    padding: calc(var(--space)*1.5) 0;
  }

}
