 /* ---------------------------------------------------------------
     TOKENS
  --------------------------------------------------------------- */
  :root{
    --paper:      #F7FAFC;
    --paper-dim:  #EEF4F8;
    --ink:        #0F2742;
    --ink-soft:   #4A6075;
    --ocean:      #0B3A66;
    --ocean-2:    #145DA0;
    --horizon:    #3F8FC4;
    --brass:      #2F80ED;
    --brass-dim:  #1F6FC7;
    --line:       #CBD9E6;
    --card:       #FFFFFF;
    --shadow:     0 1px 2px rgba(15,39,66,0.06), 0 8px 24px -12px rgba(15,39,66,0.18);
    --focus:      #2F80ED;

    --font-display: "Fraunces", Georgia, "Iowan Old Style", serif;
    --font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

    color-scheme: light;
  }

  /*@media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:      #0B1725;
      --paper-dim:  #08111D;
      --ink:        #F4F8FC;
      --ink-soft:   #B8C7D6;
      --ocean:      #7CC4FF;
      --ocean-2:    #59AEF2;
      --horizon:    #4C9DD0;
      --brass:      #69B7FF;
      --brass-dim:  #4098E8;
      --line:       #243B52;
      --card:       #10243A;
      --shadow:     0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
      --focus:      #69B7FF;
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --paper:      #0B1725;
    --paper-dim:  #08111D;
    --ink:        #F4F8FC;
    --ink-soft:   #B8C7D6;
    --ocean:      #7CC4FF;
    --ocean-2:    #59AEF2;
    --horizon:    #4C9DD0;
    --brass:      #69B7FF;
    --brass-dim:  #4098E8;
    --line:       #243B52;
    --card:       #10243A;
    --shadow:     0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
    --focus:      #69B7FF;
    color-scheme: dark;
  }*/

  /* ---------------------------------------------------------------
     RESET / BASE
  --------------------------------------------------------------- */
  *,*::before,*::after{ box-sizing: border-box; }
  html{ -webkit-text-size-adjust: 100%; }
  body{
    margin:0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
	overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color: inherit; }
  h1,h2,h3,h4{
    font-family: var(--font-display);
    font-weight: 500;
    line-height: 1.12;
    margin: 0;
    text-wrap: balance;
    color: var(--ink);
  }
  p{ margin: 0; }
  ul{ margin:0; padding:0; list-style:none; }
  button{ font-family: inherit; }
  :focus-visible{
    outline: 2.5px solid var(--focus);
    outline-offset: 3px;
    border-radius: 2px;
  }
  ::selection{ background: var(--brass); color: var(--ink); }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior:auto !important; }
  }

  .wrap{
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 28px;
  }
  @media (max-width: 640px){ .wrap{ padding: 0 20px; } }

  [hidden]{ display:none !important; }

  .eyebrow{
    font-family: var(--font-mono);
    font-size: 12.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--horizon);
    display:flex;
    align-items:center;
    gap: 10px;
  }
  .eyebrow::before{
    content:"";
    width: 22px; height: 1px;
    background: var(--brass);
    display:inline-block;
  }

  .tnum{ font-variant-numeric: tabular-nums; font-family: var(--font-mono); }
  
  .text-white{color:#ffffff !important;}

  /* ---------------------------------------------------------------
     BUTTONS
  --------------------------------------------------------------- */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding: 13px 24px;
    border-radius: 3px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 15px;
    text-decoration:none;
    cursor:pointer;
    border: 1px solid transparent;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
    white-space: nowrap;
	position: relative;
    overflow: hidden;
	z-index: 1;
  }
  .btn:active{ transform: translateY(1px); }
  .btn-brass{
    background: var(--brass);
    color:#FFFFFF;
  }
  .btn-brass::before {
	  position: absolute;
	  top: 0px;
	  left: -10px;
	  bottom: 0;
	  right: 100%;
	  content: "";
	  background: var(--brass-dim);
	  -webkit-transform: translateX(-100%);
	  transform: translateX(-100%);
	  border-radius: 0%;
	  transition-duration: 800ms;
	  z-index: -1;
	}
	.btn-brass:hover::before {
	  right: 0px;
	  left: 0;
	  -webkit-transform: translateX(0);
	  transform: translateX(0);
	}
  .btn-brass:hover{ background: var(--brass); }
  .btn-ghost{
    background: #ffffff;
    border-color: var(--line);
    color: var(--ink);
  }
  .btn-ghost::before {
	  position: absolute;
	  top: 0px;
	  left: -10px;
	  bottom: 0;
	  right: 100%;
	  content: "";
	  background: var(--paper-dim);
	  -webkit-transform: translateX(-100%);
	  transform: translateX(-100%);
	  border-radius: 0%;
	  transition-duration: 800ms;
	  z-index: -1;
	}
	.btn-ghost:hover::before {
	  right: 0px;
	  left: 0;
	  -webkit-transform: translateX(0);
	  transform: translateX(0);
	}
  .btn-ghost:hover{ border-color: var(--horizon); color: var(--horizon); }
  .btn-sm{ padding: 9px 16px; font-size: 13.5px; }

  /* ---------------------------------------------------------------
     HEADER / NAV
  --------------------------------------------------------------- */
  header.site{
    position: sticky; top:0; z-index: 50;
    background: color-mix(in srgb, var(--paper) 92%, transparent);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    height: 76px;
    gap: 24px;
  }
  .brand{
    display:flex; flex-direction:row; align-items:center; gap:12px;
    text-decoration:none; color:var(--ink);
    cursor:pointer;
  }
  .brand-mark{ flex:none; width:38px; height:38px; display:block; object-fit:contain; }
  .brand-text{ display:flex; flex-direction:column; gap:1px; }
  .brand .name{
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 600;
    letter-spacing: 0.01em;
  }
  .brand .tagline{
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    color: var(--horizon);
    text-transform: uppercase;
  }
  nav.primary{ display:flex; align-items:center; gap: 6px; }
  nav.primary a{
    font-size: 14.5px;
    font-weight: 600;
    text-decoration:none;
    color: var(--ink-soft);
    padding: 9px 13px;
    border-radius: 3px;
    position:relative;
  }
  nav.primary a:after{content:"";position:absolute;left:10px;bottom:0px;width:0%;height:2px;background:var(--brass);transition:all ease 0.5s;}
  nav.primary a:hover{ color: var(--ocean-2);}
  nav.primary a:hover:after{ width: calc(100% - 20px);}
  nav.primary a.active{ color: var(--ocean-2); }
  nav.primary a.active::after{
    content:"";
    position:absolute; left:13px; right:13px; bottom:3px;
    height:2px; background: var(--brass);
  }
  nav.primary a[data-route="contact"].active::after{ display:none; }
  .nav-actions{ display:flex; align-items:center; gap:10px; }
  .menu-toggle{
    display:none;
    background:var(--brass); border:1px solid var(--brass); border-radius:3px;
    width:42px; height:38px; align-items:center; justify-content:center;
    color: var(--paper); cursor:pointer;
  }
  @media (max-width: 900px){
    nav.primary{
      position:absolute; top:76px; left:0; right:0;
      background: var(--paper);
      border-bottom: 1px solid var(--line);
      flex-direction:column; align-items:stretch;
      padding: 8px 20px 18px;
      gap:2px;
      display:none;
    }
    nav.primary.open{ display:flex; }
    nav.primary a{ padding: 12px 6px; border-bottom:1px solid var(--line); border-radius:0; }
    nav.primary a.active::after{ display:none; }
    .menu-toggle{ display:inline-flex; }
    .nav-actions .btn-sm-desktop{ display:none; }
  }

  /* ---------------------------------------------------------------
     DIVIDER MOTIF — the 49th parallel
  --------------------------------------------------------------- */
  .parallel{
    display:flex; align-items:center; gap:16px;
    padding: 0;
    margin: 0 auto;
    max-width: 1180px;
  }
  .parallel .rule{ flex:1; height:1px; background: var(--line); }
  .parallel .coord{
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.09em;
    color: var(--paper);
    white-space: nowrap;
  }
  .parallel-section{ padding: 46px 28px;background:var(--brass); }

  /* ---------------------------------------------------------------
     HERO
  --------------------------------------------------------------- */
  .hero{
    padding: 72px 0 56px;
    border-bottom: 1px solid var(--line);
  }
  .hero-grid{
    display:grid;
    grid-template-columns: 1.05fr 0.9fr;
    gap: 56px;
    align-items:center;
  }
	.typed-cursor {
		opacity: 1;
		animation: blink 0.7s infinite;
		color: rgb(27, 42, 65);
	}

	@keyframes blink {
		0% { opacity: 1; }
		50% { opacity: 0; }
		100% { opacity: 1; }
	}
  @media (max-width: 900px){ .hero-grid{ grid-template-columns:1fr; gap:40px; } }
  .hero h1{
    font-size: clamp(34px, 4.6vw, 54px);
    margin-top: 16px;
    max-width: 15ch;
	min-height: 120px;
  }
  .hero h1 em{ font-style: italic; color: var(--ocean-2); }
  .hero .lede{
    margin-top: 20px;
    font-size: 18px;
    line-height:1.65;
    color: var(--ink-soft);
    max-width: 46ch;
  }
  .hero-ctas{ display:flex; gap:14px; margin-top: 30px; flex-wrap:wrap; }
  .hero-badges{
    display:flex; gap: 22px; margin-top: 40px; flex-wrap:wrap;
  }
  .hero-badges .badge{
    font-size: 13px; color: var(--ink-soft);
    display:flex; align-items:center; gap:8px;
  }
  .hero-badges .badge svg{ flex:none; color: var(--horizon); }

  .hero-art{ position:relative; }
  .hero-art img{ border-radius:20px; }
  .hero-art svg{ width:100%; height:auto; }

  .nav-cpa-badge{ height:22px; width:auto; display:block; margin-left:2px; pointer-events:none; }
  @media(max-width:899px){
	  .nav-cpa-badge{height: 52px;max-width: 180px;}
  }

  /* ---------------------------------------------------------------
     SECTION HEADERS
  --------------------------------------------------------------- */
  .sec-head{ max-width: 62ch; margin-bottom: 40px; }
  .sec-head h2{ font-size: clamp(26px, 3vw, 36px); margin-top:14px; }
  .sec-head p{ margin-top:14px; color: var(--ink-soft); font-size:16.5px; }
  section.page-block{ padding: 72px 0; }
  section.page-block.tight{ padding: 56px 0; }
  section.page-block.alt{ background: var(--ocean-2); }

  /* ---------------------------------------------------------------
     CARDS
  --------------------------------------------------------------- */
  .grid{ display:grid; gap: 20px; }
  .grid-3{ grid-template-columns: repeat(3, 1fr); }
  .grid-2{ grid-template-columns: repeat(2, 1fr); }
  @media (max-width: 900px){ .grid-3{ grid-template-columns: repeat(2,1fr); } }
  @media (max-width: 640px){ .grid-3, .grid-2{ grid-template-columns: 1fr; } }

  .card{
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 26px 24px;
    box-shadow: var(--shadow);
    display:flex; flex-direction:column; gap:12px;
	transition:all ease 0.5s;
  }
  .card .tag{
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing:0.08em;
    color: var(--brass);
    text-transform:uppercase;
  }
  .card h3{ font-size: 19px; }
  .card p{ color: var(--ink-soft); font-size: 14.5px; line-height:1.6; }
  .card:hover{transform:translateY(-8px) !important;}

  .why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap: 1px; background: var(--line); border:1px solid var(--line); margin-top: 8px;}
  @media (max-width: 800px){ .why-grid{ grid-template-columns:1fr; } }
  .why-item{ background: var(--paper); padding: 30px 26px; }
  .why-item .num{ font-family: var(--font-mono); color: var(--brass); font-size:13px; }

  /* testimonials */
  .rating-summary{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:6px; }
  .rating-summary .stars{ color: #fbe21b; font-size:18px; letter-spacing:2px; }
  .rating-summary .rating-num{ font-family: var(--font-display); font-size:22px; color: var(--ink); }
  .rating-summary a{ font-size:13px; color: var(--ocean-2); text-decoration:none; }
  .rating-summary a:hover{ text-decoration:underline; }
  .testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px; }
  @media (max-width: 900px){ .testimonial-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width: 620px){ .testimonial-grid{ grid-template-columns:1fr; } }
  .testimonial-card{ background: var(--card); border:1px solid var(--line); border-radius:8px; padding: 26px 24px; display:flex; flex-direction:column; }
  .testimonial-card:hover{transform: translateY(-8px) !important;}
  .testimonial-card .quote-mark{ font-family: var(--font-display); font-size:34px; line-height:1; color: var(--brass); opacity:0.8; margin-bottom:6px; }
  .testimonial-card p{ font-size:14.5px; line-height:1.65; color: var(--ink); flex:1; }
  .testimonial-card .who{ margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; }
  .testimonial-card .who .tname{ font-weight:600; color: var(--ink); }
  .testimonial-card .who .tsrc{ color: var(--ink-soft); }
  .why-item h3{ font-size: 18px; margin-top:10px; }
  .why-item p{ margin-top:10px; color: var(--ink-soft); font-size:14.5px; }

  /* process */
  .process{ counter-reset: step; display:grid; grid-template-columns: repeat(4,1fr); gap:0; margin-top:8px; }
  @media (max-width: 900px){ .process{ grid-template-columns: repeat(2,1fr); } }
  @media (max-width: 560px){ .process{ grid-template-columns: 1fr; } }
  .step{
    counter-increment: step;
    padding: 22px 22px 22px 0;
    border-top: 2px solid var(--line);
    position:relative;
  }
  .step::before{
    content: counter(step, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--brass);
    display:block;
    margin-bottom: 14px;
  }
  .step h4{ font-family:var(--font-body); font-weight:700; font-size:15.5px; }
  .step p{ margin-top:8px; color: var(--ink-soft); font-size:14px; }

  /* jump nav */
  .jump-nav{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom: 48px; }
  .jump-pill{
    font-family: var(--font-body); font-size: 13px; font-weight:600;
    background: var(--brass); color: var(--paper);
    border:1px solid var(--line); border-radius: 30px;
    padding: 8px 16px; cursor:pointer; transition: border-color .15s ease, color .15s ease;
  }
  .jump-pill:hover{ background: var(--brass-dim); color: var(--paper); }

  /* service groups */
  .svc-group{ margin-bottom: 44px; scroll-margin-top: 100px; }
  .svc-group:last-child{ margin-bottom:0; }
  .svc-group-head{
    display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:18px;
    border-bottom:1px solid var(--line); padding-bottom: 12px;
  }
  .svc-group-head h3{ font-size:15px; font-family:var(--font-mono); letter-spacing:0.06em; text-transform:uppercase; color:var(--ocean-2); font-weight:500;}
  .svc-group-head .group-desc{ font-size:13.5px; color: var(--ink-soft); }
  .svc-list{ display:grid; grid-template-columns: repeat(2,1fr); gap:1px; background:var(--brass); border:1px solid var(--brass); }
  @media (max-width: 760px){ .svc-list{ grid-template-columns: 1fr; } }
  .svc-row{
    background:var(--card); padding: 20px 22px; display:flex; flex-direction:column; gap:8px;
    text-decoration:none; color:inherit; cursor:pointer;
    transition: background-color .15s ease;
  }
  .svc-row:hover{ background: var(--paper-dim); }
  .svc-row h4{ font-family:var(--font-body); color: var(--ocean-2);font-size:15.5px; font-weight:700; display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .svc-row h4 .arrow{ font-family:var(--font-mono); font-size:14px; color:var(--horizon); flex:none; opacity:0; transition:opacity .15s ease, transform .15s ease; transform:translateX(-4px); }
  .svc-row:hover h4 .arrow{ opacity:1; transform:translateX(0); }
  .svc-row .code{ font-family:var(--font-mono); font-size:11px; color:var(--brass-dim); letter-spacing:0.04em; }
  .svc-row p{ color:var(--ink-soft); font-size:14px; line-height:1.55; }
  
  @media (max-width: 767px){
	  .svc-row h4 .arrow{display:none;}
	  .svc-row h4:after{content: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22'><path fill='%2310069f' d='M12 17.414 3.293 8.707l1.414-1.414L12 14.586l7.293-7.293 1.414 1.414L12 17.414z'/></svg>");
	  display: inline-block;width: 22px;height: 22px;transform: translateX(-8px) rotate(-90deg);opacity: 0;animation: arrowFadeIn 0.9s ease-in-out infinite;}
	  .svc-row h4{animation: textGlow 2s ease-in-out infinite alternate;}
  }
	@keyframes textGlow {
			 0%, 100% {
			text-shadow: 0 0 0 rgba(16, 6, 159, 0);
		}

		50% {
			text-shadow:
				0 0 6px rgba(22, 183, 238, 0.50),
				0 0 12px rgba(22, 183, 238, 0.25);
		}
	}
  @keyframes arrowFadeIn {
		from {
			opacity: 0;
			transform: translateX(-8px) rotate(-90deg);
		}
		to {
			opacity: 1;
			transform: translateX(0) rotate(-90deg);
		}
	}

  /* service detail page */
  .crumb{ font-size:13px; color: var(--ink-soft); margin-bottom: 30px; display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
  .crumb a{ color: var(--ink-soft); text-decoration:none; }
  .crumb a:hover{ color: var(--ocean-2); }
  .crumb span.sep{ color: var(--line); }
  .crumb span.current{ color: var(--ink); }
  .svc-detail-head{ max-width: 68ch; margin-bottom: 44px; }
  .svc-detail-head .code{ font-family:var(--font-mono); font-size:12px; color:var(--brass-dim); letter-spacing:0.05em; }
  .svc-detail-head h1{ font-size: clamp(28px, 3.6vw, 42px); margin-top:12px; }
  .svc-detail-head .lede{ margin-top:16px; font-size:17px; color:var(--ink-soft); line-height:1.65; }
  .svc-detail-grid{ display:grid; grid-template-columns: 1fr 280px; gap: 52px; align-items:start; }
  @media (max-width: 860px){ .svc-detail-grid{ grid-template-columns:1fr; } }
  .svc-block{ margin-bottom: 36px; }
  .svc-block h3{ font-family:var(--font-body); font-size:13px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--ocean-2); margin-bottom:14px; }
  .svc-block > p{ color: var(--ink-soft); font-size:15.5px; line-height:1.65; max-width:62ch; }
  .includes-list{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); max-width:62ch; }
  .includes-list li{ padding:14px 0 14px 26px; border-bottom:1px solid var(--line); position:relative; color:var(--ink); font-size:15px; line-height:1.5; }
  .includes-list li::before{ content:"\2013"; position:absolute; left:0; top:14px; color:var(--brass); font-family:var(--font-mono); }
  .mini-faq{ background: var(--paper-dim); border:1px solid var(--line); border-radius:4px; padding:22px 24px; max-width:62ch; }
  .mini-faq-q{ font-family:var(--font-display); font-size:17px; font-weight:500; color:var(--ink); }
  .mini-faq-a{ margin-top:10px; color:var(--ink-soft); font-size:14.5px; line-height:1.6; }
  .side-card{ border:1px solid var(--line); border-radius:4px; padding:22px 22px 20px; background:var(--card); position:sticky; top:96px; }
  .side-card h5{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.07em; text-transform:uppercase; color:var(--horizon); margin-bottom:14px; }
  .side-card ul{ display:flex; flex-direction:column; gap:2px; }
  .side-card li a{ display:block; padding:9px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink-soft); font-size:13.5px; }
  .side-card li:last-child a{ border-bottom:none; }
  .side-card li a:hover{ color: var(--ocean-2); }
  .side-card li a.current{ color: var(--brass-dim); font-weight:600; }
  .all-services-link{ display:inline-block; margin-top:16px; font-family:var(--font-mono); font-size:12px; color:var(--ocean-2); text-decoration:none; letter-spacing:0.03em; }
  .all-services-link:hover{ color: var(--brass); }
  
  .inner-page-hero img{height:380px;width:100%;object-fit:cover;border-radius:20px;margin-bottom:50px;}

  /* about */
  .about-stat{ display:flex; align-items:baseline; gap:12px; margin: 4px 0 28px; }
  .about-stat-num{ font-family:var(--font-display); font-size:36px; font-weight:600; color:var(--ocean-2); }
  .about-stat-label{ font-family:var(--font-mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); }
  .about-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items:start; }
  @media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }
  .about-copy p + p{ margin-top:16px; }
  .about-copy p{ color: var(--ink-soft); font-size:16px; line-height:1.7; }
  .pillars{ margin-top:28px; display:flex; flex-direction:column; gap:0; }
  .pillar{ display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--line); }
  .pillar:last-child{ border-bottom:1px solid var(--line); }
  .pillar .mark{ font-family:var(--font-mono); color:var(--brass); font-size:13px; flex:none; padding-top:2px;}
  .pillar h4{ font-family:var(--font-body); font-weight:700; font-size:15px; }
  .pillar p{ color:var(--ink-soft); font-size:14px; margin-top:5px; }

  .team-card{
    border:1px dashed var(--line);
    border-radius:4px;
    padding: 30px 26px;
    text-align:left;
    background: var(--paper-dim);
    display:flex; flex-direction:column; gap:10px;
  }
  .team-card .avatar{
    width:52px; height:52px; border-radius:50%;
    border:1px dashed var(--horizon);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-mono); font-size:11px; color:var(--horizon);
    margin-bottom:6px;
  }
  .team-card h4{ font-family:var(--font-body); font-size:15.5px; font-weight:700; }
  .team-card p{ font-size:13.5px; color:var(--ink-soft); }

  /* FAQ */
  .faq-list{ border-top:1px solid var(--line); }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    padding: 22px 4px; display:flex; justify-content:space-between; align-items:center; gap:20px;
    color:var(--ink); font-family:var(--font-display); font-size:18px; font-weight:500;
  }
  .faq-q .plus{ font-family:var(--font-mono); font-size:18px; color:var(--brass); flex:none; transition: transform .18s ease; }
  .faq-item[data-open="true"] .plus{ transform: rotate(45deg); }
  .faq-a{ overflow:hidden; max-height:0; transition: max-height .22s ease; }
  .faq-item[data-open="true"] .faq-a{ max-height: 400px; }
  .faq-a-inner{ padding: 0 4px 24px; color: var(--ink-soft); font-size:15px; line-height:1.65; max-width:70ch; }

  /* resources */
  .res-card .tag{ }
  .res-card h3{ font-family:var(--font-display); }
  .res-card a.read{ font-family:var(--font-mono); font-size:12px; color:var(--ocean-2); text-decoration:none; letter-spacing:0.03em; margin-top:auto; padding-top:6px; }
  .res-card a.read:hover{ color: var(--brass); }

  /* contact */
  .contact-grid{ display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; }
  @media (max-width: 900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
  .contact-info .item{ padding: 18px 0; border-top:1px solid var(--line); }
  .contact-info .item:last-child{ border-bottom:1px solid var(--line); }
  .contact-info .label{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--brass); }
  .contact-info .val{ margin-top:6px; font-size:16px; }
  .contact-info .val a{ text-decoration:none; color:var(--ocean-2); }
  .contact-info .val a:hover{ text-decoration:underline; }

  .form-card{ background: var(--card); border:1px solid var(--line); border-radius:5px; padding: 32px; box-shadow: var(--shadow); }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }
  .field{ margin-bottom:18px; }
  .field label{ display:block; font-size:13px; font-weight:600; margin-bottom:7px; color: var(--ink-soft); }
  .field input, .field select, .field textarea{
    width:100%; padding: 11px 13px; border:1px solid var(--line); border-radius:3px;
    background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size:14.5px;
  }
  .field textarea{ resize: vertical; min-height: 100px; }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--horizon); }
  .form-note{ font-size:12.5px; color: var(--ink-soft); margin-top:14px; line-height:1.5; }
  .form-status{ font-size:13.5px; margin-top:14px; color: var(--ocean-2); display:none; }
  .form-status.show{ display:block; }

  /* CTA banner */
  .cta-banner{
    background: var(--ocean);
    color: var(--paper);
    border-radius: 6px;
    padding: 46px 44px;
    display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  }
  .cta-banner h3{ color: var(--paper); font-size: 26px; max-width:24ch; }
  .cta-banner p{ color: color-mix(in srgb, var(--paper) 75%, transparent); margin-top:8px; font-size:15px; }
  /*:root[data-theme="dark"] .cta-banner{ background: var(--card); border:1px solid var(--line); }
  :root[data-theme="dark"] .cta-banner h3{ color: var(--ink); }
  :root[data-theme="dark"] .cta-banner p{ color: var(--ink-soft); }
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]) .cta-banner{ background: var(--card); border:1px solid var(--line); }
    :root:not([data-theme="light"]) .cta-banner h3{ color: var(--ink); }
    :root:not([data-theme="light"]) .cta-banner p{ color: var(--ink-soft); }
  }*/

  /* ---------------------------------------------------------------
     FOOTER
  --------------------------------------------------------------- */
  footer.site{ border-top:1px solid var(--line); padding: 48px 0 36px; margin-top: 40px;background: var(--ocean-2); }
  .footer-grid{ display:grid; grid-template-columns: 1.4fr repeat(3, 0.9fr); gap: 36px; }
  .footer-brand-row .name {color:#ffffff;}
  @media (max-width: 800px){ .footer-grid{ grid-template-columns: repeat(2,1fr); } }
  @media (max-width: 480px){ 
	.footer-grid{ grid-template-columns: 1fr 1fr; } 
	.footer-grid > :first-child,
	.footer-grid > :last-child {
		grid-column: 1 / -1;
	}
  }
  .footer-grid h5{ font-family:var(--font-body); font-size:16px; letter-spacing:0.08em; text-transform:uppercase; color:#ffffff; margin-bottom:14px;margin-top: 0px;}
  .footer-grid ul li{ margin-bottom:9px; }
  .footer-grid .reviews{margin-top:15px;}
  .footer-grid .reviews a{background:#ffffff;padding:8px 20px;font-size: 18px;line-height:1.2;display:inline-block;color:var(--ocean-2);border-radius:10px;box-shadow: 0 0px 8px rgba(255, 255, 255, 0.8);}
  .footer-grid .reviews a:hover{color:var(--ocean-2);}
  .footer-grid .reviews a .star{color:#ffd017;font-style: normal;}
  .footer-grid .reviews a small{font-size: 80%;}
  .footer-grid ul li:not(.email, .phone, .reviews)::before {content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 66.91 122.88' fill='%2315b6ed'><g><path d='M1.95,111.2c-2.65,2.72-2.59,7.08,0.14,9.73c2.72,2.65,7.08,2.59,9.73-0.14L64.94,66l-4.93-4.79l4.95,4.8 c2.65-2.74,2.59-7.11-0.15-9.76c-0.08-0.08-0.16-0.15-0.24-0.22L11.81,2.09c-2.65-2.73-7-2.79-9.73-0.14 C-0.64,4.6-0.7,8.95,1.95,11.68l48.46,49.55L1.95,111.2L1.95,111.2L1.95,111.2z'/></g></svg>");
  width:5px;height:5px;display: inline-block;margin-right:8px;}
	.footer-grid ul li.email::before {
	  content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 122.879 88.855' fill='%2315b6ed' ><g><path d='M7.048,0h108.784c1.939,0,3.701,0.794,4.977,2.069c1.277,1.277,2.07,3.042,2.07,4.979v74.759 c0,1.461-0.451,2.822-1.221,3.951c-0.141,0.365-0.361,0.705-0.662,0.994c-0.201,0.189-0.422,0.344-0.656,0.461 c-1.225,1.021-2.799,1.643-4.508,1.643H7.048c-1.937,0-3.701-0.793-4.979-2.07C0.794,85.51,0,83.748,0,81.807V7.048 c0-1.941,0.792-3.704,2.068-4.979C3.344,0.792,5.107,0,7.048,0L7.048,0z M5.406,78.842l38.124-38.22L5.406,9.538V78.842 L5.406,78.842z M47.729,44.045L8.424,83.449h105.701L76.563,44.051L64.18,54.602l0,0c-0.971,0.83-2.425,0.877-3.453,0.043 L47.729,44.045L47.729,44.045z M80.674,40.549l36.799,38.598V9.198L80.674,40.549L80.674,40.549z M8.867,5.406l53.521,43.639 l51.223-43.639H8.867L8.867,5.406z'/></g></svg>"); 
	  width:16px;height:16px;display: inline-block;margin-right:8px;transform: translateY(2px);
	}
	.footer-grid ul li.phone::before {
	  content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 122.88 122.267' fill='%2315b6ed'><g><path d='M33.822,50.291c4.137,7.442,8.898,14.604,15.074,21.133C55.1,77.984,62.782,83.962,72.771,89.03l0.01,0.005l0.002-0.005 c0.728,0.371,1.421,0.362,2.072,0.118c0.944-0.353,1.927-1.137,2.883-2.086c0.729-0.726,1.643-1.924,2.631-3.223 c3.846-5.054,8.601-11.301,15.314-8.193c0.142,0.065,0.276,0.141,0.402,0.226l22.373,12.852c0.08,0.046,0.157,0.095,0.23,0.147 c2.966,2.036,4.177,5.172,4.19,8.683c0.014,3.621-1.329,7.674-3.274,11.101c-2.565,4.517-6.387,7.502-10.761,9.525 c-4.17,1.928-8.798,2.954-13.267,3.608c-6.989,1.025-13.578,0.374-20.288-1.692c-6.55-2.017-13.176-5.385-20.4-9.86l-0.526-0.326 c-3.326-2.06-6.906-4.276-10.389-6.904C31.108,93.296,18.007,79.283,9.512,63.904C2.361,50.958-1.552,36.995,0.581,23.681 C1.75,16.375,4.901,9.743,10.333,5.35c4.762-3.853,11.188-5.94,19.448-5.203c0.973,0.084,1.793,0.639,2.255,1.419l0.006-0.003 l14.324,24.27c2.11,2.718,2.344,5.415,1.203,8.096c-0.943,2.218-2.892,4.251-5.476,6.168c-0.786,0.65-1.708,1.325-2.659,2.021 C36.236,44.459,32.578,47.136,33.822,50.291L33.822,50.291z M44.67,75.422C38.066,68.44,33.035,60.88,28.695,53.065 c-0.076-0.123-0.144-0.253-0.202-0.39c-3.174-7.459,2.52-11.625,7.493-15.262c0.845-0.618,1.663-1.217,2.401-1.829l0.002,0.003 c0.043-0.036,0.088-0.071,0.135-0.105c1.843-1.354,3.171-2.647,3.678-3.837c0.289-0.679,0.182-1.426-0.466-2.265 c-0.111-0.129-0.213-0.271-0.303-0.423L27.795,5.852c-5.869-0.241-10.419,1.321-13.784,4.044 c-4.239,3.429-6.723,8.759-7.674,14.699c-1.905,11.894,1.716,24.594,8.292,36.5c8.078,14.623,20.575,27.977,32.864,37.25 c3.379,2.55,6.776,4.653,9.932,6.607l0.526,0.326c6.818,4.223,13.017,7.386,19.052,9.244c5.876,1.809,11.634,2.38,17.729,1.486 c4.009-0.587,8.113-1.485,11.668-3.129c3.351-1.55,6.248-3.785,8.134-7.104c1.496-2.637,2.53-5.653,2.521-8.222 c-0.006-1.63-0.472-3.029-1.605-3.844L93.2,80.93c-2.461-1.081-5.629,3.081-8.193,6.45c-1.104,1.452-2.125,2.792-3.156,3.817 c-1.477,1.466-3.118,2.723-4.962,3.411c-2.136,0.799-4.395,0.834-6.755-0.37l0.002-0.004C59.522,88.849,51.323,82.457,44.67,75.422 L44.67,75.422z'/></g></svg>"); 
	  width:16px;height:16px;display: inline-block;margin-right:8px;transform: translateY(2px);
	}
	.footer-grid ul li.map::before {
	  content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 92.26 122.88' fill='%2315b6ed'><g><path d='M47.49,116.85c6.31-4.01,11.98-8.87,16.92-14.29c10.73-11.75,17.97-26.11,20.87-40.2c2.88-13.91,1.52-27.54-4.85-38.06 c-1.81-3.02-4.08-5.78-6.78-8.26c-7.74-7.05-16.6-10.41-25.52-10.5c-9.37-0.07-18.87,3.45-27.27,10.14 c-3.58,2.86-6.53,6.15-8.82,9.78c-5.9,9.28-7.69,20.8-5.74,32.85c1.97,12.23,7.78,25.02,17.04,36.61 c6.44,8.08,14.54,15.58,24.18,21.91L47.49,116.85L47.49,116.85z M46.13,21.16c7.05,0,13.45,2.86,18.06,7.49 c4.63,4.63,7.49,11,7.49,18.06c0,7.05-2.86,13.45-7.49,18.06c-4.63,4.63-11,7.49-18.06,7.49c-7.05,0-13.45-2.86-18.06-7.49 c-4.63-4.63-7.49-11-7.49-18.06c0-7.05,2.86-13.45,7.49-18.06C32.7,24.02,39.07,21.16,46.13,21.16L46.13,21.16z M60.51,32.33 c-3.67-3.67-8.78-5.97-14.38-5.97c-5.63,0-10.71,2.27-14.38,5.97c-3.67,3.67-5.97,8.78-5.97,14.38c0,5.63,2.27,10.71,5.97,14.38 c3.67,3.67,8.78,5.97,14.38,5.97c5.63,0,10.71-2.27,14.38-5.97c3.67-3.67,5.97-8.78,5.97-14.38C66.47,41.08,64.21,36,60.51,32.33 L60.51,32.33z M68.52,106.27c-5.6,6.12-12.09,11.61-19.42,16.06c-0.88,0.66-2.13,0.75-3.13,0.11 c-10.8-6.87-19.85-15.13-26.99-24.09C9.15,86.02,2.94,72.34,0.83,59.16c-2.15-13.36-0.14-26.2,6.51-36.68 c2.63-4.13,5.97-7.89,10.07-11.14C26.78,3.88,37.51-0.07,48.17,0c10.28,0.09,20.42,3.9,29.22,11.93c3.09,2.81,5.67,5.99,7.78,9.48 c7.15,11.77,8.69,26.81,5.56,42.01c-3.11,15.04-10.8,30.33-22.18,42.8L68.52,106.27L68.52,106.27z'/></g></svg>"); 
	  width:16px;height:16px;display: inline-block;margin-right:8px;transform: translateY(2px);
	}
  .footer-grid a{ text-decoration:none; color: #ffffff; font-size:14px; }
  .footer-grid a:hover{ color: #ffffff; }
  .footer-brand-row{ display:flex; align-items:center; gap:11px; }
  .footer-brand-row .brand-mark{ width:30px; height:30px; }
  .footer-offices{ display:flex; gap:28px; margin-top:20px; flex-wrap:wrap; }
  @media (max-width: 480px){ 
	.footer-offices {display: grid;grid-template-columns: repeat(2,1fr); }
  }
  .footer-office-label{ font-family:var(--font-body); font-size:16px; letter-spacing:0.08em; text-transform:uppercase; color:#ffffff; margin-bottom:6px; display:flex; align-items:center; gap:6px; }
  .flag-icon{ width:17px; height:auto; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,0.12); flex:none; }
  .contact-info .label{ display:flex; align-items:center; gap:6px;color:#ffffff;}
  .footer-office-addr{margin-bottom:10px;}
  .footer-office-addr, .footer-office-phone{ font-size:13.5px; line-height:1.5; color:#ffffff;display: flex;}
  .footer-office-phone::before {
	  content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 122.88 122.267' fill='%2315b6ed'><g><path d='M33.822,50.291c4.137,7.442,8.898,14.604,15.074,21.133C55.1,77.984,62.782,83.962,72.771,89.03l0.01,0.005l0.002-0.005 c0.728,0.371,1.421,0.362,2.072,0.118c0.944-0.353,1.927-1.137,2.883-2.086c0.729-0.726,1.643-1.924,2.631-3.223 c3.846-5.054,8.601-11.301,15.314-8.193c0.142,0.065,0.276,0.141,0.402,0.226l22.373,12.852c0.08,0.046,0.157,0.095,0.23,0.147 c2.966,2.036,4.177,5.172,4.19,8.683c0.014,3.621-1.329,7.674-3.274,11.101c-2.565,4.517-6.387,7.502-10.761,9.525 c-4.17,1.928-8.798,2.954-13.267,3.608c-6.989,1.025-13.578,0.374-20.288-1.692c-6.55-2.017-13.176-5.385-20.4-9.86l-0.526-0.326 c-3.326-2.06-6.906-4.276-10.389-6.904C31.108,93.296,18.007,79.283,9.512,63.904C2.361,50.958-1.552,36.995,0.581,23.681 C1.75,16.375,4.901,9.743,10.333,5.35c4.762-3.853,11.188-5.94,19.448-5.203c0.973,0.084,1.793,0.639,2.255,1.419l0.006-0.003 l14.324,24.27c2.11,2.718,2.344,5.415,1.203,8.096c-0.943,2.218-2.892,4.251-5.476,6.168c-0.786,0.65-1.708,1.325-2.659,2.021 C36.236,44.459,32.578,47.136,33.822,50.291L33.822,50.291z M44.67,75.422C38.066,68.44,33.035,60.88,28.695,53.065 c-0.076-0.123-0.144-0.253-0.202-0.39c-3.174-7.459,2.52-11.625,7.493-15.262c0.845-0.618,1.663-1.217,2.401-1.829l0.002,0.003 c0.043-0.036,0.088-0.071,0.135-0.105c1.843-1.354,3.171-2.647,3.678-3.837c0.289-0.679,0.182-1.426-0.466-2.265 c-0.111-0.129-0.213-0.271-0.303-0.423L27.795,5.852c-5.869-0.241-10.419,1.321-13.784,4.044 c-4.239,3.429-6.723,8.759-7.674,14.699c-1.905,11.894,1.716,24.594,8.292,36.5c8.078,14.623,20.575,27.977,32.864,37.25 c3.379,2.55,6.776,4.653,9.932,6.607l0.526,0.326c6.818,4.223,13.017,7.386,19.052,9.244c5.876,1.809,11.634,2.38,17.729,1.486 c4.009-0.587,8.113-1.485,11.668-3.129c3.351-1.55,6.248-3.785,8.134-7.104c1.496-2.637,2.53-5.653,2.521-8.222 c-0.006-1.63-0.472-3.029-1.605-3.844L93.2,80.93c-2.461-1.081-5.629,3.081-8.193,6.45c-1.104,1.452-2.125,2.792-3.156,3.817 c-1.477,1.466-3.118,2.723-4.962,3.411c-2.136,0.799-4.395,0.834-6.755-0.37l0.002-0.004C59.522,88.849,51.323,82.457,44.67,75.422 L44.67,75.422z'/></g></svg>"); 
	  width:16px;height:16px;display: inline-block;margin-right:8px;transform: translateY(2px);
	}
	.footer-office-addr::before {
	  content: url("data:image/svg+xml;utf8,<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 92.26 122.88' fill='%2315b6ed'><g><path d='M47.49,116.85c6.31-4.01,11.98-8.87,16.92-14.29c10.73-11.75,17.97-26.11,20.87-40.2c2.88-13.91,1.52-27.54-4.85-38.06 c-1.81-3.02-4.08-5.78-6.78-8.26c-7.74-7.05-16.6-10.41-25.52-10.5c-9.37-0.07-18.87,3.45-27.27,10.14 c-3.58,2.86-6.53,6.15-8.82,9.78c-5.9,9.28-7.69,20.8-5.74,32.85c1.97,12.23,7.78,25.02,17.04,36.61 c6.44,8.08,14.54,15.58,24.18,21.91L47.49,116.85L47.49,116.85z M46.13,21.16c7.05,0,13.45,2.86,18.06,7.49 c4.63,4.63,7.49,11,7.49,18.06c0,7.05-2.86,13.45-7.49,18.06c-4.63,4.63-11,7.49-18.06,7.49c-7.05,0-13.45-2.86-18.06-7.49 c-4.63-4.63-7.49-11-7.49-18.06c0-7.05,2.86-13.45,7.49-18.06C32.7,24.02,39.07,21.16,46.13,21.16L46.13,21.16z M60.51,32.33 c-3.67-3.67-8.78-5.97-14.38-5.97c-5.63,0-10.71,2.27-14.38,5.97c-3.67,3.67-5.97,8.78-5.97,14.38c0,5.63,2.27,10.71,5.97,14.38 c3.67,3.67,8.78,5.97,14.38,5.97c5.63,0,10.71-2.27,14.38-5.97c3.67-3.67,5.97-8.78,5.97-14.38C66.47,41.08,64.21,36,60.51,32.33 L60.51,32.33z M68.52,106.27c-5.6,6.12-12.09,11.61-19.42,16.06c-0.88,0.66-2.13,0.75-3.13,0.11 c-10.8-6.87-19.85-15.13-26.99-24.09C9.15,86.02,2.94,72.34,0.83,59.16c-2.15-13.36-0.14-26.2,6.51-36.68 c2.63-4.13,5.97-7.89,10.07-11.14C26.78,3.88,37.51-0.07,48.17,0c10.28,0.09,20.42,3.9,29.22,11.93c3.09,2.81,5.67,5.99,7.78,9.48 c7.15,11.77,8.69,26.81,5.56,42.01c-3.11,15.04-10.8,30.33-22.18,42.8L68.52,106.27L68.52,106.27z'/></g></svg>"); 
	  width:14px;height:14px;display: inline-block;margin-right:8px;transform: translateY(2px);
	}
  .footer-brand .name{ font-family:var(--font-display); font-size:19px; font-weight:600; }
  .footer-brand p{ margin-top:12px; color:#ffffff; font-size:13.5px; max-width:34ch; line-height:1.6; }
  .disclaimer{
    margin-top: 40px; padding-top: 24px; border-top:1px solid var(--line);
    font-size: 12px; color: #ffffff; line-height:1.7; max-width: 90ch;
  }
  .footer-bottom{ margin-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:#ffffff; }
  .footer-bottom .tnum{ color: #ffffff; }
  
  
  /* =========================================================
   Scroll Reveal Animation
   ========================================================= */

	[data-reveal] {
	  opacity: 0;
	  transform: translateY(40px);
	  transition:
		opacity 0.8s ease,
		transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	  will-change: opacity, transform;
	}

	[data-reveal].is-visible {
	  opacity: 1;
	  transform: translateY(0);
	}

	/* Different animation directions */
	[data-reveal="left"] {
	  transform: translateX(-50px);
	}

	[data-reveal="right"] {
	  transform: translateX(50px);
	}

	[data-reveal="scale"] {
	  transform: scale(0.94);
	}

	[data-reveal="fade"] {
	  transform: none;
	}

	[data-reveal].is-visible[data-reveal="left"],
	[data-reveal].is-visible[data-reveal="right"],
	[data-reveal].is-visible[data-reveal="scale"],
	[data-reveal].is-visible[data-reveal="fade"] {
	  transform: none;
	}

	/* Stagger animation for cards */
	[data-reveal][data-delay="1"] {
	  transition-delay: 0.1s;
	}

	[data-reveal][data-delay="2"] {
	  transition-delay: 0.2s;
	}

	[data-reveal][data-delay="3"] {
	  transition-delay: 0.3s;
	}

	[data-reveal][data-delay="4"] {
	  transition-delay: 0.4s;
	}

	[data-reveal][data-delay="5"] {
	  transition-delay: 0.5s;
	}

	[data-reveal][data-delay="6"] {
	  transition-delay: 0.6s;
	}

	/* Respect users who prefer reduced motion */
	@media (prefers-reduced-motion: reduce) {
	  [data-reveal],
	  [data-reveal].is-visible {
		opacity: 1;
		transform: none;
		transition: none;
	  }
	}
	
	/* Globe container */
	.hero-globe-wrap {
		position: absolute;
		width: 700px;
		height: 700px;
		right: 5%;
		top: 50%;
		transform: translateY(-50%);
		z-index: -1;
		pointer-events: none;
		opacity: 0;
		filter:drop-shadow(0 20px 50px rgba(47, 128, 237, 0.12));
	}

	/* Canvas */
	#heroGlobeCanvas {
		display: block;
		width: 100%;
		height: 100%;
	}

	/* Soft glow behind globe */
	.hero-globe-wrap::before {
		content: "";
		position: absolute;
		width: 75%;
		height: 75%;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		border-radius: 50%;
		background: radial-gradient(
				circle,
				rgba(47, 128, 237, 0.18) 0%,
				rgba(47, 128, 237, 0.08) 35%,
				rgba(47, 128, 237, 0.02) 58%,
				transparent 75%
			);
		filter: blur(25px);
		pointer-events: none;
	}

	/* Tablet */
	@media (max-width: 1100px) {
		.hero-globe-wrap {
			width: 570px;
			height: 570px;
			right: -190px;
		}
	}

	/* Mobile */
	@media (max-width: 767px) {
		.hero-globe-wrap {
			width: 460px;
			height: 460px;
			right: 0px;
			top: 43%;
			opacity: 0.35;
		}
	}



  /* =========================================================
     Mobile overflow fixes
     ========================================================= */
	html{ overflow-x: clip; }
	@media (max-width: 767px){
		/* side-slide reveals start off-screen on phones; slide up instead */
		[data-reveal="left"],
		[data-reveal="right"]{ transform: translateY(30px); }
		.hero{ position: relative; overflow: hidden; }
		.hero-globe-wrap{ width: min(460px, 100vw); height: min(460px, 100vw); right: 0; }
	}
	@media (max-width: 480px){
		.parallel-section{ padding: 32px 16px; }
		.parallel .coord{ white-space: normal; text-align: center; line-height: 1.5; }
	}

  /* =========================================================
     FOOTER — enhanced styling (all pages)
     ========================================================= */
	footer.site{
		position: relative;
		overflow: hidden;
		border-top: 0;
		padding: 72px 0 28px;
		background:
			radial-gradient(55% 70% at 100% 0%, rgba(47,128,237,.28) 0%, rgba(47,128,237,0) 70%),
			radial-gradient(45% 60% at 0% 100%, rgba(21,182,237,.12) 0%, rgba(21,182,237,0) 70%),
			linear-gradient(160deg, #0B3A66 0%, #082D52 55%, #061F3A 100%);
		color: rgba(255,255,255,.78);
	}
	footer.site::before{
		/* accent line along the top edge */
		content:"";
		position:absolute; left:0; right:0; top:0; height:4px;
		background: linear-gradient(90deg, #15B6ED 0%, #2F80ED 50%, #145DA0 100%);
	}
	footer.site::after{
		/* faint dot texture */
		content:"";
		position:absolute; inset:0;
		background-image: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.2px);
		background-size: 24px 24px;
		-webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 70%);
		        mask-image: linear-gradient(180deg, #000 0%, transparent 70%);
		pointer-events:none;
	}
	footer.site > .wrap{ position: relative; z-index: 1; }

	.footer-grid{ gap: 40px; }

	/* brand column */
	.footer-brand-row{ gap: 12px; }
	.footer-brand-row .brand-mark{
		width: 42px; height: 42px;
		padding: 5px;
		background: #fff;
		border-radius: 12px;
		box-shadow: 0 8px 20px -8px rgba(0,0,0,.5);
	}
	.footer-brand .name{ font-size: 22px; letter-spacing: -.01em; }
	.footer-brand p{ color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.7; margin-top: 16px; }

	.footer-offices{ gap: 14px; margin-top: 24px; }
	.footer-office{
		flex: 1 1 200px;
		background: rgba(255,255,255,.06);
		border: 1px solid rgba(255,255,255,.12);
		border-radius: 14px;
		padding: 16px 18px;
		transition: background .3s ease, border-color .3s ease;
	}
	.footer-office:hover{ background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.22); }
	.footer-office-label{ font-size: 13px; letter-spacing: .14em; font-weight: 600; margin-bottom: 10px; color: #fff; }
	.footer-office-addr, .footer-office-phone{ color: rgba(255,255,255,.82); font-size: 13.5px; }

	/* column headings with accent underline */
	.footer-grid h5{
		position: relative;
		font-size: 13px;
		letter-spacing: .16em;
		font-weight: 700;
		padding-bottom: 12px;
		margin-bottom: 20px;
	}
	.footer-grid h5::after{
		content:"";
		position:absolute; left:0; bottom:0;
		width: 28px; height: 2px;
		border-radius: 2px;
		background: linear-gradient(90deg, #15B6ED, #2F80ED);
	}

	/* links */
	.footer-grid ul li{ margin-bottom: 12px; }
	.footer-grid a{
		color: rgba(255,255,255,.78);
		transition: color .2s ease, padding-left .25s ease;
	}
	.footer-grid a:hover{ color: #fff; }
	.footer-grid ul li:not(.email, .phone, .reviews):hover a{ padding-left: 4px; }

	/* Google rating badge */
	.footer-grid .reviews{ margin-top: 20px; }
	.footer-grid .reviews a{
		background: rgba(255,255,255,.08);
		border: 1px solid rgba(255,255,255,.22);
		color: #fff;
		border-radius: 14px;
		padding: 12px 18px;
		font-size: 17px;
		font-weight: 600;
		box-shadow: none;
		-webkit-backdrop-filter: blur(6px);
		        backdrop-filter: blur(6px);
		transition: background .25s ease, transform .25s ease;
	}
	.footer-grid .reviews a:hover{ color: #fff; background: rgba(255,255,255,.14); transform: translateY(-2px); }
	.footer-grid .reviews a small{ font-weight: 400; color: rgba(255,255,255,.75); }
	.footer-grid .reviews a .star{ color: #FFC531; }

	/* disclaimer + bottom bar */
	footer.site .disclaimer{
		margin-top: 52px;
		padding: 20px 22px;
		max-width: none;
		border-top: 0;
		background: rgba(255,255,255,.05);
		border: 1px solid rgba(255,255,255,.10);
		border-radius: 14px;
		color: rgba(255,255,255,.62);
		font-size: 12px;
	}
	.footer-bottom{
		margin-top: 24px;
		padding-top: 20px;
		border-top: 1px solid rgba(255,255,255,.12);
		color: rgba(255,255,255,.62);
		font-size: 12.5px;
	}
	.footer-bottom .tnum{ color: rgba(255,255,255,.62); }
	.footer-bottom > .tnum{ color: #15B6ED; letter-spacing: .08em; }

	@media (max-width: 480px){
		footer.site{ padding-top: 56px; }

		.footer-grid{ gap: 34px 20px; }
		footer.site .disclaimer{ padding: 16px; }
	}
	@media (prefers-reduced-motion: reduce){
		footer.site *{ transition: none !important; }
	}
	@media (max-width: 800px){
		.footer-grid > .footer-brand{ grid-column: 1 / -1; }
		.footer-brand p{ max-width: 52ch; }
		.footer-offices{ display: grid; grid-template-columns: 1fr 1fr; }
	}
	@media (max-width: 420px){
		.footer-offices{ grid-template-columns: 1fr; }
	}
	/* tablets: keep the hero globe inside the screen */
	@media (max-width: 1100px){
		.hero{ position: relative; overflow: hidden; }
	}

  /* =========================================================
     INNER PAGES - enhanced styling (About, Services, Guides,
     FAQ, Contact, service detail). Home rules are further below.
     ========================================================= */
	:root{
		--grad-blue: linear-gradient(135deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
		--soft-shadow: 0 1px 2px rgba(15,39,66,.05), 0 18px 40px -22px rgba(15,39,66,.35);
		--lift-shadow: 0 2px 4px rgba(15,39,66,.06), 0 28px 50px -24px rgba(15,39,66,.45);
	}

	/* page header area: soft glow + faint grid */
	main > section[data-page]:not([data-page="home"]) > .page-block:first-child{
		background:
			radial-gradient(55% 420px at 90% 0%, rgba(47,128,237,.10) 0%, rgba(47,128,237,0) 70%),
			linear-gradient(rgba(11,58,102,.03) 1px, transparent 1px),
			linear-gradient(90deg, rgba(11,58,102,.03) 1px, transparent 1px);
		background-repeat: no-repeat, repeat, repeat;
		background-size: auto, 48px 48px, 48px 48px;
	}
	main > section[data-page]:not([data-page="home"]) .sec-head .eyebrow{
		display: inline-flex;
		background: rgba(47,128,237,.08);
		border: 1px solid rgba(47,128,237,.18);
		padding: 7px 14px;
		border-radius: 999px;
	}
	main > section[data-page]:not([data-page="home"]) .sec-head h2{
		font-size: clamp(30px, 3.8vw, 46px);
		letter-spacing: -0.01em;
		line-height: 1.12;
	}

	/* banner image with offset accent frame */
	.inner-page-hero{ position: relative; isolation: isolate; margin-bottom: 64px; }
	.inner-page-hero::before{
		content:"";
		position:absolute;
		inset: 18px -14px -14px 18px;
		border-radius: 22px;
		background: var(--grad-blue);
		opacity: .9;
		z-index: -1;
	}
	.inner-page-hero img{ margin-bottom: 0; box-shadow: 0 30px 60px -28px rgba(11,58,102,.55); }
	@media (max-width: 767px){
		.inner-page-hero{ margin-bottom: 48px; }
		.inner-page-hero::before{ inset: 12px -8px -8px 12px; }
		.inner-page-hero img{ height: 220px; }
	}

	/* shared card look */
	.card{ border-radius: 14px; }
	.res-card{
		position: relative;
		overflow: hidden;
		padding: 28px 26px;
		box-shadow: var(--soft-shadow);
		transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .3s ease;
	}
	.res-card::after{
		content:"";
		position:absolute; left:0; right:0; top:0; height:3px;
		background: var(--grad-blue);
		transform: scaleX(0); transform-origin: left;
		transition: transform .5s cubic-bezier(.22,1,.36,1);
	}
	.res-card .tag{
		align-self: flex-start;
		background: rgba(47,128,237,.09);
		border-radius: 999px;
		padding: 5px 11px;
	}
	.res-card h3{ font-size: 20px; line-height: 1.3; transition: color .3s ease; }
	@media (hover:hover){
		.res-card:hover{ box-shadow: var(--lift-shadow); border-color: rgba(47,128,237,.35); }
		.res-card:hover::after{ transform: scaleX(1); }
		.res-card:hover h3{ color: var(--ocean-2); }
	}

	/* ---------- ABOUT ---------- */
	.about-stat{
		display: inline-flex;
		align-items: center;
		gap: 16px;
		background: var(--card);
		border: 1px solid var(--line);
		border-radius: 16px;
		padding: 14px 26px 14px 14px;
		box-shadow: var(--soft-shadow);
		margin: 0 0 40px;
	}
	.about-stat-num{
		display: inline-grid; place-items: center;
		min-width: 76px; height: 64px;
		padding: 0 12px;
		border-radius: 12px;
		background: var(--grad-blue);
		color: #fff;
		font-size: 30px;
	}
	.about-stat-label{ color: var(--ink); font-weight: 500; }
	.about-copy p:first-child{ font-size: 17.5px; color: var(--ink); }
	.pillars{ margin-top: 0; gap: 14px; }
	.pillar{
		border: 1px solid var(--line);
		border-radius: 14px;
		background: var(--card);
		padding: 22px;
		gap: 16px;
		box-shadow: var(--soft-shadow);
		transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .3s ease;
	}
	.pillar:last-child{ border-bottom: 1px solid var(--line); }
	.pillar .mark{
		display: grid; place-items: center;
		width: 40px; height: 40px;
		border-radius: 10px;
		background: rgba(47,128,237,.09);
		padding: 0;
		transition: background .3s ease, color .3s ease;
	}
	.pillar h4{ font-size: 16px; }
	@media (hover:hover){
		.pillar.is-visible:hover{ transform: translateY(-4px); box-shadow: var(--lift-shadow); border-color: rgba(47,128,237,.35); }
		.pillar:hover .mark{ background: var(--brass); color: #fff; }
	}

	/* ---------- FAQ (all pages; home overrides further below) ---------- */
	.faq-list{ border-top: 0; display: grid; gap: 12px; }
	.faq-item{
		background: var(--card);
		border: 1px solid var(--line);
		border-radius: 12px;
		overflow: hidden;
		transition: border-color .3s ease, box-shadow .3s ease;
	}
	.faq-q{ padding: 20px 24px; font-size: 17.5px; }
	.faq-a-inner{ padding: 0 24px 22px; }
	.faq-q .plus{
		display: grid; place-items: center;
		width: 32px; height: 32px;
		border-radius: 50%;
		background: rgba(47,128,237,.09);
		font-size: 17px;
		transition: transform .25s ease, background .25s ease, color .25s ease;
	}
	.faq-item[data-open="true"]{ border-color: rgba(47,128,237,.45); box-shadow: var(--soft-shadow); }
	.faq-item[data-open="true"] .plus{ background: var(--brass); color: #fff; }
	@media (hover:hover){ .faq-item:hover{ border-color: rgba(47,128,237,.45); } }
	@media (max-width: 560px){
		.faq-q{ padding: 18px; font-size: 16.5px; }
		.faq-a-inner{ padding: 0 18px 20px; }
	}

	/* ---------- CONTACT ---------- */
	.contact-info{ display: grid; gap: 12px; align-content: start; }
	.contact-info .item,
	.contact-info .item:last-child{
		border: 1px solid var(--line);
		border-radius: 14px;
		background: var(--card);
		padding: 16px 20px;
		box-shadow: 0 1px 2px rgba(15,39,66,.05);
		transition: border-color .3s ease, box-shadow .3s ease;
	}
	.contact-info .item:hover{ border-color: rgba(47,128,237,.35); box-shadow: var(--soft-shadow); }
	.contact-info .label{ color: var(--brass); }   /* an earlier rule forced these labels to white */
	.contact-info .val{ font-size: 15.5px; color: var(--ink); }
	.contact-info .val a{ font-weight: 600; }
	.form-card{
		position: relative;
		border-radius: 18px;
		padding: 36px;
		box-shadow: var(--lift-shadow);
		overflow: hidden;
	}
	.form-card::before{
		content:"";
		position:absolute; left:0; right:0; top:0; height:4px;
		background: var(--grad-blue);
	}
	.field label{ color: var(--ink); }
	.field input, .field select, .field textarea{
		border-radius: 10px;
		padding: 12px 14px;
		background: #fff;
		transition: border-color .2s ease, box-shadow .2s ease;
	}
	.field input:focus, .field select:focus, .field textarea:focus{
		outline: none;
		border-color: var(--brass);
		box-shadow: 0 0 0 4px rgba(47,128,237,.15);
	}
	.form-card .btn{ border-radius: 10px; padding: 14px 28px; box-shadow: 0 10px 24px -10px rgba(47,128,237,.75); }
	@media (max-width: 560px){ .form-card{ padding: 26px 20px; } }

	/* ---------- SERVICES LIST ---------- */
	.jump-pill{
		background: var(--card);
		color: var(--ocean-2);
		border: 1px solid var(--line);
		box-shadow: 0 1px 2px rgba(15,39,66,.05);
		transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
	}
	.jump-pill:hover{ background: var(--brass); color: #fff; border-color: var(--brass); transform: translateY(-1px); }
	.svc-group-head{ border-bottom: 0; padding-bottom: 0; position: relative; padding-left: 16px; }
	.svc-group-head::before{
		content:"";
		position:absolute; left:0; top:2px; bottom:2px; width:4px;
		border-radius: 4px;
		background: var(--grad-blue);
	}
	.svc-list{ background: none; border: 0; gap: 14px; }
	.svc-row{
		position: relative;
		border: 1px solid var(--line);
		border-radius: 14px;
		padding: 22px 24px;
		box-shadow: 0 1px 2px rgba(15,39,66,.05);
		overflow: hidden;
		transition: border-color .3s ease, box-shadow .35s ease, transform .35s cubic-bezier(.22,1,.36,1), background-color .15s ease;
	}
	.svc-row::before{
		content:"";
		position:absolute; left:0; top:0; bottom:0; width:4px;
		background: var(--grad-blue);
		transform: scaleY(0); transform-origin: top;
		transition: transform .45s cubic-bezier(.22,1,.36,1);
	}
	.svc-row .code{
		align-self: flex-start;
		background: rgba(47,128,237,.09);
		border-radius: 999px;
		padding: 4px 10px;
	}
	@media (hover:hover){
		.svc-row:hover{ background: var(--card); border-color: rgba(47,128,237,.35); box-shadow: var(--soft-shadow); transform: translateY(-3px); }
		.svc-row:hover::before{ transform: scaleY(1); }
	}

	/* ---------- SERVICE DETAIL ---------- */
	.crumb{
		display: inline-flex;
		background: var(--card);
		border: 1px solid var(--line);
		border-radius: 999px;
		padding: 7px 16px;
	}
	.svc-detail-head .code{
		display: inline-block;
		background: rgba(47,128,237,.09);
		border: 1px solid rgba(47,128,237,.18);
		border-radius: 999px;
		padding: 6px 13px;
	}
	.svc-block h3{ display: flex; align-items: center; gap: 10px; }
	.svc-block h3::before{
		content:"";
		width: 18px; height: 3px;
		border-radius: 3px;
		background: var(--grad-blue);
		flex: none;
	}
	.svc-block > p{ font-size: 16px; color: var(--ink); }
	.includes-list{ border-top: 0; gap: 10px; }
	.includes-list li{
		border: 1px solid var(--line);
		border-radius: 12px;
		background: var(--card);
		padding: 14px 18px 14px 50px;
		box-shadow: 0 1px 2px rgba(15,39,66,.04);
		transition: border-color .25s ease, transform .25s ease;
	}
	.includes-list li::before{
		content:"";
		left: 16px; top: 50%;
		width: 22px; height: 22px;
		margin-top: -11px;
		border-radius: 50%;
		background: rgba(47,128,237,.12) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F80ED' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 12.5l4 4 8-9'/></svg>") center / 13px no-repeat;
	}
	@media (hover:hover){ .includes-list li:hover{ border-color: rgba(47,128,237,.35); transform: translateX(3px); } }
	.mini-faq{
		background: var(--card);
		border-radius: 14px;
		border-left: 4px solid var(--brass);
		padding: 24px 26px;
		box-shadow: var(--soft-shadow);
	}
	.side-card{
		border-radius: 16px;
		padding: 26px 24px 22px;
		box-shadow: var(--soft-shadow);
		overflow: hidden;
	}
	.side-card::before{
		content:"";
		position:absolute; left:0; right:0; top:0; height:4px;
		background: var(--grad-blue);
	}
	.side-card li a{ transition: color .2s ease, padding-left .25s ease; }
	.side-card li a:hover{ padding-left: 4px; }
	#svcImage iframe, #svcImage img{ box-shadow: var(--soft-shadow); }

	/* ---------- CTA banner (all pages; home overrides further below) ---------- */
	.cta-banner{
		position: relative;
		overflow: hidden;
		border-radius: 18px;
		padding: 48px;
		background: var(--grad-blue);
		box-shadow: 0 30px 60px -30px rgba(11,58,102,.7);
	}
	.cta-banner::before,
	.cta-banner::after{
		content:"";
		position:absolute;
		border-radius:50%;
		border: 1px solid rgba(255,255,255,.18);
		pointer-events:none;
	}
	.cta-banner::before{ width: 340px; height: 340px; right: -90px; top: -160px; }
	.cta-banner::after{ width: 220px; height: 220px; right: 60px; bottom: -150px; background: rgba(255,255,255,.05); }
	.cta-banner > *{ position: relative; z-index: 1; }
	.cta-banner .btn-brass{
		background: #fff;
		color: var(--ocean);
		border-radius: 10px;
		padding: 15px 28px;
		box-shadow: 0 14px 30px -14px rgba(0,0,0,.45);
	}
	.cta-banner .btn-brass::before{ background: var(--paper-dim); }
	@media (max-width: 640px){ .cta-banner{ padding: 36px 24px; } }

	@media (prefers-reduced-motion: reduce){
		.res-card, .pillar, .svc-row, .includes-list li, .faq-item, .jump-pill{ transition: none !important; }
	}


/* =========================================================
   HOME PAGE — visual enhancements (styling only, no content)
   All rules are scoped to [data-page="home"].
   ========================================================= */

[data-page="home"]{
  --grad-blue: linear-gradient(135deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
  --soft-shadow: 0 1px 2px rgba(15,39,66,.05), 0 18px 40px -22px rgba(15,39,66,.35);
  --lift-shadow: 0 2px 4px rgba(15,39,66,.06), 0 28px 50px -24px rgba(15,39,66,.45);
}

/* ---------- HERO ---------- */
[data-page="home"] .hero{
  /* soft glows + faint survey-grid texture (no positioning, so the globe layout is untouched) */
  background:
    radial-gradient(60% 70% at 85% 30%, rgba(47,128,237,.10) 0%, rgba(47,128,237,0) 70%),
    radial-gradient(40% 50% at 0% 100%, rgba(63,143,196,.08) 0%, rgba(63,143,196,0) 70%),
    linear-gradient(rgba(11,58,102,.035) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, rgba(11,58,102,.035) 1px, transparent 1px) 0 0 / 48px 48px;
  border-bottom: 0;
}
[data-page="home"] .hero .eyebrow{
  display:inline-flex;
  background: rgba(47,128,237,.08);
  border: 1px solid rgba(47,128,237,.18);
  padding: 7px 14px;
  border-radius: 999px;
}
[data-page="home"] .hero h1 em{
  background: linear-gradient(90deg, #2F80ED, #145DA0);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
[data-page="home"] .hero-ctas .btn{
  border-radius: 8px;
  padding: 15px 26px;
}
[data-page="home"] .hero-ctas .btn-brass{
  box-shadow: 0 10px 24px -10px rgba(47,128,237,.75);
}
[data-page="home"] .hero-ctas .btn-ghost{
  box-shadow: var(--soft-shadow);
}
[data-page="home"] .hero-badges{ gap: 10px; }
[data-page="home"] .hero-badges .badge{
  background: rgba(255,255,255,.85);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 14px 7px 11px;
  color: var(--ink);
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(15,39,66,.05);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}
[data-page="home"] .hero-badges .badge svg{ color: var(--brass); }

[data-page="home"] .hero-art{ isolation:isolate; }
[data-page="home"] .hero-art::before{
  /* offset accent frame behind the image */
  content:"";
  position:absolute;
  inset: 18px -14px -14px 18px;
  border-radius: 22px;
  background: var(--grad-blue);
  opacity: .9;
  z-index:-1;
}
[data-page="home"] .hero-art img{
  border-radius: 20px;
  box-shadow: 0 30px 60px -28px rgba(11,58,102,.55);
  transition: transform .6s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] .hero-art:hover img{ transform: translate(-4px,-4px); }

/* ---------- 49th-parallel band ---------- */
[data-page="home"] .parallel-section{
  position: relative;
  overflow: hidden;
  background: var(--grad-blue);
  padding-top: 38px; padding-bottom: 38px;
}
[data-page="home"] .parallel-section::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,.06) 0 1px, transparent 1px 22px);
  pointer-events:none;
}
[data-page="home"] .parallel{ position:relative; }
[data-page="home"] .parallel .rule{ background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.55)); }
[data-page="home"] .parallel .rule:last-child{ background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,0)); }
[data-page="home"] .parallel .coord{ font-size: 12px; letter-spacing: .16em; font-weight: 500; }

/* ---------- section headings ---------- */
[data-page="home"] .sec-head h2{ letter-spacing: -0.01em; }

/* ---------- WHY CROSS-BORDER ---------- */
[data-page="home"] .why-grid{
  background: none;
  border: 0;
  gap: 20px;
}
[data-page="home"] .why-item{
  position: relative;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 32px 28px 30px;
  box-shadow: var(--soft-shadow);
  overflow: hidden;
  transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .3s ease;
}
[data-page="home"] .why-item::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:3px;
  background: var(--grad-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] .why-item .num{
  display:inline-grid; place-items:center;
  width: 42px; height: 42px;
  border-radius: 10px;
  background: rgba(47,128,237,.09);
  color: var(--brass);
  font-weight: 500;
  transition: background .3s ease, color .3s ease;
}
[data-page="home"] .why-item h3{ margin-top: 18px; }
@media (hover:hover){
  [data-page="home"] .why-item.is-visible:hover{
    transform: translateY(-6px);
    box-shadow: var(--lift-shadow);
    border-color: rgba(47,128,237,.35);
  }
  [data-page="home"] .why-item:hover::before{ transform: scaleX(1); }
  [data-page="home"] .why-item:hover .num{ background: var(--brass); color:#fff; }
}

/* ---------- blue "alt" sections ---------- */
[data-page="home"] section.page-block.alt{
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(50% 60% at 100% 0%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 70%),
    radial-gradient(45% 55% at 0% 100%, rgba(11,58,102,.55) 0%, rgba(11,58,102,0) 70%),
    var(--ocean-2);
}
[data-page="home"] section.page-block.alt::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.09) 1px, transparent 1.2px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 60%);
          mask-image: linear-gradient(180deg, #000, transparent 60%);
  pointer-events:none;
}
[data-page="home"] section.page-block.alt > .wrap{ position:relative; }
[data-page="home"] section.page-block.alt .eyebrow{ color: rgba(255,255,255,.85); }
[data-page="home"] section.page-block.alt .eyebrow::before{ background:#fff; }

/* ---------- SERVICE CARDS ---------- */
[data-page="home"] #homeServiceCards .card{
  position: relative;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 14px;
  padding: 28px 26px;
  box-shadow: 0 20px 40px -24px rgba(5,25,50,.6);
  overflow: hidden;
  transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease;
}
[data-page="home"] #homeServiceCards .card::after{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:4px;
  background: var(--grad-blue);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] #homeServiceCards .card .tag{
  align-self: flex-start;
  background: rgba(47,128,237,.09);
  border-radius: 999px;
  padding: 5px 11px;
}
[data-page="home"] #homeServiceCards .card h3{ transition: color .3s ease; }
@media (hover:hover){
  [data-page="home"] #homeServiceCards .card:hover{
    box-shadow: 0 34px 60px -26px rgba(5,25,50,.75);
  }
  [data-page="home"] #homeServiceCards .card:hover::after{ transform: scaleY(1); }
  [data-page="home"] #homeServiceCards .card:hover h3{ color: var(--ocean-2); }
}
[data-page="home"] section.page-block.alt .btn-ghost{
  border-radius: 8px;
  border-color: rgba(255,255,255,.7);
  box-shadow: 0 12px 26px -14px rgba(5,25,50,.7);
}

/* ---------- PROCESS TIMELINE ---------- */
[data-page="home"] .process{ gap: 0 24px; margin-top: 18px; }
[data-page="home"] .step{
  border-top: 0;
  padding: 0 0 8px;
}
[data-page="home"] .step::before{
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 48px; height: 48px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--card);
  border: 2px solid var(--brass);
  color: var(--brass);
  font-weight: 500;
  box-shadow: 0 0 0 6px var(--paper);
  transition: background .3s ease, color .3s ease, transform .3s ease;
}
[data-page="home"] .step::after{
  /* connector line between step markers */
  content:"";
  position:absolute;
  top: 24px; left: 48px; right: -24px;
  height: 2px;
  background: linear-gradient(90deg, var(--brass), var(--line));
}
[data-page="home"] .step:last-child::after{ display:none; }
[data-page="home"] .step h4{ font-size: 16.5px; }
@media (hover:hover){
  [data-page="home"] .step:hover::before{ background: var(--brass); color:#fff; transform: scale(1.06); }
}
@media (max-width: 900px){
  [data-page="home"] .process{ gap: 32px 24px; }
  [data-page="home"] .step:nth-child(2n)::after{ display:none; }
}
@media (max-width: 560px){
  /* vertical timeline on phones */
  [data-page="home"] .process{ gap: 0; }
  [data-page="home"] .step{ padding: 0 0 28px 68px; }
  [data-page="home"] .step::before{ position:absolute; left:0; top:-4px; margin:0; }
  [data-page="home"] .step::after,
  [data-page="home"] .step:nth-child(2n)::after{
    display:block;
    top: 48px; bottom: 0; left: 23px; right: auto;
    width: 2px; height: auto;
    background: linear-gradient(180deg, var(--brass), var(--line));
  }
  [data-page="home"] .step:last-child::after{ display:none; }
  [data-page="home"] .step h4{ padding-top: 10px; }
}

/* ---------- TESTIMONIALS ---------- */
[data-page="home"] .rating-summary{
  display: inline-flex;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  padding: 8px 18px;
  margin-top: 14px;
}
[data-page="home"] .rating-summary .stars{ font-size: 17px; }
[data-page="home"] .rating-summary a{ font-weight: 600; }
[data-page="home"] .testimonial-card{
  position: relative;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 14px;
  padding: 48px 26px 24px;
  box-shadow: 0 20px 40px -24px rgba(5,25,50,.6);
  overflow: hidden;
  transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease;
}
[data-page="home"] .testimonial-card .quote-mark{
  position: absolute;
  top: 4px; right: 18px;
  font-size: 78px;
  line-height: 1;
  opacity: .12;
  margin: 0;
  pointer-events: none;
}
[data-page="home"] .testimonial-card .who .tname{ font-size: 14px; }
@media (hover:hover){
  [data-page="home"] .testimonial-card:hover{ box-shadow: 0 34px 60px -26px rgba(5,25,50,.75); }
}

/* ---------- FAQ ---------- */
[data-page="home"] .faq-list{
  border-top: 0;
  display: grid;
  gap: 12px;
}
[data-page="home"] .faq-item{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease;
}
[data-page="home"] .faq-q{ padding: 20px 24px; font-size: 17.5px; }
[data-page="home"] .faq-a-inner{ padding: 0 24px 22px; }
[data-page="home"] .faq-q .plus{
  display:grid; place-items:center;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(47,128,237,.09);
  font-size: 17px;
  transition: transform .25s ease, background .25s ease, color .25s ease;
}
[data-page="home"] .faq-item[data-open="true"]{
  border-color: rgba(47,128,237,.45);
  box-shadow: var(--soft-shadow);
}
[data-page="home"] .faq-item[data-open="true"] .plus{ background: var(--brass); color:#fff; }
@media (hover:hover){
  [data-page="home"] .faq-item:hover{ border-color: rgba(47,128,237,.45); }
}
@media (max-width: 560px){
  [data-page="home"] .faq-q{ padding: 18px 18px; font-size: 16.5px; }
  [data-page="home"] .faq-a-inner{ padding: 0 18px 20px; }
}

/* ---------- CTA BANNER ---------- */
[data-page="home"] .cta-banner{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 52px 52px;
  background: var(--grad-blue);
  box-shadow: 0 30px 60px -30px rgba(11,58,102,.7);
}
[data-page="home"] .cta-banner::before,
[data-page="home"] .cta-banner::after{
  content:"";
  position:absolute;
  border-radius:50%;
  border: 1px solid rgba(255,255,255,.18);
  pointer-events:none;
}
[data-page="home"] .cta-banner::before{ width: 340px; height: 340px; right: -90px; top: -160px; }
[data-page="home"] .cta-banner::after{ width: 220px; height: 220px; right: 60px; bottom: -150px; background: rgba(255,255,255,.05); }
[data-page="home"] .cta-banner > *{ position: relative; z-index: 1; }
[data-page="home"] .cta-banner h3{ font-size: clamp(22px, 2.6vw, 30px); }
[data-page="home"] .cta-banner .btn-brass{
  background: #fff;
  color: var(--ocean);
  border-radius: 8px;
  padding: 15px 28px;
  box-shadow: 0 14px 30px -14px rgba(0,0,0,.45);
}
[data-page="home"] .cta-banner .btn-brass::before{ background: var(--paper-dim); }
@media (max-width: 640px){
  [data-page="home"] .cta-banner{ padding: 38px 26px; }
}

/* ---------- mobile hero tweaks ---------- */
@media (max-width: 767px){
  [data-page="home"] .hero-art::before{ inset: 12px -8px -8px 12px; }
  [data-page="home"] .hero-ctas .btn{ flex: 1 1 auto; justify-content: center; }
}

@media (prefers-reduced-motion: reduce){
  [data-page="home"] *{ transition: none !important; }
}

@media (max-width: 560px){
  [data-page="home"] .rating-summary{ border-radius: 14px; padding: 10px 16px; }
}

/* =========================================================
   HOME — extra polish (round 2). Styling only.
   ========================================================= */

/* ---------- scroll progress bar ---------- */
.scroll-progress{
  position: fixed;
  left: 0; top: 0;
  width: 100%; height: 3px;
  z-index: 100;
  background: linear-gradient(90deg, #15B6ED, #2F80ED 50%, #145DA0);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}

/* ---------- hero: floating glow blobs ---------- */
[data-page="home"] .hero{ overflow: hidden; }
[data-page="home"] .hero-grid{ position: relative; }
[data-page="home"] .hero-grid::before,
[data-page="home"] .hero-grid::after{
  content:"";
  position:absolute;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events:none;
  z-index:-1;
}
[data-page="home"] .hero-grid::before{
  width: 340px; height: 340px;
  left: -120px; top: -80px;
  background: rgba(47,128,237,.18);
  animation: blobFloat 14s ease-in-out infinite alternate;
}
[data-page="home"] .hero-grid::after{
  width: 260px; height: 260px;
  left: 30%; bottom: -120px;
  background: rgba(21,182,237,.14);
  animation: blobFloat 18s ease-in-out -6s infinite alternate-reverse;
}
@keyframes blobFloat{
  0%   { transform: translate(0,0) scale(1); }
  50%  { transform: translate(40px,30px) scale(1.12); }
  100% { transform: translate(-20px,50px) scale(.95); }
}

/* animated gradient on "plan" */
[data-page="home"] .hero h1 em{
  background: linear-gradient(90deg, #2F80ED, #15B6ED, #145DA0, #2F80ED);
  background-size: 300% 100%;
  -webkit-background-clip: text;
          background-clip: text;
  animation: gradShift 6s ease-in-out infinite;
}
@keyframes gradShift{
  0%,100% { background-position: 0% 50%; }
  50%     { background-position: 100% 50%; }
}

/* shine sweep on the primary buttons */
[data-page="home"] .hero-ctas .btn-brass::after,
[data-page="home"] .cta-banner .btn-brass::after{
  content:"";
  position:absolute;
  top:0; bottom:0; left:-60%;
  width: 40%;
  background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,.55) 50%, transparent 100%);
  transform: skewX(-18deg);
  animation: shine 4.5s ease-in-out 1.5s infinite;
  pointer-events:none;
}
[data-page="home"] .cta-banner .btn-brass::after{
  background: linear-gradient(105deg, transparent 0%, rgba(47,128,237,.25) 50%, transparent 100%);
}
@keyframes shine{
  0%   { left:-60%; }
  30%  { left:130%; }
  100% { left:130%; }
}

/* hero image: smoother tilt */
[data-page="home"] .hero-art img{ transition: transform .35s ease-out; will-change: transform; }

/* ---------- 49th parallel band: light sweep ---------- */
[data-page="home"] .parallel-section::after{
  content:"";
  position:absolute;
  top:0; bottom:0; left:-30%;
  width: 30%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  animation: bandSweep 7s ease-in-out infinite;
  pointer-events:none;
}
@keyframes bandSweep{
  0%   { left:-30%; }
  60%  { left:110%; }
  100% { left:110%; }
}

/* ---------- slanted edges on the blue sections ---------- */
@media (min-width: 768px){
  [data-page="home"] section.page-block.alt{
    clip-path: polygon(0 48px, 100% 0, 100% calc(100% - 48px), 0 100%);
    padding-top: 120px;
    padding-bottom: 120px;
    margin: -24px 0;
  }
}
@media (max-width: 767px){
  [data-page="home"] section.page-block.alt{
    clip-path: polygon(0 24px, 100% 0, 100% calc(100% - 24px), 0 100%);
    padding-top: 84px;
    padding-bottom: 84px;
    margin: -12px 0;
  }
}
/* keep the following/previous light sections above the overlap */
[data-page="home"] section.page-block.tight{ position: relative; }

/* ---------- WHY: big faded numbers + spotlight ---------- */
[data-page="home"] .why-item::after{
  content: attr(data-num);
  position:absolute;
  right: 14px; bottom: -22px;
  font-family: var(--font-display);
  font-size: 120px;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(47,128,237,.14);
  pointer-events:none;
  transition: -webkit-text-stroke-color .4s ease, transform .5s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] .why-item:hover::after{
  -webkit-text-stroke-color: rgba(47,128,237,.32);
  transform: translateY(-6px);
}
[data-page="home"] .why-item > *{ position: relative; z-index: 1; }

/* cursor spotlight (position set by home.js) */
[data-page="home"] .why-item,
[data-page="home"] #homeServiceCards .card,
[data-page="home"] .testimonial-card{
  background-image: radial-gradient(260px circle at var(--mx, -300px) var(--my, -300px), rgba(47,128,237,.09), transparent 60%);
  background-color: var(--card);
}

/* ---------- SERVICE CARDS: gradient border glow on hover ---------- */
[data-page="home"] #homeServiceCards .card::before{
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(135deg, #15B6ED, #2F80ED, #145DA0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events:none;
}
@media (hover:hover){
  [data-page="home"] #homeServiceCards .card:hover::before{ opacity: 1; }
}
[data-page="home"] #homeServiceCards .card .tag{ transition: background .3s ease, color .3s ease; }
@media (hover:hover){
  [data-page="home"] #homeServiceCards .card:hover .tag{ background: var(--brass); color:#fff; }
}

/* ---------- PROCESS: line draws in as steps appear ---------- */
[data-page="home"] .step::after{
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .9s cubic-bezier(.22,1,.36,1) .35s;
}
[data-page="home"] .step.is-visible::after{ transform: scaleX(1); }
[data-page="home"] .step.is-visible::before{ animation: stepPulse 2.4s ease-out .4s 1; }
@keyframes stepPulse{
  0%   { box-shadow: 0 0 0 6px var(--paper), 0 0 0 6px rgba(47,128,237,.35); }
  100% { box-shadow: 0 0 0 6px var(--paper), 0 0 0 22px rgba(47,128,237,0); }
}
@media (max-width: 560px){
  [data-page="home"] .step::after{ transform: scaleY(0); transform-origin: top; }
  [data-page="home"] .step.is-visible::after{ transform: scaleY(1); }
}

/* ---------- TESTIMONIALS: initials avatars ---------- */
[data-page="home"] .testimonial-card .who{
  display: flex;
  align-items: center;
  gap: 12px;
}
[data-page="home"] .testimonial-card .avatar{
  flex: none;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--grad-blue);
  color: #fff;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .04em;
  box-shadow: 0 6px 14px -6px rgba(11,58,102,.6);
}

/* ---------- CTA banner: slowly shifting gradient ---------- */
[data-page="home"] .cta-banner{
  background: linear-gradient(120deg, #2F80ED, #145DA0, #0B3A66, #145DA0, #2F80ED);
  background-size: 300% 300%;
  animation: ctaShift 12s ease-in-out infinite;
}
@keyframes ctaShift{
  0%,100% { background-position: 0% 50%; }
  50%     { background-position: 100% 50%; }
}
[data-page="home"] .cta-banner::before{ animation: ringFloat 10s ease-in-out infinite alternate; }
[data-page="home"] .cta-banner::after{ animation: ringFloat 13s ease-in-out -4s infinite alternate-reverse; }
@keyframes ringFloat{
  from { transform: translate(0,0); }
  to   { transform: translate(-30px,18px); }
}

@media (prefers-reduced-motion: reduce){
  [data-page="home"] *,
  [data-page="home"] *::before,
  [data-page="home"] *::after{ animation: none !important; }
  .scroll-progress{ display:none; }
}

/* =========================================================
   HOME — "What clients say": split layout + review slider
   ========================================================= */
[data-page="home"] .testimonials > .wrap{
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.3fr);
  grid-template-areas:
    "head track"
    "head controls";
  column-gap: 64px;
  row-gap: 22px;
  align-items: start;
}
[data-page="home"] .testimonials .sec-head{
  grid-area: head;
  margin-bottom: 0;
  align-self: center;
}
[data-page="home"] .testimonials .sec-head h2{ font-size: clamp(28px, 3.2vw, 40px); line-height: 1.15; }

/* rating panel */
[data-page="home"] .testimonials .rating-summary{
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "num stars"
    "num text"
    "link link";
  column-gap: 18px;
  row-gap: 4px;
  align-items: center;
  margin-top: 30px;
  padding: 24px 26px;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  max-width: 380px;
}
[data-page="home"] .testimonials .rating-summary .rating-num{
  grid-area: num;
  font-size: 64px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: -.02em;
}
[data-page="home"] .testimonials .rating-summary .stars{
  grid-area: stars;
  font-size: 20px;
  letter-spacing: 3px;
  color: #FFC531;
  align-self: end;
}
[data-page="home"] .testimonials .rating-summary > span:nth-of-type(3){
  grid-area: text;
  align-self: start;
  opacity: .85;
}
[data-page="home"] .testimonials .rating-summary a{
  grid-area: link;
  justify-self: start;
  margin-top: 16px;
  padding: 10px 18px;
  border-radius: 999px;
  background: #fff;
  color: var(--ocean) !important;
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
[data-page="home"] .testimonials .rating-summary a:hover{
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 10px 20px -10px rgba(0,0,0,.5);
}

/* slider track */
[data-page="home"] .testimonials .testimonial-grid{ grid-area: track; margin-top: 0; }
[data-page="home"] .testimonials .testimonial-grid.is-slider{
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  padding: 6px 2px 26px;
  margin: -6px -2px 0;
  border-radius: 22px;
  outline: none;
}
[data-page="home"] .testimonials .testimonial-grid.is-slider::-webkit-scrollbar{ display: none; }
[data-page="home"] .testimonials .testimonial-grid.is-slider:focus-visible{ box-shadow: 0 0 0 3px rgba(255,255,255,.6); }

/* review cards */
[data-page="home"] .testimonials .testimonial-card{
  flex: 0 0 100%;
  scroll-snap-align: start;
  min-height: 330px;
  padding: 56px 44px 34px;
  border-radius: 22px;
  border: 0;
  box-shadow: 0 16px 30px -22px rgba(5,25,50,.7);
  transform: none !important;
  transition: opacity .5s ease, box-shadow .4s ease;
}
[data-page="home"] .testimonials .testimonial-card .quote-mark{
  top: 18px; left: 40px; right: auto;
  font-size: 110px;
  opacity: 1;
  color: transparent;
  background: var(--grad-blue);
  -webkit-background-clip: text;
          background-clip: text;
  line-height: .9;
}
[data-page="home"] .testimonials .testimonial-card p{
  position: relative;
  font-family: var(--font-display);
  font-size: clamp(18px, 1.7vw, 22px);
  line-height: 1.55;
  color: var(--ink);
  margin-top: 26px;
}
[data-page="home"] .testimonials .testimonial-card .who{
  margin-top: 26px;
  padding-top: 20px;
}
[data-page="home"] .testimonials .testimonial-card .avatar{ width: 48px; height: 48px; font-size: 15px; }
[data-page="home"] .testimonials .testimonial-card .who .tname{ font-size: 15.5px; }
[data-page="home"] .testimonials .testimonial-card .who .tsrc::before{
  content:"";
  display:inline-block;
  width: 7px; height: 7px;
  margin-right: 7px;
  border-radius: 50%;
  background: #34A853;
  vertical-align: 1px;
}

/* controls */
[data-page="home"] .testimonials .t-controls{
  grid-area: controls;
  display: flex;
  align-items: center;
  gap: 18px;
}
[data-page="home"] .testimonials .t-arrow{
  display: grid; place-items: center;
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.08);
  color: #fff;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
[data-page="home"] .testimonials .t-arrow:hover{ background: #fff; color: var(--ocean); transform: scale(1.06); }
[data-page="home"] .testimonials .t-arrow:focus-visible{ outline: 3px solid rgba(255,255,255,.7); outline-offset: 2px; }
[data-page="home"] .testimonials .t-dots{ display: flex; align-items: center; gap: 8px; }
[data-page="home"] .testimonials .t-dot{
  width: 9px; height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.35);
  cursor: pointer;
  transition: width .35s cubic-bezier(.22,1,.36,1), background .3s ease;
}
[data-page="home"] .testimonials .t-dot.active{ width: 30px; background: #fff; }
[data-page="home"] .testimonials .t-dot:focus-visible{ outline: 2px solid #fff; outline-offset: 3px; }

/* tablet & phone: stack, show a peek of the next card */
@media (max-width: 900px){
  [data-page="home"] .testimonials > .wrap{
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "head" "track" "controls";
    row-gap: 28px;
  }
  [data-page="home"] .testimonials .rating-summary{ max-width: none; }
  [data-page="home"] .testimonials .testimonial-card{ flex-basis: 86%; }
  [data-page="home"] .testimonials .testimonial-card:not(.is-current){ opacity: .55; }
  [data-page="home"] .testimonials .t-controls{ justify-content: center; }
}
@media (max-width: 560px){
  [data-page="home"] .testimonials .rating-summary{ padding: 20px; column-gap: 14px; }
  [data-page="home"] .testimonials .rating-summary .rating-num{ font-size: 52px; }
  [data-page="home"] .testimonials .testimonial-card{ flex-basis: 90%; min-height: 0; padding: 48px 24px 26px; }
  [data-page="home"] .testimonials .testimonial-card .quote-mark{ left: 22px; font-size: 90px; }
  [data-page="home"] .testimonials .testimonial-card p{ font-size: 17px; }
}
@media (prefers-reduced-motion: reduce){
  [data-page="home"] .testimonials .testimonial-grid.is-slider{ scroll-behavior: auto; }
}

/* =========================================================
   HOME — FAQ: split layout with numbered question cards
   ========================================================= */
[data-page="home"] [data-page="faq"] > .page-block{
  position: relative;
  padding-top: 96px !important;
  padding-bottom: 88px;
  background:
    radial-gradient(45% 60% at 0% 30%, rgba(47,128,237,.08) 0%, rgba(47,128,237,0) 70%);
}
[data-page="home"] [data-page="faq"] .wrap{
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr);
  gap: 64px;
  align-items: start;
}

/* left: sticky heading with a large decorative "?" */
[data-page="home"] [data-page="faq"] .sec-head{
  position: sticky;
  top: 110px;
  margin-bottom: 0;
  max-width: none !important;
  padding-bottom: 250px;
}
[data-page="home"] [data-page="faq"] .sec-head h2{
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1.12;
}
[data-page="home"] [data-page="faq"] .sec-head::after{
  content: "?";
  position: absolute;
  left: -6px; bottom: -20px;
  font-family: var(--font-display);
  font-size: 230px;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px rgba(47,128,237,.16);
  background: linear-gradient(160deg, rgba(47,128,237,.10), rgba(47,128,237,0) 70%);
  -webkit-background-clip: text;
          background-clip: text;
  pointer-events: none;
}

/* right: numbered cards */
[data-page="home"] [data-page="faq"] .faq-list{
  counter-reset: faq;
  gap: 14px;
}
[data-page="home"] [data-page="faq"] .faq-item{
  counter-increment: faq;
  position: relative;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
  box-shadow: 0 1px 2px rgba(15,39,66,.04);
  transition: border-color .3s ease, box-shadow .35s ease, transform .35s cubic-bezier(.22,1,.36,1), background-color .3s ease;
}
[data-page="home"] [data-page="faq"] .faq-item::before{
  /* gradient bar on the open card */
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:4px;
  background: var(--grad-blue);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] [data-page="faq"] .faq-q{
  justify-content: flex-start;
  gap: 18px;
  padding: 22px 24px;
  font-size: 17.5px;
  line-height: 1.4;
}
[data-page="home"] [data-page="faq"] .faq-q::before{
  content: counter(faq, decimal-leading-zero);
  flex: none;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: rgba(47,128,237,.09);
  color: var(--brass);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  transition: background .3s ease, color .3s ease;
}
[data-page="home"] [data-page="faq"] .faq-q > span:first-child{ flex: 1; }
[data-page="home"] [data-page="faq"] .faq-q .plus{
  margin-left: auto;
  border: 1px solid var(--line);
  background: var(--card);
}
[data-page="home"] [data-page="faq"] .faq-a-inner{
  padding: 0 28px 24px 84px;
  font-size: 15.5px;
  line-height: 1.7;
}

/* open state */
[data-page="home"] [data-page="faq"] .faq-item[data-open="true"]{
  border-color: rgba(47,128,237,.4);
  background: linear-gradient(180deg, rgba(47,128,237,.05), rgba(47,128,237,0) 60%), var(--card);
  box-shadow: var(--lift-shadow);
}
[data-page="home"] [data-page="faq"] .faq-item[data-open="true"]::before{ transform: scaleY(1); }
[data-page="home"] [data-page="faq"] .faq-item[data-open="true"] .faq-q::before{ background: var(--grad-blue); color: #fff; }
[data-page="home"] [data-page="faq"] .faq-item[data-open="true"] .plus{ background: var(--brass); border-color: var(--brass); color: #fff; }

@media (hover:hover){
  [data-page="home"] [data-page="faq"] .faq-item:hover{
    border-color: rgba(47,128,237,.4);
    box-shadow: var(--soft-shadow);
    transform: translateX(4px);
  }
  [data-page="home"] [data-page="faq"] .faq-item:hover .faq-q::before{ background: var(--brass); color: #fff; }
}
[data-page="home"] [data-page="faq"] .faq-q:focus-visible{
  outline: 3px solid rgba(47,128,237,.45);
  outline-offset: -3px;
  border-radius: 16px;
}

/* tablet & phone: stack */
@media (max-width: 900px){
  [data-page="home"] [data-page="faq"] .wrap{
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  [data-page="home"] [data-page="faq"] .sec-head{
    position: relative;
    top: auto;
    padding-bottom: 0;
  }
  [data-page="home"] [data-page="faq"] .sec-head::after{
    left: auto; right: 0; bottom: -30px;
    font-size: 150px;
  }
}
@media (max-width: 560px){
  [data-page="home"] [data-page="faq"] > .page-block{ padding-top: 72px !important; padding-bottom: 64px; }
  [data-page="home"] [data-page="faq"] .faq-q{ gap: 14px; padding: 18px 16px; font-size: 16px; }
  [data-page="home"] [data-page="faq"] .faq-q::before{ width: 36px; height: 36px; border-radius: 10px; font-size: 12px; }
  [data-page="home"] [data-page="faq"] .faq-a-inner{ padding: 0 18px 20px 66px; font-size: 15px; }
  [data-page="home"] [data-page="faq"] .sec-head::after{ font-size: 120px; bottom: -20px; }
}


/* =========================================================
   HOME — hero image slider
   ========================================================= */
[data-page="home"] .hero-slider .hs-track{
  position: relative;
  aspect-ratio: 3 / 2;
  border-radius: 20px;
  overflow: hidden;
  background: #0B3A66;
  box-shadow: 0 30px 60px -28px rgba(11,58,102,.55);
  transition: transform .35s ease-out;
  will-change: transform;
  isolation: isolate;
}
[data-page="home"] .hero-slider .hs-track .hs-slide{
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  opacity: 0;
  transform: scale(1.08);
  transition: opacity 1s ease, transform 1.4s ease;
}
[data-page="home"] .hero-slider .hs-track .hs-slide.is-active{
  opacity: 1;
  transform: scale(1);
  z-index: 1;
  animation: hsKenBurns 9s ease-out forwards;
}
@keyframes hsKenBurns{
  from { transform: scale(1); }
  to   { transform: scale(1.07); }
}
/* soft shade so the controls stay readable on light images */
[data-page="home"] .hero-slider .hs-track::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height: 38%;
  background: linear-gradient(0deg, rgba(6,31,58,.55), rgba(6,31,58,0));
  z-index: 2;
  pointer-events:none;
}

/* controls */
[data-page="home"] .hero-slider .hs-ui{ position:absolute; inset:0; z-index: 3; pointer-events:none; }
[data-page="home"] .hero-slider .hs-arrow{
  pointer-events: auto;
  position: absolute;
  top: 50%;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  margin-top: -21px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  color: #fff;
  cursor: pointer;
  opacity: 0;
  transition: opacity .3s ease, transform .3s ease, background .2s ease, color .2s ease;
}
[data-page="home"] .hero-slider .hs-prev{ left: 14px; transform: translateX(-6px); }
[data-page="home"] .hero-slider .hs-next{ right: 14px; transform: translateX(6px); }
[data-page="home"] .hero-slider:hover .hs-arrow,
[data-page="home"] .hero-slider .hs-arrow:focus-visible{ opacity: 1; transform: translateX(0); }
[data-page="home"] .hero-slider .hs-arrow:hover{ background: #fff; color: var(--ocean); }
[data-page="home"] .hero-slider .hs-arrow:focus-visible{ outline: 3px solid rgba(255,255,255,.8); outline-offset: 2px; }

[data-page="home"] .hero-slider .hs-dots{
  pointer-events: auto;
  position: absolute;
  left: 50%; bottom: 16px;
  transform: translateX(-50%);
  display: flex; gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(6,31,58,.35);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}
[data-page="home"] .hero-slider .hs-dot{
  position: relative;
  width: 10px; height: 6px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.45);
  overflow: hidden;
  cursor: pointer;
  transition: width .4s cubic-bezier(.22,1,.36,1), background .3s ease;
}
[data-page="home"] .hero-slider .hs-dot.active{ width: 34px; background: rgba(255,255,255,.35); }
[data-page="home"] .hero-slider .hs-dot span{
  position:absolute; inset:0;
  background: #fff;
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left;
}
[data-page="home"] .hero-slider .hs-dot.active span{ animation: hsProgress var(--hs-delay, 5500ms) linear forwards; }
[data-page="home"] .hero-slider.is-paused .hs-dot.active span{ animation-play-state: paused; }
[data-page="home"] .hero-slider.is-static .hs-dot.active span{ animation: none; transform: scaleX(1); }
[data-page="home"] .hero-slider .hs-dot:focus-visible{ outline: 2px solid #fff; outline-offset: 3px; }
@keyframes hsProgress{ from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* touch screens: always show arrows (no hover) */
@media (hover: none){
  [data-page="home"] .hero-slider .hs-arrow{ opacity: 1; transform: none; width: 38px; height: 38px; margin-top: -19px; }
}
@media (max-width: 560px){
  [data-page="home"] .hero-slider .hs-prev{ left: 10px; }
  [data-page="home"] .hero-slider .hs-next{ right: 10px; }
  [data-page="home"] .hero-slider .hs-dots{ bottom: 12px; }
}
@media (prefers-reduced-motion: reduce){
  [data-page="home"] .hero-slider .hs-track .hs-slide{ transition: opacity .01s; transform: none; }
  [data-page="home"] .hero-slider .hs-track .hs-slide.is-active{ animation: none; }
}


/* =========================================================
   HOME — "What we do": icon cards
   ========================================================= */
/* floating light orbs in the section background */
[data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::before,
[data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter: blur(70px);
  pointer-events:none;
  z-index:-1;
}
[data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::before{
  width: 380px; height: 380px;
  right: -120px; top: -60px;
  background: rgba(21,182,237,.28);
  animation: blobFloat 16s ease-in-out infinite alternate;
}
[data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::after{
  width: 320px; height: 320px;
  left: -140px; bottom: 40px;
  background: rgba(47,128,237,.35);
  animation: blobFloat 20s ease-in-out -8s infinite alternate-reverse;
}
[data-page="home"] section.page-block.alt:not(.testimonials) > .wrap{ isolation: isolate; }
[data-page="home"] section.page-block.alt:not(.testimonials) .sec-head h2{
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.15;
}

/* card layout: icon + tag row, then title and text */
[data-page="home"] #homeServiceCards{ gap: 22px; }
[data-page="home"] #homeServiceCards .card{
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon tag"
    "title title"
    "text text";
  align-content: start;
  column-gap: 14px;
  row-gap: 0;
  padding: 30px 28px 34px;
  min-height: 250px;
  border-radius: 18px;
}
[data-page="home"] #homeServiceCards .card .svc-icon{
  grid-area: icon;
  display: grid; place-items: center;
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--grad-blue);
  color: #fff;
  box-shadow: 0 12px 24px -12px rgba(11,58,102,.75), inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .4s ease;
}
[data-page="home"] #homeServiceCards .card .tag{
  grid-area: tag;
  justify-self: end;
  align-self: center;
}
[data-page="home"] #homeServiceCards .card h3{
  grid-area: title;
  margin-top: 24px;
  font-size: 21px;
  line-height: 1.25;
}
[data-page="home"] #homeServiceCards .card p{
  grid-area: text;
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.65;
}
/* faint large number in the corner */
[data-page="home"] #homeServiceCards .card .svc-num{
  position: absolute;
  right: 18px; bottom: -18px;
  font-family: var(--font-display);
  font-size: 96px;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(47,128,237,.13);
  pointer-events: none;
  transition: -webkit-text-stroke-color .4s ease, transform .5s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] #homeServiceCards .card > *:not(.svc-num){ position: relative; z-index: 1; }

@media (hover:hover){
  [data-page="home"] #homeServiceCards .card:hover .svc-icon{
    transform: translateY(-3px) rotate(-6deg) scale(1.05);
    box-shadow: 0 18px 30px -12px rgba(11,58,102,.8), inset 0 1px 0 rgba(255,255,255,.25);
  }
  [data-page="home"] #homeServiceCards .card:hover .svc-num{
    -webkit-text-stroke-color: rgba(47,128,237,.3);
    transform: translateY(-6px);
  }
}

/* "View all services" button */
[data-page="home"] section.page-block.alt:not(.testimonials) .btn-ghost{
  padding: 15px 28px;
  font-weight: 700;
}

@media (max-width: 640px){
  [data-page="home"] #homeServiceCards .card{ min-height: 0; padding: 24px 22px 28px; }
  [data-page="home"] #homeServiceCards .card .svc-icon{ width: 48px; height: 48px; border-radius: 14px; }
  [data-page="home"] #homeServiceCards .card h3{ margin-top: 18px; font-size: 19px; }
  [data-page="home"] #homeServiceCards .card .svc-num{ font-size: 76px; }
  [data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::before{ width: 240px; height: 240px; right: -80px; }
  [data-page="home"] section.page-block.alt:not(.testimonials) > .wrap::after{ width: 220px; height: 220px; left: -100px; }
}


  /* =========================================================
     FOOTER — straight edge, watermark, glass brand panel
     ========================================================= */
	footer.site{
        margin-top: 0;
        padding-top: 72px;
        border-radius: 0;
        -webkit-mask: none;
        mask: none;
        border-top: 1px solid rgba(102,161,208,.3);
    }
    footer.site::before{
        display: block;
        height: 2px;
        background: linear-gradient(90deg, #276ca6, #80b8dc 50%, #276ca6);
    }

	/* large "49°N" watermark */
	footer.site > .wrap::before{
		content: "49\00B0 N";
		position: absolute;
		right: 0; top: 300px;
		font-family: var(--font-display);
		font-size: clamp(120px, 17vw, 240px);
		font-weight: 600;
		line-height: 1;
		letter-spacing: -.03em;
		color: transparent;
		-webkit-text-stroke: 1.5px rgba(255,255,255,.07);
		pointer-events: none;
		z-index: -1;
	}
	footer.site > .wrap{ isolation: isolate; }

	/* brand column as a glass panel */
	.footer-brand{
		background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
		border: 1px solid rgba(255,255,255,.14);
		border-radius: 22px;
		padding: 28px;
		box-shadow: 0 30px 60px -36px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.08);
		-webkit-backdrop-filter: blur(8px);
		        backdrop-filter: blur(8px);
	}
	.footer-office{
		background: rgba(6,31,58,.35);
		border-color: rgba(255,255,255,.10);
	}
	.footer-office-label::before{
		content:"";
		width: 8px; height: 8px;
		border-radius: 50%;
		background: #15B6ED;
		box-shadow: 0 0 0 4px rgba(21,182,237,.18);
		margin-right: 4px;
	}
	.footer-grid{ align-items: start; }
	.footer-grid > div:not(.footer-brand){ padding-top: 10px; }

	/* animated underline on links */
	.footer-grid ul li:not(.reviews) a{
		background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
		padding-bottom: 2px;
		transition: color .2s ease, background-size .35s cubic-bezier(.22,1,.36,1);
	}
	.footer-grid ul li:not(.reviews) a:hover{ background-size: 100% 1px; }
	.footer-grid ul li:not(.email, .phone, .reviews):hover a{ padding-left: 0; }
	.footer-grid ul li:not(.email, .phone, .reviews)::before{ transition: transform .25s ease; }
	.footer-grid ul li:not(.email, .phone, .reviews):hover::before{ transform: translateX(3px); }

	/* email / phone as icon rows */
	.footer-grid ul li.email,
	.footer-grid ul li.phone{
		display: flex;
		align-items: center;
		margin-bottom: 16px;
	}
	.footer-grid ul li.email::before,
	.footer-grid ul li.phone::before{
		flex: none;
		margin: 0 18px 0 9px;
		transform: none;
		border-radius: 50%;
		background: rgba(21,182,237,.14);
		box-shadow: 0 0 0 9px rgba(21,182,237,.14);
	}
	.footer-grid ul li.email a,
	.footer-grid ul li.phone a{ font-weight: 600; color: #fff; }

	/* rating badge glow */
	.footer-grid .reviews a{
		background: linear-gradient(135deg, rgba(255,197,49,.16), rgba(255,255,255,.06));
		border-color: rgba(255,197,49,.35);
		box-shadow: 0 10px 30px -14px rgba(255,197,49,.45);
	}

	/* bottom bar + back-to-top */
	.footer-bottom{ align-items: center; }
	.footer-bottom-end{ display: flex; align-items: center; gap: 16px; }
	.to-top{
		display: grid; place-items: center;
		width: 44px; height: 44px;
		border-radius: 50%;
		border: 0;
		background: linear-gradient(135deg, #15B6ED, #2F80ED);
		color: #fff;
		cursor: pointer;
		box-shadow: 0 10px 24px -10px rgba(21,182,237,.8);
		transition: transform .25s ease, box-shadow .25s ease;
	}
	.to-top:hover{ transform: translateY(-3px); box-shadow: 0 16px 30px -12px rgba(21,182,237,.9); }
	.to-top:focus-visible{ outline: 3px solid rgba(255,255,255,.7); outline-offset: 3px; }

	@media (max-width: 800px){
		.footer-grid > div:not(.footer-brand){ padding-top: 0; }
	}
	@media (max-width: 560px){
		footer.site{ padding-top: 44px; }
		.footer-brand{ padding: 22px 18px; border-radius: 18px; }
		.footer-bottom{ flex-direction: column; align-items: flex-start; }
		.footer-bottom-end{ width: 100%; justify-content: space-between; }
	}
	@media (max-width: 1000px){
		footer.site > .wrap::before{ display: none; }
	}


/* =========================================================
   HOME — "Why cross-border is different": split layout
   ========================================================= */
[data-page="home"] .why-section{ padding: 96px 0 104px; }
[data-page="home"] .why-section .wrap{
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr);
  gap: 64px;
  align-items: start;
}
[data-page="home"] .why-section .sec-head{
  position: sticky;
  top: 110px;
  margin-bottom: 0;
  max-width: none;
}
[data-page="home"] .why-section .sec-head h2{
  font-size: clamp(30px, 3.6vw, 46px);
  line-height: 1.1;
}
[data-page="home"] .why-section .sec-head > p:not(.eyebrow){ font-size: 17px; line-height: 1.7; max-width: 46ch; }

/* overlap diagram */
[data-page="home"] .why-venn{ margin-top: 34px; max-width: 360px; }
[data-page="home"] .why-venn svg{ display: block; width: 100%; height: auto; overflow: visible; }
[data-page="home"] .why-venn .v-ca{ fill: rgba(213,43,30,.08); stroke: rgba(213,43,30,.45); stroke-width: 1.5; }
[data-page="home"] .why-venn .v-us{ fill: rgba(47,128,237,.10); stroke: rgba(47,128,237,.55); stroke-width: 1.5; }
[data-page="home"] .why-venn .v-mid{ opacity: .9; animation: vennPulse 3.2s ease-in-out infinite; transform-origin: 180px 115px; }
[data-page="home"] .why-venn .v-line{ stroke: rgba(11,58,102,.35); stroke-width: 1; stroke-dasharray: 4 5; }
[data-page="home"] .why-venn .v-leaf{ fill: rgba(213,43,30,.55); }
[data-page="home"] .why-venn .v-stars path{ fill: rgba(47,128,237,.6); }
[data-page="home"] .why-venn .v-lab{ font-family: var(--font-mono); font-size: 13px; letter-spacing: .14em; fill: var(--ink-soft); }
[data-page="home"] .why-venn .v-bang{ font-family: var(--font-display); font-size: 40px; font-weight: 600; fill: #fff; }
@keyframes vennPulse{
  0%,100% { opacity: .85; }
  50%     { opacity: 1; }
}

/* right: stacked horizontal cards joined by a dotted line */
[data-page="home"] .why-section .why-grid{
  position: relative;
  grid-template-columns: 1fr;
  gap: 18px;
  margin-top: 0;
}
[data-page="home"] .why-section .why-grid::before{
  content:"";
  position:absolute;
  left: 61px; top: 40px; bottom: 40px;
  border-left: 2px dashed rgba(47,128,237,.3);
}
[data-page="home"] .why-section .why-item{
  display: grid;
  grid-template-columns: 66px 1fr;
  grid-template-areas:
    "num title"
    "num text";
  column-gap: 24px;
  align-items: start;
  padding: 28px 30px 28px 28px;
  border-radius: 18px;
}
[data-page="home"] .why-section .why-item::before{
  /* accent bar on the left edge */
  left: 0; right: auto; top: 0; bottom: 0;
  width: 4px; height: auto;
  transform: scaleY(0);
  transform-origin: top;
}
[data-page="home"] .why-section .why-item .num{
  grid-area: num;
  width: 66px; height: 66px;
  border-radius: 18px;
  background: var(--grad-blue);
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  box-shadow: 0 0 0 6px var(--card), 0 14px 26px -12px rgba(11,58,102,.7);
}
[data-page="home"] .why-section .why-item h3{
  grid-area: title;
  margin-top: 6px;
  font-size: 21px;
}
[data-page="home"] .why-section .why-item p{
  grid-area: text;
  margin-top: 8px;
  font-size: 15.5px;
  line-height: 1.65;
}
[data-page="home"] .why-section .why-item::after{
  /* move the big outlined number to the right edge */
  right: 18px; bottom: auto; top: 50%;
  transform: translateY(-50%);
  font-size: 104px;
}
@media (hover:hover){
  [data-page="home"] .why-section .why-item.is-visible:hover{ transform: translateX(6px); }
  [data-page="home"] .why-section .why-item:hover::before{ transform: scaleY(1); }
  [data-page="home"] .why-section .why-item:hover .num{ background: var(--grad-blue); transform: rotate(-6deg); }
  [data-page="home"] .why-section .why-item:hover::after{ transform: translateY(-50%) translateX(-6px); }
}
[data-page="home"] .why-section .why-item .num{ transition: transform .4s cubic-bezier(.22,1,.36,1); }

/* tablet & phone: stack */
@media (max-width: 900px){
  [data-page="home"] .why-section{ padding: 72px 0 80px; }
  [data-page="home"] .why-section .wrap{ grid-template-columns: minmax(0, 1fr); gap: 36px; }
  [data-page="home"] .why-section .sec-head{ position: relative; top: auto; }
  [data-page="home"] .why-venn{ max-width: 300px; margin-top: 26px; }
}
@media (max-width: 560px){
  [data-page="home"] .why-section .why-grid::before{ left: 47px; }
  [data-page="home"] .why-section .why-item{ grid-template-columns: 50px 1fr; column-gap: 16px; padding: 22px 20px; }
  [data-page="home"] .why-section .why-item .num{ width: 50px; height: 50px; border-radius: 14px; font-size: 15px; }
  [data-page="home"] .why-section .why-item h3{ font-size: 18.5px; margin-top: 2px; }
  [data-page="home"] .why-section .why-item p{ font-size: 15px; }
  [data-page="home"] .why-section .why-item::after{ font-size: 80px; }
  [data-page="home"] .why-venn{ max-width: 260px; }
}
@media (prefers-reduced-motion: reduce){
  [data-page="home"] .why-venn .v-mid{ animation: none; }
}
[data-page="home"] .why-section .why-item::after{ display: none; }

/* =========================================================
   HOME — hero slider showing the service animations
   ========================================================= */
[data-page="home"] .hero-slider .hs-track{ background: #f3f3f3; }
[data-page="home"] .hero-slider .hs-track div.hs-slide,
[data-page="home"] .hero-slider .hs-track div.hs-slide.is-active{
  transform: none;
  animation: none;
  transition: opacity .8s ease, visibility 0s linear .8s;
  visibility: hidden;
}
[data-page="home"] .hero-slider .hs-track div.hs-slide.is-active{
  visibility: visible;
  transition: opacity .8s ease, visibility 0s;
}
[data-page="home"] .hero-slider .hs-slide iframe{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
  display: block;
  pointer-events: none;   /* swipes, hover and clicks go to the slider */
}
/* whole slide links to its service page */
[data-page="home"] .hero-slider .hs-link{
  position: absolute; inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 14px;
  font-size: 0;                 /* visible label comes from ::after */
  color: transparent;
  text-decoration: none;
}
[data-page="home"] .hero-slider .hs-link::after{
  content: "View service \2192";
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--ocean);
  background: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: 8px 14px;
  box-shadow: 0 8px 18px -10px rgba(11,58,102,.6);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .25s ease, transform .25s ease;
}
[data-page="home"] .hero-slider:hover .hs-slide.is-active .hs-link::after,
[data-page="home"] .hero-slider .hs-link:focus-visible::after{ opacity: 1; transform: none; }
[data-page="home"] .hero-slider .hs-link:focus-visible{ outline: 3px solid var(--brass); outline-offset: -3px; border-radius: 20px; }
/* lighter shade: the animations have light backgrounds */
[data-page="home"] .hero-slider .hs-track::after{
  height: 26%;
  background: linear-gradient(0deg, rgba(6,31,58,.32), rgba(6,31,58,0));
}
@media (hover: none){
  [data-page="home"] .hero-slider .hs-slide.is-active .hs-link::after{ opacity: 1; transform: none; font-size: 12px; padding: 6px 12px; }
}

/* =========================================================
   Mobile touch-target & layout fixes
   ========================================================= */
/* bigger tap areas for slider dots without changing their look */
[data-page="home"] .hero-slider .hs-dot,
[data-page="home"] .testimonials .t-dot{ position: relative; }
[data-page="home"] .hero-slider .hs-dot::before,
[data-page="home"] .testimonials .t-dot::before{
  content:"";
  position:absolute;
  left: -4px; right: -4px; top: -12px; bottom: -12px;
}
@media (max-width: 560px){
  [data-page="home"] .hero-slider .hs-dots{ gap: 7px; padding: 6px 9px; bottom: 10px; }
  [data-page="home"] .hero-slider .hs-dot{ width: 8px; }
  [data-page="home"] .hero-slider .hs-dot.active{ width: 26px; }
  [data-page="home"] .testimonials .t-dots{ gap: 12px; }
}
/* footer office cards: one per row on phones */
@media (max-width: 600px){
  .footer-offices{ grid-template-columns: 1fr; }
}
[data-page="home"] .hero-slider .hs-dot{ overflow: visible; }

/* =========================================================
   FAQ answers with paragraphs and lists
   ========================================================= */
.faq-item[data-open="true"] .faq-a{ max-height: 1400px; }
.faq-a{ transition: max-height .35s ease; }
.faq-a-inner p + p,
.faq-a-inner p + ul,
.faq-a-inner p + ol,
.faq-a-inner ul + p,
.faq-a-inner ol + p{ margin-top: 12px; }
.faq-a-inner ul,
.faq-a-inner ol{ display: grid; gap: 9px; padding-left: 0; margin: 12px 0 0; }
.faq-a-inner ul li,
.faq-a-inner ol li{ position: relative; padding-left: 30px; }
.faq-a-inner ul li::before{
  content:"";
  position:absolute; left: 8px; top: .62em;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--brass);
}
.faq-a-inner ol{ counter-reset: faqstep; }
.faq-a-inner ol li{ counter-increment: faqstep; }
.faq-a-inner ol li::before{
  content: counter(faqstep);
  position:absolute; left: 0; top: .1em;
  display: grid; place-items: center;
  width: 21px; height: 21px;
  border-radius: 50%;
  background: rgba(47,128,237,.12);
  color: var(--brass);
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 500;
}
.faq-a-inner strong{ color: var(--ink); font-weight: 600; }
.faq-a-inner a{ color: var(--ocean-2); font-weight: 600; }
.faq-note{
  margin-top: 26px;
  font-size: 13px;
  color: var(--ink-soft);
  font-style: italic;
}
.faq-a-inner ul,
.faq-a-inner ol{ list-style: none; }

/* home FAQ: link to the full FAQ page */
[data-page="home"] [data-page="faq"] .faq-all{
  grid-column: 2;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: -36px;
  padding: 13px 22px;
  border-radius: 999px;
  background: var(--card);
  border: 1px solid var(--line);
  color: var(--ocean-2);
  font-weight: 700;
  font-size: 14.5px;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(15,39,66,.05);
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
[data-page="home"] [data-page="faq"] .faq-all:hover{ background: var(--brass); border-color: var(--brass); color: #fff; transform: translateY(-2px); }
@media (max-width: 900px){
  [data-page="home"] [data-page="faq"] .faq-all{ grid-column: 1; margin-top: -8px; }
}

/* =========================================================
   PAGE BANNER (sub-header on inner pages)
   ========================================================= */
.page-banner{
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 64px 0;
  color: #fff;
  background:
    radial-gradient(50% 120% at 100% 0%, rgba(21,182,237,.30) 0%, rgba(21,182,237,0) 70%),
    radial-gradient(40% 90% at 0% 100%, rgba(47,128,237,.35) 0%, rgba(47,128,237,0) 70%),
    linear-gradient(135deg, #145DA0 0%, #0B3A66 60%, #082D52 100%);
}
.page-banner::before{
  /* dot texture */
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1.2px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%);
          mask-image: linear-gradient(90deg, transparent, #000 60%);
  z-index: -1;
  pointer-events: none;
}
.page-banner::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: linear-gradient(90deg, rgba(133,192,231,.65), rgba(133,192,231,.15));
  pointer-events: none;
}

.page-banner .wrap{ position: relative; }
.page-banner .wrap::after{
  /* faint "49°N" watermark */
  content: "49\00B0 N";
  position: absolute;
  right: 28px; top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: 150px;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.10);
  pointer-events: none;
}
.pb-crumb{
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.22);
  font-size: 13px;
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}
.pb-crumb a{ color: rgba(255,255,255,.8); text-decoration: none; transition: color .2s ease; }
.pb-crumb a:hover{ color: #fff; text-decoration: underline; }
.pb-crumb .sep{ color: rgba(255,255,255,.45); }
.pb-crumb .current{ color: #fff; font-weight: 600; }
.pb-title{
  position: relative;
  margin-top: 18px;
  max-width: 20ch;
  color: #fff;
  font-size: clamp(32px, 4.4vw, 54px);
  line-height: 1.08;
  letter-spacing: -.01em;
}
.pb-sub{
  margin-top: 12px;
  max-width: 56ch;
  color: rgba(255,255,255,.82);
  font-size: 17px;
  line-height: 1.6;
}
/* the old small breadcrumb on service pages is replaced by the banner */
#svcCrumb{ display: none; }

@media (max-width: 900px){
  .page-banner .wrap::after{ display: none; }
}
@media (max-width: 560px){
  .page-banner{ padding: 44px 0; }
  .page-banner::after{ height: 2px; }
  .pb-title{ margin-top: 14px; }
  .pb-sub{ font-size: 15.5px; }
}


/* =========================================================
   HOME — "How it works": step cards with a drawing connector
   ========================================================= */
[data-page="home"] .how-section{
  position: relative;
  padding: 104px 0 112px;
  background:
    radial-gradient(40% 60% at 50% 0%, rgba(47,128,237,.09) 0%, rgba(47,128,237,0) 70%),
    radial-gradient(30% 50% at 100% 100%, rgba(21,182,237,.08) 0%, rgba(21,182,237,0) 70%);
}
[data-page="home"] .how-section .sec-head{
  max-width: 640px;
  margin: 0 auto 56px;
  text-align: center;
}
[data-page="home"] .how-section .sec-head .eyebrow{ justify-content: center; }
[data-page="home"] .how-section .sec-head h2{ font-size: clamp(30px, 3.6vw, 46px); line-height: 1.12; }

[data-page="home"] .how-section .process{
  position: relative;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 0;
}
/* connector line behind the icon tiles */
[data-page="home"] .how-section .process::before,
[data-page="home"] .how-section .process::after{
  content:"";
  position:absolute;
  left: 12.5%; right: 12.5%;
  top: 62px;
  height: 3px;
  border-radius: 3px;
  z-index: 0;
}
[data-page="home"] .how-section .process::before{
  background: repeating-linear-gradient(90deg, rgba(47,128,237,.25) 0 8px, transparent 8px 16px);
}
[data-page="home"] .how-section .process::after{
  background: linear-gradient(90deg, #15B6ED, #2F80ED, #145DA0);
  box-shadow: 0 0 14px rgba(47,128,237,.55);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.8s cubic-bezier(.65,0,.35,1) .3s;
}
[data-page="home"] .how-section .process.is-drawn::after{ transform: scaleX(1); }

/* step card */
[data-page="home"] .how-section .step{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 26px 22px 30px;
  border: 1px solid var(--line);
  border-top: 1px solid var(--line);
  border-radius: 20px;
  background: var(--card);
  box-shadow: var(--soft-shadow);
  transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .3s ease;
}
/* switch off the old circle number + connector */
[data-page="home"] .how-section .step::before,
[data-page="home"] .how-section .step::after{ display: none !important; }

[data-page="home"] .how-section .step-icon{
  position: relative;
  display: grid; place-items: center;
  width: 72px; height: 72px;
  border-radius: 22px;
  background: var(--grad-blue);
  color: #fff;
  box-shadow: 0 0 0 8px var(--card), 0 16px 30px -12px rgba(11,58,102,.7);
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] .how-section .step-icon::after{
  /* soft halo */
  content:"";
  position:absolute; inset: -14px;
  border-radius: 30px;
  border: 1px dashed rgba(47,128,237,.35);
  transition: transform .8s cubic-bezier(.22,1,.36,1);
}
[data-page="home"] .how-section .step-label{
  margin-top: 26px;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(47,128,237,.09);
  color: var(--brass);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
[data-page="home"] .how-section .step h4{
  margin-top: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 21px;
  padding-top: 0;
}
[data-page="home"] .how-section .step p{
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.65;
}
@media (hover:hover){
  [data-page="home"] .how-section .step.is-visible:hover{
    transform: translateY(-8px);
    box-shadow: var(--lift-shadow);
    border-color: rgba(47,128,237,.35);
  }
  [data-page="home"] .how-section .step:hover .step-icon{ transform: translateY(-4px) rotate(-6deg); }
  [data-page="home"] .how-section .step:hover .step-icon::after{ transform: rotate(45deg) scale(1.05); }
}

/* tablet: 2 x 2, no horizontal connector */
@media (max-width: 900px){
  [data-page="home"] .how-section{ padding: 80px 0 88px; }
  [data-page="home"] .how-section .process{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
  [data-page="home"] .how-section .process::before,
  [data-page="home"] .how-section .process::after{ display: none; }
}
/* phone: vertical list with the line running down the icons */
@media (max-width: 560px){
  [data-page="home"] .how-section .sec-head{ text-align: left; margin-bottom: 36px; }
  [data-page="home"] .how-section .sec-head .eyebrow{ justify-content: flex-start; }
  [data-page="home"] .how-section .process{ grid-template-columns: 1fr; gap: 16px; }
  [data-page="home"] .how-section .process::before,
  [data-page="home"] .how-section .process::after{
    display: block;
    left: 50px; right: auto; top: 50px; bottom: 50px;
    width: 3px; height: auto;
  }
  [data-page="home"] .how-section .process::before{ background: repeating-linear-gradient(180deg, rgba(47,128,237,.25) 0 8px, transparent 8px 16px); }
  [data-page="home"] .how-section .process::after{ background: linear-gradient(180deg, #15B6ED, #2F80ED, #145DA0); transform: scaleY(0); transform-origin: top; }
  [data-page="home"] .how-section .process.is-drawn::after{ transform: scaleY(1); }
  [data-page="home"] .how-section .step{
    display: grid;
    grid-template-columns: 56px 1fr;
    grid-template-areas: "icon label" "icon title" "icon text";
    column-gap: 18px;
    align-items: start;
    text-align: left;
    padding: 20px 18px;
  }
  [data-page="home"] .how-section .step-icon{ grid-area: icon; width: 56px; height: 56px; border-radius: 16px; box-shadow: 0 0 0 6px var(--card), 0 12px 22px -10px rgba(11,58,102,.7); }
  [data-page="home"] .how-section .step-icon svg{ width: 24px; height: 24px; }
  [data-page="home"] .how-section .step-icon::after{ display: none; }
  [data-page="home"] .how-section .step-label{ grid-area: label; justify-self: start; margin-top: 0; }
  [data-page="home"] .how-section .step h4{ grid-area: title; margin-top: 8px; font-size: 19px; }
  [data-page="home"] .how-section .step p{ grid-area: text; margin-top: 6px; }
}
@media (prefers-reduced-motion: reduce){
  [data-page="home"] .how-section .process::after{ transition: none; }
}


/* =========================================================
   HOME — "What we do" v2: SVG map background, split layout,
   frosted glass cards
   ========================================================= */
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

[data-page="home"] section.page-block.alt.what-section{
  background:
    url("../images/what-we-do-bg.svg") center / cover no-repeat,
    radial-gradient(50% 60% at 100% 0%, rgba(21,182,237,.22) 0%, rgba(21,182,237,0) 70%),
    radial-gradient(45% 55% at 0% 100%, rgba(6,31,58,.6) 0%, rgba(6,31,58,0) 70%),
    linear-gradient(160deg, #145DA0 0%, #0F4A85 50%, #0B3A66 100%);
}
[data-page="home"] section.what-section::before{ opacity: .5; }

/* split layout: heading + button left, cards right */
[data-page="home"] section.what-section > .wrap{
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr);
  grid-template-areas:
    "head cards"
    "btn  cards";
  grid-template-rows: auto 1fr;
  column-gap: 56px;
  align-items: start;
}
[data-page="home"] section.what-section .sec-head{
  grid-area: head;
  position: sticky;
  top: 110px;
  margin-bottom: 0;
}
[data-page="home"] section.what-section .sec-head h2{ font-size: clamp(28px, 3.2vw, 42px); }
[data-page="home"] section.what-section #homeServiceCards{ grid-area: cards; }
[data-page="home"] section.what-section > .wrap > div:last-child{
  grid-area: btn;
  margin-top: 30px !important;
  position: sticky;
  top: 360px;
  align-self: start;
}

/* cards: 2 columns of frosted glass */
[data-page="home"] section.what-section #homeServiceCards{
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
[data-page="home"] section.what-section #homeServiceCards .card{
  min-height: 0;
  padding: 26px 26px 24px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
  background-color: transparent;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 24px 40px -30px rgba(0,0,0,.6);
  color: #fff;
  grid-template-areas:
    "icon tag"
    "title title"
    "text text"
    "more more";
  transition: opacity .8s ease, transform .45s cubic-bezier(.22,1,.36,1), background .4s ease, border-color .4s ease, box-shadow .4s ease;
}
[data-page="home"] section.what-section #homeServiceCards .card::before,
[data-page="home"] section.what-section #homeServiceCards .card::after{ display: none; }
[data-page="home"] section.what-section #homeServiceCards .card .svc-icon{
  width: 52px; height: 52px;
  border-radius: 15px;
  background: #fff;
  color: var(--ocean-2);
  box-shadow: 0 12px 24px -12px rgba(0,0,0,.6);
}
[data-page="home"] section.what-section #homeServiceCards .card .tag{
  background: rgba(255,255,255,.14);
  color: rgba(255,255,255,.9);
}
[data-page="home"] section.what-section #homeServiceCards .card h3{
  margin-top: 20px;
  font-size: 20px;
  color: #fff;
}
[data-page="home"] section.what-section #homeServiceCards .card p{
  color: rgba(255,255,255,.78);
  font-size: 14.5px;
}
[data-page="home"] section.what-section #homeServiceCards .card .svc-num{
  -webkit-text-stroke-color: rgba(255,255,255,.12);
  font-size: 84px;
  bottom: -14px;
}
[data-page="home"] section.what-section .svc-more{
  grid-area: more;
  justify-self: start;
  margin-top: 16px;
  color: #9ee6ff;
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  position: static;
}
/* the whole card is clickable */
[data-page="home"] section.what-section .svc-more::after{
  content:"";
  position:absolute; inset:0;
  border-radius: 20px;
  z-index: 2;
}
[data-page="home"] section.what-section .svc-more:focus-visible{ outline: none; }
[data-page="home"] section.what-section .svc-more:focus-visible::after{ box-shadow: 0 0 0 3px #fff inset; }

/* hover / focus: card turns solid white */
[data-page="home"] section.what-section #homeServiceCards .card:hover,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within{
  background: #fff;
  border-color: #fff;
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.65);
}
@media (hover:hover){
  [data-page="home"] section.what-section #homeServiceCards .card:hover{ transform: translateY(-6px) !important; }
}
[data-page="home"] section.what-section #homeServiceCards .card:hover h3,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within h3{ color: var(--ink); }
[data-page="home"] section.what-section #homeServiceCards .card:hover p,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within p{ color: var(--ink-soft); }
[data-page="home"] section.what-section #homeServiceCards .card:hover .tag,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within .tag{ background: var(--brass); color: #fff; }
[data-page="home"] section.what-section #homeServiceCards .card:hover .svc-icon,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within .svc-icon{ background: var(--grad-blue); color: #fff; }
[data-page="home"] section.what-section #homeServiceCards .card:hover .svc-more,
[data-page="home"] section.what-section #homeServiceCards .card:focus-within .svc-more{ color: var(--ocean-2); }
[data-page="home"] section.what-section #homeServiceCards .card:hover .svc-num{ -webkit-text-stroke-color: rgba(47,128,237,.22); }
[data-page="home"] section.what-section #homeServiceCards .card h3,
[data-page="home"] section.what-section #homeServiceCards .card p,
[data-page="home"] section.what-section #homeServiceCards .card .tag,
[data-page="home"] section.what-section #homeServiceCards .card .svc-icon,
[data-page="home"] section.what-section .svc-more{ transition: color .3s ease, background .3s ease, transform .5s cubic-bezier(.22,1,.36,1); }

/* tablet & phone: stack */
@media (max-width: 1000px){
  [data-page="home"] section.what-section > .wrap{
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "head" "cards" "btn";
    grid-template-rows: auto;
  }
  [data-page="home"] section.what-section .sec-head{ position: relative; top: auto; margin-bottom: 32px; }
  [data-page="home"] section.what-section > .wrap > div:last-child{ position: relative; top: auto; }
}
@media (max-width: 640px){
  [data-page="home"] section.what-section #homeServiceCards{ grid-template-columns: 1fr; gap: 14px; }
  [data-page="home"] section.what-section #homeServiceCards .card{ padding: 22px 20px; }
  [data-page="home"] section.what-section{ background-size: 260% auto, auto, auto, auto; }
}
[data-page="home"] section.what-section > .wrap{ grid-template-rows: auto auto; grid-template-areas: "head cards" "btn cards"; }
[data-page="home"] section.what-section > .wrap > #homeServiceCards{ grid-row: 1 / span 2; }
[data-page="home"] section.what-section .sec-head,
[data-page="home"] section.what-section > .wrap > div:last-child{ position: relative; top: auto; }
[data-page="home"] section.what-section > .wrap{ grid-template-rows: auto 1fr; }
@media (max-width: 640px){
  [data-page="home"] section.page-block.alt.what-section{ background-size: 260% auto, auto, auto, auto; }
}
@media (max-width: 1000px){
  [data-page="home"] section.what-section > .wrap{ grid-template-rows: auto; }
  [data-page="home"] section.what-section > .wrap > #homeServiceCards{ grid-row: auto; }
}
@media (max-width: 1000px){
  [data-page="home"] section.what-section > .wrap{
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "head" "cards" "btn";
    grid-template-rows: auto;
  }
  [data-page="home"] section.what-section > .wrap > #homeServiceCards{ grid-row: auto; }
}

/* =========================================================
   Keep sideways-overflow protection WITHOUT breaking sticky
   (overflow:hidden on body made it a scroll container, which
   stopped the sticky header and other sticky elements)
   ========================================================= */
html{ overflow-x: hidden; }
body{ overflow-x: visible; }
@supports (overflow: clip){
  html{ overflow-x: clip; }
  body{ overflow-x: clip; }
}


/* =========================================================
   SERVICES PAGE v2 — sticky category bar, category panels,
   richer service cards
   ========================================================= */

/* sticky category bar */
.jump-nav{
  position: sticky;
  top: 84px;
  z-index: 30;
  display: block;
  margin: 0 0 56px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  border: 1px solid var(--line);
  box-shadow: 0 14px 34px -22px rgba(15,39,66,.45);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
}
.jump-track{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.jump-pill{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px 9px 10px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  box-shadow: none;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.jump-pill .jp-ico{
  display: grid; place-items: center;
  width: 26px; height: 26px;
  border-radius: 8px;
  background: rgba(47,128,237,.10);
  color: var(--brass);
  transition: background .25s ease, color .25s ease;
}
.jump-pill .jp-ico svg{ width: 15px; height: 15px; }
.jump-pill:hover{ background: var(--paper-dim); color: var(--ink); border-color: var(--line); transform: none; }
.jump-pill.active{
  background: var(--grad-blue);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 10px 22px -12px rgba(11,58,102,.75);
}
.jump-pill.active .jp-ico{ background: rgba(255,255,255,.18); color: #fff; }
.jump-pill:focus-visible{ outline: 3px solid rgba(47,128,237,.45); outline-offset: 2px; }

/* category block: panel left, cards right */
.svc-group{
  display: grid;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  margin-bottom: 72px;
  scroll-margin-top: 170px;
}
.svc-group-head{
  position: sticky;
  top: 172px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  margin: 0;
  padding: 30px 26px 28px;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(80% 60% at 100% 0%, rgba(21,182,237,.35) 0%, rgba(21,182,237,0) 70%),
    linear-gradient(160deg, #2F80ED 0%, #145DA0 50%, #0B3A66 100%);
  box-shadow: 0 30px 50px -30px rgba(11,58,102,.75);
}
.svc-group-head::before{ display: none; }
.svc-group-head::after{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1.2px);
  background-size: 18px 18px;
  -webkit-mask-image: linear-gradient(200deg, #000, transparent 60%);
          mask-image: linear-gradient(200deg, #000, transparent 60%);
  z-index: -1;
}
.svc-group-head .sg-num{
  position: absolute;
  right: 16px; top: 4px;
  font-family: var(--font-display);
  font-size: 92px;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.22);
  z-index: -1;
}
.svc-group-head .sg-icon{
  display: grid; place-items: center;
  width: 54px; height: 54px;
  border-radius: 16px;
  background: #fff;
  color: var(--ocean-2);
  box-shadow: 0 12px 24px -12px rgba(0,0,0,.55);
}
.svc-group-head .sg-icon svg{ width: 26px; height: 26px; }
.svc-group-head h3{
  margin-top: 22px;
  color: #fff;
  font-family: var(--font-display);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
}
.svc-group-head .group-desc{
  margin-top: 10px;
  color: rgba(255,255,255,.8);
  font-size: 14.5px;
  line-height: 1.6;
}
.svc-group-head .sg-count{
  margin-top: 20px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* service cards */
.svc-list{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
.svc-list .svc-row:last-child:nth-child(odd){ grid-column: 1 / -1; }
.svc-row{
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 24px 24px 20px;
  border-radius: 18px;
  background: var(--card);
}
.svc-row .code{ font-size: 11px; }
.svc-row h4{
  margin-top: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 19.5px;
  line-height: 1.25;
  color: var(--ink);
  animation: none !important;
  transition: color .3s ease;
}
.svc-row h4 .arrow{ display: none; }
.svc-row h4::after{ content: none !important; display: none !important; }
.svc-row p{ margin-top: 8px; font-size: 14.5px; flex: 1; }
.svc-row-foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.svc-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 600;
}
.svc-badge svg{ color: var(--brass); }
.svc-go{
  display: grid; place-items: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: var(--brass);
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}
@media (hover:hover){
  .svc-row:hover h4{ color: var(--ocean-2); }
  .svc-row:hover .svc-go{ background: var(--grad-blue); border-color: transparent; color: #fff; transform: translateX(3px); }
}
.svc-row:focus-visible{ outline: 3px solid rgba(47,128,237,.5); outline-offset: 2px; }

/* tablet: panel on top of its cards */
@media (max-width: 960px){
  .svc-group{ grid-template-columns: minmax(0, 1fr); gap: 18px; margin-bottom: 56px; }
  .svc-group-head{ position: relative; top: auto; }
  .svc-group-head .sg-num{ font-size: 76px; }
}
/* phone: single-line scrolling category bar, one card per row */
@media (max-width: 640px){
  .jump-nav{ top: 76px; margin: 0 -20px 40px; border-radius: 0; border-left: 0; border-right: 0; padding: 8px 12px; }
  .jump-track{
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .jump-track::-webkit-scrollbar{ display: none; }
  .jump-pill{ scroll-snap-align: start; }
  .svc-group{ scroll-margin-top: 150px; }
  .svc-list{ grid-template-columns: 1fr; gap: 12px; }
  .svc-group-head{ padding: 24px 20px; }
  .svc-group-head h3{ font-size: 21px; }
  .svc-row{ padding: 20px 18px 16px; }
}


/* =========================================================
   SERVICE DETAIL v2 (all 49 service pages)
   ========================================================= */
/* title card */
.svc-detail-head{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 26px;
  align-items: center;
  max-width: none;
  margin-bottom: 40px;
  padding: 30px 32px;
  border-radius: 24px;
  background:
    radial-gradient(60% 120% at 100% 0%, rgba(47,128,237,.10) 0%, rgba(47,128,237,0) 70%),
    var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--soft-shadow);
  overflow: hidden;
}
.svc-detail-head::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:5px;
  background: var(--grad-blue);
}
.sd-icon{
  display: grid; place-items: center;
  width: 76px; height: 76px;
  border-radius: 22px;
  background: var(--grad-blue);
  color: #fff;
  box-shadow: 0 16px 30px -14px rgba(11,58,102,.75);
}
.sd-icon svg{ width: 34px; height: 34px; }
.sd-pills{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sd-pos{
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--paper-dim);
  border: 1px solid var(--line);
  color: var(--ink-soft);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .04em;
}
.svc-detail-head h1{ margin-top: 12px; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.1; }
.svc-detail-head .lede{ margin-top: 10px; font-size: 16.5px; max-width: 60ch; }
.sd-actions{ display: flex; flex-direction: column; gap: 10px; }
.sd-actions .btn{ justify-content: center; border-radius: 12px; padding: 13px 22px; }
.sd-actions .btn-brass{ box-shadow: 0 10px 24px -10px rgba(47,128,237,.75); }

/* main + sidebar */
.svc-detail-grid{ grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; }

/* animation in a window frame */
.sd-frame{
  margin-bottom: 36px;
  border-radius: 20px;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: 0 30px 60px -32px rgba(11,58,102,.55);
}
.sd-frame-bar{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: linear-gradient(180deg, #F3F7FB, #E9F0F7);
  border-bottom: 1px solid var(--line);
}
.sd-dots{ display: inline-flex; gap: 6px; flex: none; }
.sd-dots i{ width: 11px; height: 11px; border-radius: 50%; background: #FF5F57; }
.sd-dots i:nth-child(2){ background: #FEBC2E; }
.sd-dots i:nth-child(3){ background: #28C840; }
.sd-frame-title{
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 600;
}
.sd-replay{
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ocean-2);
  font: 600 12.5px var(--font-body);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.sd-replay:hover{ background: var(--brass); border-color: var(--brass); color: #fff; }
.sd-replay:focus-visible{ outline: 3px solid rgba(47,128,237,.45); outline-offset: 2px; }
.sd-frame iframe{ display: block; width: 100%; aspect-ratio: 3 / 2; border: 0; }
#svcImage iframe, #svcImage img{ box-shadow: none; }

/* common question: Q / A card */
.mini-faq{
  display: grid;
  gap: 16px;
  max-width: none;
  padding: 26px 28px;
  border-left: 0;
  border-radius: 20px;
  border: 1px solid var(--line);
}
.mf-row{ display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 16px; align-items: start; }
.mf-badge{
  display: grid; place-items: center;
  width: 38px; height: 38px;
  border-radius: 12px;
  background: var(--grad-blue);
  color: #fff;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
}
.mf-badge.mf-a{ background: rgba(47,128,237,.12); color: var(--brass); }
.mini-faq-q{ font-size: 19px; line-height: 1.35; padding-top: 6px; }
.mini-faq-a{ margin-top: 0; font-size: 15.5px; line-height: 1.7; padding-top: 7px; }

/* previous / next */
.svc-pager{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 8px 0 36px;
}
.svc-pager:empty{ display: none; }
.sp-link{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--card);
  text-decoration: none;
  transition: border-color .25s ease, box-shadow .3s ease, transform .3s ease;
}
.sp-next{ text-align: right; align-items: flex-end; }
.sp-dir{ font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brass); }
.sp-name{ font-family: var(--font-display); font-size: 17px; color: var(--ink); }
@media (hover:hover){
  .sp-link:hover{ border-color: rgba(47,128,237,.4); box-shadow: var(--soft-shadow); transform: translateY(-2px); }
}

/* sidebar */
.svc-detail-side{ position: sticky; top: 100px; display: grid; gap: 18px; }
.side-card{ position: relative; top: auto; padding: 0 0 20px; }
.side-card::before{ display: none; }
.sc-head{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 22px 20px;
  margin-bottom: 8px;
  color: #fff;
  background:
    radial-gradient(80% 90% at 100% 0%, rgba(21,182,237,.35) 0%, rgba(21,182,237,0) 70%),
    linear-gradient(160deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
}
.sc-icon{
  flex: none;
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: 13px;
  background: #fff;
  color: var(--ocean-2);
}
.sc-icon svg{ width: 22px; height: 22px; }
.sc-kicker{ display: block; font-size: 11.5px; color: rgba(255,255,255,.75); letter-spacing: .04em; }
.side-card h5{ margin: 2px 0 0; color: #fff; font-family: var(--font-display); font-size: 16.5px; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1.3; }
.side-card ul{ padding: 0 22px; }
.side-card li a{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--ink);
  font-size: 14px;
}
.side-card li a::after{
  content: "\2192";
  color: var(--brass);
  opacity: .5;
  transition: opacity .2s ease, transform .2s ease;
}
.side-card li a:hover::after{ opacity: 1; transform: translateX(3px); }
.all-services-link{ margin: 14px 22px 0; }

.side-help{
  padding: 24px 22px;
  border-radius: 16px;
  background: linear-gradient(160deg, #0B3A66, #082D52);
  color: #fff;
  box-shadow: var(--soft-shadow);
}
.side-help h5{ font-family: var(--font-display); font-size: 19px; font-weight: 500; color: #fff; }
.side-help p{ margin-top: 6px; color: rgba(255,255,255,.75); font-size: 14px; }
.sh-row{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  color: #fff;
  font-weight: 600;
  font-size: 14.5px;
  text-decoration: none;
}
.sh-row:hover{ text-decoration: underline; }
.sh-ico{
  display: grid; place-items: center;
  width: 34px; height: 34px;
  border-radius: 10px;
  background: rgba(21,182,237,.18);
  color: #9ee6ff;
}
.sh-btn{ width: 100%; justify-content: center; margin-top: 20px; border-radius: 12px; }

/* tablet & phone */
@media (max-width: 1000px){
  .svc-detail-head{ grid-template-columns: auto minmax(0, 1fr); }
  .sd-actions{ grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 860px){
  .svc-detail-grid{ grid-template-columns: minmax(0, 1fr); }
  .svc-detail-side{ position: relative; top: auto; }
}
@media (max-width: 560px){
  .svc-detail-head{ grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 24px 20px; }
  .sd-icon{ width: 58px; height: 58px; border-radius: 17px; }
  .sd-icon svg{ width: 28px; height: 28px; }
  .sd-actions{ flex-direction: column; }
  .sd-frame-title{ font-size: 12px; }
  .mini-faq{ padding: 20px 18px; }
  .mf-row{ grid-template-columns: 32px minmax(0, 1fr); gap: 12px; }
  .mf-badge{ width: 32px; height: 32px; font-size: 15px; }
  .svc-pager{ grid-template-columns: 1fr; }
  .sp-next{ text-align: left; align-items: flex-start; }
}


/* =========================================================
   GUIDES PAGE (resources.html) redesign
   ========================================================= */
/* intro: text left, framed image right */
.guides-intro{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
  margin-bottom: 56px;
}
.guides-intro .sec-head{ margin-bottom: 0; }
.guides-hero{ margin-bottom: 0; }
.guides-hero img{ height: 340px; }
.guides-stats{
  display: flex;
  gap: 14px;
  margin-top: 26px;
  padding: 0;
  list-style: none;
}
.guides-stats li{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px 12px 12px;
  border-radius: 16px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: 0 1px 2px rgba(15,39,66,.05);
}
.guides-stats strong{
  display: grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--grad-blue);
  color: #fff;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
}
.guides-stats span{ color: var(--ink); font-size: 14px; font-weight: 500; line-height: 1.3; max-width: 12ch; }

/* topic filter */
.guide-filters{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.8);
  border: 1px solid var(--line);
  box-shadow: 0 14px 34px -24px rgba(15,39,66,.45);
}
.gf-chip{
  padding: 9px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink-soft);
  font: 600 13.5px var(--font-body);
  cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.gf-chip:hover{ background: var(--paper-dim); border-color: var(--line); color: var(--ink); }
.gf-chip.is-active{ background: var(--grad-blue); color: #fff; box-shadow: 0 10px 22px -12px rgba(11,58,102,.75); }
.gf-chip:focus-visible{ outline: 3px solid rgba(47,128,237,.45); outline-offset: 2px; }

/* guide cards */
.guide-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.guide-card{
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 28px 26px 24px;
  border-radius: 20px;
}
.guide-card[hidden]{ display: none !important; }
.guide-card .gc-icon{
  display: grid; place-items: center;
  width: 52px; height: 52px;
  margin-bottom: 20px;
  border-radius: 15px;
  background: rgba(47,128,237,.10);
  color: var(--brass);
  transition: background .3s ease, color .3s ease, transform .5s cubic-bezier(.22,1,.36,1);
}
.guide-card .gc-icon svg{ width: 26px; height: 26px; }
.guide-card .tag{ margin-bottom: 0; }
.guide-card h3{ margin-top: 14px; }
.guide-card p{ margin-top: 10px; flex: 1; }
.gc-link{
  align-self: flex-start;
  margin-top: 20px;
  padding-top: 16px;
  width: 100%;
  border-top: 1px dashed var(--line);
  color: var(--ocean-2);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}
.gc-link:hover{ text-decoration: underline; }
@media (hover:hover){
  .guide-card:hover .gc-icon{ background: var(--grad-blue); color: #fff; transform: rotate(-6deg); }
}

/* featured guide */
.guide-card.is-featured{
  grid-column: span 2;
  grid-row: span 1;
  border: 0;
  color: #fff;
  background:
    radial-gradient(70% 90% at 100% 0%, rgba(21,182,237,.35) 0%, rgba(21,182,237,0) 70%),
    linear-gradient(150deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
  box-shadow: 0 30px 60px -30px rgba(11,58,102,.75);
}
.guide-card.is-featured::after{ display: none; }
.guide-card.is-featured .gc-icon{ background: #fff; color: var(--ocean-2); }
.guide-card.is-featured .gc-featured{
  position: absolute;
  top: 28px; right: 26px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.28);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.guide-card.is-featured .tag{ background: rgba(255,255,255,.16); color: #fff; }
.guide-card.is-featured h3{ color: #fff; font-size: clamp(22px, 2.4vw, 30px); max-width: 22ch; }
.guide-card.is-featured p{ color: rgba(255,255,255,.82); font-size: 15.5px; max-width: 56ch; }
.guide-card.is-featured .gc-link{ color: #fff; border-top-color: rgba(255,255,255,.25); }
@media (hover:hover){
  .guide-card.is-featured:hover h3{ color: #fff; }
  .guide-card.is-featured:hover .gc-icon{ background: #fff; color: var(--ocean-2); }
}
/* when a filter is on, the featured card is a normal-size card */
.guide-grid.is-filtered .guide-card.is-featured{ grid-column: auto; }

.guide-empty{ margin-top: 20px; color: var(--ink-soft); }

/* closing strip */
.guide-cta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 48px;
  padding: 28px 32px;
  border-radius: 22px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--soft-shadow);
}
.guide-cta h3{ font-size: 22px; }
.guide-cta p{ margin-top: 6px; color: var(--ink-soft); }
.guide-cta-actions{ display: flex; gap: 10px; flex-wrap: wrap; }
.guide-cta-actions .btn{ border-radius: 12px; }

/* tablet & phone */
@media (max-width: 960px){
  .guides-intro{ grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .guide-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .guide-grid{ grid-template-columns: 1fr; gap: 14px; }
  .guide-card.is-featured{ grid-column: auto; }
  .guide-card.is-featured .gc-featured{ position: static; align-self: flex-start; margin-bottom: 14px; }
  .guides-hero img{ height: 220px; }
  .guides-stats{ flex-wrap: wrap; }
  .guide-filters{ flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .guide-filters::-webkit-scrollbar{ display: none; }
  .gf-chip{ white-space: nowrap; }
  .guide-cta{ padding: 24px 20px; }
}
.guides-hero img{ object-position: left center; }
.guide-card.is-featured{ grid-row: span 2; justify-content: flex-end; }
.guide-card.is-featured .gc-icon{ width: 64px; height: 64px; border-radius: 18px; }
.guide-card.is-featured .gc-icon svg{ width: 32px; height: 32px; }
.guide-grid.is-filtered .guide-card.is-featured{ grid-row: auto; }
@media (max-width: 960px){
  .guide-card.is-featured{ grid-row: auto; }
}
.guide-card.is-featured p{ flex: none; }
.guide-card.is-featured .tag{ margin-top: auto; }
.guide-card.is-featured{
  background:
    radial-gradient(circle at 78% 40%, transparent 0 70px, rgba(255,255,255,.07) 71px 72px, transparent 73px 120px, rgba(255,255,255,.06) 121px 122px, transparent 123px 175px, rgba(255,255,255,.05) 176px 177px, transparent 178px),
    radial-gradient(70% 90% at 100% 0%, rgba(21,182,237,.35) 0%, rgba(21,182,237,0) 70%),
    linear-gradient(150deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
}
@media (max-width: 960px){
  .guide-card.is-featured .tag{ margin-top: 0; }
}


/* =========================================================
   FAQ PAGE redesign
   ========================================================= */
.faq-intro{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 56px;
  align-items: center;
  margin-bottom: 56px;
}
.faq-intro .sec-head{ margin-bottom: 0; }
.faq-hero{ margin-bottom: 0; }
.faq-hero img{ height: 280px; }

.faq-layout{
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.faq-side{ position: sticky; top: 100px; display: grid; gap: 18px; }

.faq-tools{
  padding: 20px;
  border-radius: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--soft-shadow);
}
.faq-search{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink-soft);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.faq-search:focus-within{ border-color: var(--brass); box-shadow: 0 0 0 4px rgba(47,128,237,.15); }
.faq-search input{
  flex: 1;
  min-width: 0;
  padding: 13px 0;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ink);
  font: 15px var(--font-body);
}
.faq-count{ margin-top: 12px; color: var(--ink-soft); font-size: 13px; }
.faq-toggle-all{ display: flex; gap: 8px; margin-top: 14px; }
.faq-toggle-all button{
  flex: 1;
  padding: 9px 10px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ocean-2);
  font: 600 13px var(--font-body);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.faq-toggle-all button:hover{ background: var(--brass); border-color: var(--brass); color: #fff; }
.faq-toggle-all button:focus-visible{ outline: 3px solid rgba(47,128,237,.45); outline-offset: 2px; }

/* numbered question cards */
.faq-page .faq-list{ counter-reset: faqp; gap: 14px; }
.faq-page .faq-item{
  counter-increment: faqp;
  position: relative;
  border-radius: 16px;
  transition: border-color .3s ease, box-shadow .35s ease, transform .35s cubic-bezier(.22,1,.36,1), background-color .3s ease;
}
.faq-page .faq-item[hidden]{ display: none; }
.faq-page .faq-item::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:4px;
  background: var(--grad-blue);
  border-radius: 16px 0 0 16px;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.faq-page .faq-q{ justify-content: flex-start; gap: 18px; padding: 20px 22px; line-height: 1.4; }
.faq-page .faq-q::before{
  content: counter(faqp, decimal-leading-zero);
  flex: none;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: rgba(47,128,237,.09);
  color: var(--brass);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  transition: background .3s ease, color .3s ease;
}
.faq-page .faq-q > span:first-child{ flex: 1; }
.faq-page .faq-q .plus{ margin-left: auto; border: 1px solid var(--line); background: var(--card); }
.faq-page .faq-a-inner{ padding: 0 26px 24px 82px; font-size: 15.5px; line-height: 1.7; max-width: none; }
.faq-page .faq-item[data-open="true"]{
  border-color: rgba(47,128,237,.4);
  background: linear-gradient(180deg, rgba(47,128,237,.05), rgba(47,128,237,0) 60%), var(--card);
  box-shadow: var(--lift-shadow);
}
.faq-page .faq-item[data-open="true"]::before{ transform: scaleY(1); }
.faq-page .faq-item[data-open="true"] .faq-q::before{ background: var(--grad-blue); color: #fff; }
.faq-page .faq-item[data-open="true"] .plus{ background: var(--brass); border-color: var(--brass); color: #fff; }
@media (hover:hover){
  .faq-page .faq-item:hover{ border-color: rgba(47,128,237,.4); box-shadow: var(--soft-shadow); transform: translateX(4px); }
  .faq-page .faq-item:hover .faq-q::before{ background: var(--brass); color: #fff; }
}
.faq-page .faq-q:focus-visible{ outline: 3px solid rgba(47,128,237,.45); outline-offset: -3px; border-radius: 16px; }

.faq-empty{
  padding: 22px 24px;
  border-radius: 16px;
  border: 1px dashed var(--line);
  background: var(--card);
  color: var(--ink-soft);
}
.faq-empty a{ color: var(--ocean-2); font-weight: 600; }

/* tablet & phone */
@media (max-width: 960px){
  .faq-intro{ grid-template-columns: minmax(0, 1fr); gap: 28px; margin-bottom: 40px; }
  .faq-layout{ grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .faq-side{ position: relative; top: auto; }
  .faq-help{ order: 2; }
  .faq-main{ order: 1; }
}
@media (max-width: 960px){
  /* on small screens: search first, questions, then the help card */
  .faq-layout{ display: flex; flex-direction: column; }
  .faq-side{ display: contents; }
  .faq-tools{ order: 0; }
  .faq-main{ order: 1; }
  .faq-help{ order: 2; }
}
@media (max-width: 560px){
  .faq-hero img{ height: 200px; }
  .faq-page .faq-q{ gap: 14px; padding: 18px 16px; font-size: 16px; }
  .faq-page .faq-q::before{ width: 36px; height: 36px; border-radius: 10px; font-size: 12px; }
  .faq-page .faq-a-inner{ padding: 0 18px 20px 66px; font-size: 15px; }
}


/* =========================================================
   CONTACT PAGE redesign
   ========================================================= */
.contact-intro{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
  margin-bottom: 40px;
}
.contact-intro .sec-head{ margin-bottom: 0; }
.contact-hero{ margin-bottom: 0; }
.contact-hero img{ height: 300px; }

/* quick action cards */
.contact-quick{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 48px;
}
.cq-card{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 24px 24px 22px;
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  text-decoration: none;
  background:
    radial-gradient(70% 90% at 100% 0%, rgba(21,182,237,.35) 0%, rgba(21,182,237,0) 70%),
    linear-gradient(150deg, #2F80ED 0%, #145DA0 55%, #0B3A66 100%);
  box-shadow: 0 24px 44px -28px rgba(11,58,102,.8);
  transition: opacity .8s ease, transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease;
}
.cq-card::after{
  content:"";
  position:absolute; right:-40px; bottom:-60px;
  width: 160px; height: 160px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  z-index: -1;
}
.cq-ico{
  display: grid; place-items: center;
  width: 48px; height: 48px;
  margin-bottom: 14px;
  border-radius: 14px;
  background: #fff;
  color: var(--ocean-2);
}
.cq-ico svg{ width: 24px; height: 24px; }
.cq-label{
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.75);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cq-val{ font-family: var(--font-display); font-size: 21px; font-weight: 500; overflow-wrap: anywhere; }
.cq-note{ margin-top: 4px; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.5; }
.cq-status{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: none;
}
.cq-status::before{ content:""; width: 7px; height: 7px; border-radius: 50%; }
.cq-status.is-open{ background: rgba(52,168,83,.22); color: #b9f5c9; }
.cq-status.is-open::before{ background: #34D399; box-shadow: 0 0 0 3px rgba(52,211,153,.25); }
.cq-status.is-closed{ background: rgba(255,255,255,.14); color: rgba(255,255,255,.85); }
.cq-status.is-closed::before{ background: #FCA5A5; }
@media (hover:hover){
  a.cq-card.is-visible:hover{ transform: translateY(-6px); box-shadow: 0 30px 56px -28px rgba(11,58,102,.9); }
}
a.cq-card:focus-visible{ outline: 3px solid var(--brass); outline-offset: 3px; }

/* form + side column */
.contact-page .contact-grid{ grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); gap: 32px; align-items: start; }
.fc-head{ margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px dashed var(--line); }
.fc-head h3{ font-size: 26px; }
.fc-head p{ margin-top: 6px; color: var(--ink-soft); }

/* option chips (radio buttons) */
.chip-field{ border: 0; margin: 0 0 20px; padding: 0; min-width: 0; }
.chip-field legend{ display: block; padding: 0; margin-bottom: 10px; font-size: 13px; font-weight: 600; color: var(--ink); }
.chip-group{ display: flex; flex-wrap: wrap; gap: 8px; }
.chip{ position: relative; cursor: pointer; }
.chip input{ position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip span{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-soft);
  font-size: 13.5px;
  font-weight: 500;
  transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.chip:hover span{ border-color: rgba(47,128,237,.45); color: var(--ink); }
.chip input:checked + span{
  background: var(--grad-blue);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 18px -10px rgba(11,58,102,.7);
}
.chip input:checked + span::before{ content: "\2713"; font-weight: 700; }
.chip input:focus-visible + span{ outline: 3px solid rgba(47,128,237,.45); outline-offset: 2px; }
.contact-page .form-card .btn{ padding: 15px 30px; }

.contact-side{ display: grid; gap: 16px; }
.office-card{
  padding: 22px 22px 18px;
  border-radius: 18px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--soft-shadow);
  transition: border-color .3s ease, transform .3s ease;
}
.office-card:hover{ border-color: rgba(47,128,237,.35); }
.oc-head{ display: flex; align-items: center; gap: 10px; }
.oc-head .flag-icon{ width: 26px; }
.oc-head h4{ font-family: var(--font-display); font-size: 19px; font-weight: 500; }
.oc-addr{ margin-top: 12px; color: var(--ink); font-size: 15px; line-height: 1.6; }
.oc-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.oc-links a{ color: var(--ocean-2); font-size: 14px; font-weight: 600; text-decoration: none; }
.oc-links a:hover{ text-decoration: underline; }

.review-card{
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(160deg, #0B3A66, #082D52);
  box-shadow: var(--soft-shadow);
  transition: transform .3s ease;
}
.review-card:hover{ transform: translateY(-3px); }
.rc-score{ font-family: var(--font-display); font-size: 40px; font-weight: 600; line-height: 1; }
.rc-body{ display: flex; flex-direction: column; gap: 3px; flex: 1; }
.rc-stars{ color: #FFC531; letter-spacing: 2px; }
.rc-text{ color: rgba(255,255,255,.8); font-size: 13.5px; }
.rc-go{
  display: grid; place-items: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
}

/* tablet & phone */
@media (max-width: 960px){
  .contact-intro{ grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .contact-page .contact-grid{ grid-template-columns: minmax(0, 1fr); }
  .contact-side{ grid-template-columns: repeat(2, 1fr); }
  .review-card{ grid-column: 1 / -1; }
}
@media (max-width: 760px){
  .contact-quick{ grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 560px){
  .contact-hero img{ height: 200px; }
  .contact-side{ grid-template-columns: minmax(0, 1fr); }
  .cq-card{ padding: 20px; }
  .cq-val{ font-size: 19px; }
}

/* location pill on service pages */
.sd-area{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(47,128,237,.09);
  border: 1px solid rgba(47,128,237,.2);
  color: var(--ocean-2);
  font-size: 12px;
  font-weight: 700;
}

/* larger text on the page banners */
.pb-title{ font-size: clamp(38px, 5.4vw, 68px); max-width: 22ch; }
.pb-sub{ font-size: clamp(17px, 1.6vw, 21px); }
.pb-crumb{ font-size: 14px; }
@media (max-width: 560px){
  .pb-title{ font-size: 36px; }
}

/* =========================================================
   FONT: Segoe UI across the site (system font; falls back to
   the device's own UI font on Mac, iOS and Android)
   ========================================================= */
:root{
  --font-body: "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
}
body{ font-family: var(--font-body); }
h1, h2, h3, h4, h5,
.pb-title, .faq-q, .mini-faq-q, .sp-name, .cq-val, .rc-score{ font-family: var(--font-display); }
h1, h2, h3, .pb-title{ font-weight: 600; letter-spacing: -0.01em; }

/* =========================================================
   FOOTER NOTICE (disclaimer) — redesigned
   ========================================================= */
.notice-box{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  margin-top: 52px;
  padding: 26px 30px 26px 26px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.12);
  border-left: 3px solid #C9A24B;
  overflow: hidden;
}
.notice-box::after{
  /* faint large shield watermark */
  content: "";
  position: absolute;
  right: -30px; top: -30px;
  width: 160px; height: 160px;
  border-radius: 50%;
  border: 1px solid rgba(201,162,75,.18);
  box-shadow: 0 0 0 26px rgba(201,162,75,.04);
  pointer-events: none;
}
.nb-icon{
  display: grid; place-items: center;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: rgba(201,162,75,.15);
  border: 1px solid rgba(201,162,75,.45);
  color: #E3C77E;
}
.nb-title{
  margin: 2px 0 8px;
  color: #E3C77E;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
footer.site .notice-box .disclaimer{
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  border-radius: 0;
  max-width: 120ch;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.75;
}
@media (max-width: 560px){
  .notice-box{ grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 20px 18px; margin-top: 40px; }
  .nb-icon{ width: 40px; height: 40px; }
}

/* hero slider: Earth video slide */
[data-page="home"] .hero-slider .hs-slide video{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  background: #01070f;
  pointer-events: none;
}

/* Page-specific crops keep the subject visible in wide header photos. */
[data-page="about"] .inner-page-hero img{ height: clamp(260px, 40vw, 480px); object-position: center 18%; }
[data-page="contact"] .inner-page-hero img{ object-position: center 52%; }
[data-page="resources"] .inner-page-hero img{ object-position: center 48%; }

/* Photographs blend into the blue page-title banners. */
.page-banner-photo{
  --banner-photo: url("../images/banner-services.jpg");
  --banner-position: center 55%;
  background:
    linear-gradient(90deg, #0b3a66 0%, rgba(11,58,102,.97) 28%, rgba(11,58,102,.8) 50%, rgba(8,35,62,.36) 78%, rgba(8,35,62,.48) 100%),
    var(--banner-photo) var(--banner-position) / cover no-repeat;
}
.page-banner-photo[data-banner="about"]{
  --banner-photo: url("../images/banner-about.jpg");
  --banner-position: center 30%;
}
.page-banner-photo[data-banner="resources"]{
  --banner-photo: url("../images/banner-guides.jpg");
  --banner-position: center 48%;
}
.page-banner-photo[data-banner="contact"]{
  --banner-photo: url("../images/banner-contact.jpg");
  --banner-position: center 50%;
}
.page-banner-photo[data-banner="faq"]{
  --banner-photo: url("../images/banner-faq.jpg");
  --banner-position: center 62%;
}
.page-banner-photo::before{ opacity: .3; }
.page-banner-photo .wrap::after{ display: none; }
.page-banner-photo .pb-title,
.page-banner-photo .pb-sub{ text-shadow: 0 2px 18px rgba(0,18,37,.35); }
@media (max-width: 767px){
  .page-banner-photo{
    background:
      linear-gradient(90deg, rgba(11,58,102,.96), rgba(11,58,102,.78)),
      var(--banner-photo) var(--banner-position) / cover no-repeat;
  }
}

/* Guides: six balanced cards instead of an oversized two-row feature. */
[data-page="resources"] .guide-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 20px;
}
[data-page="resources"] .guide-card{
  padding: 24px;
  border-radius: 16px;
  box-shadow: 0 10px 30px -22px rgba(11,58,102,.35);
}
[data-page="resources"] .guide-card.is-featured{
  grid-column: auto;
  grid-row: auto;
  justify-content: flex-start;
}
[data-page="resources"] .guide-card .gc-icon{
  width: 44px; height: 44px;
  border-radius: 12px;
  margin-bottom: 18px;
}
[data-page="resources"] .guide-card .gc-icon svg{ width: 24px; height: 24px; }
[data-page="resources"] .guide-card .tag{ margin-top: 0; align-self: flex-start; }
[data-page="resources"] .guide-card h3{
  font-size: 21px;
  line-height: 1.35;
  max-width: none;
  margin-top: 14px;
}
[data-page="resources"] .guide-card p{
  font-size: 15px;
  line-height: 1.65;
  flex: 1;
  margin-top: 10px;
}
[data-page="resources"] .guide-card .gc-featured{
  position: absolute;
  top: 28px; right: 20px;
  font-size: 9px;
  letter-spacing: .06em;
  padding: 5px 8px;
  margin: 0;
}
[data-page="resources"] .guide-card .gc-link{ margin-top: 20px; padding-top: 16px; }
[data-page="resources"] .guide-filters{ margin-bottom: 24px; border-radius: 14px; gap: 4px; }
[data-page="resources"] .gf-chip{ flex: 1 0 auto; padding: 9px 12px; }
@media (max-width: 960px){
  [data-page="resources"] .guide-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  [data-page="resources"] .guide-grid{ grid-template-columns: minmax(0, 1fr); gap: 16px; }
  [data-page="resources"] .guide-card{ padding: 22px; }
}
