/* Page-specific visual rhythm. Illustrations are local SVG assets; no external scripts. */
:root { --gt-blue:#244f78; --gt-deep:#172f40; --gt-rust:#b75b39; --gt-sage:#dcebe6; --gt-sand:#ead9c5; }

/* More depth in the page headers, while keeping the words in front. */
.page .gt-hero-sec { isolation:isolate; background:linear-gradient(135deg,#f6f6f1 0%,#edf3f0 100%) !important; }
body[data-page="about"] .gt-hero-sec { background:linear-gradient(135deg,#f7f5ef,#e8f1ed) !important; }
body[data-page="contact"] .gt-hero-sec { background:linear-gradient(135deg,#f8f5ef,#f1e9df) !important; }
body[data-page="news"] .gt-hero-sec { background:linear-gradient(135deg,#f6f6f2,#e8eff2) !important; }
body[data-page="recruit"] .gt-hero-sec { background:linear-gradient(135deg,#f7f5ed,#eee9dd) !important; }
body[data-page="privacy"] .gt-hero-sec { background:linear-gradient(135deg,#f6f7f5,#e6eff0) !important; }
.page .gt-hero-sec > div:last-child { position:relative; z-index:2; max-width:61% !important; }
.page .gt-hero-sec .hero-illu { display:block !important; right:max(34px,calc((100vw - 1140px)/2)) !important; top:50% !important; width:min(34vw,390px) !important; max-width:none !important; z-index:1; opacity:1 !important; padding:24px; border:1px solid rgba(36,79,120,.16); border-radius:28px 92px 28px 28px; background:rgba(255,255,255,.78); box-shadow:0 24px 55px rgba(24,47,65,.11); animation:gt-float-panel 7s ease-in-out infinite !important; }
.page .gt-hero-sec .hero-illu svg { width:100%; height:auto; display:block; }
body[data-page="service"] .gt-hero-sec .hero-illu { display:none !important; }
body[data-page="service"] .gt-hero-sec { background:#f4f3ef !important; }
body[data-page="service"] .gt-hero-sec::after { z-index:0; }

/* FDE and role pages have bespoke, work-focused diagrams. */
body[data-page="fde"] .gt-hero-sec::after,
body[data-page="role"] .gt-hero-sec::after { content:""; position:absolute; right:max(30px,calc((100vw - 1140px)/2)); top:50%; width:min(35vw,430px); height:min(31vw,330px); transform:translateY(-50%); z-index:1; border-radius:26px 90px 26px 26px; border:1px solid rgba(36,79,120,.16); background-color:#e8f0ed; background-position:center; background-size:contain; background-repeat:no-repeat; box-shadow:0 24px 55px rgba(24,47,65,.11); animation:gt-float-art 7s ease-in-out infinite; }
body[data-page="fde"] .gt-hero-sec::after { background-image:url('../assets/visual-fde.png'); }
body[data-page="role"] .gt-hero-sec::after { background-image:url('../assets/visual-role.png'); background-color:#eeeae0; }
body[data-page="fde"] .gt-hero-sec > div:last-child,
body[data-page="role"] .gt-hero-sec > div:last-child { max-width:60% !important; }

/* A little motion in the visible work, not in the reading text. */
@keyframes gt-float-panel { 0%,100% { transform:translateY(-50%) rotate(-1deg); } 50% { transform:translateY(calc(-50% - 9px)) rotate(1deg); } }
@keyframes gt-float-art { 0%,100% { transform:translateY(-50%) rotate(-1deg); } 50% { transform:translateY(calc(-50% - 9px)) rotate(1deg); } }
@keyframes gt-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(183,91,57,.25); } 50% { box-shadow:0 0 0 8px rgba(183,91,57,0); } }
.page .ai-pill .dot { background:var(--gt-rust) !important; animation:gt-pulse 3.5s ease-in-out infinite !important; }
.page .gt-btn, .btn { transition:transform .25s ease, background-color .25s ease, box-shadow .25s ease !important; }
.page .gt-btn:hover, .btn:hover { transform:translateY(-3px) !important; box-shadow:0 10px 22px rgba(24,47,65,.15) !important; }
.page section a[href^="Service.html#"], .page section a[href^="Role.html?"], .page section a[href="FDE.html"],
.card, .ais-card, .flow-step, .cost, .ais-steps article { transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease !important; }
.page section a[href^="Service.html#"]:hover, .page section a[href^="Role.html?"]:hover, .page section a[href="FDE.html"]:hover,
.card:hover, .ais-card:hover, .flow-step:hover, .cost:hover, .ais-steps article:hover { transform:translateY(-5px); border-color:#8faab4 !important; box-shadow:0 13px 28px rgba(24,47,65,.1) !important; }
.page section .sec-eyebrow::before { background:var(--gt-rust) !important; }
.page h2.h-display { text-wrap:balance; }

/* Give the SEO / AI search diagram an illustrative lead-in. */
body[data-page="ai-search"] .ais-hero { background:linear-gradient(135deg,#f4f7f4,#e8f0ef) !important; }
body[data-page="ai-search"] .ais-figure { overflow:hidden; }
body[data-page="ai-search"] .ais-figure::before { content:""; display:block; height:160px; margin:-14px 0 14px; background:url('../assets/visual-search.png') center/contain no-repeat; animation:gt-figure-rise .8s ease both; }
@keyframes gt-figure-rise { from { opacity:.3; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

/* News details have a small editorial illustration at the edge of the article. */
body[data-page="article"] .news-main { position:relative; overflow:hidden; }
body[data-page="article"] .news-main::before { content:""; position:absolute; top:32px; right:max(15px,calc((100vw - 1160px)/2)); width:190px; height:150px; background:url('../assets/visual-news.png') center/contain no-repeat; opacity:.48; pointer-events:none; }
body[data-page="article"] .news-main .article { position:relative; z-index:1; }

/* The product and article pages retain their restrained photographs and gain visual cadence. */
body[data-page="meishi"] .product-photo { box-shadow:0 20px 40px rgba(24,47,65,.11); border-radius:6px; }
body[data-page="meishi"] .flow-step .step-no { display:inline-flex; align-items:center; justify-content:center; width:35px; height:35px; border-radius:50%; background:#e2ece8; color:var(--gt-blue); }
.page-jump a { transition:color .2s ease,border-color .2s ease; }
.article h2 { border-bottom:2px solid #dcebe6; padding-bottom:10px; }

/* Footer: contrast, scan-friendly groups and the real white logo asset. */
.page footer { background:#172f40 !important; border-top:4px solid #b75b39 !important; }
.page footer > div:first-child { max-width:1180px; margin-inline:auto; gap:clamp(28px,4vw,58px) !important; border-bottom:1px solid rgba(255,255,255,.2) !important; }
.page footer > div:last-child { max-width:1180px; margin-inline:auto; }
.page footer img { width:150px !important; height:auto !important; max-width:100%; }
.page footer, .page footer div, .page footer span { color:#d8e4eb !important; }
.page footer .mono { color:#d8e4eb !important; }
.page footer > div:first-child > div:last-child > div > div:first-child { color:#e2bd91 !important; font-weight:800; }
.page footer a { color:#eef5f8 !important; opacity:1 !important; line-height:1.55; }
.page footer a:hover, .page footer a:focus-visible { color:#fff !important; text-decoration:underline !important; text-underline-offset:4px; }
.page footer a[href*="forms.office.com"] { background:#b75b39 !important; color:#fff !important; text-decoration:none !important; }
.page footer a[href*="forms.office.com"]:hover { background:#d17450 !important; }
.site-footer { background:#172f40 !important; border-top:4px solid #b75b39; color:#e8f0f4 !important; }
.site-footer .footer-inner { align-items:center; gap:24px 36px; }
.site-footer .footer-brand { flex:0 0 150px; display:block; }
.site-footer .footer-brand img { display:block; width:150px; height:auto; }
.site-footer a { color:#f1f7f9 !important; text-underline-offset:4px; }
.site-footer a:hover { color:#fff !important; }

@media (max-width:900px) {
  .page .gt-hero-sec .hero-illu { width:min(35vw,300px) !important; padding:14px; }
  body[data-page="fde"] .gt-hero-sec::after,body[data-page="role"] .gt-hero-sec::after { width:34vw; height:29vw; }
}
@media (max-width:800px) {
  .page .gt-hero-sec > div:last-child,body[data-page="fde"] .gt-hero-sec > div:last-child,body[data-page="role"] .gt-hero-sec > div:last-child { max-width:100% !important; }
  .page .gt-hero-sec .hero-illu { position:relative !important; top:auto !important; right:auto !important; width:min(100%,390px) !important; max-width:390px !important; margin:28px auto 0; animation:gt-mobile-float 7s ease-in-out infinite !important; }
  body[data-page="service"] .gt-hero-sec .hero-illu { display:none !important; }
  body[data-page="fde"] .gt-hero-sec::after,body[data-page="role"] .gt-hero-sec::after { position:relative; top:auto; right:auto; display:block; width:min(100%,430px); height:250px; margin:30px auto 0; transform:none; animation:gt-mobile-float 7s ease-in-out infinite; }
  body[data-page="article"] .news-main::before { opacity:.19; width:125px; height:110px; right:8px; }
  .page footer > div:first-child { grid-template-columns:1fr !important; }
  .page footer > div:first-child > div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@keyframes gt-mobile-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@media (max-width:560px) {
  .page .gt-hero-sec .hero-illu { max-width:300px !important; padding:14px; border-radius:22px 60px 22px 22px; }
  body[data-page="fde"] .gt-hero-sec::after,body[data-page="role"] .gt-hero-sec::after { height:215px; border-radius:22px 60px 22px 22px; }
  .page footer { padding:40px 22px 26px !important; }
  .page footer > div:first-child > div:last-child { gap:20px !important; }
  .page footer a { font-size:14px !important; }
  .site-footer .footer-inner { align-items:flex-start; }
  body[data-page="ai-search"] .ais-figure::before { height:130px; }
}
@media (prefers-reduced-motion:reduce) {
  .page .gt-hero-sec .hero-illu,body[data-page="fde"] .gt-hero-sec::after,body[data-page="role"] .gt-hero-sec::after,.page .ai-pill .dot,body[data-page="ai-search"] .ais-figure::before { animation:none !important; }
  .page .gt-btn,.btn,.card,.ais-card,.flow-step,.cost,.ais-steps article { transition:none !important; }
}
