/* Homepage polish: preserve the original markup, content and CMS hooks. */
:root {
  --fnt-m: "Raleway", "Segoe UI", sans-serif;
  --fnt-t: "Raleway", "Segoe UI", sans-serif;
  --fnt-t-1-w: 500;
  --fnt-t-1-ls: -.025em;
  --fnt-t-2-ls: .1em;
  --fnt-t-3-ls: .08em;
  --btn-v1-ls: .09em;
  --btn-v2-ls: .09em;
}
body { -webkit-font-smoothing: antialiased; }
#MainZone { --text: #354355; }
#MainZone .mn_wd, #FooterZone .mn_wd { max-width: 1200px; }
#MainZone .mn_tn { max-width: 980px; }
#MainZone section.pd_v { padding-block: clamp(56px, 7vw, 104px); }
#MainZone .cnt-stl { line-height: 1.85; }
#MainZone .cnt-stl p + p { margin-top: 1.3em; }
#MainZone .cnt-stl h1, #MainZone section header > :first-child,
#StaffS2Content > h3 {
  font-size: clamp(30px, 3.2vw, 46px);
  line-height: 1.18;
  letter-spacing: -.025em;
}
#MainZone .btn {
  border-radius: 6px;
  min-height: 52px;
  max-width: 100%;
  white-space: normal;
  line-height: 1.5;
  transition: background-color .2s, color .2s, box-shadow .2s;
}
#MainZone .btn.v1 { box-shadow: 0 5px 18px #00000012; }
#MainZone .btn:hover { box-shadow: 0 8px 24px #00000020; }
body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #c39e0d;
  outline-offset: 5px;
}
#HeaderV1 > .mn_ { padding-block: 22px; }
#HeaderV1 .fly-nv { border-radius: 8px; box-shadow: 0 14px 40px #051e3330; }
#HeaderV1 li:focus-within > .fly-nv { opacity: 1; visibility: visible; }
#MainstageS1 {
  background: radial-gradient(ellipse at 85% 20%, #174f76 0%, transparent 60%), #082c4b;
  border-bottom: 3px solid #c39e0d;
}
#MainstageS1 .inf { padding-top: clamp(76px, 10vw, 150px); padding-bottom: clamp(80px, 10vw, 150px); }
#MainstageS1Content { max-width: 920px; margin-inline: auto; }
#MainstageS1Content > strong {
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.035em;
  text-wrap: balance;
}
#MainstageS1Content > em { font-size: clamp(13px, 1.4vw, 18px); line-height: 1.7; margin-top: 24px; }
#MainstageS1Button .btn-con { margin-top: 32px; }
#ContentS4 { background: #f7f8fa; }
#MainContent h1, #MainContent h2 { text-align: center; }
#MainContent h1, #ReviewsS6Header header > h4, #BlogV1Header header > h4 { color: #082c4b; }
#MainContent h2 { margin: 16px 0 30px; color: #8a6c08; }
#MainContent .txt-hlt {
  margin-top: 32px;
  padding: 24px 28px;
  border: 1px solid #e4ddc9;
  border-left: 3px solid #c39e0d;
  border-radius: 6px;
  background: #fff;
}
#MainContent p a:not(.btn) { color: #806400; text-decoration: underline; text-underline-offset: 3px; }
#ServicesS3 { background: #082c4b; }
#ServicesS3Feed > ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
#ServicesS3Feed > ul > li { width: auto; margin: 0; }
#ServicesS3Feed > ul > li > a {
  display: flex;
  align-items: center;
  min-height: 84px;
  padding: 22px 26px;
  border: 1px solid #ffffff26;
  border-radius: 8px;
  background: #ffffff06;
  transition: background-color .2s, border-color .2s;
}
#ServicesS3Feed > ul > li > a:is(:hover, :focus-visible) { background: #ffffff10; border-color: #c39e0d; color: #fff; }
#ServicesS3Feed .fnt_t-4 { font-size: 18px; line-height: 1.5; }
#StaffS2Feed [data-role="item"] > a { border-radius: 12px; overflow: hidden; border: 1px solid #e3e7ec; box-shadow: 0 16px 40px #082c4b0d; }
#ReviewsS6 { background: #f4f6f8; }
#ReviewsS6Feed [data-role="item"] { border: 1px solid #e0e5eb; border-radius: 12px; background: #fff; }
#ReviewsS6Feed blockquote { padding: clamp(24px, 4vw, 48px); }
#ReviewsS6Feed address { font-style: normal; font-weight: 700; letter-spacing: 0; }
#MainZone [data-role="arrows"] button { min-width: 44px; min-height: 44px; border-radius: 50%; }
#BlogV1Feed > ul { gap: 24px; }
#BlogV1Feed > ul > li { padding: 28px; border: 1px solid #e0e5eb; border-radius: 10px; background: #fff; }
#BlogV1Feed time { font-size: 13px; letter-spacing: .06em; color: #697586; }
#BlogV1Feed strong { font-size: 20px; font-weight: 600; letter-spacing: -.01em; line-height: 1.5; }
#ContactS2 { background: #082c4b; }
#ContactS2 > .mn_wd { max-width: 900px; }
#ContactS2Header p { max-width: 680px; margin: 20px auto 0; color: #d6e1eb; }
#ContactS2Form .input-text { padding: 14px 18px 10px; border: 1px solid #ffffff45; border-radius: 7px; background: #ffffff08; }
#ContactS2Form .input-text:focus-within { border-color: #c39e0d; background: #ffffff10; }
#ContactS2Form .input-text label { font-size: 14px; }
#ContactS2Form :is(input:not([type="hidden"]), select, textarea) { font-size: 16px; }
#ContactS2Form textarea { min-height: 120px; resize: vertical; }
#ContactS2Form small { line-height: 1.7; color: #c7d4e0; }
#FooterV1 { border-top: 1px solid #ffffff20; }
/* Keep content readable even if the archived CMS animation script is unavailable. */
#MainZone :is(.anm_hlf-l, .anm_hlf-r),
#MainZone .anm_seq-itm > *, #MainZone .anm_seq-lst > li { opacity: 1; transform: none; }
@media (max-width: 699px) {
  #MainZone .mn_wd, #MainZone .mn_tn { width: calc(100% - 40px); max-width: none; }
  #MainstageS1 .inf { padding-block: 64px 72px; }
  #MainstageS1Content > em { letter-spacing: .07em; }
  #MainZone .btn { font-size: 13px; padding: 16px 20px; }
  #ServicesS3Feed > ul { grid-template-columns: 1fr; gap: 10px; }
  #ServicesS3Feed > ul > li > a { min-height: 68px; padding: 18px 20px; }
  #ServicesS3Feed .fnt_t-4 { font-size: 17px; }
  #MainContent .txt-hlt { padding: 22px 18px; }
  #ContactS2Form .input-text { padding-inline: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  #MainZone *, #HeaderV1 * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
