@import "tailwindcss";

:root { --ink:#10233f; --muted:#53657d; --blue:#1557d6; --blue-dark:#0c3e9e; --sky:#eef5ff; --line:#dce5f0; --white:#fff; --green:#0b7a61; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.65; }
a { color:inherit; }
.container { width:min(1160px,calc(100% - 40px)); margin-inline:auto; }
.narrow { width:min(780px,calc(100% - 40px)); }
.skip-link { position:fixed; left:16px; top:-80px; z-index:100; background:var(--ink); color:#fff; padding:10px 16px; border-radius:8px; }
.skip-link:focus { top:12px; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.header-inner { min-height:76px; display:flex; align-items:center; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-weight:800; font-size:1.2rem; letter-spacing:-.03em; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; background:var(--blue); color:white; border-radius:10px 10px 10px 3px; }
nav { display:flex; gap:28px; margin-left:auto; }
nav a { text-decoration:none; color:#334760; font-weight:650; font-size:.94rem; }
nav a:hover, nav a:focus-visible { color:var(--blue); }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:12px 21px; border-radius:10px; text-decoration:none; font-weight:750; line-height:1.2; border:1px solid transparent; transition:.2s ease; }
.button:hover { transform:translateY(-1px); }
.button.primary { background:var(--blue); color:#fff; box-shadow:0 8px 24px rgba(21,87,214,.18); }
.button.primary:hover { background:var(--blue-dark); }
.button.secondary { border-color:#b9cae0; background:#fff; color:var(--ink); }
.button.white { background:#fff; color:var(--blue-dark); }
.button.small { min-height:42px; padding:10px 16px; font-size:.9rem; }
.hero { padding:96px 0 80px; background:radial-gradient(circle at 85% 0%,#dcebff 0,transparent 35%),linear-gradient(180deg,#f8fbff,#fff); overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.eyebrow { margin:0 0 14px; color:var(--blue); text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; font-weight:850; }
.eyebrow.light { color:#bcd4ff; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:24px; font-size:clamp(2.7rem,5vw,4.8rem); line-height:1.02; letter-spacing:-.055em; }
h2 { margin-bottom:18px; font-size:clamp(1.9rem,3.3vw,3rem); line-height:1.12; letter-spacing:-.04em; }
h3 { margin-bottom:10px; font-size:1.2rem; line-height:1.25; }
p { color:var(--muted); }
.hero-copy { max-width:680px; font-size:1.16rem; }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin:32px 0 18px; }
.microcopy { max-width:650px; font-size:.82rem; }
.hero-panel { padding:28px; border:1px solid #cbdcf2; border-radius:24px; background:rgba(255,255,255,.85); box-shadow:0 24px 70px rgba(16,35,63,.13); }
.panel-label { font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; color:var(--blue); }
.metric-card { display:flex; gap:18px; padding:20px 0; border-top:1px solid var(--line); }
.metric-card span { color:var(--blue); font-weight:850; }
.metric-card strong { font-size:1.08rem; }
.metric-card p { margin:5px 0 0; font-size:.92rem; }
.section { padding:88px 0; }
.section-tint { background:var(--sky); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:38px; }
.section-heading > div { max-width:700px; }
.section-heading > p { max-width:380px; margin-bottom:8px; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { min-height:270px; display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.service-card:hover { border-color:#9db9df; box-shadow:0 14px 34px rgba(16,35,63,.08); }
.service-card p { flex:1; }
.service-card a { color:var(--blue); font-weight:750; text-decoration:none; }
.service-number { color:#8aa4c8; font-size:.78rem; font-weight:800; margin-bottom:26px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.portfolio-card { overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 34px rgba(16,35,63,.07); }
.portfolio-card img { width:100%; height:230px; display:block; object-fit:contain; background:#0b1220; padding:18px; }
.portfolio-card > div { padding:26px; }
.portfolio-card h2 { font-size:1.55rem; }
.portfolio-card a:not(.button) { color:var(--blue); font-weight:750; text-decoration:none; }
.portfolio-category { margin-bottom:8px; color:var(--blue); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; font-weight:850; }
.source-note { margin-top:28px; padding:22px 26px; border-left:3px solid var(--blue); background:#f5f9ff; }
.source-note p { margin:6px 0 0; font-size:.9rem; }
.team-feature { display:grid; grid-template-columns:1.1fr .9fr; gap:58px; align-items:center; }
.team-feature > img { width:100%; height:440px; object-fit:cover; border-radius:20px; box-shadow:0 18px 48px rgba(16,35,63,.14); }
.text-link { color:var(--blue); font-weight:750; }
.project-detail { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }
.project-visual { padding:26px; border-radius:22px; background:#0b1220; }
.project-visual img { width:100%; display:block; }
.photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.photo-grid figure { margin:0; }
.photo-grid .photo-large { grid-column:1/-1; }
.photo-grid img { width:100%; height:390px; object-fit:cover; border-radius:16px; display:block; }
.photo-grid .photo-large img { height:560px; }
.photo-grid figcaption { padding:10px 2px; color:var(--muted); font-size:.88rem; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.check-list > div { display:grid; grid-template-columns:30px 1fr; gap:12px; padding:18px 0; border-bottom:1px solid #ccddef; }
.check-list span,.feature-list span { color:var(--green); font-weight:900; }
.check-list p { margin:0; }
.process-grid { list-style:none; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.process-grid li { padding:26px; border-left:3px solid var(--blue); background:#f8fbff; }
.process-grid span { display:block; color:var(--blue); font-weight:850; margin-bottom:36px; }
.cta-section { padding-top:30px; }
.cta-box { padding:50px; border-radius:24px; background:linear-gradient(135deg,#0b347f,#1557d6); color:white; display:flex; justify-content:space-between; align-items:center; gap:40px; }
.cta-box h2 { max-width:700px; }
.cta-box p { color:#d8e6ff; margin-bottom:0; }
.page-hero { padding:86px 0; background:linear-gradient(150deg,#f3f8ff,#fff 70%); border-bottom:1px solid var(--line); }
.page-hero h1 { font-size:clamp(2.5rem,5vw,4.2rem); }
.page-hero .narrow > p:last-of-type { font-size:1.12rem; }
.values-panel,.scope-card,.contact-card { padding:34px; border:1px solid var(--line); background:#fff; border-radius:18px; box-shadow:0 15px 42px rgba(16,35,63,.07); }
.values-panel > div { padding:18px 0; border-top:1px solid var(--line); }
.values-panel p { margin:5px 0 0; }
.info-table { border-top:1px solid #bfd2e8; }
.info-table div { display:grid; grid-template-columns:180px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid #bfd2e8; }
.info-table span { color:var(--muted); }
.legal-note { margin-top:22px; font-size:.9rem; }
.cta-inline { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.cta-inline p { margin-bottom:0; }
.service-list article { display:grid; grid-template-columns:70px 1fr auto; gap:28px; align-items:start; padding:36px 0; border-bottom:1px solid var(--line); }
.service-index { color:var(--blue); font-weight:850; }
.service-list ul,.contact-card ul,.legal-content ul { color:var(--muted); padding-left:20px; }
.center { text-align:center; }
.center .button { margin-top:18px; }
.feature-list { list-style:none; padding:0; }
.feature-list li { display:grid; grid-template-columns:24px 1fr; gap:10px; padding:15px 0; border-bottom:1px solid var(--line); }
.scope-card hr,.contact-card hr { border:0; border-top:1px solid var(--line); margin:26px 0; }
.scope-card h2 { font-size:1.3rem; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; }
.contact-grid h2 { font-size:clamp(1.6rem,3vw,2.4rem); word-break:break-word; }
address { font-style:normal; color:var(--muted); }
.legal-content { max-width:820px; }
.legal-content h2 { font-size:1.4rem; margin-top:36px; }
.legal-content p,.legal-content li { color:#43556d; }
.site-footer { padding:65px 0 24px; background:#0b1d36; color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.5fr .7fr .8fr 1fr; gap:48px; }
.footer-grid h2 { font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:#a8c5f6; }
.footer-grid a:not(.brand) { display:block; width:max-content; color:#d6e1f2; text-decoration:none; margin:10px 0; }
.footer-grid p { color:#aebdd0; font-size:.9rem; }
.footer-brand { margin-bottom:18px; }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; padding-top:25px; margin-top:38px; border-top:1px solid #29405f; }
.footer-bottom p { color:#8fa2bb; font-size:.78rem; margin:0; }

@media (max-width:900px) {
  .header-inner { flex-wrap:wrap; padding:14px 0; gap:14px; }
  nav { order:3; width:100%; justify-content:space-between; gap:12px; border-top:1px solid var(--line); padding-top:12px; }
  .header-inner > .button { margin-left:auto; }
  .hero-grid,.split,.contact-grid,.team-feature,.project-detail { grid-template-columns:1fr; gap:44px; }
  .card-grid,.portfolio-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
  .service-list article { grid-template-columns:48px 1fr; }
  .service-list article .button { grid-column:2; width:max-content; }
}
@media (max-width:600px) {
  .container { width:min(100% - 28px,1160px); }
  .narrow { width:min(100% - 28px,780px); }
  .site-header { position:relative; }
  .header-inner > .button { display:none; }
  nav { font-size:.85rem; }
  .hero,.page-hero { padding:64px 0; }
  h1 { font-size:2.65rem; }
  .section { padding:64px 0; }
  .section-heading,.cta-box,.cta-inline { align-items:flex-start; flex-direction:column; }
  .card-grid,.portfolio-grid,.process-grid,.footer-grid,.photo-grid { grid-template-columns:1fr; }
  .photo-grid .photo-large { grid-column:auto; }
  .photo-grid img,.photo-grid .photo-large img,.team-feature > img { height:300px; }
  .hero-panel,.values-panel,.scope-card,.contact-card { padding:24px; }
  .cta-box { padding:32px 24px; }
  .service-list article { grid-template-columns:1fr; }
  .service-list article .button { grid-column:1; }
  .info-table div { grid-template-columns:1fr; gap:4px; }
  .footer-bottom { flex-direction:column; }
}
