:root{
  --teal:#004f4a;
  --teal-dark:#003b38;
  --orange:#b7672d;
  --navy:#001b4a;
  --text:#333;
  --muted:#777;
  --wrap:1200px;
  color-scheme:light;
}

html,body{max-width:100%;overflow-x:hidden}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
ul,ol{list-style:none;margin:0;padding:0}
.wrap{width:min(var(--wrap),calc(100% - 32px));margin:0 auto}

.site-header{height:auto;min-height:var(--header-h,74px);overflow:visible;background:#fff;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.header-inner{min-height:var(--header-h,74px);display:flex;align-items:center;justify-content:space-between;gap:34px}
.brand{display:flex;align-items:center;flex:0 0 auto;min-width:0}
.brand-logo{width:auto;max-width:250px;max-height:46px;object-fit:contain}
.brand-fallback{display:grid;gap:2px;line-height:1;color:#004f4a;font-weight:900;font-size:25px;letter-spacing:1px}
.brand-fallback small{font-size:12px;letter-spacing:6px;color:#777;font-weight:400}
.nav-toggle{display:none;border:0;background:transparent;color:#222;font-size:25px;line-height:1;padding:6px 8px;cursor:pointer}
.main-nav{align-self:stretch;min-width:0}
.nav-list{height:100%;display:flex;align-items:stretch;justify-content:flex-end;gap:0}
.nav-item{position:relative;display:flex;align-items:stretch}
.nav-link{height:var(--header-h,74px);display:flex;align-items:center;padding:0 18px;color:#202020;font-size:15px;white-space:nowrap;transition:color .18s ease,background .18s ease}
.nav-link:hover,.nav-item.is-active .nav-link{color:var(--teal)}

.footer{min-height:35px;display:flex;align-items:center;justify-content:center;padding:8px 16px;background:var(--navy);color:#e4e9f4;font-size:12px;line-height:1.6;text-align:center}
.footer a{margin:0 4px;color:#fff}
.footer a:hover{text-decoration:underline}

.contact-form-section{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:24px;margin-top:26px;padding:28px 30px;border:1px solid rgba(0,79,74,.14);border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(22,38,72,.08)}
.contact-form-intro h2{margin:0 0 10px;color:#1b2435;font-size:24px;line-height:1.35}
.contact-form-intro p{color:#667386;font-size:14px;line-height:1.85}
.contact-form-success,.contact-form-error,.contact-form-unavailable{margin:0 0 18px;padding:11px 14px;border-radius:10px;font-size:14px;line-height:1.6}
.contact-form-success{border:1px solid #b8dfcc;background:#effaf4;color:#216641}
.contact-form-error{border:1px solid #efc2c2;background:#fff5f5;color:#a33a3a}
.contact-form-unavailable{border:1px solid #e5d5b8;background:#fffaf0;color:#765a2a}
.contact-form{display:grid;gap:16px}
.contact-form-field{display:grid;gap:6px}
.contact-form-field label,.contact-form-boolean-label{color:#253248;font-size:14px;font-weight:700}
.contact-form-required{color:#c04d4d}
.contact-form input:not([type="checkbox"]),.contact-form textarea,.contact-form select{width:100%;min-height:42px;padding:9px 11px;border:1px solid #d9e1ea;border-radius:8px;background:#fff;color:#253248;font:inherit;outline:none;transition:border-color .18s ease,box-shadow .18s ease}
.contact-form textarea{min-height:118px;resize:vertical}
.contact-form input:not([type="checkbox"]):focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#004f4a;box-shadow:0 0 0 3px rgba(0,79,74,.14)}
.contact-form-boolean{display:flex;align-items:flex-start;gap:9px}
.contact-form-boolean input{flex:0 0 auto;width:17px;height:17px;margin-top:3px;accent-color:#004f4a}
.contact-form-help,.contact-form-field-error{font-size:12px;line-height:1.55}
.contact-form-help{color:#7c8797}
.contact-form-field-error{color:#b13f3f}
.contact-form-submit{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-height:42px;padding:0 24px;border:0;border-radius:8px;background:#004f4a;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:background-color .18s ease,transform .18s ease}
.contact-form-submit:hover,.contact-form-submit:focus-visible{background:#003b38;outline:none;transform:translateY(-1px)}
.contact-form-hp{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:1200px){
  .nav-link{padding:0 11px}
}

@media (max-width:900px){
  .site-header,.header-inner{height:auto;min-height:54px}
  .header-inner{flex-wrap:wrap;padding:8px 0}
  .nav-toggle{display:block;margin-left:auto}
  .main-nav{display:none;width:100%;align-self:auto}
  .site-header.is-open .main-nav{display:block}
  .nav-list{height:auto;display:grid;border-top:1px solid #eee}
  .nav-item{display:block}
  .nav-link{width:100%;height:42px;justify-content:flex-start;padding:0 12px;border-bottom:1px solid #f1f1f1;text-align:left}
  .contact-form-section{grid-template-columns:1fr}
}

@media (max-width:560px){
  .wrap{width:calc(100% - 18px)}
  .brand-logo{max-width:220px}
  .brand-fallback{font-size:22px}
  .brand-fallback small{font-size:11px;letter-spacing:3px}
}

/* Top carousel images keep their original ratio and are not cropped. */
.hero,
swiper-container.hero-swiper,
.hero .hero-slide,
.page-hero .hero-media,
.page-hero .hero-image-list,
.page-hero .hero-image-item,
.page-hero .hero-image-link,
.page-hero .hero-slide,
.xmdsite-page-hero .xmdsite-hero-media,
.xmdsite-page-hero .xmdsite-hero-image-list,
.xmdsite-page-hero .xmdsite-hero-image-item,
.xmdsite-page-hero .xmdsite-hero-image-link,
.xmdsite-page-hero .xmdsite-hero-slide{
  height:auto;
  min-height:0;
  max-height:none;
}

.hero,
.hero .hero-slide,
.page-hero,
.page-hero .hero-media,
.page-hero .hero-slide,
.xmdsite-page-hero,
.xmdsite-page-hero .xmdsite-hero-media,
.xmdsite-page-hero .xmdsite-hero-slide{
  overflow:visible;
}

.hero .hero-media,
.page-hero .hero-media-content,
.xmdsite-page-hero .xmdsite-hero-media-content{
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  object-fit:contain;
  object-position:center;
}

.hero a,
.page-hero .hero-image-link,
.xmdsite-page-hero .xmdsite-hero-image-link{
  display:block;
}

.hero .hero-fallback{
  min-height:clamp(220px,34vw,650px);
  height:auto;
}
