/* Gemett overrides on top of the Greva theme: Chinese typography, logo, forms, landing page. */

:root{
	--default-font: "Inter Tight", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
	--text-color: #5f6b5c; /* theme grey #888 is below AA contrast on white */
}

body{ font-family: var(--default-font); }
p{ line-height: 1.85em; }
h1,h2,h3,h4,h5,h6{ line-height: 1.35em; }
img{ height: auto; }

/* Chinese headings: theme sizes (100px / 46px) are tuned for Latin text */
.section-title h1{ font-size: clamp(34px, 5.4vw, 72px); line-height: 1.2em; }
.section-title h2{ font-size: clamp(27px, 3.4vw, 42px); line-height: 1.3em; }
.page-header{ padding: 230px 0 120px; }
.page-header-box h1{ font-size: clamp(30px, 4.6vw, 56px); line-height: 1.25em; }
.service-entry h2,
.post-entry h2{ font-size: clamp(24px, 2.6vw, 32px); line-height: 1.35em; }
.hero-content{ max-width: 1100px; }
h1, h2{ text-wrap: balance; }
.hero::before{ content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,22,0,.25) 0%, rgba(3,22,0,.78) 100%); z-index: 0; }
.hero > .container{ position: relative; z-index: 1; }
.main-menu ul li a{ letter-spacing: .02em; }
.section-title .section-sub-title{ text-transform: none; }

.gm-skip{ position: absolute; left: -9999px; top: 0; background: var(--accent-color); color: var(--primary-color); padding: 10px 16px; z-index: 1000; font-weight: 600; }
.gm-skip:focus{ left: 10px; top: 10px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{ outline: 2px solid var(--accent-color); outline-offset: 2px; }

/* ---------- logo (HTML text mark, white on the dark header/footer) ---------- */
.gm-logo{ display: inline-flex; align-items: center; gap: 10px; color: var(--white-color); }
.gm-logo:hover{ color: var(--white-color); }
.gm-logo-mark{ width: 40px; height: 40px; border-radius: 12px; background: var(--accent-color); color: var(--primary-color); display: inline-flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 700; line-height: 1; }
.gm-logo-text{ font-size: 28px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }

/* ---------- avatars (initials, no stock faces on testimonials) ---------- */
.gm-avatar{ width: 50px; height: 50px; border-radius: 50%; background: var(--accent-color); color: var(--primary-color); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; flex-shrink: 0; }
.testimonial-item-author{ align-items: center; }

/* ---------- footer CTA ---------- */
.gm-cta-btns{ display: flex; flex-wrap: wrap; gap: 15px; }
.footer-contact-form h2{ font-size: clamp(24px, 2.6vw, 34px); }
.footer-contact-form p{ margin-bottom: 0; }
.footer-copyright-text a{ color: inherit; text-decoration: underline; }
.footer-copyright-text a:hover{ color: var(--accent-color); }

/* ---------- forms ---------- */
.contact-form .form-control{ width: 100%; }
.contact-form select.form-control{ appearance: auto; }
.contact-form .form-control.is-invalid{ border-color: var(--error-color); }
.gm-error{ color: var(--error-color); font-size: 14px; font-weight: 500; margin-top: 8px; line-height: 1.4em; }
.gm-hp{ position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gm-check{ display: flex; align-items: flex-start; gap: 10px; font-weight: 400 !important; font-size: 14px !important; line-height: 1.6em; cursor: pointer; }
.gm-check input{ margin-top: 5px; flex-shrink: 0; accent-color: #2f8a14; }
.gm-check a{ color: var(--primary-color); text-decoration: underline; }
.gm-note{ font-size: 14px; margin: 15px 0 0; }
.gm-form-msg{ background: var(--secondary-color); border-radius: 14px; padding: 30px; color: var(--primary-color); }
.gm-form-msg h3{ font-size: 22px; margin-bottom: 10px; }
.gm-form-msg p{ margin-bottom: 20px; }
.gm-form-msg p:last-child{ margin-bottom: 0; }
.gm-form-msg a.btn-default{ color: var(--primary-color); }
.gm-form-msg a.btn-default:hover{ color: var(--white-color); }
.contact-us-form .section-title{ margin-bottom: 30px; }

/* ---------- misc content blocks ---------- */
.gm-meta{ display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin: 0 0 15px; padding: 0; list-style: none; color: var(--white-color); font-size: 16px; }
.gm-meta i{ margin-right: 6px; }
.post-entry{ line-height: 1.9em; }
.post-entry p, .post-entry li{ font-size: 17px; }
.post-entry a{ color: #2f8a14; text-decoration: underline; }
.post-entry ol li, .post-entry ul li{ line-height: 1.8em; }
.gm-related{ margin-top: 60px; }
.gm-related h2{ font-size: 28px; margin-bottom: 30px; }
.gm-note-box{ background: var(--secondary-color); border-radius: 14px; padding: 25px 30px; margin-top: 30px; font-size: 15px; }
.gm-note-box p{ margin: 0; }
.gm-steps{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 25px 0 0; padding: 0; list-style: none; counter-reset: gm; }
.gm-steps li{ counter-increment: gm; background: var(--secondary-color); border-radius: 14px; padding: 25px; margin: 0 !important; list-style: none; }
.gm-steps li::before{ content: counter(gm, decimal-leading-zero); display: block; font-size: 14px; font-weight: 700; color: #2f8a14; margin-bottom: 8px; }
.gm-steps h3{ font-size: 18px; margin-bottom: 8px; }
.gm-steps p{ margin: 0; font-size: 15px; }
.gm-faq-inline{ margin-top: 40px; }
.service-entry ul.gm-checklist{ list-style: none; padding: 0; }
.service-entry ul.gm-checklist li{ padding-left: 28px; line-height: 1.7em; }
.service-entry ul.gm-checklist li::before{ content: ''; position: absolute; left: 0; top: 7px; width: 16px; height: 16px; background: url('../images/icon-pricing-benefit-1.svg') no-repeat center / contain; }
.pricing-item-content h3 sub{ font-size: 16px; }
.pricing-item-content h3{ font-size: 36px; }
.gm-price-note{ font-size: 14px; max-width: 900px; margin: 30px auto 0; text-align: center; }
.gm-brand-big{ font-weight: 700; }
.page-pricing, .page-testimonials{ padding: 120px 0; }
.about-us-review-content h3{ line-height: 1.6em; }
.testimonial-item-content p{ line-height: 1.8em; }
.footer-working-hour-box ul li{ line-height: 1.6em; }

/* ---------- landing page (/free-consultation/) ---------- */
.lp-header{ position: absolute; top: 0; left: 0; right: 0; z-index: 100; padding: 22px 0; border-bottom: 1px solid var(--dark-divider-color); }
.lp-header .container{ display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.lp-hero{ padding: 150px 0 90px; height: auto; min-height: 0; }
.lp-hero .section-title h1{ font-size: clamp(32px, 4.6vw, 58px); }
.lp-points{ list-style: none; padding: 0; margin: 25px 0 30px; }
.lp-points li{ color: var(--white-color); padding-left: 32px; position: relative; margin-bottom: 14px; line-height: 1.6em; }
.lp-points li::before{ content: ''; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; background: url('../images/icon-pricing-benefit-1.svg') no-repeat center / contain; filter: brightness(0) saturate(100%) invert(87%) sepia(32%) saturate(900%) hue-rotate(51deg); }
.lp-form-card{ background: var(--white-color); border-radius: 20px; padding: 40px; box-shadow: 0 25px 60px rgba(0,0,0,.25); }
.lp-form-card h2{ font-size: 28px; margin-bottom: 8px; }
.lp-form-card > p{ margin-bottom: 25px; }
.lp-form-card .form-group{ margin-bottom: 20px !important; }
.lp-form-card .contact-form label{ margin-bottom: 8px; font-size: 15px; }
.lp-form-card .contact-form .form-control{ padding: 14px 20px; }
.lp-form-card .btn-default{ width: 100%; text-align: left; }
.lp-trust{ background: var(--secondary-color); padding: 40px 0; }
.lp-trust ul{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; }
.lp-trust li{ display: flex; gap: 14px; align-items: center; color: var(--primary-color); font-weight: 600; line-height: 1.4em; }
.lp-trust .icon-box{ width: 50px; height: 50px; border-radius: 50%; background: var(--accent-color); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lp-trust .icon-box img{ width: 24px; }
.lp-trust small{ display: block; font-weight: 400; color: var(--text-color); font-size: 14px; margin-top: 3px; }
.lp-section{ padding: 100px 0; }
.lp-card{ background: var(--secondary-color); border-radius: 14px; padding: 35px; height: 100%; }
.lp-card h3{ font-size: 21px; margin: 18px 0 10px; }
.lp-card p{ margin: 0; }
.lp-card .icon-box{ width: 55px; height: 55px; border-radius: 50%; background: var(--accent-color); display: flex; align-items: center; justify-content: center; }
.lp-card .icon-box img{ width: 26px; }
.lp-cta-band{ text-align: center; }
.lp-cta-band .gm-cta-btns{ justify-content: center; margin-top: 30px; }
.lp-footer{ padding: 50px 0 110px; color: rgba(255,255,255,.75); font-size: 14px; }
.lp-footer a{ color: var(--white-color); text-decoration: underline; }
.lp-footer p{ margin-bottom: 8px; line-height: 1.7em; }
.lp-sticky{ display: none; }

/* ---------- responsive ---------- */
@media (max-width: 1199px){
	.lp-trust ul{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px){
	.page-header{ padding: 170px 0 80px; }
	.lp-hero{ padding-top: 130px; }
	.lp-form-card{ margin-top: 40px; padding: 30px 25px; }
	.lp-section{ padding: 70px 0; }
}
@media (max-width: 767px){
	.gm-steps{ grid-template-columns: 1fr; }
	.lp-trust ul{ grid-template-columns: 1fr; }
	.lp-card{ padding: 28px; }
	.lp-sticky{ display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 99; gap: 10px; padding: 10px 12px; background: var(--primary-color); box-shadow: 0 -6px 20px rgba(0,0,0,.25); }
	.lp-sticky a{ flex: 1; text-align: center; padding: 14px 10px; font-weight: 600; font-size: 15px; border-radius: 100px; }
	.lp-sticky .s-primary{ background: var(--accent-color); color: var(--primary-color); }
	.lp-sticky .s-ghost{ border: 1px solid var(--dark-divider-color); color: var(--white-color); }
	.gm-logo-text{ font-size: 24px; }
	.gm-logo-mark{ width: 34px; height: 34px; font-size: 20px; }
}
@media (prefers-reduced-motion: reduce){
	*{ animation: none !important; transition: none !important; }
	.wow{ visibility: visible !important; }
}

/* ---------- later additions ---------- */
.footer-contact-form > div:first-child{ flex: 1 1 420px; }
.our-story, .our-testimonials{ position: relative; }
.our-story::before, .our-testimonials::before{ content: ''; position: absolute; inset: 0; background: rgba(3,22,0,.62); z-index: 0; }
.our-story > .container, .our-testimonials > .container{ position: relative; z-index: 1; }
.what-we-item.box-1 .what-we-item-image img{ width: 100%; aspect-ratio: 1 / .85; object-fit: cover; border-radius: 10px 10px 0 0; }
.what-we-item.box-3 .what-we-item-image img{ width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }
.gm-table{ width: 100%; border-collapse: separate; border-spacing: 0; background: var(--white-color); border-radius: 14px; overflow: hidden; }
.gm-table th, .gm-table td{ padding: 18px 24px; border-bottom: 1px solid var(--divider-color); text-align: left; color: var(--primary-color); line-height: 1.6em; vertical-align: top; }
.gm-table thead th{ background: var(--primary-color); color: var(--white-color); font-weight: 600; border: 0; }
.gm-table tbody th{ width: 18%; font-weight: 600; background: var(--secondary-color); }
.gm-table tbody tr:last-child th, .gm-table tbody tr:last-child td{ border-bottom: 0; }
.nb{ display: inline-block; }
