*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--color-canvas, #eef2f3);
  color: var(--color-text, #293940);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.62;
}
strong, b { font-weight: 600; }
h1, h2, h3, h4, h5, h6, th { font-weight: 600; }
img, video { display: block; max-width: 100%; border-radius: inherit; }
a { color: inherit; }

.cms-container { width: min(calc(100% - 40px), var(--container-width, 1200px)); margin-inline: auto; }
.cms-container--wide { width: 100%; }
.cms-section { scroll-margin-top: calc(var(--header-height, 76px) + 18px); }
.cms-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--row-gap, 24px); }
.cms-row + .cms-row { margin-top: 28px; }
.cms-block { grid-column: span var(--span-desktop, 12); min-width: 0; }
.cms-element + .cms-element { margin-top: 18px; }
.cms-element h1,
.cms-element h2,
.cms-element h3,
.cms-element h4 { margin: 0; line-height: 1.05; letter-spacing: -.04em; }
.cms-element h1 { font-size: clamp(2.5rem, 6vw, 5.6rem); }
.cms-element h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.cms-element h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
.cms-text { margin: 0; }
.cms-text--lead { font-size: clamp(1.05rem, 1.7vw, 1.24rem); opacity: .82; }
.cms-text--eyebrow { font-size: .72rem; font-weight:600; letter-spacing: .13em; }
.cms-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  padding: 11px 17px;
  background: #e3e9eb;
  text-decoration: none;
  font-weight:600;
  transition: transform .16s ease, box-shadow .16s ease;
}
.cms-button:hover { transform: translateY(-2px); }
.cms-button--primary { background: var(--color-accent, #607983); color: #fff; box-shadow: 0 12px 28px color-mix(in srgb, var(--color-accent, #607983) 28%, transparent); }

.cms-header { position: relative; z-index: 50; background: #fff; border-bottom: 1px solid rgba(23, 32, 51, .08); }
.cms-header--sticky { position: sticky; top: 0; }
.cms-header__inner { display: flex; min-height: var(--header-height, 76px); align-items: center; gap: 32px; transition: min-height .2s ease; }
.cms-header--shrink.is-scrolled { box-shadow: 0 10px 34px rgba(23, 32, 51, .1); }
.cms-header--shrink.is-scrolled .cms-header__inner { min-height: calc(var(--header-height, 76px) - 14px); }
.cms-logo { font-weight:600; text-decoration: none; letter-spacing: -.03em; }
.cms-menu { margin-left: auto; }
.cms-menu ul { display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; list-style: none; }
.cms-menu li { position: relative; }
.cms-menu li > ul { position: absolute; top: 100%; left: -14px; display: none; min-width: 220px; align-items: stretch; flex-direction: column; gap: 5px; border-radius: 12px; padding: 12px; background: #fff; box-shadow: 0 18px 48px rgba(23, 32, 51, .16); }
.cms-menu li:hover > ul,
.cms-menu li:focus-within > ul { display: flex; }
.cms-menu a { text-decoration: none; font-weight:600; }
.cms-menu a:hover { text-decoration: underline; text-underline-offset: 5px; }
.cms-menu-toggle { display: none; margin-left: auto; border: 0; background: transparent; font-size: 1.5rem; }
.cms-menu--mobile { display: none; }

.cms-footer { padding: 34px 0; background: #293940; color: #fff; }
.cms-footer > .cms-container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cms-menu--footer { margin: 0; }
.cms-menu--footer ul { gap: 18px; }

@media (max-width: 900px) {
  .cms-block { grid-column: span var(--span-tablet, 12); }
  .cms-header__inner > .cms-menu { display: none; }
  .cms-menu-toggle { display: block; cursor: pointer; }
  .cms-menu--mobile { display: none; width: min(calc(100% - 40px), var(--container-width, 1200px)); margin: 0 auto; padding: 8px 0 20px; }
  .cms-header--menu-open .cms-menu--mobile { display: block; }
  .cms-menu--mobile ul { align-items: stretch; flex-direction: column; gap: 4px; }
  .cms-menu--mobile li > ul { position: static; display: flex; min-width: 0; padding: 7px 0 2px 18px; background: transparent; box-shadow: none; }
  .cms-menu--mobile a { display: block; border-radius: 9px; padding: 8px 9px; }
  .cms-menu--mobile a:hover { background: #e8eef0; text-decoration: none; }
  .cms-footer > .cms-container { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
  .cms-container { width: min(calc(100% - 28px), var(--container-width, 1200px)); }
  .cms-row { gap: 18px; }
  .cms-block { grid-column: span var(--span-mobile, 12) !important; }
  .cms-element h1 { font-size: clamp(2.25rem, 12vw, 3.6rem); }
  .cms-element h2 { font-size: clamp(1.85rem, 9vw, 2.75rem); }
  .cms-menu--footer ul { align-items: flex-start; flex-direction: column; gap: 10px; }
}

/* Joye MiniSite 0.2.1 — rich text output */
.cms-text--rich p{margin:0 0 .85em}.cms-text--rich p:last-child{margin-bottom:0}
.cms-text--rich h2,.cms-text--rich h3{margin:.25em 0 .65em;font-weight:600;line-height:1.2}
.cms-text--rich ul,.cms-text--rich ol{margin:.65em 0;padding-left:1.45em}
.cms-text--rich blockquote{margin:1em 0;padding:.55em .9em;border-left:3px solid currentColor;opacity:.82}
.cms-text--rich a{text-decoration:underline;text-underline-offset:2px}
.cms-element--heading h1 strong,.cms-element--heading h1 b,.cms-element--heading h2 strong,.cms-element--heading h2 b,.cms-element--heading h3 strong,.cms-element--heading h3 b,.cms-element--heading h4 strong,.cms-element--heading h4 b,.cms-text--rich strong,.cms-text--rich b{font-weight:600}

/* Joye MiniSite 0.2.2 — image element output */
.cms-image-frame{position:relative;width:100%;overflow:hidden;border-radius:inherit;background:rgba(41,57,64,.05)}
.cms-image-frame img{display:block;max-width:none;transform-origin:center center;transition:filter .18s ease,opacity .18s ease}
.cms-image-link{display:block;border-radius:inherit;text-decoration:none}

/* Joye MiniSite 0.2.10 — fluid block widths */
.cms-row{display:block}
.cms-row-layout{display:flex;flex-wrap:wrap;align-items:var(--row-align,stretch);row-gap:var(--row-gap,24px)}
.cms-block-slot{box-sizing:border-box;flex:0 0 var(--block-width-desktop,100%);max-width:var(--block-width-desktop,100%);min-width:0;padding-inline:var(--row-half-gap,12px)}
.cms-block{min-width:0;height:100%;grid-column:auto}
@media (max-width:900px){.cms-block-slot{flex-basis:var(--block-width-tablet,var(--block-width-desktop,100%));max-width:var(--block-width-tablet,var(--block-width-desktop,100%))}}
@media (max-width:680px){.cms-block-slot{flex-basis:var(--block-width-mobile,100%);max-width:var(--block-width-mobile,100%)}}

/* 0.2.22 — nested grid element */
.cms-nested-grid{display:flex;min-width:0;min-height:var(--nested-grid-min-height,180px);gap:var(--nested-grid-gap,16px)}
.cms-nested-grid--horizontal{flex-direction:row;align-items:stretch}
.cms-nested-grid--vertical{flex-direction:column;align-items:stretch}
.cms-grid-cell{min-width:0;min-height:0;flex:var(--nested-grid-share,1) 1 0}
.cms-grid-cell>.cms-element+.cms-element{margin-top:18px}
@media(max-width:680px){.cms-nested-grid.is-mobile-stack{flex-direction:column!important;min-height:0}.cms-nested-grid.is-mobile-stack>.cms-grid-cell{flex:0 0 auto}}

/* Joye MiniSite 0.2.39 — basic element pack */
.cms-video-frame{position:relative;width:100%;overflow:hidden;background:#000}
.cms-video-frame video,.cms-video-frame iframe{display:block;width:100%;height:100%;border:0}
.cms-icon-wrap{display:flex;width:100%}.cms-icon-wrap--left{justify-content:flex-start}.cms-icon-wrap--center{justify-content:center}.cms-icon-wrap--right{justify-content:flex-end}
.cms-icon,.cms-icon-link{display:inline-flex;align-items:center;justify-content:center}.cms-icon svg{display:block;width:100%;height:100%}.cms-icon-link{color:inherit;text-decoration:none}
.cms-divider{display:flex;width:100%;box-sizing:border-box}.cms-divider i{display:block;box-sizing:border-box}
.cms-divider--horizontal{align-items:center}.cms-divider--horizontal i{width:var(--divider-length,100%);border-top:var(--divider-thickness,1px) var(--divider-style,solid) var(--divider-color,#a9bbc1)}
.cms-divider--horizontal.cms-divider--left{justify-content:flex-start}.cms-divider--horizontal.cms-divider--center{justify-content:center}.cms-divider--horizontal.cms-divider--right{justify-content:flex-end}
.cms-divider--vertical{height:var(--divider-height,80px)}.cms-divider--vertical i{height:var(--divider-length,100%);border-left:var(--divider-thickness,1px) var(--divider-style,solid) var(--divider-color,#a9bbc1)}
.cms-divider--vertical.cms-divider--left{justify-content:flex-start;align-items:flex-start}.cms-divider--vertical.cms-divider--center{justify-content:center;align-items:center}.cms-divider--vertical.cms-divider--right{justify-content:flex-end;align-items:flex-end}
.cms-spacer{height:var(--spacer-desktop,64px);pointer-events:none}
.cms-list{display:grid;gap:var(--list-gap,8px);margin:0;padding:0;list-style:none}.cms-list li{position:relative;padding-left:1.45em}.cms-list--bullet li:before,.cms-list--check li:before{position:absolute;left:0;color:var(--list-marker,#607983);font-weight:600}.cms-list--bullet li:before{content:'•'}.cms-list--check li:before{content:'✓'}.cms-list--number{counter-reset:joye-list}.cms-list--number li{counter-increment:joye-list}.cms-list--number li:before{content:counter(joye-list) '.';position:absolute;left:0;color:var(--list-marker,#607983);font-weight:600}.cms-list--none li{padding-left:0}
.cms-quote{margin:0;padding:18px 20px;border:0;background:color-mix(in srgb,currentColor 5%,transparent)}.cms-quote--line{border-left:3px solid currentColor}.cms-quote--quotes p:before{content:'“';font-size:1.8em;line-height:0;vertical-align:-.18em;margin-right:.12em;opacity:.55}.cms-quote p{margin:0}.cms-quote footer{display:grid;gap:2px;margin-top:12px}.cms-quote footer strong{font-weight:600}.cms-quote footer small{opacity:.68}
@media(max-width:900px){.cms-spacer{height:var(--spacer-tablet,var(--spacer-desktop,64px))}}
@media(max-width:680px){.cms-spacer{height:var(--spacer-mobile,var(--spacer-tablet,var(--spacer-desktop,64px)))}}

/* Joye MiniSite 0.2.41 — synchronized block heights per row */
.cms-row-layout>.cms-block-slot{
  height:var(--row-block-height-desktop,auto);
  min-height:var(--row-block-min-height-desktop,0px);
  max-height:var(--row-block-max-height-desktop,none);
}
.cms-row-layout>.cms-block-slot>.cms-block{height:100%}
@media(max-width:900px){
  .cms-row-layout>.cms-block-slot{
    height:var(--row-block-height-tablet,var(--row-block-height-desktop,auto));
    min-height:var(--row-block-min-height-tablet,var(--row-block-min-height-desktop,0px));
    max-height:var(--row-block-max-height-tablet,var(--row-block-max-height-desktop,none));
  }
}
@media(max-width:680px){
  .cms-row-layout>.cms-block-slot{
    height:var(--row-block-height-mobile,var(--row-block-height-tablet,var(--row-block-height-desktop,auto)));
    min-height:var(--row-block-min-height-mobile,var(--row-block-min-height-tablet,var(--row-block-min-height-desktop,0px)));
    max-height:var(--row-block-max-height-mobile,var(--row-block-max-height-tablet,var(--row-block-max-height-desktop,none)));
  }
}

/* Joye MiniSite 0.2.43 — gallery, accordion, tabs, counter, progress */
.cms-gallery{display:grid;grid-template-columns:repeat(var(--gallery-cols-desktop,3),minmax(0,1fr));gap:var(--gallery-gap,12px)}
.cms-gallery__item{display:block;min-width:0;color:inherit;text-decoration:none;overflow:hidden}
.cms-gallery__frame{display:block;width:100%;aspect-ratio:var(--gallery-ratio,auto);overflow:hidden;background:color-mix(in srgb,currentColor 5%,transparent)}
.cms-gallery__frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s ease}
.cms-gallery__item:hover img{transform:scale(1.02)}
.cms-lightbox{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:28px;background:rgba(255,255,255,.96)}
.cms-lightbox img{display:block;max-width:min(94vw,1600px);max-height:90vh;width:auto;height:auto;object-fit:contain}
.cms-lightbox button{position:absolute;right:18px;top:18px;width:42px;height:42px;border:1px solid #9eb2b9;background:#fff;color:#293940;font-size:1.6rem;line-height:1;cursor:pointer}
.cms-accordion{border-top:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.cms-accordion__item{border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.cms-accordion__item summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;cursor:pointer;list-style:none;font-weight:600}
.cms-accordion__item summary::-webkit-details-marker{display:none}
.cms-accordion__item summary span{font-size:1.35em;font-weight:400;transition:transform .16s ease}
.cms-accordion__item[open] summary span{transform:rotate(45deg)}
.cms-accordion__answer{padding:0 0 16px;opacity:.82}
.cms-tabs{display:grid;gap:14px}
.cms-tabs--vertical{grid-template-columns:minmax(160px,.32fr) 1fr;align-items:start}
.cms-tabs__nav{display:flex;flex-wrap:wrap;border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.cms-tabs--vertical .cms-tabs__nav{display:grid;border-bottom:0;border-right:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.cms-tabs__button{border:0;border-bottom:2px solid transparent;padding:10px 14px;background:transparent;color:inherit;font:inherit;font-weight:500;cursor:pointer}
.cms-tabs--vertical .cms-tabs__button{border-bottom:0;border-right:2px solid transparent;text-align:left}
.cms-tabs__button.is-active{border-color:var(--color-accent,#607983);font-weight:600}
.cms-tabs__panel{padding:4px 0}
.cms-counter{display:grid;gap:6px}
.cms-counter>strong{display:block;font-size:clamp(2rem,5vw,4.6rem);line-height:.95;letter-spacing:-.04em;font-weight:600}
.cms-counter>span{opacity:.72}
.cms-progress{display:grid;gap:8px}
.cms-progress__head{display:flex;justify-content:space-between;gap:18px}
.cms-progress__head strong{font-weight:600}
.cms-progress__track{height:var(--progress-height,10px);background:var(--progress-track,#dfe8eb);overflow:hidden}
.cms-progress__track i{display:block;width:var(--progress-value,0%);height:100%;background:var(--progress-color,#607983)}
@media(max-width:900px){.cms-gallery{grid-template-columns:repeat(var(--gallery-cols-tablet,2),minmax(0,1fr))}}
@media(max-width:680px){.cms-gallery{grid-template-columns:repeat(var(--gallery-cols-mobile,1),minmax(0,1fr))}.cms-tabs--vertical{grid-template-columns:1fr}.cms-tabs--vertical .cms-tabs__nav{border-right:0;border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent)}}
