/* Local visual refinement. Only the home/about templates opt in. */
.xy-home, .xy-about { --xy-accent: #e98b00; --xy-ink: #35312f; --xy-muted: #706974; }
.xy-home .mainer a:focus-visible, .xy-about .mainer a:focus-visible {
  outline: 2px solid #574654;
  outline-offset: 4px;
}
.xy-home .page { padding-top: 56px; padding-bottom: 56px; }
.xy-home .page2 { padding: 0; }
.xy-home .page_tit { margin-bottom: 32px; text-align: center; }
.xy-home .page_tit h2 { font-family: inherit; font-size: 32px; font-weight: 600; color: var(--xy-ink); }
.xy-home .page_tit .section-title-en, .xy-home .home-services-title .home-services-title-en { margin: 8px 0 0; font-size: 15px; font-weight: normal; line-height: 1.6; }
.xy-home .section-title-en img { vertical-align: middle; }
.xy-home .section-title-en span { display: inline-block; padding: 0 20px; }
.xy-home .page_tit .section-title-en span { color: #706974; }

/* One height source, matching the existing wide artwork instead of 16:9. */
.xy-home .banner_owl .banner .item { height: min(42.1053vw, 800px); }
.xy-home .banner_owl .owl-stage-outer,
.xy-home .banner_owl .owl-stage,
.xy-home .banner_owl .owl-item { height: auto; }
.xy-home .banner_owl .owl-item > a { display: block; }
.xy-home .banner_owl .owl-dots { bottom: 10px; }
.xy-home .banner_owl .owl-carousel * { touch-action: pan-y; }
.xy-home .home-services-wrap { max-width: 1600px; margin: 0 auto; padding: 0 36px; }
.xy-home .home-intro { padding: 40px 24px; background: #fff; text-align: center; }
.xy-home .home-intro h1 { max-width: 1180px; margin: 0 auto; font-size: 36px; font-weight: 600; line-height: 1.6; color: var(--xy-ink); }
.xy-home .home-services-title h2 { font-size: 32px; font-weight: 600; }
.xy-home .home-services-title .home-services-title-en { font-size: 15px; }
.xy-home .home-services-grid ul { gap: 24px; padding: 0; }
.xy-home .home-services-grid ul li .list {
  padding: 30px 28px; border: 1px solid #e5dfd8; border-top: 3px solid #e98b00; border-radius: 5px;
  background: #fff; min-height: 0;
}
.xy-home .home-services-grid ul li .list h3 {
  white-space: normal; font-size: 22px; line-height: 1.5; font-weight: 600;
  width: 100%; min-height: 64px; box-sizing: border-box;
  padding: 0 68px 0 0; margin-bottom: 14px; text-align: left;
  background-position: right top; background-size: 48px auto; color: var(--xy-ink);
}
.xy-home .home-services-grid .service-card-summary {
  width: 100%; box-sizing: border-box; text-align: left;
  color: #35312f; font-size: 15px; line-height: 1.7; min-height: 51px;
  padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #e5dfd8;
}
.xy-home .home-services-grid .service-card-content p {
  text-align: left; color: var(--xy-muted); font-size: 15px; line-height: 1.85; margin-bottom: 8px;
}
.xy-home .home-services-grid ul li:hover .list,
.xy-home .home-services-grid ul li:focus-within .list { background: #fffaf1; border-color: var(--xy-accent); }
.xy-home .home-services-grid ul li:hover .list .img { opacity: 0; }
.xy-home .home-services-grid ul li:hover .list h3 { color: var(--xy-ink); }
.xy-home .home-services-grid ul li:hover .service-card-summary { color: #35312f; }
.xy-home .home-services-grid ul li:hover .service-card-content p { color: var(--xy-muted); }
.xy-home .home-services-grid h3.h3-1 { --service-icon: url(../images/icon_03.png); }
.xy-home .home-services-grid h3.h3-2 { --service-icon: url(../images/icon_05.png); }
.xy-home .home-services-grid h3.h3-3 { --service-icon: url(../images/icon_07.png); }
.xy-home .home-services-grid h3.h3-4 { --service-icon: url(../images/icon_13.png); }
.xy-home .home-services-grid h3.h3-5 { --service-icon: url(../images/icon_15.png); }
.xy-home .home-services-grid h3.h3-6 { --service-icon: url(../images/icon_17.png); }
.xy-home .page.on { background: #faf8f5; }
.xy-home .page_list2 ul { padding: 0; }
.xy-home .page_list2 li a::after { content: ''; position: absolute; inset: 0; background: rgba(53, 49, 47, .32); pointer-events: none; }
.xy-home .page_list2 ul li .text {
  z-index: 1; left: 8%; right: 8%; top: 50%; margin: 0; transform: translateY(-50%); white-space: normal;
}
.xy-home .page_list2 ul li .text p {
  white-space: normal; width: 100%; line-height: 1.8; font-size: 15px;
  margin: 14px 0 0; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.5);
}
.xy-home .page3 .case_list ul { padding: 0; }
.xy-home .page3 .case_list ul a { margin: 0 8px; }
.xy-home .page3 .case_list ul img { width: 100%; height: auto; aspect-ratio: 38 / 21; object-fit: cover; border-radius: 4px; }
.xy-home .page3 .case_list ul .text h3 {
  white-space: normal; line-height: 1.7; font-size: 15px; height: 51px;
  margin-top: 8px; padding: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.xy-home .page4 {
  background-image: linear-gradient(rgba(53,49,47,.66),rgba(53,49,47,.66)), url(../images/software-development.webp);
  background-size: cover; background-attachment: scroll;
}
.xy-home .page4 .page_tit h2, .xy-home .page4 .page_tit .section-title-en span { color: #fff; }
.xy-home .page_list4 ul { padding: 0; }
.xy-home .page_list4 .list p { color: #faf8f5; font-size: 15px; line-height: 1.8; }
.xy-home .page_news .list h4, .xy-home .page_news .item.frt .text h4 { font-size: 15px; font-weight: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.xy-home .page_news .item.frt .text h4 { color: #000; }
.xy-home .page_news a:hover h4 { color: var(--xy-accent); }
.xy-home .page_news .item.frt .text { padding-top: 20px; padding-bottom: 20px; }
.xy-home .link_list ul a { border-color: #e5dfd8; border-radius: 4px; }
.xy-home .link_list ul a:hover { background: #fff; box-shadow: 0 4px 12px rgba(53,49,47,.08); transform: translateY(-2px); }

.xy-about .page_about > .wrap { width: calc(100% - 64px); max-width: 1180px; }
.xy-about .page_about .page_tit { margin-bottom: 30px; }
.xy-about .about_text .img1 { width: 28%; max-width: 300px; margin: 24px 0 24px 36px; }
.xy-about .about_text .img1 img { display: block; max-width: 100%; height: auto; }
.xy-about .about_text .text { overflow: visible; padding: 0; font-size: 16px; line-height: 1.9; color: #35312f; overflow-wrap: anywhere; }
/* Override editor-generated inline typography without deleting CMS content. */
.xy-about .about_text .text p {
  text-indent: 0; min-height: 0; padding: 0; margin: 0 0 14px !important;
  line-height: 1.9 !important; text-align: left;
}
.xy-about .about_text .text p span,
.xy-about .about_text .text p strong { font-family: inherit !important; font-size: inherit !important; color: inherit !important; }
.xy-about .about_text .text h1 { font-size: 25px; line-height: 1.6 !important; margin-bottom: 18px !important; }
.xy-about .about_text .text h2 {
  clear: both; font-size: 23px; line-height: 1.6 !important; color: var(--xy-ink);
  border-left: 3px solid var(--xy-accent); padding-left: 14px; margin: 32px 0 20px;
}
.xy-about .about_text .text h3 { font-size: 18px; line-height: 1.7 !important; margin: 22px 0 12px; color: var(--xy-ink); }
.xy-about .about_text .text :is(h1,h2,h3) :is(span,strong,a) { font-size: inherit !important; font-family: inherit !important; color: inherit !important; }
.xy-about .about_text .text a { color: #574654; text-decoration: underline; text-underline-offset: 3px; }
.xy-about .about_text .text hr { clear: both; height: 0; border: 0; border-top: 1px solid #e5dfd8; margin: 30px 0; }
.xy-about .about_text .text p:has(img) { clear: both; text-align: center; padding: 8px 0; }
.xy-about .about_text .text img { max-width: 100% !important; height: auto !important; border-radius: 4px; vertical-align: middle; }
.xy-about .about_text .text p:has(> img + img) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.xy-about .about_text .text p:has(> img + img) > img { width: 100% !important; height: auto !important; aspect-ratio: 8 / 5; object-fit: cover; }
.xy-about .about_text .text span[style*="background-color: rgb(84, 141, 212)"] {
  display: inline-block; background: #fff6e7 !important; color: #854500 !important;
  border: 1px solid #f0d7ac; border-radius: 4px; padding: 12px 24px; font-size: 22px !important;
}
.xy-about .news_xg_list img { aspect-ratio: 16/10; object-fit: cover; border-radius: 4px; }
.xy-about .news_xg_list .text h3 { line-height: 1.65; }
.xy-about .page_more > .wrap > h3 { margin-bottom: 24px; line-height: 1.5; }
.xy-about .news_xg_list ul { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; padding: 0; margin: 0; }
.xy-about .news_xg_list ul::after { display: none; }
.xy-about .news_xg_list ul li { float: none; width: auto; margin: 0; }
.xy-about .news_xg_list ul a { margin: 0; }

@media (max-width: 1100px) {
  .xy-home .home-services-wrap { padding: 0 24px; }
  .xy-home .home-services-grid ul { gap: 16px; }
  .xy-home .page_list2 ul li .text p { font-size: 14px; }
}
@media (max-width: 700px) {
  .xy-home .page { padding: 32px 0; }
  .xy-home .page2 { padding: 0; }
  .xy-home .page_tit { margin-bottom: 24px; }
  .xy-home .home-services-wrap { padding: 0 18px; }
  .xy-home .home-intro { padding: 28px 18px; }
  .xy-home .home-intro h1 { font-size: 28px; }
  .xy-home .page_tit h2 { font-size: 26px; }
  .xy-home .home-services-grid ul li .list { min-height: 0; padding: 24px; }
  .xy-home .home-services-grid .service-card-summary { min-height: 0; }
  .xy-home .page_list2 ul li .img img { min-height: 210px; object-fit: cover; }
  .xy-home .page_list2 ul li .text > div { font-size: 20px !important; }
  .xy-home .page2, .xy-home .page4 { display: block; }
  .xy-home .page_list2 ul li { width: 50%; }
  .xy-home .page_list4 ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 0; margin: 0; }
  .xy-home .page_list4 ul li { float: none; width: auto; margin: 0; }
  .xy-home .page_list4 .list { width: auto; padding: 0 12px; }
  .xy-home .page_list4 .list h3 { line-height: 1.6; margin: 8px 0; }
  .xy-home .page_list4 .list p { font-size: 14px; }
  .xy-home .page_list4 .jt { display: none; }
  .xy-home .link_list li:nth-child(n) { display: block; }
  .xy-home .page3 .case_list ul a { margin: 0 5px; }
  .xy-about .page_about { padding: 28px 0; }
  .xy-about .page_about > .wrap { width: calc(100% - 36px); }
  .xy-about .about_text .img1 { float: none; width: 210px; margin: 0 auto 24px; }
  .xy-about .about_text .text { font-size: 16px; }
  .xy-about .about_text .text h1 { font-size: 22px; }
  .xy-about .about_text .text h2 { font-size: 21px; }
  .xy-about .about_text .text p:has(> img + img) { grid-template-columns: 1fr; gap: 12px; }
  .xy-about .news_xg_list ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 12px; }
  .xy-about .about_text .text span[style*="background-color: rgb(84, 141, 212)"] { padding: 10px 12px; font-size: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .xy-home .animated, .xy-about .animated { animation: none !important; }
}

/* Brand UI palette: warm orange accents, warm charcoal text, restrained gray-purple links. */
.xy-home .home-services-grid ul li .list h3 { position: relative; background-image: none; }
.xy-home .home-services-grid ul li .list h3::after { content: ''; position: absolute; right: 0; top: 0; width: 48px; height: 48px; background-color: #574654; -webkit-mask: var(--service-icon) center / contain no-repeat; mask: var(--service-icon) center / contain no-repeat; }
