.button { min-height: 2.9rem; padding: .82rem 1.1rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid transparent; border-radius: var(--radius-sm); font-size: .82rem; font-weight: 800; line-height: 1; transition: transform var(--transition), background var(--transition), border-color var(--transition), color var(--transition); }
.button:hover { transform: translateY(-2px); }
.button--primary { color: #fff; background: var(--color-navy-900); }
.button--primary:hover { background: var(--color-navy-800); }
.button--secondary { color: var(--color-navy-900); border-color: #9aabba; background: transparent; }
.button--secondary:hover { border-color: var(--color-navy-900); background: #fff; }
.button--light { color: var(--color-navy-900); background: #fff; }
.button--light:hover { background: var(--color-blue-100); }
.button--ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.button--ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.button-row { display: flex; flex-wrap: wrap; gap: .7rem; }
.text-link { width: fit-content; margin-top: 1.8rem; display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 850; }
.text-link span { transition: transform var(--transition); }
.text-link:hover span { transform: translateX(.25rem); }

.ui-icon { width: 1.4rem; height: 1.4rem; display: block; flex: 0 0 auto; }

.site-header { position: sticky; top: 0; z-index: 100; min-height: var(--header-height); display: flex; align-items: center; border-bottom: 1px solid rgba(7,26,51,.08); background: rgba(255,255,255,.94); backdrop-filter: blur(14px); transition: box-shadow var(--transition); }
.site-header.is-elevated { box-shadow: var(--shadow-sm); }
.header-inner { display: flex; align-items: center; gap: 2rem; }
.brand { flex: 0 0 auto; }
.brand img { width: 8.5rem; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(.7rem,1.15vw,1.35rem); }
.site-nav > a:not(.button) { position: relative; font-size: .78rem; font-weight: 720; }
.site-nav > a:not(.button)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.45rem; height: 2px; background: var(--color-blue-400); transition: right var(--transition); }
.site-nav > a:not(.button):hover::after { right: 0; }
.language-switch { display: flex; align-items: center; gap: .35rem; font-size: .69rem; }
.language-switch strong { color: var(--color-blue-600); }
.menu-toggle { display: none; min-width: 3.2rem; min-height: 2.75rem; padding: .55rem; border: 1px solid var(--color-line); border-radius: var(--radius-sm); background: #fff; cursor: pointer; }
.menu-toggle__line { width: 1.15rem; height: 2px; display: block; margin: .24rem auto; background: var(--color-navy-900); transition: transform var(--transition), opacity var(--transition); }
.menu-toggle__label { display: block; margin-top: .2rem; font-size: .6rem; font-weight: 800; }
.menu-toggle[aria-expanded="true"] .menu-toggle__line:first-child { transform: translateY(.19rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(2) { transform: translateY(-.19rem) rotate(-45deg); }

.strategic-card { min-height: 39rem; padding: clamp(2rem,4vw,3.2rem); display: flex; flex-direction: column; border-radius: var(--radius-lg); }
.strategic-card--sap { background: #edf9fe; }
.strategic-card--ppa { background: #f1f9e8; }
.strategic-card__media { aspect-ratio: 16/7; margin-bottom: 2rem; overflow: hidden; border-radius: var(--radius-md); background: var(--color-navy-950); }
.strategic-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.strategic-card:hover .strategic-card__media img { transform: scale(1.02); }
.strategic-card h3 { max-width: 34rem; margin-bottom: 1.2rem; font-size: clamp(2rem,3.4vw,3.5rem); line-height: 1.03; letter-spacing: -.05em; }
.strategic-card > p:not(.eyebrow,.condition-note) { color: #405d70; }
.feature-list { margin: 1.4rem 0 0; padding: 0; list-style: none; }
.feature-list li { padding: .85rem 0; display: flex; align-items: start; gap: .8rem; border-top: 1px solid rgba(7,26,51,.12); font-size: .86rem; }
.feature-list li span { flex: 0 0 auto; color: var(--color-muted); font-size: .62rem; font-weight: 850; }
.condition-note { margin-top: 1.1rem; padding: .85rem 1rem; color: #3e5e22; border-left: 3px solid var(--color-green-500); background: rgba(255,255,255,.56); font-size: .76rem; }
.strategic-card .text-link { margin-top: auto; padding-top: 1rem; }

.service-card { min-height: 25rem; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-md); background: #fff; transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
.service-card:hover { transform: translateY(-4px); border-color: #9dc5d9; box-shadow: var(--shadow-sm); }
.service-card__media { aspect-ratio: 16/9; overflow: hidden; background: var(--color-navy-950); }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.service-card:hover .service-card__media img { transform: scale(1.025); }
.service-card__body { padding: 1.5rem; display: flex; flex: 1; flex-direction: column; }
.service-card h3 { margin: 0 0 .75rem; font-size: 1.25rem; }
.service-card p { margin-bottom: 1.5rem; color: var(--color-muted); font-size: .85rem; }
.service-card a { width: fit-content; margin-top: auto; font-size: .78rem; font-weight: 850; }

.method-list { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,1fr); list-style: none; }
.method-list li { min-height: 15rem; padding: 1.4rem; border-top: 2px solid #9cb0bf; }
.method-list li:nth-child(2), .method-list li:nth-child(4) { border-color: var(--color-blue-400); }
.method-list li:nth-child(3), .method-list li:nth-child(5) { border-color: var(--color-green-500); }
.method-list span, .method-list strong { display: block; }
.method-list span { color: var(--color-muted); font-size: .65rem; font-weight: 850; }
.method-list strong { margin-top: 3.2rem; }
.method-list p { margin: .7rem 0 0; color: var(--color-muted); font-size: .78rem; }

.site-footer { padding: 4.2rem 0 1.5rem; color: #cfdae3; background: var(--color-navy-950); }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: 3rem; }
.footer-brand img { width: 8.3rem; padding: .4rem .5rem; border-radius: .35rem; background: #fff; }
.footer-brand .footer-logo--dark { width: 9.2rem; padding: 0; border-radius: 0; background: transparent; }
.footer-brand p { max-width: 18rem; margin: 1.2rem 0 0; color: #94a9b8; font-size: .78rem; }
.footer-brand .footer-presence { color: #c9d7e1; }
.footer-grid h2 { margin: 0 0 1rem; color: #fff; font-size: .78rem; }
.footer-grid a, .footer-grid > div:not(.footer-brand) > span { width: fit-content; margin-top: .65rem; display: block; color: #94a9b8; font-size: .72rem; }
.footer-grid a:hover { color: #fff; }
.footer-grid small { margin-top: .15rem; display: block; color: #718b9d; }
.footer-bottom { margin-top: 3.5rem; padding-top: 1.3rem; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(255,255,255,.12); color: #718b9d; font-size: .66rem; }
