/* Website detail inherits the completed homepage's font, palette and header.
   All new layout rules are scoped to this page; shared home styles stay intact. */
.ws-page { color:var(--ink); font-size:17px; line-height:1.9; }
.ws-container { width:min(1280px,88%); margin-inline:auto; }
.ws-page :is(h1,h2,h3) { overflow-wrap:normal; }
.ws-page p { margin:0; }
.ws-page .icon { width:26px; height:26px; }
.ws-page .button { font-size:16px; gap:18px; min-height:56px; }
.ws-hero { background:linear-gradient(#001126b3,#001126b3),#001126 url('../assets/contact-trails.png') center bottom / cover no-repeat; color:#fff; padding-bottom:68px; }
.ws-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; color:#bdd0e8; padding:24px 0 38px; font-size:12px; }
.ws-breadcrumb a { text-decoration:none; }
.ws-breadcrumb a:hover { text-decoration:underline; }
.ws-hero-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:clamp(32px,5vw,76px); align-items:center; }
.ws-hero .ws-service-name { font-size:clamp(15px,1.5vw,21px); font-weight:700; letter-spacing:.03em; margin-bottom:23px; color:#c0e3ff; }
.ws-hero h1 { font-size:clamp(34px,4.1vw,59px); font-weight:800; line-height:1.4; letter-spacing:-.025em; margin:0 0 24px; }
.ws-hero h1 > span { display:block; }
.ws-hero h1 .gradient-text { background-image:linear-gradient(95deg,#04caef 0%,#429fff 34%,#d279f0 68%,#f04de9 100%); }
.ws-hero .ws-lead { color:#e2ebf7; font-size:17px; line-height:1.95; max-width:33em; }
.ws-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:29px; }
.ws-hero-link { font-size:15px; display:inline-flex; align-items:center; gap:12px; text-decoration:none; }
.ws-hero-link .icon { color:#c6e7ff; width:23px; }
.ws-hero-link:hover { text-decoration:underline; }
.ws-hero .ws-caption { color:#c0d5ec; font-size:13px; margin-top:18px; }
.ws-hero-image { margin:0; min-width:0; }
.ws-hero-image img { width:100%; height:auto; border-radius:18px; box-shadow:0 18px 55px #0004; }
.ws-hero-image figcaption { padding-top:17px; font-size:15px; font-weight:500; display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; color:#e3eeff; }
.ws-hero-image figcaption span { font-size:11px; color:#adc5df; align-self:center; font-weight:400; }
.ws-page-nav { background:#fff; border-bottom:1px solid var(--line); }
.ws-page-nav > div { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); }
.ws-page-nav a { padding:22px 15px; display:flex; justify-content:center; align-items:center; gap:14px; text-decoration:none; font-size:14px; font-weight:600; }
.ws-page-nav a:hover { background:#eff6ff; color:var(--blue); }
.ws-page-nav .icon { transform:rotate(90deg); width:16px; height:16px; }
.ws-section { padding-block:clamp(64px,7vw,105px); }
.ws-heading .eyebrow { font-size:12px; letter-spacing:.28em; margin-bottom:17px; }
.ws-heading h2 { font-size:clamp(28px,2.9vw,42px); line-height:1.55; font-weight:800; letter-spacing:-.02em; }
.ws-mobile-break { display:none; }
.ws-split { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(36px,6vw,90px); align-items:start; }
.ws-page .ws-intro { margin-top:26px; color:#425572; line-height:2; }
.ws-feature-list { border-top:1px solid #cadbee; }
.ws-feature { display:flex; gap:24px; padding:26px 0; border-bottom:1px solid #cadbee; }
.ws-feature:first-child { padding-top:25px; }
.ws-number { color:#3756c5; font-size:20px; font-weight:500; padding-top:2px; font-variant-numeric:tabular-nums; }
.ws-feature h3 { font-size:22px; margin-bottom:10px; font-weight:700; }
.ws-feature p { color:#425572; font-size:16px; }
.ws-scope { background:#f5f9ff url('../assets/section-trails.png') center / cover no-repeat; }
.ws-section-head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:42px; }
.ws-section-head > p { color:#425572; font-size:15px; flex-shrink:0; }
.ws-scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; background:#ffffffed; padding:14px 36px; border:1px solid #d5e5f7; border-radius:18px; }
.ws-scope-item { display:flex; gap:20px; padding:27px 0; border-bottom:1px solid #d5e5f7; }
.ws-scope-item:nth-last-child(-n+2) { border-bottom:0; }
.ws-scope-icon { padding-top:3px; flex:none; }
.ws-scope-icon .icon { width:30px; height:30px; color:#316bd3; }
.ws-scope-item h3 { font-size:21px; font-weight:700; margin-bottom:8px; }
.ws-scope-item p { font-size:15px; color:#425572; line-height:1.9; }
.ws-related { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:26px; }
.ws-related p { font-size:17px; font-weight:700; }
.ws-related small { display:block; font-size:13px; font-weight:400; color:#425572; margin-top:5px; }
.ws-related a,.ws-text-link { display:inline-flex; align-items:center; gap:12px; font-size:14px; font-weight:600; text-decoration:none; }
.ws-related a { flex:none; }
.ws-related a:hover,.ws-text-link:hover { text-decoration:underline; }
.ws-related a .icon,.ws-text-link .icon { width:20px; height:20px; }
.ws-case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.ws-case { min-width:0; display:flex; flex-direction:column; }
.ws-case-image { display:block; aspect-ratio:1249/712; border:1px solid #dbe5f2; border-radius:12px; overflow:hidden; background:#fff; }
/* As on the homepage, crop only the source capture's 16px scrollbar. */
.ws-case-image img { width:calc(100% * 1265 / 1249); max-width:none; height:auto; aspect-ratio:1265/712; transition:transform .25s; }
.ws-case-image:hover img { transform:scale(1.025); }
.ws-case .ws-case-category { font-size:12px; color:#335fc4; margin-top:24px; margin-bottom:9px; font-weight:600; }
.ws-case h3 { font-size:23px; font-weight:700; margin-bottom:14px; }
.ws-case .ws-case-summary { font-size:16px; color:#425572; margin-bottom:24px; }
.ws-case-facts { margin:0 0 22px; padding-top:18px; border-top:1px solid #dce6f2; font-size:14px; }
.ws-case-facts > div { display:grid; grid-template-columns:2em 1fr; gap:14px; margin-bottom:10px; }
.ws-case-facts dt { font-weight:600; color:#243f6b; }
.ws-case-facts dd { margin:0; color:#425572; }
.ws-case .ws-text-link { margin-top:auto; }
.ws-case-more { text-align:center; margin-top:44px; }
.ws-process { background:#f5f9ff; }
.ws-flow { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.ws-flow li { border-top:1px solid #b9cfe9; padding-top:23px; }
.ws-step-number { font-size:38px; color:#4167c1; font-weight:500; line-height:1.2; display:block; margin-bottom:23px; }
.ws-flow h3 { font-size:20px; font-weight:700; margin-bottom:15px; }
.ws-flow li p { color:#425572; font-size:15px; }
.ws-page .ws-flow-note { margin-top:36px; padding-top:26px; border-top:1px solid #cdddee; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:15px; }
.ws-flow-note a { display:inline-flex; align-items:center; gap:10px; font-weight:600; text-decoration:none; }
.ws-flow-note a:hover { text-decoration:underline; }
.ws-pricing { background:#fff url('../assets/pricing-trails.png') center bottom / cover no-repeat; }
.ws-price-panel { border:1px solid #bfd5f5; border-radius:18px; background:#ffffffed; padding:32px 36px; }
.ws-price-label { font-size:14px; color:#335fc4; font-weight:600; }
.ws-price-panel h3 { font-size:30px; margin:9px 0 26px; font-weight:700; }
.ws-price-panel dl { margin:0; }
.ws-price-panel dl > div { border-top:1px solid #d9e4f3; padding:16px 0; }
.ws-price-panel dt { font-size:16px; font-weight:700; margin-bottom:4px; }
.ws-price-panel dd { font-size:15px; color:#425572; margin:0; }
.ws-price-panel .ws-price-note { font-size:13px; color:#425572; margin-top:4px; }
.ws-price-panel .button { display:flex; margin-top:25px; padding-inline:18px; }
.ws-faq { border-top:1px solid #e3edf9; }
.ws-faq-list { border-top:1px solid #cbdbee; }
.ws-faq-list details { border-bottom:1px solid #cbdbee; background:#fff; }
.ws-faq-list summary { display:grid; grid-template-columns:26px 1fr 18px; gap:12px; align-items:baseline; padding:23px 2px; cursor:pointer; list-style:none; font-size:17px; line-height:1.8; font-weight:600; }
.ws-faq-list summary::-webkit-details-marker { display:none; }
.ws-q { color:#345cbf; font-size:18px; }
.ws-disclosure { width:14px; height:14px; align-self:center; position:relative; }
.ws-disclosure:before,.ws-disclosure:after { content:''; position:absolute; top:6px; left:0; width:14px; height:2px; background:#345cbf; }
.ws-disclosure:after { transform:rotate(90deg); }
.ws-faq-list details[open] .ws-disclosure:after { transform:none; }
.ws-faq-list details p { padding:0 29px 25px 40px; color:#425572; font-size:16px; }
.ws-contact { text-align:center; color:#fff; padding:80px 0 72px; background:#04132c url('../assets/contact-trails.png') center / cover no-repeat; }
.ws-contact .eyebrow { color:#b6d6ff; font-size:12px; margin-bottom:24px; letter-spacing:.3em; }
.ws-contact h2 { font-size:clamp(30px,3.3vw,48px); line-height:1.55; white-space:pre-line; }
.ws-contact h2 + p { font-size:17px; max-width:37em; margin:22px auto 30px; color:#e2eafa; }
.ws-contact .button { min-width:320px; }
.ws-contact .ws-preview-note { margin-top:20px; color:#c1d2e7; font-size:12px; }
@media(max-width:1100px) {
  .ws-hero-grid { gap:32px; }
  .ws-hero-actions { gap:18px; }
  .ws-section-head { display:block; }
  .ws-section-head > p { margin-top:18px; }
  .ws-split { gap:35px; }
  .ws-feature { gap:17px; }
  .ws-related { align-items:start; flex-direction:column; }
  .ws-case-grid { gap:22px; }
  .ws-case h3 { font-size:20px; }
}
@media(max-width:980px) {
  .ws-hero { padding-bottom:46px; }
  .ws-breadcrumb { padding:21px 0 31px; }
  .ws-hero-grid { grid-template-columns:1.05fr 1fr; gap:28px; }
  .ws-hero h1 { font-size:clamp(30px,4vw,40px); }
  .ws-hero .ws-lead { font-size:15px; }
  .ws-hero .button { font-size:14px; padding-inline:18px; gap:13px; min-height:52px; }
  .ws-hero-image figcaption { display:block; font-size:13px; }
  .ws-hero-image figcaption span { display:block; margin-top:4px; }
  .ws-page-nav a { padding:18px 7px; font-size:12px; gap:7px; }
  .ws-split { grid-template-columns:1fr; gap:32px; }
  .ws-feature-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; border:0; }
  .ws-feature { display:block; border-top:1px solid #cadbee; border-bottom:0; padding:20px 0 0; }
  .ws-feature:first-child { padding-top:20px; }
  .ws-number { display:block; margin-bottom:12px; }
  .ws-feature h3 { font-size:20px; }
  .ws-scope-grid { padding:8px 25px; gap:0 28px; }
  .ws-scope-item { gap:15px; }
  .ws-scope-item h3 { font-size:19px; }
  .ws-flow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  .ws-flow h3 { font-size:21px; }
  .ws-price-panel { padding:30px; }
}
@media(max-width:700px) {
  .ws-container { width:88%; }
  .ws-page { font-size:16px; }
  .ws-section { padding-block:56px; }
  .ws-breadcrumb { font-size:10px; gap:8px; padding:20px 0 26px; }
  .ws-hero-grid { grid-template-columns:1fr; gap:29px; }
  .ws-hero { padding-bottom:32px; }
  .ws-hero .ws-service-name { font-size:15px; margin-bottom:18px; }
  .ws-hero h1 { font-size:clamp(31px,8.4vw,48px); margin-bottom:20px; }
  .ws-hero .ws-lead { font-size:16px; line-height:1.9; max-width:none; }
  .ws-hero-actions { flex-direction:column; align-items:stretch; gap:18px; margin-top:23px; }
  .ws-hero .button { font-size:15px; }
  .ws-hero-link { justify-content:center; font-size:14px; }
  .ws-hero .ws-caption { font-size:12px; text-align:center; margin-top:17px; }
  .ws-hero-image img { aspect-ratio:3/2; border-radius:12px; }
  .ws-hero-image figcaption { display:flex; font-size:12px; padding-top:11px; }
  .ws-hero-image figcaption span { margin:0; font-size:10px; }
  .ws-page-nav > div { grid-template-columns:repeat(3,minmax(0,1fr)); padding-block:8px; }
  .ws-page-nav a { font-size:12px; padding:12px 3px; }
  .ws-page-nav a:nth-child(-n+3) { border-bottom:1px solid #e5edf6; }
  .ws-page-nav .icon { width:14px; height:14px; }
  .ws-heading .eyebrow { font-size:11px; margin-bottom:14px; }
  .ws-heading h2 { font-size:clamp(26px,6.8vw,34px); line-height:1.55; }
  .ws-mobile-break { display:block; }
  .ws-page .ws-intro { margin-top:20px; font-size:16px; }
  .ws-feature-list { display:block; border-top:1px solid #cadbee; }
  .ws-feature,.ws-feature:first-child { display:flex; border-top:0; border-bottom:1px solid #cadbee; padding:24px 0; gap:18px; }
  .ws-feature h3 { font-size:20px; }
  .ws-feature p { font-size:15px; }
  .ws-number { font-size:18px; }
  .ws-section-head { margin-bottom:29px; }
  .ws-section-head > p { font-size:15px; margin-top:18px; }
  .ws-scope-grid { grid-template-columns:1fr; padding:0 22px; }
  .ws-scope-item { padding:24px 0; gap:15px; }
  .ws-scope-item:nth-last-child(2) { border-bottom:1px solid #d5e5f7; }
  .ws-scope-item h3 { font-size:19px; }
  .ws-scope-item p { font-size:15px; }
  .ws-scope-icon .icon { width:26px; height:26px; }
  .ws-related p { font-size:16px; }
  .ws-related small { margin-top:9px; }
  .ws-related a { font-size:13px; }
  .ws-case-grid { grid-template-columns:1fr; gap:38px; }
  .ws-case h3 { font-size:23px; }
  .ws-case .ws-case-category { margin-top:19px; }
  .ws-case .ws-case-summary { margin-bottom:20px; }
  .ws-case-facts { font-size:14px; padding-top:16px; margin-bottom:12px; }
  .ws-case-more { margin-top:34px; }
  .ws-case-more .button { width:100%; }
  .ws-flow { grid-template-columns:1fr; gap:24px; }
  .ws-flow li { display:grid; grid-template-columns:42px 1fr; gap:9px 19px; padding-top:24px; }
  .ws-step-number { font-size:30px; grid-row:1/3; margin:0; }
  .ws-flow h3 { font-size:20px; margin:0; }
  .ws-flow li p { grid-column:2; font-size:15px; }
  .ws-page .ws-flow-note { margin-top:27px; padding-top:24px; gap:15px; }
  .ws-price-panel { padding:26px 22px; }
  .ws-price-label { font-size:12px; }
  .ws-price-panel h3 { font-size:27px; }
  .ws-price-panel .button { font-size:14px; gap:10px; padding:12px; }
  .ws-price-panel .button .icon { width:22px; }
  .ws-faq-list summary { font-size:16px; gap:9px; padding-block:22px; }
  .ws-faq-list details p { font-size:15px; padding:0 16px 22px 37px; }
  .ws-contact { padding:58px 0 50px; background-image:url('../assets/contact-mobile-trails.png'); }
  .ws-contact h2 { font-size:clamp(27px,7.1vw,36px); }
  .ws-contact h2 + p { font-size:16px; margin-block:23px 26px; }
  .ws-contact .button { min-width:0; width:100%; font-size:15px; padding-inline:18px; gap:12px; }
  .ws-contact .ws-preview-note { font-size:11px; line-height:1.9; }
}
@media(prefers-reduced-motion:reduce) {
  .ws-case-image img { transition:none; }
}

/* Website-only first-view refinements. Advertising also imports this sheet;
   keep the shared rules and the existing hero background/brightness intact. */
.ws-page--website .ws-hero { padding-bottom:48px; }
.ws-page--website .ws-breadcrumb { padding:20px 0 30px; }
.ws-page--website .ws-hero-grid { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); }
.ws-page--website .ws-hero .ws-lead { max-width:32em; line-height:1.85; text-wrap:pretty; }
.ws-page--website .ws-lead > span { display:block; text-wrap:balance; }
.ws-page--website .ws-lead-phrase { display:inline-block; max-width:100%; vertical-align:baseline; }
.ws-page--website .ws-hero-actions { gap:16px 22px; margin-top:24px; }
.ws-page--website .ws-hero .button { white-space:nowrap; }
.ws-page--website .ws-hero .button .icon { flex:none; }
.ws-page--website .ws-hero-link { min-height:44px; text-underline-offset:5px; }
.ws-page--website .ws-hero-link .icon { flex:none; pointer-events:none; transform:rotate(90deg); }
.ws-page--website .ws-hero a:focus-visible { outline:3px solid #c0e3ff; outline-offset:5px; }
.ws-page--website .ws-hero-link:is(:hover,:focus-visible) { text-decoration:underline; }
.ws-page--website .ws-hero .ws-caption { color:#e2ebf7; font-size:14px; line-height:1.8; margin-top:12px; text-wrap:pretty; }
.ws-page--website .ws-hero-image img { display:block; }
.ws-page--website .ws-hero-image figcaption { display:block; padding-top:10px; font-size:13px; line-height:1.7; font-weight:400; color:#e2ebf7; }
.ws-page--website .ws-page-nav a { min-height:52px; padding:16px 10px; white-space:nowrap; text-underline-offset:5px; }
.ws-page--website .ws-page-nav a:is(:hover,:focus-visible) { text-decoration:underline; }
.ws-page--website .ws-page-nav a:focus-visible { outline-offset:-4px; }
/* Match the advertising service's closing consultation CTA. */
.ws-page--website .site-contact .site-contact-button { width:min(100%,400px); min-height:64px; font-size:18px; font-weight:700; gap:20px; background:var(--gradient); }
.ws-page--website .site-contact .site-contact-button .icon { width:26px; height:26px; }

@media(min-width:701px) and (max-width:1100px) {
  .ws-page--website .ws-hero-grid { grid-template-columns:1fr; gap:28px; }
  .ws-page--website .ws-hero-copy { max-width:720px; }
  .ws-page--website .ws-hero h1 { font-size:clamp(40px,5vw,50px); }
  .ws-page--website .ws-hero .ws-lead { font-size:17px; max-width:36em; }
  .ws-page--website .ws-hero .button { font-size:16px; }
  .ws-page--website .ws-hero-image { width:min(100%,480px); justify-self:center; }
  .ws-page--website .ws-page-nav a { font-size:14px; gap:8px; }
}
@media(max-width:700px) {
  .ws-page--website .ws-hero { padding-bottom:28px; }
  .ws-page--website .ws-breadcrumb { padding:18px 0 22px; }
  .ws-page--website .ws-hero-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .ws-page--website .ws-hero .ws-lead { font-size:16px; line-height:1.85; }
  .ws-page--website .ws-hero-actions { gap:10px; margin-top:22px; }
  .ws-page--website .ws-hero .button { padding-inline:16px; gap:12px; }
  .ws-page--website .ws-hero .ws-caption { font-size:14px; margin-top:10px; text-align:center; text-wrap:balance; }
  .ws-page--website .ws-hero-image { width:min(100%,300px); justify-self:center; }
  .ws-page--website .ws-page-nav > div { grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:4px; }
  .ws-page--website .ws-page-nav a { font-size:14px; min-height:48px; padding:10px 5px; gap:9px; border-bottom:1px solid #e5edf6; }
  .ws-page--website .ws-page-nav a:nth-last-child(-n+2) { border-bottom:0; }
  .ws-page--website .site-contact .site-contact-button { font-size:16px; min-height:60px; gap:14px; }
}
