@charset "UTF-8";

/* A warm editorial layer; form behavior and base accessibility live in styles.css. */
:root { --cream:#faf7ee; --yellow:#f4ce63; --soft-yellow:#fff1c9; --research:#805326; }
.site-header { border-bottom:0; }
.site-header .brand { position:relative; padding-left:47px; }
.site-header .brand::before,.site-header .brand::after {
  content:""; position:absolute; width:22px; height:32px; border:5px solid var(--blue);
  border-radius:12px; left:0; top:3px; transform:rotate(32deg);
}
.site-header .brand::after { left:13px; top:17px; border-color:#d4a235; }
.header-cta { border-radius:30px; }
.hero { background:var(--cream); min-height:650px; max-width:none; }
.hero::before {
  content:""; position:absolute; right:-75px; top:-100px; width:470px; height:470px;
  box-sizing:border-box; border:74px solid var(--yellow); border-radius:50%; z-index:-1;
}
.hero::after {
  content:""; position:absolute; right:31%; bottom:-75px; width:215px; height:215px;
  border:2px solid #cbad61; border-radius:50%; z-index:-1;
}
.hero-copy { width:58%; padding:65px 0 75px max(6vw,calc((100vw - var(--max))/2)); }
.hero-audience {
  display:inline-block; padding:6px 13px; background:var(--soft-yellow);
  border-left:3px solid #cc9d31; color:var(--deep); margin-bottom:23px;
}
h1 { font-size:clamp(2.5rem,3.8vw,3.65rem); line-height:1.55; }
h1 span { background:linear-gradient(transparent 76%,var(--yellow) 76%,var(--yellow) 93%,transparent 93%); }
.hero-lead { margin-bottom:27px; }
.button { border-radius:32px; }
.hero-copy .button { gap:50px; }
.hero-copy .button.primary { box-shadow:0 6px 0 #d8deea; }
.hero-copy .button.primary:hover { background:#103ba9; box-shadow:0 4px 0 #d8deea; }
.hero-photo {
  top:39px; bottom:60px; right:3.5%; width:44%; z-index:0;
  border-radius:120px 18px 120px 18px; border:7px solid #fff;
  box-shadow:0 18px 50px #6b583d14;
}
.hero-photo img { object-position:64% center; }
.hero-photo::after { display:none; }
.hero-caption {
  bottom:34px; right:5.5%; padding:19px 25px 19px 53px; background:var(--deep);
  color:#fff; font-size:.9375rem; font-weight:700; border-radius:8px 8px 8px 0; z-index:3;
}
.hero-caption::before {
  content:""; position:absolute; left:22px; top:50%; width:15px; height:15px;
  border:2px solid var(--yellow); border-radius:50% 50% 50% 0; transform:translateY(-50%);
}
.service-nav {
  grid-template-columns:repeat(3,1fr); gap:14px; padding:30px 0 0;
  border-bottom:0; margin:0 auto; max-width:var(--max);
}
.service-nav>p { grid-column:1/-1; font-size:.8125rem; font-weight:700; margin-bottom:0; }
.service-nav a {
  min-height:88px; display:flex; align-items:center; justify-content:flex-start; gap:15px;
  padding:20px 23px; border:0; border-radius:9px; background:#edf2fc; color:var(--deep);
  transition:background .2s,transform .2s;
}
.service-nav a[href="#research"] { background:#fbf1d8; }
.service-nav a[href="#transport"] { background:#f0f3f0; }
.service-nav a:hover { background:#e0e9fc; transform:translateY(-3px); }
.service-nav a[href="#research"]:hover { background:#f7e5b9; }
.service-nav a[href="#transport"]:hover { background:#e4ece5; }
.service-nav a>span { color:inherit; }
.service-nav .nav-icon { width:33px; height:33px; flex-shrink:0; stroke:var(--blue); stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.service-nav a[href="#research"] .nav-icon { stroke:var(--research); }
.service-nav a[href="#transport"] .nav-icon { stroke:#4a6d58; }
.service-nav .nav-arrow { margin-left:auto; border-radius:50%; background:white; width:29px; height:29px; display:grid; place-items:center; }
.services { padding-top:85px; padding-bottom:80px; }
.eyebrow { display:flex; align-items:center; gap:9px; }
.eyebrow::before { content:""; flex-shrink:0; width:9px; height:9px; border-radius:50%; background:#d5a432; }
.section-intro { margin-bottom:42px; }
.section-intro>p { padding:21px 25px; background:var(--cream); border-radius:14px 14px 14px 0; font-size:.9375rem; }
.service-row {
  position:relative; grid-template-columns:80px 1.1fr 1fr; gap:30px;
  background:#f1f5fd; border:0; border-radius:14px; padding:36px;
  margin-bottom:24px; overflow:hidden;
}
.service-number { font-size:3.15rem; padding-top:8px; }
.service-number::after {
  content:""; display:block; width:54px; height:54px; margin-top:34px; border:9px solid #d2dffb;
  border-radius:17px 17px 17px 0; transform:rotate(-8deg);
}
.service-main h3 { color:var(--deep); }
.service-detail { background:#fff; padding:26px; border-radius:9px; }
.service-detail h4 { display:inline-block; padding:3px 11px; background:#edf2fc; border-radius:4px; }
.service-detail ul { margin-top:12px; }
.service-detail li { padding-left:23px; }
.service-detail li::before {
  width:6px; height:10px; top:13px; left:3px; border:solid var(--blue); border-width:0 1.5px 1.5px 0;
  background:none; transform:rotate(45deg);
}
#research { background:#fbf3df; }
#research .service-number { color:var(--research); }
#research .service-number::after { border-color:#ecd394; border-radius:50%; }
#research .service-detail h4 { background:#fbf0d6; }
#research .service-detail li::before { border-color:var(--research); }
#research .price { border-color:#e8dcc0; }
.service-footnote { border:0; padding:0 5px; }
.about { background:var(--cream); padding:54px max(6vw,calc((100vw - var(--max))/2)); gap:55px; max-width:none; align-items:center; }
.about-photo { min-height:550px; border-radius:16px 100px 16px 16px; box-shadow:14px 14px 0 #f0dfaa; }
.about-photo img { object-position:45% center; }
.about-copy { padding:15px 0; }
.about-copy h2 { font-size:clamp(1.8rem,2.5vw,2.3rem); }
.about-info>div { border-color:#e0d8c6; }
.transport { padding-block:65px; }
.transport>div:last-child>p + p { margin-top:18px; }
.contact { background:#183e81; position:relative; overflow:hidden; }
.contact::before {
  content:""; position:absolute; width:600px; height:600px; border:100px solid #ffffff05;
  border-radius:50%; left:-200px; bottom:-200px; pointer-events:none;
}
.contact-inner { position:relative; }
.contact .eyebrow { color:#f9dc8e; }
.contact h2 { text-decoration:underline; text-decoration-color:#f2cb64; text-underline-offset:10px; text-decoration-thickness:2px; }
.contact-intro>p:not(.eyebrow) { color:#f0f3fb; }
.form-card { border-radius:14px; box-shadow:0 12px 40px #0b20502b; }
.footer { padding-block:38px; }

@media(min-width:1600px) {
  .hero-copy { padding-left:calc((100vw - 1240px)/2); }
  .hero-photo { right:max(3.5%,calc((100vw - 1430px)/2)); width:650px; }
  .hero-caption { right:max(5.5%,calc((100vw - 1380px)/2)); }
}
@media(max-width:1320px) {
  .service-nav { margin-inline:6vw; }
  .service-row { grid-template-columns:60px 1.1fr 1fr; gap:24px; padding:30px; }
  .service-detail { padding:23px; }
  .service-nav a { padding:18px; font-size:.875rem; gap:11px; }
}
@media(max-width:1050px) {
  .hero { min-height:610px; }
  .hero-copy { width:60%; padding-block:57px 72px; }
  h1 { font-size:clamp(2.4rem,4.15vw,2.8rem); }
  .hero-photo { width:42%; right:2.5%; top:35px; bottom:65px; border-radius:85px 12px 85px 12px; }
  .hero-caption { right:4%; font-size:.8125rem; padding:15px 17px 15px 43px; }
  .hero-caption::before { left:17px; }
  .hero-note { max-width:360px; }
  .service-nav a { flex-wrap:wrap; gap:10px; }
  .service-nav .nav-icon { width:29px; height:29px; }
  .service-nav .nav-arrow { width:25px; height:25px; }
  .service-row { grid-template-columns:65px 1fr; gap:24px; }
  .service-number::after { margin-top:25px; width:44px; height:44px; border-width:7px; }
  .service-detail { grid-column:2; display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
  .service-detail h4,.service-detail ul { grid-column:1; }
  .service-detail h4 { justify-self:start; }
  .service-detail ul { margin-bottom:0; }
  .service-detail .price { grid-column:2; grid-row:1/3; border-top:0; border-left:1px solid #d0dced; padding:0 0 0 22px; align-self:center; }
  .about { gap:35px; padding-block:45px; }
  .about-photo { min-height:610px; }
}
@media(max-width:800px) {
  .site-header .brand { padding-left:0; }
  .site-header .brand::before,.site-header .brand::after { display:none; }
  .service-nav a { flex-wrap:nowrap; padding:16px; }
  .service-nav .nav-icon { display:none; }
  .section-intro { gap:28px; }
  .section-intro>p { padding:18px; }
  .about { gap:26px; }
}
@media(max-width:700px) {
  .site-header { min-height:85px; }
  .hero { display:block; min-height:0; }
  .hero-copy { width:100%; padding:32px 6vw; }
  .hero::before { top:auto; bottom:10px; right:-90px; width:340px; height:340px; border-width:50px; }
  .hero::after { bottom:0; right:auto; left:-85px; }
  .hero-audience { font-size:.75rem; padding:5px 10px; margin-bottom:17px; }
  h1 { font-size:clamp(1.9rem,7.7vw,2.6rem); line-height:1.6; }
  .hero-lead { font-size:1rem; margin-bottom:23px; }
  .hero-photo { position:relative; top:auto; bottom:auto; right:auto; height:300px; width:92%; margin:0 4% 35px; border-width:5px; border-radius:64px 12px 64px 12px; }
  .hero-photo img { object-position:60% 44%; }
  .hero-caption { right:4%; bottom:17px; padding:16px 20px 16px 47px; font-size:.8125rem; }
  .service-nav { grid-template-columns:1fr; padding:26px 0 0; gap:10px; }
  .service-nav>p { margin-bottom:4px; }
  .service-nav a,.service-nav a:nth-child(2) { min-height:66px; border:0; padding:15px 18px; font-size:.9375rem; }
  .service-nav .nav-icon { display:block; width:29px; height:29px; margin-right:5px; }
  .service-nav .nav-arrow { width:27px; height:27px; }
  .services { padding-top:56px; padding-bottom:53px; }
  .section-intro { margin-bottom:27px; }
  .section-intro>p { margin-top:23px; font-size:.9375rem; padding:21px; }
  .service-row { padding:25px 21px; margin-bottom:19px; border-radius:12px; display:block; }
  .service-number { font-size:2.35rem; padding:0; gap:13px; margin-bottom:22px; }
  .service-number::after { width:25px; height:25px; border-width:5px; margin:0 3px 0 auto; border-radius:7px 7px 7px 0; }
  .service-detail { display:block; padding:21px 18px; margin-top:24px; }
  .service-detail ul { margin-bottom:20px; }
  .service-detail .price { border-left:0; border-top:1px solid #d0dced; padding:18px 0 0; }
  .service-main h3 { font-size:1.4rem; }
  .service-main .text-link { font-size:.8125rem; gap:14px; }
  .service-footnote { padding:0; }
  .about { padding:43px 6vw; gap:25px; }
  .about-copy { padding:0; }
  .about-photo { width:calc(100% - 10px); min-height:0; height:300px; margin:0 10px 8px 0; border-radius:12px 66px 12px 12px; box-shadow:10px 10px 0 #f0dfaa; }
  .transport { padding-block:48px; }
  .transport .eyebrow { gap:7px; }
  .transport .eyebrow span { margin-left:0; }
  .contact { padding-top:52px; }
  .contact h2 { text-underline-offset:7px; }
  .footer { padding-block:33px; }
}
@media(max-width:370px) {
  .service-nav a { font-size:.875rem; }
  .hero-caption { font-size:.75rem; padding-inline:38px 12px; }
  .hero-caption::before { left:14px; }
  .service-row { padding-inline:18px; }
  .service-detail { padding-inline:15px; }
}
