/* ==========================================================================
   Green Sun — giao diện tiếng Việt
   Chỉ nạp khi WPML = vi (inc/vi-modern.php). Mọi selector gắn với .gsv / .gsv-*.
   Bootstrap 3 đặt html{font-size:10px} nên file này dùng px, không dùng rem.
   ========================================================================== */

/* Evidence-led homepage additions and mobile contact actions. */
/* Vietnamese case studies use the complete EN content structure. */
.gsv-cs-inner { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 28px; }
.gsv-cs-eyebrow { color: #3f7a1c; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
body.gsv .gsv-cs-title { font-size: clamp(27px,3vw,38px); line-height: 1.3; margin: 0 0 16px; }
.gsv-cs-lead { font-size: 18px; line-height: 1.75; color: #5f6b63; max-width: 980px; }
.gsv-cs-head { margin-bottom: 32px; }
.gsv-cs-head--center { text-align: center; }
.gsv-cs-head--center .gsv-cs-lead { margin-left: auto; margin-right: auto; }
.gsv-cs-hero { isolation: isolate; overflow: hidden; background: #eef5e5; }
.gsv-cs-hero__bg { position: absolute; inset: 0; margin: 0; z-index: -2; }
.gsv-cs-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .22; }
.gsv-cs-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(242,248,232,.95),rgba(242,248,232,.25)); }
body.gsv .gsv-cs-hero__title { font-size: clamp(34px,4vw,52px); line-height: 1.2; margin: 0 0 20px; }
.gsv-cs-hero .gsv-cs-lead { max-width: 760px; color: #3a453e; }
.gsv-cs-introtext { max-width: 1000px; margin: 0 auto 32px; }
.gsv-cs-introtext h2 { font-size: clamp(27px,3vw,38px); }
.gsv-cs-langstats { padding: 28px; background: #f2f8e8; border: 1px solid #dce6d2; border-radius: 18px; }
.gsv-cs-langstats > .wp-block-group__inner-container { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.gsv-cs-lstat { text-align: center; }
.gsv-cs-lstat strong { display: block; color: #3f7a1c; font-size: clamp(30px,4vw,46px); line-height: 1.2; margin-bottom: 10px; }
.gsv-cs-lstat span { display: block; font-size: 15px; }
.gsv-cs-grid > .wp-block-group__inner-container { display: grid; gap: 20px; }
.gsv-cs-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(4,minmax(0,1fr)); }
.gsv-cs-grid--2 > .wp-block-group__inner-container { grid-template-columns: repeat(2,minmax(0,1fr)); }
.gsv-cs-case { min-width: 0; border: 1px solid #e2e7df; border-radius: 16px; padding: 22px; background: #fff; }
.gsv-cs-case > .wp-block-group__inner-container { height: 100%; display: flex; flex-direction: column; }
body.gsv .gsv-cs-case h3 { font-size: 20px; line-height: 1.4; margin: 0 0 16px; }
.gsv-cs-case__top { margin-bottom: 16px; }
.gsv-cs-case__ico { width: 54px; height: 54px; margin: 0 0 12px; }
.gsv-cs-case__ico figure { margin: 0; }
.gsv-cs-case__ico img { width: 54px; height: 54px; object-fit: contain; }
.gsv-cs-case__tag { color: #3f7a1c; font-size: 12px; font-weight: 700; }
.gsv-cs-case__stats { padding: 0; margin: 0 0 18px; list-style: none; }
.gsv-cs-case__stats li { margin: 0 0 14px; }
.gsv-cs-case__stats span { display: block; font-size: 13px; color: #5f6b63; }
.gsv-cs-case__stats strong { display: block; color: #16201a; font-size: 16px; line-height: 1.5; }
.gsv-cs-case__link { margin-top: auto !important; font-size: 14px; font-weight: 600; }
.gsv-cs-case--trial { background: #e8f3d8; }
.gsv-cs-case--media { padding: 0; overflow: hidden; }
.gsv-cs-case__shot { margin: 0; background: #f6f7f4; }
.gsv-cs-case__shot img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: contain; display: block; }
.gsv-cs-case__body { padding: 22px; }
.gsv-cs-projects { background: #f6f7f4; }
.gsv-cs-faq__list { display: grid; gap: 12px; }
.gsv-cs-faq__item { border: 1px solid #dce6d2; border-radius: 12px; background: #fff; overflow: hidden; }
.gsv-cs-faq__item summary { padding: 20px 22px; color: #16201a; cursor: pointer; font-weight: 600; font-size: 17px; }
.gsv-cs-faq__item summary span { display: block; font-size: 13px; color: #5f6b63; font-weight: 400; margin-top: 6px; }
.gsv-cs-faq__item > p, .gsv-cs-proj__pdf { padding: 0 22px 16px; }
.gsv-cs-faq__item[open] summary { background: #f2f8e8; margin-bottom: 16px; }
.gsv-cs-table-scroll { max-width: 100%; overflow-x: auto; margin: 0 20px 20px; }
.gsv-cs-table { width: 100%; min-width: 650px; border-collapse: collapse; font-size: 14px; }
.gsv-cs-table th, .gsv-cs-table td { padding: 12px 14px; border-bottom: 1px solid #e2e7df; text-align: left; vertical-align: top; }
.gsv-cs-table th { background: #eef5e5; color: #2f5d14; font-weight: 700; }
.gsv-cs-table td:first-child { width: 52%; }
.gsv-cs-table tbody tr:nth-child(even) { background: #fafcf7; }
.gsv-cs-section--logos { padding-left: 28px; padding-right: 28px; text-align: center; }
.gsv-cs-logos-title { font-size: 20px; font-weight: 700; color: #3f7a1c; }
.gsv-cs-band__box { padding: clamp(26px,4vw,44px); border-radius: 18px; background: #e8f3d8; }
body.gsv .gsv-cs-band__title { font-size: clamp(27px,3vw,38px); margin: 0 0 14px; }
.gsv-cs-band__text { margin-bottom: 24px !important; }
.gsv-cs-section [id] { scroll-margin-top: 100px; }
@media (max-width: 1000px) { .gsv-cs-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
    .gsv-cs-inner { padding: 0 20px; }
    .gsv-cs-grid--4 > .wp-block-group__inner-container, .gsv-cs-grid--2 > .wp-block-group__inner-container { grid-template-columns: 1fr; }
    .gsv-cs-langstats > .wp-block-group__inner-container { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .gsv-cs-langstats { padding: 24px 14px; }
    .gsv-cs-faq__item summary { padding: 18px; }
    .gsv-cs-table-scroll { margin-left: 12px; margin-right: 12px; }
}
.gsv-mobile-contact { display: none; }
.gsv-proof-stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding: 28px; border: 1px solid #dce6d2; border-radius: 18px; background: #f2f8e8; }
.gsv-proof-stats__grid > div { text-align: center; }
.gsv-proof-stats__grid strong { display: block; color: #3f7a1c; font-size: clamp(32px, 4vw, 48px); line-height: 1.2; margin-bottom: 10px; }
.gsv-proof-stats__grid span { display: block; font-size: 15px; color: #3a453e; }
.gsv-proof-intro { margin-top: 26px; max-width: 1000px; font-size: 16px; line-height: 1.8; }
@media (max-width: 600px) { .gsv-proof-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 16px; padding: 24px 16px; } }
body.gsv .gsv-proof-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
body.gsv .gsv-proof-heading h2 { font-size: clamp(27px, 3vw, 38px); line-height: 1.3; margin: 0; }
.gsv-proof-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.gsv-proof-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid #e2e7df; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 8px 26px rgba(22,32,26,.05); }
.gsv-proof-card > img { display: block; width: 100%; aspect-ratio: 16/10; height: auto; object-fit: cover; }
.gsv-proof-card__body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
body.gsv .gsv-proof-card h3 { font-size: 21px; line-height: 1.4; margin: 0 0 12px; }
.gsv-proof-card h3 a { color: inherit; text-decoration: none; }
body.gsv .gsv-proof-tag { font-size: 12px; font-weight: 700; color: #3f7a1c; margin-bottom: 10px; }
body.gsv .gsv-proof-card__metric { font-size: 24px; font-weight: 700; color: #3f7a1c; margin-top: auto; padding-top: 12px; }
body.gsv .gsv-proof-source { font-size: 13px; color: #5f6b63; line-height: 1.6; margin-top: 20px; }
.gsv-proof-quality { background: #f4f8ee; }
.gsv-proof-quality__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px; }
.gsv-proof-panel { border: 1px solid #dce6d2; border-radius: 18px; padding: clamp(24px,3vw,36px); background: #fff; }
body.gsv .gsv-proof-panel h3 { font-size: 23px; line-height: 1.4; margin: 0 0 22px; }
.gsv-proof-panel ol { margin: 0 0 24px; padding-left: 24px; }
.gsv-proof-panel ol li { padding: 0 0 18px 7px; }
.gsv-proof-panel ol li::marker { color: #3f7a1c; font-weight: 700; }
.gsv-proof-panel ol strong, .gsv-proof-panel ol span { display: block; }
.gsv-proof-panel ol span { margin-top: 5px; font-size: 15px; }
.gsv-proof-panel--green { background: #e8f3d8; }
.gsv-proof-panel--green > svg { margin-bottom: 18px; color: #3f7a1c; }
.gsv-proof-panel ul { padding-left: 20px; }
.gsv-proof-panel ul li { margin-bottom: 10px; }
.gsv-proof-hero { background: radial-gradient(ellipse at 95% 0, #d8ecb8, transparent 60%), #f2f8e8; }
body.gsv .gsv-proof-hero h1 { font-size: clamp(32px,4vw,49px); line-height: 1.25; margin: 0 0 22px; max-width: 850px; }
.gsv-proof-hero .gsv-lead { max-width: 760px; margin-bottom: 26px; }
.gsv-proof-detail:nth-child(odd) { background: #f6f7f4; }
.gsv-proof-detail__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(28px,5vw,64px); align-items: center; }
.gsv-proof-detail figure { margin: 0; }
.gsv-proof-detail img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 18px; }
body.gsv .gsv-proof-detail h2 { font-size: clamp(26px,3vw,35px); line-height: 1.3; margin: 0 0 24px; }
.gsv-proof-detail dt { font-weight: 700; color: #16201a; margin-bottom: 5px; }
.gsv-proof-detail dd { margin: 0 0 18px; }
.gsv-proof-detail article { scroll-margin-top: 100px; }
.gsv-proof-next { background: #e8f3d8; }
.gsv-proof-next p { max-width: 800px; }
@media (max-width: 900px) {
    .gsv-proof-grid { grid-template-columns: 1fr; }
    .gsv-proof-card { display: grid; grid-template-columns: .8fr 1.2fr; }
    .gsv-proof-card > img { height: 100%; aspect-ratio: auto; }
    .gsv-proof-quality__grid, .gsv-proof-detail__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    body.gsv { padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px)); }
    .gsv-mobile-contact { display: grid; grid-template-columns: 1fr 1.15fr; position: fixed; bottom: 0; left: 0; right: 0; z-index: 9990; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255,255,255,.97); border-top: 1px solid #dce6d2; box-shadow: 0 -5px 22px rgba(22,32,26,.1); }
    body.gsv .gsv-mobile-contact a { display: flex; justify-content: center; align-items: center; gap: 8px; min-height: 48px; padding: 8px; border: 1px solid #3f7a1c; border-radius: 10px; color: #2f5d14; font-size: 15px; font-weight: 700; text-decoration: none; line-height: 1.3; }
    body.gsv .gsv-mobile-contact a.gsv-mobile-contact__quote { background: #3f7a1c; color: #fff; }
    body.gsv .gsv-mobile-contact a:focus-visible { outline: 3px solid #8bc53f; outline-offset: 2px; }
    body.gsv:has(input:focus, textarea:focus, select:focus) .gsv-mobile-contact { display: none; }
    body.gsv #pagetop { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
    body.gsv .gsv-proof-heading { display: block; }
    .gsv-proof-heading > a { display: inline-block; margin-top: 16px; }
    .gsv-proof-card { display: flex; }
    .gsv-proof-card > img { height: auto; aspect-ratio: 16/9; }
    .gsv-proof-card__body { padding: 22px; }
}
body.gsv {
    --gsv-green: #8bc53f;
    --gsv-green-hover: #7db535;
    --gsv-green-700: #3f7a1c;
    --gsv-green-800: #2f5d14;
    --gsv-green-50: #f2f8e8;
    --gsv-green-100: #e4f1d2;
    --gsv-ink: #16201a;
    --gsv-heading: #6fae2c; /* xanh tươi cho tiêu đề */
    --gsv-ink-2: #3a453e;
    --gsv-muted: #5f6b63;
    --gsv-line: #e2e7df;
    --gsv-bg: #ffffff;
    --gsv-bg-soft: #f6f7f4;
    --gsv-radius: 12px;
    --gsv-radius-sm: 8px;
    --gsv-shadow: 0 1px 2px rgba(22, 32, 26, .06);
    --gsv-shadow-lg: 0 12px 32px rgba(22, 32, 26, .10);
    --gsv-ease: cubic-bezier(.22, .61, .36, 1);
    --gsv-header-h: 76px;
    --gsv-font: sans-serif;

    font-family: var(--gsv-font);
    font-size: 16px;
    line-height: 1.7;
    color: var(--gsv-ink-2);
    background: var(--gsv-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.gsv h1, body.gsv h2, body.gsv h3, body.gsv h4 {
    font-family: inherit;
    font-weight: 700;
    color: var(--gsv-ink);
    letter-spacing: 0;
}
/* Tiêu đề chính (h1, h2): xanh tươi, nét dày hơn bằng bóng chữ lệch ngang
   (không dùng 900 vì Arial Black thiếu dấu; không dùng text-stroke vì lộ nét chồng bên trong chữ) */
body.gsv h1, body.gsv h2 { color: var(--gsv-heading); text-shadow: .45px 0 0 currentColor, -.45px 0 0 currentColor; }
body.gsv .gsv-section--dark h2 { text-shadow: none; }
/* CSS cũ đặt font-family/uppercase cho từng thẻ — trong vùng giao diện mới luôn kế thừa */
.gsv-header, .gsv-header *, .gsv-home, .gsv-home *, .gsv-footer, .gsv-footer * { font-family: var(--gsv-font); }
.gsv-home .wp-block-button__link, .gsv-btn { text-transform: none; letter-spacing: 0; }
body.gsv #main-content { padding-top: 0 !important; }

.gsv-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.gsv-skip {
    position: absolute; left: -9999px; top: 8px; z-index: 1000;
    background: var(--gsv-ink); color: #fff; padding: 8px 14px; border-radius: 6px;
}
.gsv-skip:focus { left: 8px; color: #fff; }

/* ---------- Icon nét (SVG) — gắn bằng class gsv-i-* ---------- */
.gsv-i-search   { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E"); }
.gsv-i-flag     { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4h12l-2 4 2 4H5'/%3E%3C/svg%3E"); }
.gsv-i-monitor  { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4'/%3E%3C/svg%3E"); }
.gsv-i-megaphone{ --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10v4h4l7 5V5L7 10H3zM18 9a4 4 0 0 1 0 6'/%3E%3C/svg%3E"); }
.gsv-i-network  { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='12' r='2.5'/%3E%3Ccircle cx='18' cy='6' r='2.5'/%3E%3Ccircle cx='18' cy='18' r='2.5'/%3E%3Cpath d='M8.2 10.8l7.6-3.6M8.2 13.2l7.6 3.6'/%3E%3C/svg%3E"); }
.gsv-i-present  { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='11' rx='1'/%3E%3Cpath d='M12 15v5M8 20h8M7 12l3-3 2 2 4-4'/%3E%3C/svg%3E"); }
.gsv-i-document { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E"); }
.gsv-i-headset  { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15v-3a8 8 0 0 1 16 0v3'/%3E%3Crect x='3' y='14' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='14' width='4' height='6' rx='1.5'/%3E%3C/svg%3E"); }
.gsv-i-users    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M18 14.5a6.5 6.5 0 0 1 3.5 5.5'/%3E%3C/svg%3E"); }
.gsv-i-building { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2M10 21v-3h4v3'/%3E%3C/svg%3E"); }
.gsv-i-shield   { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.gsv-i-clock    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.gsv-i-globe    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }
.gsv-i-chart    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18M6 20v-6M11 20V9M16 20v-9M20 20V5'/%3E%3C/svg%3E"); }
.gsv-i-award    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.5 13.5L7 21l5-3 5 3-1.5-7.5'/%3E%3C/svg%3E"); }
.gsv-i-translate{ --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h10M8 3v2M5.5 5c.5 3.5 3 6.5 6.5 8M10.5 5c-.5 3.5-3 6.5-7 8M13 21l4-9 4 9M14.5 18h5'/%3E%3C/svg%3E"); }
.gsv-i-cart     { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.5 12h12L22 7H6.2'/%3E%3C/svg%3E"); }
.gsv-i-pin      { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.gsv-i-code     { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7l-5 5 5 5M16 7l5 5-5 5M14 4l-4 16'/%3E%3C/svg%3E"); }
.gsv-i-heart    { --gsv-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238bc53f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.6-7.5-10A4.3 4.3 0 0 1 12 7.4 4.3 4.3 0 0 1 19.5 10c0 5.4-7.5 10-7.5 10z'/%3E%3C/svg%3E"); }

[class*="gsv-i-"]::before {
    content: "";
    display: block;
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
    background: transparent var(--gsv-i) center / contain no-repeat;
}
/* Thẻ có icon (SVG hoặc ảnh PNG cũ): icon to, canh giữa cùng tiêu đề và mô tả */
.gsv-card[class*="gsv-i-"], .gsv-card--icon, .gsv-vm-card { text-align: center; }
.gsv-card[class*="gsv-i-"]::before, .gsv-vm-card[class*="gsv-i-"]::before { margin-left: auto; margin-right: auto; }

/* ---------- Buttons ---------- */
.gsv-btn,
.gsv .gsv-home .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 24px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
    border: 1.5px solid transparent;
    transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s;
    cursor: pointer;
    box-sizing: border-box;
}
.gsv-btn--primary,
.gsv .gsv-home .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--gsv-green);
    color: var(--gsv-ink) !important;
}
.gsv-btn--primary:hover,
.gsv .gsv-home .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    background: var(--gsv-green-hover);
    box-shadow: 0 6px 18px rgba(139, 197, 63, .35);
}
.gsv .gsv-home .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--gsv-ink) !important;
    border-color: rgba(22, 32, 26, .25);
}
.gsv .gsv-home .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--gsv-ink); }
.gsv-btn--block { width: 100%; }
.gsv .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.gsv .wp-block-buttons .wp-block-button { margin: 0; }

.gsv a:focus-visible, .gsv button:focus-visible, .gsv summary:focus-visible {
    outline: 3px solid var(--gsv-green);
    outline-offset: 3px;
    border-radius: 4px;
}

.gsv-link-arrow { font-weight: 600; color: var(--gsv-green-700) !important; text-decoration: none !important; }
.gsv-link-arrow::after { content: "→"; display: inline-block; margin-left: 6px; transition: transform .25s var(--gsv-ease); }
.gsv-link-arrow:hover::after { transform: translateX(4px); }

.gsv-chip {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 4px;
    background: var(--gsv-green-50);
    color: var(--gsv-green-700);
    font-size: 12.5px;
    font-weight: 600;
}

/* ---------- Header ---------- */
.gsv-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: #fff;
    border-bottom: 1px solid var(--gsv-line);
    transition: box-shadow .3s;
}
body.admin-bar .gsv-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gsv-header { top: 0; } }
.gsv-header.is-scrolled { box-shadow: 0 4px 18px rgba(22, 32, 26, .07); }
.gsv-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--gsv-header-h); }
.gsv-logo { flex: 0 0 auto; }
.gsv-logo img { display: block; height: 44px; width: auto; max-width: none; }
.gsv-logo a { display: block; }

.gsv-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.gsv-menu, .gsv-menu ul { list-style: none; margin: 0; padding: 0; }
.gsv-menu { display: flex; align-items: center; gap: 2px; }
.gsv-menu > li { position: relative; }
/* Icons belong to dropdown entries, not top-level navigation labels. */
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu > li > a {
    display: flex;
    align-items: center;
    gap: 12px;
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu > li > a::before {
    content: "";
    display: block;
    flex: 0 0 21px;
    width: 21px;
    height: 21px;
    background: #578d25;
    -webkit-mask: var(--gsv-submenu-icon) center / contain no-repeat;
    mask: var(--gsv-submenu-icon) center / contain no-repeat;
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/our-team/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='3'/%3E%3Cpath d='M3 21v-3a6 6 0 0112 0v3M16 4a3 3 0 010 6M18 14a5 5 0 013 4v3'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/lich-su-hinh-thanh/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11a9 9 0 119 10M3 4v7h7M12 7v5l3 2'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/mission/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M16 8l-2 6-6 2 2-6z'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/photo-gallery/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Ccircle cx='8' cy='8' r='1.5'/%3E%3Cpath d='M3 17l5-5 4 4 4-6 5 7'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/blog/"],
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/translation-and-localization/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h12M9 3v2M5 5c0 5 4 8 8 10M13 5c0 5-4 8-9 10M13 21l4-10 4 10M14.5 17h5'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/nhan-vien-la-khach-hang/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 5a5 5 0 00-8 1 5 5 0 00-8-1c-4 5 3 11 8 15 5-4 12-10 8-15z'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/case-studies/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7V5a2 2 0 012-2h5l2 3h7a2 2 0 012 2v11a2 2 0 01-2 2H5a2 2 0 01-2-2V7zM8 13l3 3 5-6'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/japan-market-marketing/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10v4h4l11 5V5L7 10zM7 14l2 7h4l-3-6M21 9v6'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href$="/interpretation/"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-3a8 8 0 0116 0v3M4 13H3v5h4v-5zM20 13h1v5h-4v-5zM20 18v1a2 2 0 01-2 2h-5'/%3E%3C/svg%3E");
}
:is(.gsv-menu, .gsv-drawer__menu) .sub-menu a[href*="gs123.greensun.com.vn"] {
    --gsv-submenu-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}
.gsv-menu > li > a {
    position: relative;
    display: block;
    padding: 26px 14px;
    color: var(--gsv-ink) !important;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none !important;
    white-space: nowrap;
    transition: color .2s;
}
.gsv-menu > li > a::before {
    content: "";
    position: absolute;
    left: 14px; right: 14px; bottom: 16px;
    height: 2px;
    background: var(--gsv-green);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s var(--gsv-ease);
}
.gsv-menu > li > a:hover::before,
.gsv-menu > li.current-menu-item > a::before,
.gsv-menu > li.current-menu-ancestor > a::before { transform: scaleX(1); }
.gsv-menu > li.menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 6px; height: 6px;
    margin-left: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
}
.gsv-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 270px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--gsv-line);
    border-top: 2px solid var(--gsv-green);
    border-radius: 0 0 8px 8px;
    box-shadow: var(--gsv-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .2s, transform .2s var(--gsv-ease), visibility .2s;
}
.gsv-menu > li:hover > .sub-menu,
.gsv-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.gsv-menu .sub-menu a {
    display: block;
    padding: 9px 12px;
    border-radius: 4px;
    color: var(--gsv-ink-2) !important;
    font-size: 14.5px;
    text-decoration: none !important;
}
.gsv-menu .sub-menu a:hover { background: var(--gsv-green-50); color: var(--gsv-green-700) !important; }

.gsv-header__actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.gsv-lang { position: relative; }
.gsv-lang__btn {
    min-width: 46px; height: 40px; padding: 0 12px;
    border-radius: 6px;
    font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1;
    cursor: pointer;
}
.gsv-lang__list {
    position: absolute; right: 0; top: calc(100% + 6px);
    min-width: 72px; margin: 0; padding: 6px; list-style: none;
    background: #fff; border: 1px solid var(--gsv-line); border-radius: 8px; box-shadow: var(--gsv-shadow-lg);
    opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: opacity .2s, transform .2s, visibility .2s;
}
.gsv-lang.is-open .gsv-lang__list, .gsv-lang:hover .gsv-lang__list, .gsv-lang:focus-within .gsv-lang__list { opacity: 1; visibility: visible; transform: none; }
.gsv-lang__list a {
    display: block; padding: 7px 10px; border-radius: 4px;
    color: var(--gsv-ink) !important; font-size: 13px; font-weight: 600; text-decoration: none !important; text-align: center;
}
.gsv-lang__list a:hover { background: var(--gsv-green-50); }

.gsv-burger { display: none; width: 44px; height: 44px; padding: 0; border-radius: 6px; cursor: pointer; position: relative; }
.gsv-burger span { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--gsv-ink); border-radius: 2px; transition: transform .3s var(--gsv-ease), opacity .2s; }
.gsv-burger span:nth-child(1) { top: 15px; }
.gsv-burger span:nth-child(2) { top: 21px; }
.gsv-burger span:nth-child(3) { top: 27px; }
.gsv-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.gsv-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.gsv-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Một số trang cũ có CSS chung cho button — giữ nút ngôn ngữ/burger đúng kiểu */
body.gsv .gsv-header .gsv-lang__btn,
body.gsv .gsv-header .gsv-burger {
    background: #fff !important;
    color: var(--gsv-ink) !important;
    border: 1px solid var(--gsv-line) !important;
    box-shadow: none !important;
}

.gsv-drawer { border-top: 1px solid var(--gsv-line); background: #fff; padding: 12px 20px 24px; max-height: calc(100vh - var(--gsv-header-h)); overflow-y: auto; }
.gsv-drawer[hidden] { display: none; }
.gsv-drawer__menu, .gsv-drawer__menu ul { list-style: none; margin: 0; padding: 0; }
.gsv-drawer__menu > li { border-bottom: 1px solid var(--gsv-line); }
.gsv-drawer__menu a { display: block; padding: 14px 4px; color: var(--gsv-ink) !important; font-size: 16px; font-weight: 500; text-decoration: none !important; }
.gsv-drawer__menu .sub-menu { padding: 0 0 10px 14px; }
.gsv-drawer__menu .sub-menu a { padding: 8px 4px; font-size: 15px; color: var(--gsv-ink-2) !important; }
.gsv-drawer .gsv-btn { margin-top: 18px; }

@media (max-width: 1100px) {
    .gsv-nav, .gsv-header__cta { display: none; }
    .gsv-burger { display: inline-block; }
    .gsv-header__actions { margin-left: auto; }
}
@media (max-width: 600px) {
    body.gsv { --gsv-header-h: 64px; }
    .gsv-logo img { height: 36px; }
}

/* ---------- Khung section (khối Gutenberg) ---------- */
.gsv-home { overflow: hidden; }
.gsv-home p { margin: 0 0 14px; }
.gsv-home p:last-child { margin-bottom: 0; }
.gsv-home .wp-block-columns { margin-bottom: 0; }

.gsv-section { position: relative; padding: clamp(44px, 5vw, 72px) 0; margin: 0 !important; }
.gsv-section > .wp-block-group__inner-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.gsv-section--soft { background: var(--gsv-bg-soft); }
.gsv-section--tight { padding: clamp(32px, 3.5vw, 48px) 0; }
.gsv-section--dark { background: var(--gsv-ink); color: rgba(255, 255, 255, .75); }
body.gsv .gsv-section--dark h2, body.gsv .gsv-section--dark h3 { color: #fff; }

.gsv-eyebrow {
    margin: 0 0 12px !important;
    color: var(--gsv-green-700);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.gsv-section--dark .gsv-eyebrow { color: var(--gsv-green); }

.gsv-home h2.gsv-title {
    margin: 0 0 16px;
    font-size: clamp(28px, 3.2vw, 40px);
    line-height: 1.25;
    font-weight: 700;
    max-width: 780px;
}
.gsv-title mark, .gsv-hero__title mark { background: none; color: var(--gsv-green-700); padding: 0; }
.gsv-lead { max-width: 700px; font-size: clamp(16px, 1.3vw, 18px); color: var(--gsv-muted); }
.gsv-section--dark .gsv-lead { color: rgba(255, 255, 255, .7); }
.gsv-head { margin-bottom: clamp(24px, 3vw, 40px) !important; }
.gsv-head--center { text-align: center; }
.gsv-head--center > .wp-block-group__inner-container > * { margin-left: auto; margin-right: auto; }

/* ---------- Hero: chữ + ảnh thật ---------- */
/* ---------- Hero: ảnh nền toàn khung mờ dần sang trái, tiêu đề 2 màu, thanh 5 cam kết ---------- */
.gsv-hero {
    overflow: hidden;
    padding: clamp(40px, 5vw, 72px) 0 clamp(28px, 3vw, 40px);
    background: #fff;
}
.gsv-hero > .wp-block-group__inner-container { position: static; }
.gsv-hero__content { position: relative; z-index: 1; }
.gsv-hero .wp-block-columns { position: relative; align-items: center !important; gap: clamp(32px, 5vw, 64px); }
.gsv-hero .wp-block-columns h1.gsv-hero__title { font-size: clamp(28px, 3vw, 42px); line-height: 1.3; }
.gsv .gsv-hero__bg.wp-block-image {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 56%;
    margin: 0 !important;
    z-index: 0;
}
.gsv-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 100% 30%; display: block; }
.gsv-hero__bg::after {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .92) 32%, rgba(255, 255, 255, 0) 68%);
}
.gsv-hero__content { max-width: 720px; margin-bottom: clamp(36px, 5vw, 64px) !important; }
.gsv-hero h1.gsv-hero__title {
    margin: 0 0 20px;
    font-size: clamp(32px, 3.6vw, 52px);
    line-height: 1.25;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    color: var(--gsv-heading);
}
.gsv-hero__title mark { display: block; background: none; padding: 0; color: #6fae2c; }
@media (min-width: 861px) { .gsv-hero:not(.gsv-hero--quote) .gsv-hero__content .gsv-hero__title mark { white-space: nowrap; } }
.gsv-hero .gsv-lead { max-width: 580px; margin-bottom: 32px; font-size: clamp(16px, 1.3vw, 18px); color: var(--gsv-ink-2); }
.gsv .gsv-home .gsv-hero .wp-block-button__link { text-transform: uppercase; font-size: 14.5px; letter-spacing: .02em; padding: 15px 26px; }
.gsv .gsv-home .gsv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--gsv-green-800); color: #fff !important; }
.gsv .gsv-home .gsv-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--gsv-ink); box-shadow: 0 8px 20px rgba(0, 0, 0, .18); }
.gsv .gsv-home .gsv-hero .wp-block-button.is-style-outline .wp-block-button__link { background: #fff; color: var(--gsv-green-800) !important; border-color: var(--gsv-green-800); }

/* Hero có câu cam kết trên ảnh (trang Dịch thuật) */
.gsv-hero--quote .gsv-hero__content { max-width: 740px; }
.gsv-hero--quote h1.gsv-hero__title { font-size: clamp(28px, 3vw, 42px); }
.gsv-hero--quote .gsv-lead { max-width: 600px; }
/* Câu cam kết: hiện lần lượt từng câu ở khoảng trống giữa nút và thanh số liệu */
.gsv-hero__quote {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0 0 clamp(24px, 3vw, 36px) !important;
    padding-left: 20px;
}
.gsv-hero__quote::before {
    content: "";
    position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; border-radius: 4px;
    background: var(--gsv-green);
    transform: scaleY(0); transform-origin: top;
    animation: gsv-quote-bar .7s cubic-bezier(.22, 1, .36, 1) .2s forwards;
}
.gsv-hero__quote p {
    margin: 0 !important;
    font-size: clamp(18px, 1.8vw, 24px);
    line-height: 1.45;
    font-weight: 700;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(18px);
    filter: blur(6px);
    text-shadow: 0 2px 3px rgba(0, 0, 0, .18), 0 6px 16px rgba(63, 122, 28, .35);
    animation: gsv-quote-in .9s cubic-bezier(.22, 1, .36, 1) forwards;
}
.gsv-hero__quote p:first-child { color: var(--gsv-ink); margin-bottom: 6px !important; animation-delay: .35s; }
.gsv-hero__quote p:last-child { color: var(--gsv-green-700); animation-delay: 1.2s; }
.gsv-hero__quote strong { color: inherit; font-weight: 700; }
@media (min-width: 861px) { .gsv-hero__quote p { white-space: nowrap; } }
@keyframes gsv-quote-in { to { opacity: 1; transform: none; filter: none; } }
@keyframes gsv-quote-bar { to { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) {
    .gsv-hero__quote p, .gsv-hero__quote::before { animation: none; opacity: 1; transform: none; filter: none; }
}

/* Dải số liệu (.gsv-statband) nằm trong hero: thanh xanh thấp, icon nét bên trái + số và mô tả bên phải */
.gsv-hero .gsv-statband {
    position: relative;
    z-index: 1;
    padding: 20px 0;
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .16);
}
.gsv-statband .gsv-stat2 { display: flex; align-items: center; gap: 16px; padding: 4px 24px; }
.gsv-statband .gsv-stat2:first-child { padding-left: 4px; }
.gsv-statband .gsv-stat2[class*="gsv-i-"]::before {
    flex: 0 0 auto;
    width: 38px; height: 38px;
    margin: 0;
    border-radius: 0;
    background: #fff;
    -webkit-mask: var(--gsv-i) center / contain no-repeat;
    mask: var(--gsv-i) center / contain no-repeat;
}
.gsv-statband .gsv-stat2 strong { font-size: clamp(26px, 2.2vw, 32px); margin-bottom: 2px; text-shadow: 0 1px 6px rgba(47, 93, 20, .25); }
.gsv-statband .gsv-stat2 span { font-size: 13.5px; line-height: 1.45; }
@media (max-width: 1100px) {
    .gsv .gsv-statband > .wp-block-group__inner-container { row-gap: 20px; }
}
@media (max-width: 600px) {
    .gsv-statband > .wp-block-group__inner-container { gap: 18px 12px; }
    .gsv-statband .gsv-stat2, .gsv-statband .gsv-stat2:first-child { padding: 0 4px; gap: 10px; }
    .gsv-statband .gsv-stat2[class*="gsv-i-"]::before { width: 30px; height: 30px; margin: 0; }
    .gsv-statband .gsv-stat2 strong { font-size: 24px; }
}
@media (max-width: 860px) {
    .gsv .gsv-hero__bg.wp-block-image { width: 100%; }
    .gsv-hero__bg::after { background: linear-gradient(180deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .8) 60%, rgba(255, 255, 255, .55) 100%); }
}

.gsv-photo { position: relative; margin: 0 !important; }
.gsv-photo img { display: block; width: 100%; height: auto; border-radius: var(--gsv-radius); object-fit: cover; }
/* Ảnh có khung: ảnh "nhô" lên trên nền xanh đậm + lưới chấm, viền trắng và bóng đổ để tăng tương phản */
.gsv-photo--frame { padding: 0 0 28px 28px; }
.gsv-photo--frame::before {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    width: 74%; height: 74%;
    background: linear-gradient(145deg, #5d9a24 0%, #3d621b 100%);
    border-radius: var(--gsv-radius);
}
.gsv-photo--frame::after {
    content: "";
    position: absolute;
    right: -12px; top: -14px;
    width: 96px; height: 96px;
    background-image: radial-gradient(var(--gsv-green) 2px, transparent 2.5px);
    background-size: 14px 14px;
    opacity: .85;
    z-index: 0;
}
.gsv-photo--frame img {
    position: relative; z-index: 1; aspect-ratio: 4 / 3;
    border: 6px solid #fff;
    box-shadow: 0 26px 48px -12px rgba(20, 44, 8, .45), 0 6px 14px rgba(20, 44, 8, .18);
    transform: translateY(-8px);
    transition: transform .35s ease, box-shadow .35s ease;
}
.gsv-photo--frame:hover img {
    transform: translateY(-14px);
    box-shadow: 0 34px 56px -12px rgba(20, 44, 8, .5), 0 8px 18px rgba(20, 44, 8, .2);
}
.gsv-photo:not(.gsv-photo--hero) figcaption {
    position: relative;
    margin-top: 10px;
    font-size: 13px;
    color: var(--gsv-muted);
}

/* ---------- Dải thành tích màu #8BC53F ---------- */
.gsv-statband { background: var(--gsv-green); padding: clamp(22px, 2.5vw, 30px) 0; }
.gsv-statband > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
}
.gsv-stat2 {
    position: relative;
    padding: 4px 28px;
    color: var(--gsv-ink);
}
.gsv-stat2 + .gsv-stat2::after {
    content: "";
    position: absolute;
    left: 0; top: 8px; bottom: 8px;
    width: 1px;
    background: rgba(22, 32, 26, .18);
}
.gsv-stat2[class*="gsv-i-"]::before {
    width: 56px; height: 56px;
    margin-bottom: 18px;
    border-radius: 50%;
    background-color: #fff;
    background-size: 28px;
}
.gsv-stat2 p { margin: 0 !important; }
.gsv-stat2 strong {
    display: block;
    font-size: clamp(40px, 4.6vw, 60px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0;
    color: #fff;
    text-shadow: 0 2px 10px rgba(47, 93, 20, .28);
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
}
.gsv-stat2 span { display: block; font-size: 15px; font-weight: 500; line-height: 1.5; color: rgba(22, 32, 26, .78); }

/* ---------- Lưới & thẻ ---------- */
.gsv-grid > .wp-block-group__inner-container { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.gsv-grid--2 > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gsv-grid--3 > .wp-block-group__inner-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gsv-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.gsv-card {
    position: relative;
    height: 100%;
    padding: 30px 28px;
    background: #fff;
    border: 1px solid var(--gsv-line);
    border-radius: var(--gsv-radius);
    transition: border-color .25s, box-shadow .25s var(--gsv-ease), transform .25s var(--gsv-ease);
    box-sizing: border-box;
}
.gsv-card:hover { border-color: var(--gsv-green); box-shadow: var(--gsv-shadow-lg); transform: translateY(-3px); }
.gsv-card h3 { margin: 0 0 10px; font-size: 19px; line-height: 1.4; font-weight: 700; }
.gsv-card p { font-size: 15px; color: var(--gsv-muted); }
.gsv-card .gsv-card__link { margin-top: 18px !important; }
.gsv-card .gsv-card__link a { font-weight: 600; color: var(--gsv-green-700) !important; text-decoration: none !important; }
.gsv-card .gsv-card__link a::after { content: " →"; }
.gsv-need {
    margin-top: 16px !important;
    padding-top: 16px;
    border-top: 1px solid var(--gsv-line);
    font-size: 14px !important;
    color: var(--gsv-ink-2) !important;
}

/* Full-frame business photography, with readable text inside each curved card. */
.gsv-personas .gsv-persona {
    position: relative; isolation: isolate; overflow: hidden;
    min-height: 420px; padding: 28px 24px;
    border: 1px solid #e3e8df; border-radius: 28px !important;
    background: #f6f5ef; cursor: pointer;
    box-shadow: 0 8px 24px rgba(36,56,45,.06);
    transition: transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
}
.gsv-personas .gsv-persona::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1;
}
.gsv-personas .gsv-persona .gsv-persona__photo {
    position: absolute; inset: 0; z-index: -1; pointer-events: none;
    width: 100%; height: 100%; max-width: none; margin: 0;
    object-fit: cover; object-position: center 40%;
    transition: transform .65s cubic-bezier(.22,1,.36,1);
}
.gsv-personas .gsv-persona::after {
    background: linear-gradient(180deg, rgba(250,249,244,.7) 0%, rgba(250,249,244,.28) 24%, transparent 45%);
}
.gsv-personas .gsv-persona > .wp-block-group__inner-container {
    position: static; display: flex; flex-direction: column; justify-content: flex-start;
    min-height: 364px; height: 100%;
}
.gsv-personas .gsv-persona .gsv-ill { display: none; }
.gsv-personas .gsv-persona .gsv-num { display: none; }
.gsv-personas .gsv-persona h3 {
    color: #24382d !important; font-size: 21px; line-height: 1.4;
    margin: 0 0 12px !important; text-shadow: none;
}
.gsv-personas .gsv-persona p:not(.gsv-num) {
    display: none;
    color: #fff !important; font-size: 15px; line-height: 1.75; margin: 0 !important;
}
.gsv-personas .gsv-persona.is-active {
    z-index: 5; transform: translateY(-14px) scale(1.025);
    box-shadow: 0 28px 48px rgba(89,145,36,.34), 0 8px 24px rgba(139,197,63,.28);
}
.gsv-personas .gsv-persona.is-active .gsv-persona__photo { transform: scale(1.07); }
.gsv-personas .gsv-persona.is-active::after { background: rgba(94,160,30,.88); }
.gsv-personas .gsv-persona.is-active h3 { color: #fff !important; }
.gsv-personas .gsv-persona.is-active p:not(.gsv-num) { display: block; color: #fff !important; }
.gsv-personas .gsv-persona:focus-visible { outline: 3px solid var(--gsv-green); outline-offset: 5px; }
@media (hover: hover) and (min-width: 601px) {
    .gsv-personas .gsv-persona:hover,
    .gsv-personas .gsv-persona.is-active:hover {
        z-index: 6;
        transform: translateY(-24px) scale(1.08);
        box-shadow: 0 36px 60px rgba(89,145,36,.34), 0 12px 28px rgba(139,197,63,.22);
    }
    .gsv-personas .gsv-persona:hover .gsv-persona__photo { transform: scale(1.045); }
    .gsv-personas .gsv-persona:hover::after { background: rgba(94,160,30,.88); }
    .gsv-personas .gsv-persona:hover h3 { color: #fff !important; }
    .gsv-personas .gsv-persona:hover p:not(.gsv-num) {
        display: block; color: #fff !important;
    }
}
@media (max-width: 600px) {
    .gsv-personas .gsv-persona { min-height: 400px; }
    .gsv-personas .gsv-persona > .wp-block-group__inner-container { min-height: 344px; }
    .gsv-personas .gsv-persona.is-active { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce) {
    .gsv-personas .gsv-persona, .gsv-personas .gsv-persona .gsv-persona__photo { transition: none; }
}
/* Danh sách có dấu tích */
.gsv-checks { list-style: none; margin: 18px 0 0; padding: 0; }
.gsv-checks li { position: relative; padding-left: 30px; margin-bottom: 10px; color: var(--gsv-ink-2); }
.gsv-checks li::before {
    content: "";
    position: absolute; left: 0; top: 6px;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--gsv-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316201a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Khối chia đôi: ảnh + chữ ---------- */
.gsv-split.wp-block-columns { align-items: center !important; gap: clamp(32px, 5vw, 80px); }
.gsv-split--reverse.wp-block-columns { flex-direction: row-reverse; }

/* ---------- Logo khách hàng ---------- */
.gsv-logos {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-top: 1px solid var(--gsv-line);
    border-left: 1px solid var(--gsv-line);
    margin: 0; padding: 0; list-style: none;
}
.gsv-logos li {
    display: flex; align-items: center; justify-content: center;
    height: 96px; padding: 16px 20px;
    border-right: 1px solid var(--gsv-line);
    border-bottom: 1px solid var(--gsv-line);
    background: #fff;
}
/* Logo màu gốc; brightness/contrast đẩy ô nền xám nhạt có sẵn trong ảnh JPG thành trắng */
.gsv-logos img { max-width: 100%; max-height: 48px; width: auto; height: auto; object-fit: contain; filter: brightness(1.06) contrast(1.12) saturate(1.05); transition: transform .3s var(--gsv-ease); }
.gsv-logos li:hover img { transform: scale(1.06); }

/* Logo chạy ngang (giữ cho [gsv_clients]) */
.gsv-marquee { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.gsv-marquee__track { display: flex; align-items: center; gap: 56px; flex: 0 0 auto; margin: 0; padding: 8px 28px; list-style: none; animation: gsv-marquee 42s linear infinite; }
.gsv-marquee:hover .gsv-marquee__track { animation-play-state: paused; }
.gsv-marquee__track img { display: block; height: 48px; width: auto; max-width: 160px; object-fit: contain; filter: grayscale(1); opacity: .7; }

/* ---------- Quy trình ---------- */
/* Nền xanh nhạt; trái: tiêu đề; phải: 5 bước — vòng icon nối bằng nét chấm, số lớn xanh, tiêu đề in hoa */
.gsv-process { background: var(--gsv-green-50); }
.gsv-process__wrap.wp-block-columns { align-items: flex-start !important; gap: clamp(32px, 4vw, 56px); }
.gsv-home .gsv-process__intro h2.gsv-title { font-size: clamp(26px, 2.6vw, 34px); }
.gsv-process__intro .gsv-lead { font-size: 16px; }
.gsv-steps > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    counter-reset: gsv-step;
}
.gsv-step {
    position: relative;
    counter-increment: gsv-step;
    text-align: center;
}
.gsv-step[class*="gsv-i-"]::before {
    width: 88px; height: 88px;
    margin: 0 auto 18px;
    border-radius: 50%;
    border: 2px solid rgba(63, 122, 28, .35);
    box-sizing: border-box;
    background: #fff var(--gsv-i) center / 34px no-repeat;
    transition: border-color .3s var(--gsv-ease), transform .3s var(--gsv-ease);
}
.gsv-step:hover::before { border-color: var(--gsv-green); transform: translateY(-3px); }
/* Nét chấm nối tâm vòng này sang vòng kế tiếp */
.gsv-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 43px;
    left: calc(50% + 50px);
    width: calc(100% + 16px - 100px);
    border-top: 2px dotted rgba(22, 32, 26, .35);
}
body.gsv .gsv-step h3 {
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--gsv-green-800);
}
.gsv-step h3::before {
    content: counter(gsv-step, decimal-leading-zero);
    display: block;
    margin-bottom: 8px;
    font-size: 40px; font-weight: 700; line-height: 1;
    letter-spacing: 0;
    color: var(--gsv-green);
}
.gsv-step p { font-size: 14px; line-height: 1.6; color: var(--gsv-muted); }

/* ---------- Ý kiến khách hàng ---------- */
.gsv-quotes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gsv-quote {
    margin: 0; padding: 32px;
    background: #fff;
    border: 1px solid var(--gsv-line);
    border-left: 4px solid var(--gsv-green);
    border-radius: var(--gsv-radius);
    display: flex; flex-direction: column;
}
.gsv-quote blockquote { margin: 0 0 22px; padding: 0; border: 0; font-size: 15.5px; font-style: normal; color: var(--gsv-ink-2); flex: 1; }
.gsv-quote figcaption { display: flex; align-items: center; gap: 12px; }
.gsv-quote figcaption img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.gsv-quote figcaption strong { display: block; color: var(--gsv-ink); font-size: 15px; }
.gsv-quote figcaption small { display: block; color: var(--gsv-muted); font-size: 13px; }

/* ---------- Blog ---------- */
.gsv-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gsv-post-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--gsv-line); border-radius: var(--gsv-radius); transition: box-shadow .25s, border-color .25s; }
.gsv-post-card:hover { border-color: var(--gsv-green); box-shadow: var(--gsv-shadow-lg); }
.gsv-post-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gsv-green-50); }
.gsv-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--gsv-ease); }
.gsv-post-card:hover .gsv-post-card__media img { transform: scale(1.04); }
.gsv-post-card__placeholder { display: block; width: 100%; height: 100%; background: var(--gsv-green-50); }
.gsv-post-card__body { padding: 20px 22px 24px; }
.gsv-post-card__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 13px; color: var(--gsv-muted); }
.gsv-post-card__title { margin: 0 0 8px; font-size: 18px; line-height: 1.45; }
.gsv-post-card__title a { color: var(--gsv-ink) !important; text-decoration: none !important; }
.gsv-post-card__title a:hover { color: var(--gsv-green-700) !important; }
.gsv-post-card__excerpt { margin: 0; font-size: 14.5px; color: var(--gsv-muted); }
.gsv-more { margin-top: 32px !important; text-align: center; }

/* ---------- Bảng giá / bảng dữ liệu (khối Table) ---------- */
/* Giống bảng EN: đầu bảng xanh chữ trắng, viền xanh nhạt, không có vạch đen dưới đầu bảng (thead mặc định của khối Table). */
.gsv-table { margin: 0 0 12px !important; overflow-x: auto; border: 1px solid #cfe3b4; border-radius: 0; background: #fff; }
.gsv-table table { width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0; border: 0; margin: 0; font-size: 15px; }
.gsv-table thead, .gsv-table tfoot { border: 0 !important; }
.gsv-table thead th {
    padding: 14px 16px;
    background: #8dc63f;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    text-align: left;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, .35);
}
.gsv-table thead th:last-child { border-right: 0; }
.gsv-table td { padding: 13px 16px; border: 0; border-top: 1px solid #dcebc8; border-right: 1px solid #dcebc8; color: var(--gsv-ink-2); vertical-align: top; }
.gsv-table td:last-child { border-right: 0; }
.gsv-table tbody tr:first-child td { border-top: 0; }
.gsv-table tbody tr:nth-child(even) td { background: #f8fbf3; }
.gsv-table td:first-child { font-weight: 600; color: var(--gsv-ink); }
.gsv-table--compact table { min-width: 0; }
.gsv-table-title { margin: 36px 0 6px !important; font-size: 20px !important; }
.gsv-note { font-size: 14px !important; color: var(--gsv-muted) !important; }

/* Lĩnh vực: danh sách 2 cột có đường kẻ */
.gsv-fields > .wp-block-group__inner-container { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.gsv-field { padding: 22px 0; border-top: 1px solid var(--gsv-line); }
.gsv-field h3 { margin: 0 0 6px; font-size: 17px; font-weight: 700; }
.gsv-field h3::before {
    content: "";
    display: inline-block;
    width: 8px; height: 8px;
    margin-right: 10px;
    border-radius: 2px;
    background: var(--gsv-green);
    transform: translateY(-2px);
}
.gsv-field p { font-size: 14.5px; color: var(--gsv-muted); }

/* So sánh gói QUALITY / SPEED */
.gsv-plans > .wp-block-group__inner-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gsv-plan { padding: 32px; background: #fff; border: 1px solid var(--gsv-line); border-radius: var(--gsv-radius); }
.gsv-plan--featured { border: 2px solid var(--gsv-green); box-shadow: var(--gsv-shadow-lg); }
.gsv-plan .gsv-plan__tag {
    display: inline-block; margin: 0 0 14px !important; padding: 4px 10px;
    border-radius: 4px; background: var(--gsv-green); color: var(--gsv-ink);
    font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.gsv-plan h3 { margin: 0 0 6px; font-size: 26px; font-weight: 700; }
.gsv-plan dl { margin: 18px 0 0; }
.gsv-plan dt { margin-top: 14px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gsv-green-700); }
.gsv-plan dd { margin: 4px 0 0; color: var(--gsv-ink-2); font-size: 15px; }

/* ---------- FAQ (khối Details) ---------- */
.gsv-faq > .wp-block-group__inner-container { max-width: 900px; }
.gsv-faq .wp-block-details { margin: 0; padding: 0; border-bottom: 1px solid var(--gsv-line); }
.gsv-faq .wp-block-details:first-of-type { border-top: 1px solid var(--gsv-line); }
.gsv-faq .wp-block-details summary {
    position: relative; padding: 22px 48px 22px 0; list-style: none;
    font-size: 17px; font-weight: 600; color: var(--gsv-ink); cursor: pointer;
}
.gsv-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.gsv-faq .wp-block-details summary::after {
    content: ""; position: absolute; right: 4px; top: 50%;
    width: 12px; height: 12px; margin-top: -8px;
    border-right: 2px solid var(--gsv-green-700); border-bottom: 2px solid var(--gsv-green-700);
    transform: rotate(45deg); transition: transform .3s var(--gsv-ease);
}
.gsv-faq .wp-block-details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.gsv-faq .wp-block-details > :not(summary) { padding: 0 0 22px; margin: 0; color: var(--gsv-muted); }

/* ---------- CTA liên hệ: nền trắng, tiêu đề + nút xanh, bóng đổ đen mờ ---------- */
.gsv-cta { padding-top: 0 !important; }
.gsv-cta-box {
    position: relative;
    overflow: hidden;
    padding: clamp(36px, 5vw, 64px) !important;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .05);
    color: var(--gsv-ink-2);
}
body.gsv .gsv-cta-box h2.gsv-title { color: var(--gsv-heading); }
.gsv-cta-box .gsv-lead { color: var(--gsv-muted); margin-bottom: 26px; }
.gsv .gsv-home .gsv-cta-box .wp-block-button.is-style-outline .wp-block-button__link { color: var(--gsv-green-700) !important; border-color: var(--gsv-green); }
.gsv .gsv-home .gsv-cta-box .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--gsv-green-700); }
.gsv-cta-box .gsv-contact-line { margin-top: 22px !important; font-size: 15px; }
.gsv-cta-box .gsv-contact-line a { color: var(--gsv-green-700) !important; font-weight: 700; }
.gsv-cta-box .wp-block-columns { align-items: center !important; gap: 40px; }
.gsv-cta-box .gsv-photo img { aspect-ratio: 4 / 3; box-shadow: 0 18px 40px rgba(0, 0, 0, .18); }

/* ---------- Trang tĩnh VI (templates/vi-page-modern.php) — vd. Triết lý kinh doanh ---------- */
/* Hero không có dải số liệu: cao vừa phải, chữ giữa theo chiều dọc */
.gsv-hero--page { padding: clamp(56px, 7vw, 104px) 0; }
.gsv-hero--page .gsv-hero__content { margin-bottom: 0 !important; }
.gsv-hero--page .gsv-lead { font-size: clamp(17px, 1.5vw, 21px); font-weight: 600; font-style: italic; color: var(--gsv-ink-2); }

/* Tầm nhìn & Sứ mệnh: 2 thẻ lớn, icon + câu tuyên bố */
.gsv-vm-card {
    height: 100%;
    padding: clamp(28px, 3.5vw, 44px);
    background: #fff;
    border-top: 4px solid var(--gsv-green);
    border-radius: var(--gsv-radius);
    box-shadow: 0 14px 36px rgba(0, 0, 0, .07);
    box-sizing: border-box;
}
.gsv-vm-card .gsv-eyebrow { margin-bottom: 10px !important; }
.gsv-vm-card__text { margin: 0 !important; font-size: clamp(20px, 1.9vw, 26px); line-height: 1.45; font-weight: 700; color: var(--gsv-ink); }
.gsv-vm-card__sub { margin: 10px 0 0 !important; font-size: 16px; font-style: italic; color: var(--gsv-muted); }

/* 5 giá trị cốt lõi: mỗi giá trị một hàng — số + tên bên trái, các ý bên phải */
.gsv-values > .wp-block-group__inner-container { counter-reset: gsv-value; max-width: 1000px; margin: 0 auto; }
.gsv-value {
    counter-increment: gsv-value;
    padding: 30px 0;
    border-top: 1px solid var(--gsv-line);
}
.gsv-value:last-child { border-bottom: 1px solid var(--gsv-line); }
.gsv-value > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 12px 48px;
    align-items: start;
}
body.gsv .gsv-value h3 {
    margin: 0;
    font-size: 21px;
    line-height: 1.35;
    text-transform: uppercase;
    color: var(--gsv-ink);
}
.gsv-value h3::before {
    content: counter(gsv-value, decimal-leading-zero);
    display: block;
    margin-bottom: 6px;
    font-size: 44px;
    line-height: 1;
    font-weight: 700;
    color: var(--gsv-green);
}
.gsv-value .gsv-checks { margin: 4px 0 0; }
.gsv-value .gsv-checks li { font-size: 16px; line-height: 1.65; }
.gsv-value .gsv-checks li:last-child { margin-bottom: 0; }
@media (max-width: 781px) {
    .gsv-value > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1fr); }
    .gsv-value h3::before { font-size: 36px; }
}

/* ---------- Lịch sử hình thành (vi/history.html) ---------- */
.gsv-hero--history { padding-bottom: clamp(44px, 5vw, 72px); background: linear-gradient(180deg, var(--gsv-green-50) 0%, #fff 70%); }
.gsv-hero--history .gsv-hero__content { margin-bottom: clamp(28px, 3.5vw, 44px) !important; }
.gsv-hero--history .gsv-lead { max-width: 760px; }
.gsv .gsv-history-banner img { aspect-ratio: 2560 / 751; border-radius: 16px; box-shadow: 0 20px 48px rgba(0, 0, 0, .14); }
.gsv-history-intro p { font-size: 16.5px; line-height: 1.75; }
.gsv-history-intro a { color: var(--gsv-green-700); font-weight: 600; }
.gsv-history__chapter { margin-top: clamp(48px, 6vw, 80px) !important; }

/* Dòng thời gian: năm bên trái, chấm trên đường dọc, nội dung trong thẻ bên phải */
.gsv-timeline > .wp-block-group__inner-container { position: relative; max-width: 960px; margin: 0 auto; }
.gsv-timeline > .wp-block-group__inner-container::before {
    content: "";
    position: absolute;
    top: 8px; bottom: 8px; left: 131px;
    width: 2px;
    background: linear-gradient(180deg, var(--gsv-green) 0%, rgba(139, 197, 63, .25) 100%);
}
.gsv-tl-item { position: relative; padding: 0 0 28px 172px; }
.gsv-tl-item:last-child { padding-bottom: 0; }
.gsv-tl-item::before {
    content: "";
    position: absolute;
    left: 124px; top: 10px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 4px solid var(--gsv-green);
    box-sizing: border-box;
}
.gsv-tl-year {
    position: absolute;
    left: 0; top: 0;
    width: 104px;
    margin: 0 !important;
    text-align: right;
    font-size: 30px;
    line-height: 1.1;
    font-weight: 700;
    color: var(--gsv-green-700);
}
.gsv-tl-item > .wp-block-group__inner-container {
    padding: 22px 26px;
    background: #fff;
    border: 1px solid var(--gsv-line);
    border-radius: var(--gsv-radius);
    transition: border-color .25s, box-shadow .25s var(--gsv-ease);
}
.gsv-tl-item:hover > .wp-block-group__inner-container { border-color: var(--gsv-green); box-shadow: var(--gsv-shadow-lg); }
body.gsv .gsv-tl-item h3 { margin: 0 0 8px; font-size: 18px; line-height: 1.4; color: var(--gsv-ink); }
.gsv-tl-item p:not(.gsv-tl-year) { margin: 0 0 10px; font-size: 15.5px; line-height: 1.7; color: var(--gsv-ink-2); }
.gsv-tl-item p:not(.gsv-tl-year):last-child { margin-bottom: 0; }
.gsv-history-today .gsv-lead { max-width: 860px; font-size: 17px; line-height: 1.8; }
@media (max-width: 781px) {
    .gsv-timeline > .wp-block-group__inner-container::before { left: 7px; }
    .gsv-tl-item { padding-left: 34px; }
    .gsv-tl-item::before { left: 0; top: 6px; }
    .gsv-tl-year { position: static; width: auto; text-align: left; margin-bottom: 8px !important; font-size: 26px; }
}

/* ---------- Lý do chọn Green Sun (vi/why.html) ---------- */
/* Thẻ có icon ảnh (icon PNG cũ của site) */
.gsv .gsv-card__icon.wp-block-image { margin: 0 0 20px !important; }
.gsv .gsv-card__icon img { display: block; width: 64px; height: 64px; margin: 0 auto; object-fit: contain; border-radius: 0; }
.gsv-reason.wp-block-columns + .gsv-reason.wp-block-columns { margin-top: clamp(44px, 5.5vw, 80px) !important; }
body.gsv h3.gsv-reason__title { margin: 0 0 14px; font-size: clamp(22px, 2vw, 28px); line-height: 1.35; color: var(--gsv-ink); }
.gsv-reason p:not(.gsv-eyebrow) { font-size: 16px; line-height: 1.75; }
.gsv-reason a { color: var(--gsv-green-700); }
.gsv-table--compare { max-width: 1000px; margin-left: auto !important; margin-right: auto !important; }
.gsv-table--compare td:first-child { width: 22%; }
.gsv-table--compare tbody tr td:last-child { font-weight: 600; color: var(--gsv-green-800); background: var(--gsv-green-50); }
.gsv-table--compare th:last-child { background: var(--gsv-green-800); color: #fff; }

/* ---------- Liên hệ (vi/contact.html) ---------- */
.gsv-hero--contact { background: linear-gradient(180deg, var(--gsv-green-50) 0%, #fff 85%); }
.gsv-contact-hero.wp-block-columns { align-items: center !important; gap: clamp(32px, 5vw, 64px); }
.gsv-contact-card {
    padding: clamp(24px, 3vw, 36px);
    background: #fff;
    border-radius: 16px;
    border-top: 4px solid var(--gsv-green);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .10);
}
.gsv-contact-card__label { margin: 0 0 14px !important; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gsv-green-700); }
.gsv-contact-card__item {
    display: grid !important;
    grid-template-columns: 44px 1fr;
    column-gap: 14px;
    align-items: center;
    margin: 0 !important;
    padding: 12px 0;
    border-bottom: 1px solid var(--gsv-line);
}
.gsv-contact-card__item[class*="gsv-i-"]::before { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; }
.gsv-contact-card__item span { font-size: 13px; color: var(--gsv-muted); line-height: 1.3; }
.gsv-contact-card__item a { font-size: 19px; font-weight: 700; line-height: 1.35; color: var(--gsv-ink) !important; text-decoration: none !important; word-break: break-word; }
.gsv-contact-card__item a:hover { color: var(--gsv-green-700) !important; }
.gsv-contact-card__note { margin: 14px 0 0 !important; font-size: 13.5px; color: var(--gsv-muted); }

/* 3 thẻ chọn dịch vụ: nút nằm đáy thẻ */
.gsv-service-pick { display: flex; flex-direction: column; }
.gsv-service-pick > .wp-block-group__inner-container { display: flex; flex-direction: column; flex: 1; }
.gsv-service-pick p:not(.gsv-card__link) { flex: 1; }
.gsv-service-pick .wp-block-buttons { justify-content: center; margin-top: 18px; }
.gsv-service-pick .gsv-card__link { margin-top: 12px !important; }

/* Form Contact Form 7 (markup Bootstrap của theme) */
.gsv-form { padding: clamp(24px, 3vw, 40px); background: #fff; border: 1px solid var(--gsv-line); border-radius: 16px; box-shadow: 0 14px 36px rgba(0, 0, 0, .06); }
.gsv-form .form-group.row { margin-left: 0; margin-right: 0; margin-bottom: 18px; }
.gsv-form .form-group.row > [class*="col-"] { float: none; width: 100%; padding: 0; }
.gsv-form .col-form-label { display: block; margin-bottom: 6px; font-size: 14.5px; font-weight: 600; color: var(--gsv-ink); text-align: left; }
.gsv-form .note-required-text { font-size: 13px; color: var(--gsv-muted); text-align: right; }
.gsv-form .required { color: #d14343; margin-left: 2px; }
.gsv-form .form-control {
    width: 100%; height: auto; padding: 12px 14px;
    font: inherit; font-size: 15.5px; color: var(--gsv-ink);
    background: #fff; border: 1px solid #cfd6cc; border-radius: 10px; box-shadow: none;
    transition: border-color .2s, box-shadow .2s;
}
.gsv-form textarea.form-control { min-height: 150px; resize: vertical; }
.gsv-form .form-control:focus { border-color: var(--gsv-green); box-shadow: 0 0 0 3px rgba(139, 197, 63, .25); outline: 0; }
.gsv-form .form-btn-action-wrapper { margin: 8px 0 0; }
.gsv-form .form-btn-action { padding: 0; }
.gsv-form input[type="submit"] {
    min-width: 180px; padding: 14px 28px;
    font: inherit; font-size: 15.5px; font-weight: 700;
    color: var(--gsv-ink); background: var(--gsv-green);
    border: 0; border-radius: 10px; cursor: pointer;
    transition: background .2s, box-shadow .2s;
}
.gsv-form input[type="submit"]:hover { background: var(--gsv-green-hover); box-shadow: 0 6px 18px rgba(139, 197, 63, .35); }
.gsv-form .wpcf7-not-valid-tip { font-size: 13px; margin-top: 4px; }
.gsv-contact-urgent { margin-top: 18px !important; padding: 14px 16px; font-size: 14.5px; background: var(--gsv-green-50); border-radius: 10px; color: var(--gsv-ink-2); }
.gsv-contact-urgent a, .gsv-office-card a { color: var(--gsv-green-700) !important; font-weight: 700; }
.gsv-contact-form-wrap.wp-block-columns { align-items: flex-start !important; }

/* ---------- Đội ngũ (vi/team.html + [gsv_team]) ---------- */
.gsv-team-intro .gsv-split { margin-bottom: clamp(32px, 4vw, 48px) !important; }
.gsv-team-intro p { font-size: 16.5px; line-height: 1.75; }
.gsv-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gsv-people--lead { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin: 0 auto; gap: 32px; }
.gsv-person {
    margin: 0;
    background: #fff;
    border-radius: var(--gsv-radius);
    border: 1px solid var(--gsv-line);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: box-shadow .25s var(--gsv-ease), transform .25s var(--gsv-ease);
}
.gsv-person:hover { box-shadow: var(--gsv-shadow-lg); transform: translateY(-3px); }
.gsv-person__photo { aspect-ratio: 4 / 5; overflow: hidden; background: var(--gsv-green-50); }
.gsv-people--lead .gsv-person__photo { aspect-ratio: 4 / 3; }
.gsv-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.gsv .gsv-person figcaption { padding: 20px 22px 24px; text-align: center; flex: 1; font-style: normal; caption-side: initial; display: block; }
.gsv-team-culture .gsv-card__link { margin-top: 18px !important; }
.gsv-team-culture .gsv-card__link a { font-weight: 600; color: var(--gsv-green-700) !important; text-decoration: none !important; }
.gsv-team-culture .gsv-card__link a::after { content: " →"; }
body.gsv .gsv-person__name { margin: 0 0 4px; font-size: 18px; color: var(--gsv-ink); }
.gsv-person__role { margin: 0 0 12px !important; font-size: 14px; font-weight: 600; color: var(--gsv-green-700); }
.gsv-person__quote { margin: 0; padding: 0; border: 0; font-size: 14.5px; line-height: 1.6; font-style: italic; color: var(--gsv-muted); }
.gsv-people--lead .gsv-person__quote { font-size: 16px; }

@media (max-width: 1100px) {
    .gsv-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .gsv-people--lead { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Tin tức: danh sách (templates/vi-news-modern.php) ---------- */
.gsv-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; font-size: 13.5px; color: var(--gsv-muted); }
.gsv-crumbs a { color: var(--gsv-muted) !important; text-decoration: none !important; }
.gsv-crumbs a:hover { color: var(--gsv-green-700) !important; }
.gsv-crumbs [aria-current] { color: var(--gsv-ink); }
.gsv-news-hero { padding-bottom: clamp(28px, 3vw, 40px) !important; background: linear-gradient(180deg, var(--gsv-green-50) 0%, #fff 100%); }
body.gsv h1.gsv-news-hero__title { margin: 0 0 12px; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.2; text-transform: uppercase; }
.gsv-news-hero .gsv-lead { margin-bottom: 0; }
.gsv-chip--solid { background: var(--gsv-green); color: var(--gsv-ink); }
.gsv-news-featured {
    display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    margin-bottom: 28px; overflow: hidden;
    background: #fff; border: 1px solid var(--gsv-line); border-radius: 16px;
    transition: box-shadow .25s, border-color .25s;
}
.gsv-news-featured:hover { border-color: var(--gsv-green); box-shadow: var(--gsv-shadow-lg); }
.gsv-news-featured__media { display: block; min-height: 300px; background: var(--gsv-green-50); }
.gsv-news-featured__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gsv-news-featured__body { padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; justify-content: center; }
body.gsv .gsv-news-featured__title { margin: 6px 0 12px; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.35; text-shadow: none; }
body.gsv .gsv-news-featured__title a, body.gsv .gsv-post-card__title a { color: var(--gsv-ink) !important; text-decoration: none !important; }
body.gsv .gsv-news-featured__title a:hover, body.gsv .gsv-post-card__title a:hover { color: var(--gsv-green-700) !important; }
.gsv-news-featured__excerpt { margin: 0 0 18px !important; color: var(--gsv-muted); }
.gsv-pagination { margin-top: 40px; }
.gsv-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.gsv-pagination a, .gsv-pagination span {
    display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px;
    border-radius: 10px; border: 1px solid var(--gsv-line); background: #fff;
    font-weight: 600; color: var(--gsv-ink) !important; text-decoration: none !important; box-sizing: border-box;
}
.gsv-pagination a:hover { border-color: var(--gsv-green); }
.gsv-pagination .current { background: var(--gsv-green); border-color: var(--gsv-green); }
.gsv-pagination .dots { border: 0; background: none; }
.gsv-news-empty { text-align: center; color: var(--gsv-muted); }
/* Khung liên hệ dạng PHP (template-parts/vi/cta.php) */
.gsv-cta-grid { display: grid; grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); gap: 40px; align-items: center; }
.gsv-cta-grid .gsv-photo img { aspect-ratio: 4 / 3; }

/* ---------- Tin tức: bài viết (templates/vi-single-post.php) ---------- */
.gsv-article-hero { padding-bottom: clamp(24px, 3vw, 36px) !important; background: linear-gradient(180deg, var(--gsv-green-50) 0%, #fff 100%); }
body.gsv h1.gsv-article-title { max-width: 900px; margin: 14px 0; font-size: clamp(26px, 3vw, 40px); line-height: 1.3; }
.gsv-article-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--gsv-muted); }
.gsv-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 4vw, 56px); align-items: start; padding-top: 8px !important; padding-bottom: clamp(48px, 6vw, 80px) !important; }
.gsv-article-cover { margin: 0 0 28px; }
.gsv-article-cover img { width: 100%; height: auto; border-radius: 14px; display: block; }
.gsv-article-aside { position: sticky; top: calc(var(--gsv-header-h) + 20px); display: grid; gap: 20px; }
.gsv-toc { padding: 22px 22px 16px; background: #fff; border: 1px solid var(--gsv-line); border-radius: 14px; }
.gsv-toc[hidden] { display: none; }
.gsv-toc__title { margin: 0 0 10px !important; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gsv-green-700); }
.gsv-toc__list { list-style: none; margin: 0; padding: 0; max-height: 50vh; overflow-y: auto; font-size: 14px; line-height: 1.5; }
.gsv-toc__list li { margin-bottom: 8px; }
.gsv-toc__list li { position: relative; padding-left: 14px; }
.gsv-toc__list li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--gsv-green); }
.gsv-toc__list li.is-sub { margin-left: 14px; font-size: 13.5px; }
.gsv-toc__list li.is-sub::before { background: transparent; border: 1.5px solid var(--gsv-green); box-sizing: border-box; }
.gsv-toc__list a { color: var(--gsv-ink-2) !important; text-decoration: none !important; }
.gsv-toc__list a:hover, .gsv-toc__list a.is-active { color: var(--gsv-green-700) !important; font-weight: 600; }
.gsv-aside-cta { padding: 24px 22px; background: var(--gsv-green-50); border-radius: 14px; border-top: 4px solid var(--gsv-green); }
.gsv-aside-cta__title { margin: 0 0 8px !important; font-size: 17px; font-weight: 700; line-height: 1.4; color: var(--gsv-ink); }
.gsv-aside-cta p { font-size: 14.5px; color: var(--gsv-ink-2); }
.gsv-aside-cta .gsv-btn { margin-top: 14px; }
.gsv-aside-cta__tel { display: block; margin-top: 12px; text-align: center; font-weight: 700; color: var(--gsv-green-700) !important; text-decoration: none !important; }
.gsv-article-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.gsv-article-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--gsv-line); font-size: 14.5px; color: var(--gsv-muted); }
.gsv-article-share a { padding: 6px 14px; border: 1px solid var(--gsv-line); border-radius: 999px; font-weight: 600; color: var(--gsv-ink) !important; text-decoration: none !important; }
.gsv-article-share a:hover { border-color: var(--gsv-green); color: var(--gsv-green-700) !important; }

.gsv-article-page { overflow-x: clip; }
.gsv-btn--ghost { background: transparent; border: 2px solid var(--gsv-ink); color: var(--gsv-ink) !important; }
.gsv-btn--ghost:hover { background: rgba(255, 255, 255, .3); }

/* Định dạng nội dung bài — đè style cũ viết thẳng trong HTML (Times New Roman, 14pt…) */
.gsv-prose { font-size: 17px; line-height: 1.8; color: var(--gsv-ink-2); overflow-wrap: anywhere; }
.gsv-prose [style*="font-family"] { font-family: inherit !important; }
.gsv-prose span[style*="font-size"], .gsv-prose p[style*="font-size"] { font-size: inherit !important; }
.gsv-prose p { margin: 0 0 1.1em; }
.gsv-prose > :first-child { margin-top: 0; }
body.gsv .gsv-prose h2 { margin: 1.8em 0 .6em; font-size: clamp(22px, 2vw, 27px); line-height: 1.35; scroll-margin-top: calc(var(--gsv-header-h) + 20px); }
body.gsv .gsv-prose h3 { margin: 1.5em 0 .5em; font-size: 20px; line-height: 1.4; color: var(--gsv-ink); scroll-margin-top: calc(var(--gsv-header-h) + 20px); }
body.gsv .gsv-prose h4 { margin: 1.3em 0 .4em; font-size: 18px; color: var(--gsv-ink); }
.gsv-prose a { color: var(--gsv-green-700); text-decoration: underline; text-underline-offset: 3px; }
.gsv-prose ul, .gsv-prose ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.gsv-prose li { margin-bottom: .4em; }
.gsv-prose li::marker { color: var(--gsv-green-700); }
.gsv-prose img { max-width: 100%; height: auto; border-radius: 10px; }
.gsv-prose figure, .gsv-prose .wp-caption { max-width: 100% !important; margin: 1.6em auto; }
.gsv-prose figcaption, .gsv-prose .wp-caption-text { margin-top: 8px; font-size: 14px; text-align: center; color: var(--gsv-muted); }
.gsv-prose .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.gsv-prose .alignleft { float: left; margin: .3em 1.4em 1em 0; max-width: 50%; }
.gsv-prose .alignright { float: right; margin: .3em 0 1em 1.4em; max-width: 50%; }
.gsv-prose blockquote { margin: 1.6em 0; padding: 16px 22px; border-left: 4px solid var(--gsv-green); background: var(--gsv-green-50); border-radius: 0 10px 10px 0; font-style: normal; }
.gsv-prose table { display: block; width: 100%; max-width: 100%; overflow-x: auto; margin: 1.6em 0; border-collapse: collapse; border: 1px solid #cfe3b4 !important; font-size: 15px; line-height: 1.6; }
.gsv-prose thead, .gsv-prose tfoot { border: 0 !important; }
.gsv-prose th, .gsv-prose td { padding: 10px 14px; border: 1px solid #dcebc8 !important; vertical-align: top; text-align: left; }
.gsv-prose th, .gsv-prose thead td { background: #8dc63f; color: #fff; font-weight: 700; border-color: #8dc63f !important; }
.gsv-prose tbody tr:nth-child(even) td { background: #f8fbf3; }
.gsv-prose iframe, .gsv-prose video, .gsv-prose embed { max-width: 100%; }
.gsv-prose iframe[src*="youtube"], .gsv-prose iframe[src*="vimeo"] { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 10px; }
.gsv-prose .wp-video { width: 100% !important; }
.gsv-prose hr { margin: 2em 0; border: 0; border-top: 1px solid var(--gsv-line); }
.gsv-prose::after { content: ""; display: block; clear: both; }
@media (max-width: 1100px) {
    .gsv-article-layout { grid-template-columns: minmax(0, 1fr); }
    .gsv-article-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsv-posts--news { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
    .gsv-news-featured, .gsv-cta-grid { grid-template-columns: minmax(0, 1fr); }
    .gsv-news-featured__media { min-height: 0; aspect-ratio: 16 / 9; }
    .gsv-article-aside { grid-template-columns: minmax(0, 1fr); }
    .gsv-prose { font-size: 16px; }
    .gsv-prose .alignleft, .gsv-prose .alignright { float: none; margin: 1em auto; max-width: 100%; }
}
@media (max-width: 600px) {
    .gsv-posts--news { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Footer ---------- */
.gsv-footer { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 100% 0%,rgba(182,221,113,.17),transparent 48%), linear-gradient(135deg,#6b9b38 0%,#527e2b 52%,#3e6925 100%); color: rgba(255, 255, 255, .85); font-size: 14.5px; }
.gsv-footer__traces { position: absolute; inset: 0; width: 100%; height: 100%; color: #d2f4a2; opacity: .23; pointer-events: none; z-index: -1; }
.gsv-footer a { color: rgba(255, 255, 255, .82) !important; text-decoration: none !important; transition: color .2s; }
.gsv-footer a:hover { color: var(--gsv-green) !important; }
.gsv-footer__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 32px; padding-top: 40px !important; padding-bottom: 28px !important; }
.gsv-footer__brand p { max-width: 340px; margin: 10px 0 16px; }
/* One continuous green footer; decorative circuit traces stay behind the content. */
.gsv-footer__top {
    position: relative;
    background: transparent;
    color: rgba(255, 255, 255, .85);
}
.gsv-footer__offices-wrap { color: rgba(255, 255, 255, .85); }
.gsv-footer__top a, .gsv-footer__offices-wrap a { color: #fff !important; }
.gsv-footer__top a:hover, .gsv-footer__offices-wrap a:hover { color: #aed084 !important; }
.gsv-footer__top .gsv-footer__title, .gsv-footer__offices-wrap .gsv-footer__title { color: #fff !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.gsv-footer .gsv-footer__top a.gsv-btn--primary { background: #aed084; color: var(--gsv-ink) !important; box-shadow: 0 6px 16px rgba(0, 0, 0, .18); }
.gsv-footer .gsv-footer__top a.gsv-btn--primary:hover { background: #fff; color: var(--gsv-ink) !important; }
.gsv-footer__top .gsv-social a { border-color: rgba(255, 255, 255, .45); }
.gsv-footer__top .gsv-social a:hover { border-color: #fff; background: rgba(255, 255, 255, .12); color: #fff !important; }
.gsv-social { display: flex; gap: 10px; margin: 14px 0 0 !important; padding: 0; list-style: none; }
.gsv-footer .gsv-social li { margin: 0; }
.gsv-social a {
    display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
    border: 1px solid rgba(255, 255, 255, .22); border-radius: 50%;
}
.gsv-social a:hover { border-color: var(--gsv-green); }
.gsv-social svg { flex: 0 0 auto; }
@media (max-width: 600px) {
    .gsv-footer .gsv-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; padding-top: 32px !important; }
    .gsv-footer .gsv-footer__brand { grid-column: 1 / -1; }
    .gsv-footer .gsv-footer__offices { gap: 16px; }
}
.gsv-footer .gsv-btn--primary { color: var(--gsv-ink) !important; }
.gsv-logo--footer img { height: 40px; filter: brightness(0) invert(1); opacity: .92; }
.gsv-footer__title { margin: 0 0 10px; font-size: 13px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff !important; }
.gsv-footer ul { list-style: none; margin: 0; padding: 0; }
.gsv-footer li { margin-bottom: 6px; }
.gsv-footer__offices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding-top: 22px !important; padding-bottom: 28px !important; border-top: 1px solid rgba(255, 255, 255, .28); }
.gsv-office p { margin: 0 0 4px; }
.gsv-footer__utility { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; border-top: 1px solid rgba(255,255,255,.24); padding-top: 12px !important; padding-bottom: 16px !important; }
.gsv-footer__utility > p { margin: 0; color: #e4efd8; font-size: 12px; }
body.gsv .gsv-footer__utility .gs-footer-languages { justify-content: flex-end; gap: 8px; padding: 0; }
body.gsv .gsv-footer__utility .gs-footer-languages a { padding: 8px 15px; min-height: 42px; border-radius: 6px; font-size: 13px; border: 1px solid transparent; }
body.gsv .gsv-footer__utility .gs-footer-languages a:hover { background: rgba(255,255,255,.10); color: #fff !important; }
body.gsv .gsv-footer__utility .gs-footer-languages a[aria-current] { border-color: rgba(221,245,190,.55); background: rgba(214,240,174,.12); text-decoration: none; }
@media (max-width: 600px) {
    .gsv-footer__utility { flex-direction: column-reverse; align-items: flex-start; gap: 8px; padding-top: 16px !important; padding-bottom: 26px !important; }
    body.gsv .gsv-footer__utility .gs-footer-languages { justify-content: flex-start; flex-wrap: wrap; }
    body.gsv .gsv-footer__utility .gs-footer-languages a { padding: 8px 12px; min-height: 44px; }
    .gsv-footer__traces { width: 180%; max-width: none; left: -45%; opacity: .16; }
}

/* ---------- Hiệu ứng xuất hiện khi cuộn (nhẹ) ---------- */
.gsv-js [data-gsv-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s var(--gsv-ease), transform .7s var(--gsv-ease);
    transition-delay: var(--gsv-delay, 0s);
}
.gsv-js [data-gsv-reveal].is-in { opacity: 1; transform: none; }

@keyframes gsv-marquee { to { transform: translateX(-100%); } }

@media (prefers-reduced-motion: reduce) {
    .gsv-js [data-gsv-reveal] { opacity: 1; transform: none; transition: none; }
    .gsv-marquee__track { animation: none; }
    .gsv-card, .gsv-post-card, .gsv-btn, .gsv .wp-block-button__link { transition: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .gsv-steps > .wp-block-group__inner-container { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 36px; }
    .gsv-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsv-statband > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
    .gsv-stat2:nth-child(3)::after { display: none; }
    .gsv-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .gsv-footer__grid { grid-template-columns: repeat(3, 1fr); }
    .gsv-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
    .gsv-grid--3 > .wp-block-group__inner-container,
    .gsv-fields > .wp-block-group__inner-container,
    .gsv-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsv-quotes, .gsv-plans > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1fr); }
    .gsv-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
    .gsv-split--reverse.wp-block-columns { flex-direction: column; }
}
@media (max-width: 600px) {
    .gsv-grid--2 > .wp-block-group__inner-container,
    .gsv-grid--3 > .wp-block-group__inner-container,
    .gsv-grid--4 > .wp-block-group__inner-container,
    .gsv-fields > .wp-block-group__inner-container,
    .gsv-posts,
    .gsv-footer__grid,
    .gsv-footer__offices { grid-template-columns: minmax(0, 1fr); }
    .gsv-statband > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1fr); }
    .gsv-stat2 { padding: 0; }
    .gsv-stat2 + .gsv-stat2::after { display: none; }
    .gsv-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsv .wp-block-buttons .wp-block-button { flex: 1 1 100%; }
    .gsv .wp-block-buttons .wp-block-button__link { width: 100%; }
    .gsv-card, .gsv-plan, .gsv-quote { padding: 24px 22px; }
    .gsv-photo--frame { padding: 0 0 18px 16px; }
    .gsv-photo--frame::after { display: none; }
    .gsv-photo--frame img { border-width: 4px; transform: translateY(-4px); }
}

/* ---------- Sửa bố cục ---------- */
/* Dải thành tích: nội dung nằm trong khung 1200px như các section khác */
.gsv-statband > .wp-block-group__inner-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.gsv-stat2:first-child { padding-left: 0; }
/* Tiêu đề căn giữa (mạnh hơn .gsv-home h2.gsv-title) */
.gsv-home .gsv-head--center h2.gsv-title,
.gsv-home .gsv-head--center .gsv-lead { margin-left: auto; margin-right: auto; }
/* Logo JPG có nền trắng ngà → hòa vào nền trắng */
.gsv-logos img { mix-blend-mode: multiply; }
/* Hiệu ứng xuất hiện: từng logo hiện dần + phóng nhẹ, lần lượt theo thứ tự */
.gsv-js .gsv-logos li[data-gsv-reveal] { transform: translateY(14px) scale(.96); }
.gsv-js .gsv-logos li[data-gsv-reveal].is-in { transform: none; }
@media (prefers-reduced-motion: reduce) { .gsv-js .gsv-logos li[data-gsv-reveal] { transform: none; } }
@media (max-width: 600px) {
    .gsv-statband > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
    .gsv-stat2 strong { font-size: 36px; }
    .gsv-stat2[class*="gsv-i-"]::before { width: 44px; height: 44px; background-size: 22px; margin-bottom: 12px; }
    .gsv-stat2 span { font-size: 13.5px; }
}
@media (max-width: 1100px) {
    .gsv-process__wrap.wp-block-columns { flex-wrap: wrap !important; }
    .gsv-process__wrap > .wp-block-column { flex-basis: 100% !important; }
    .gsv-steps > .wp-block-group__inner-container { row-gap: 40px; }
    .gsv-step:nth-child(3n)::after { display: none; }
}
@media (max-width: 600px) {
    .gsv-steps > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gsv-step::after { display: none; }
    .gsv-step:last-child { grid-column: 1 / -1; }
}
/* Khối ảnh WP có caption mặc định display:table → giữ figure dạng block để khối xanh đúng tỉ lệ ảnh */
.gsv .gsv-photo.wp-block-image { display: block; }

/* Hero trang dịch vụ: ảnh nền lớn như trang chủ */
.gsv-hero--service { display: flex; align-items: center; min-height: clamp(440px, 44vw, 580px); }
.gsv-hero--service > .wp-block-group__inner-container, .gsv-hero--service > .gsv-hero__content { width: 100%; }
.gsv-hero--service .gsv-hero__content { margin-bottom: 0 !important; }

/* Rê chuột: thẻ nhô lên + hiện đủ nội dung (ghi đè .gsv-js [data-gsv-reveal].is-in { transform: none }) */
@media (hover: hover) and (min-width: 601px) {
    .gsv-js .gsv-personas .gsv-persona.gsv-card:hover {
        z-index: 6;
        transform: translateY(-18px) scale(1.04);
        box-shadow: 0 30px 52px rgba(0,0,0,.3), 0 10px 24px rgba(0,0,0,.18);
    }
}
/* Hero dịch vụ: đẩy ảnh sang phải, giữ đủ đầu người */
@media (min-width: 861px) {
    .gsv .gsv-hero--service .gsv-hero__bg.wp-block-image { width: 52%; }
    .gsv-hero--service .gsv-hero__bg img { object-position: 50% 12%; }
    .gsv-hero--service { min-height: clamp(480px, 48vw, 640px); }
}
@media (min-width: 861px) {
    .gsv .gsv-hero--service .gsv-hero__bg.wp-block-image { width: 46%; }
    .gsv-hero--service .gsv-hero__bg img { object-position: 50% 10%; }
    .gsv-hero--service .gsv-hero__bg::after { background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .85) 12%, rgba(255, 255, 255, 0) 38%); }
}
@media (min-width: 861px) {
    .gsv .gsv-hero--service .gsv-hero__bg.wp-block-image { width: 42%; }
    .gsv-hero--service .gsv-hero__bg::after { background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .8) 8%, rgba(255, 255, 255, 0) 28%); }
}

/* Ảnh thẻ khách hàng là khối Ảnh (figure) sửa được trong wp-admin */
.gsv-personas .gsv-persona figure.gsv-persona__photo { height: 100%; }
.gsv-personas .gsv-persona figure.gsv-persona__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }

/* Thẻ nhóm khách hàng trang chủ vi: cắt ngắn bớt phần đáy trống, bo góc nhỏ hơn */
.gsv-personas .gsv-persona { min-height: 300px; border-radius: 12px !important; }
.gsv-personas .gsv-persona > .wp-block-group__inner-container { min-height: 244px; }
.gsv-personas .gsv-persona .gsv-persona__photo { object-position: center 28%; }
@media (max-width: 600px) {
    .gsv-personas .gsv-persona { min-height: 300px; }
    .gsv-personas .gsv-persona > .wp-block-group__inner-container { min-height: 244px; }
}

/* Ba nhóm khách hàng trang chủ vi: thẻ lớn lấp đầy bề ngang; tiêu đề xanh sáng (không đổ bóng); khi rê/chọn, lớp xanh trong suốt để còn thấy ảnh. */
.gsv-personas .gsv-grid--3 .gsv-persona { min-height: 460px; border-radius: 16px !important; padding: 34px 30px; }
.gsv-personas .gsv-grid--3 .gsv-persona > .wp-block-group__inner-container { min-height: 392px; }
.gsv-personas .gsv-grid--3 .gsv-persona .gsv-persona__photo { object-position: center 30%; }
.gsv-personas .gsv-persona h3 {
    color: #52b30a !important; font-size: 25px; line-height: 1.4; font-weight: 700;
    letter-spacing: 0;
    /* viền bóng trắng quanh chữ xanh để nổi trên mọi vùng ảnh */
    text-shadow: 1px 0 0 #fff, -1px 0 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff,
                 0 0 4px #fff, 0 0 8px rgba(255,255,255,.95), 0 0 14px rgba(255,255,255,.7);
}
.gsv-personas .gsv-persona.is-active h3,
.gsv-personas .gsv-persona:hover h3 { color: #fff !important; text-shadow: none; }
.gsv-personas .gsv-persona p:not(.gsv-num) { font-size: 17px; }
.gsv-personas .gsv-persona.is-active::after,
.gsv-personas .gsv-persona:hover::after { background: rgba(94,160,30,.6); }
@media (max-width: 900px) {
    .gsv-personas .gsv-grid--3 .gsv-persona { min-height: 380px; }
    .gsv-personas .gsv-grid--3 .gsv-persona > .wp-block-group__inner-container { min-height: 312px; }
    .gsv-personas .gsv-persona h3 { font-size: 22px; }
}

/* Trang giới thiệu (Thông tin công ty, Đội ngũ, Mission): chữ một bên, ảnh một bên — không phủ lớp mờ lên ảnh */
@media (min-width: 900px) {
    .gsv .gsv-hero--page .gsv-hero__bg.wp-block-image,
    .gsv .gsv-hero--team .gsv-hero__bg.wp-block-image { width: 46%; }
    .gsv-hero--page .gsv-hero__bg img,
    .gsv-hero--team .gsv-hero__bg img { object-position: 50% 35%; }
    .gsv-hero--page .gsv-hero__bg::after,
    .gsv-hero--team .gsv-hero__bg::after { display: none; }
    .gsv-hero--page .gsv-hero__content,
    .gsv-hero--team .gsv-hero__content { max-width: 50%; }
    .gsv .gsv-hero--team .gsv-hero__bg.wp-block-image { bottom: 170px; }
}

/* Thanh trên cùng: chọn ngôn ngữ JP · EN · VN (giống JA) */
.gsv-topbar { background: #f4f7f1; border-bottom: 1px solid #e3eadc; font-size: 13px; }
.gsv-topbar__inner { display: flex; justify-content: flex-end; align-items: center; min-height: 34px; }
.gs-lang-inline { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.gs-lang-inline a, .gs-lang-inline span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 10px; font-weight: 700; letter-spacing: .04em; color: #5b6962; text-decoration: none; }
.gs-lang-inline span { color: #3f7a1f; box-shadow: inset 0 -2px 0 #8bc53f; }
.gs-lang-inline a:hover { color: #3f7a1f; }

/* Lý do 03: ảnh chân dung — giữ phần mặt khi cắt khung ngang */
img[src*="green-sun-customer-support"] { object-position: 50% 18%; }
.gsv-topbar__inner { justify-content: space-between; gap: 20px; }
.gsv-topbar__contact { display: flex; align-items: center; gap: 22px; color: #5b6962; }
.gsv-topbar__contact a { display: inline-flex; align-items: center; gap: 7px; color: inherit; text-decoration: none; }
.gsv-topbar__contact a:hover { color: #3f7a1f; }
.gsv-topbar__contact svg { color: #3f7a1f; }
@media (max-width: 980px) { .gsv-topbar__contact { display: none; } .gsv-topbar__inner { justify-content: flex-end; } }

/* Điện thoại: JP · EN · VN nằm chung hàng logo (header dính) — thanh trên cùng cuộn mất nên ẩn đi */
.gs-lang-inline--header { display: none; }
@media (max-width: 980px) {
    .gs-lang-inline--header { display: flex; margin-right: 4px; }
    .gs-lang-inline--header a, .gs-lang-inline--header span { min-height: 40px; padding: 0 7px; font-size: 13px; }
}
@media (max-width: 980px) { .gsv-topbar { display: none; } }

/* Xuống dòng đẹp cho VI/EN: tiêu đề chia đều các dòng (không rớt 1 chữ), đoạn văn tránh dòng cuối 1 chữ */
:is(h1, h2, h3, h4) { text-wrap: balance; }
p, li, blockquote, figcaption { text-wrap: pretty; }
