:root{
  --gp-navy:#071743;
  --gp-navy-2:#0b2259;
  --gp-cream:#f5f0e5;
  --gp-paper:#fbf8f1;
  --gp-soft:#ebe3d3;
  --gp-gold:#c99a22;
  --gp-gold-hi:#e7bd4e;
  --gp-ink:#10182b;
  --gp-line:#d7cfbe;
  --gp-muted:#667086;
}
.generic-product-page{background:var(--gp-cream);color:var(--gp-ink)}
.generic-product-page main{overflow:hidden}
.gp-wrap{width:min(1320px,92vw);margin-inline:auto}
.gp-kicker,.gp-label{display:inline-block;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:900;color:#866410}
.gp-crumb{display:flex;gap:9px;flex-wrap:wrap;align-items:center;font-size:12px;color:rgba(16,24,43,.58);padding:24px 0 34px}
.gp-crumb a{text-decoration:none}.gp-crumb strong{color:var(--gp-ink)}
.gp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--gp-navy);font:inherit;font-size:13px;font-weight:900;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.gp-btn:hover,.gp-btn:focus-visible{transform:translateY(-2px);box-shadow:0 14px 30px rgba(7,23,67,.13)}
.gp-btn.primary{background:var(--gp-gold);border-color:var(--gp-gold);color:var(--gp-navy)}
.gp-btn.secondary{background:transparent;color:var(--gp-navy)}
.gp-btn.light{background:#fff;border-color:#fff;color:var(--gp-navy)}
.gp-btn.ghost-light{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
.gp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}

/* Hero */
.gp-hero{background:radial-gradient(circle at 78% 12%,rgba(201,154,34,.17),transparent 26%),linear-gradient(135deg,#f8f3e9 0%,#ece3d1 100%);border-bottom:1px solid var(--gp-line)}
.gp-hero-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);gap:54px;align-items:stretch;padding-bottom:72px}
.gp-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:26px 0 28px}
.gp-hero h1{font-size:clamp(56px,6.6vw,104px);line-height:.89;letter-spacing:-.062em;margin:14px 0 24px;max-width:900px;color:var(--gp-navy)}
.gp-lead{font-size:clamp(18px,1.7vw,24px);line-height:1.6;max-width:800px;color:#2a3652;margin:0}
.gp-alias{font-size:12px;line-height:1.55;margin:24px 0 0;color:rgba(16,24,43,.66)}
.gp-alias strong{color:var(--gp-ink)}
.gp-hero-media{position:relative;display:grid;grid-template-rows:minmax(420px,1fr) auto;background:var(--gp-navy);box-shadow:0 28px 70px rgba(7,23,67,.16)}
.gp-hero-media>img{width:100%;height:100%;min-height:430px;max-height:560px;object-fit:cover;display:block;filter:saturate(.92) contrast(1.02)}
.gp-hero-media:before{content:"";position:absolute;inset:0 0 auto;height:58%;z-index:1;background:linear-gradient(180deg,rgba(7,23,67,.04),rgba(7,23,67,.22));pointer-events:none}
.gp-hero-caption{position:absolute;z-index:2;top:18px;left:18px;display:grid;gap:3px;background:rgba(247,243,234,.9);backdrop-filter:blur(10px);padding:11px 13px;border:1px solid rgba(7,23,67,.12)}
.gp-hero-caption span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#806419;font-weight:900}.gp-hero-caption strong{font-size:13px;color:var(--gp-navy)}
.gp-commerce{position:relative;z-index:3;background:var(--gp-navy);color:white;padding:28px 30px 30px}
.gp-commerce .gp-label{color:var(--gp-gold-hi)}
.gp-commerce h2{font-size:27px;line-height:1.12;letter-spacing:-.035em;margin:9px 0 22px;max-width:600px}
.gp-price-row{border-top:1px solid rgba(255,255,255,.18);padding:14px 0;display:grid;grid-template-columns:1fr auto;gap:4px 18px;align-items:end}
.gp-price-row span{font-size:11px;opacity:.72}.gp-price-row strong{font-size:20px;text-align:right;color:#fff}.gp-price-row small{grid-column:1/-1;font-size:11px;line-height:1.45;color:rgba(255,255,255,.63)}
.gp-market-switch{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 18px}
.gp-market-switch a{display:flex;align-items:center;gap:7px;min-height:40px;color:white;text-decoration:none;border:1px solid rgba(255,255,255,.25);padding:8px 10px;font-size:12px;font-weight:800}
.gp-market-switch a.active{border-color:var(--gp-gold-hi);background:rgba(230,186,69,.13)}
.gp-market-switch img{width:22px;height:15px;object-fit:cover;border-radius:1px}
.gp-source{color:#f2ce6e;font-size:12px;font-weight:800;text-underline-offset:3px}

/* Quick decisions + section nav */
.gp-decision{background:#f9f5ec;border-bottom:1px solid var(--gp-line)}
.gp-decision-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.gp-decision article{padding:22px 18px;border-right:1px solid var(--gp-line);min-width:0}.gp-decision article:first-child{border-left:1px solid var(--gp-line)}
.gp-decision span{display:block;font-size:9px;line-height:1.35;text-transform:uppercase;letter-spacing:.12em;color:#876713;font-weight:900;margin-bottom:9px}
.gp-decision strong{display:block;font-size:13px;line-height:1.45;color:var(--gp-navy)}
.gp-subnav{position:sticky;top:76px;background:rgba(245,240,229,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--gp-line);z-index:45}
.gp-subnav .gp-wrap{display:flex;gap:24px;align-items:center;overflow:auto;scrollbar-width:thin}
.gp-subnav a{padding:17px 0;text-decoration:none;white-space:nowrap;font-size:12px;font-weight:900}
.gp-subnav-cta{margin-left:auto;flex:0 0 auto;border:0;background:var(--gp-gold);color:var(--gp-navy);min-height:38px;padding:0 14px;font-weight:900;cursor:pointer}

/* Shared sections */
.gp-section{padding:92px 0}.gp-section-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);gap:70px;align-items:end;margin-bottom:40px}
.gp-section h2,.gp-editorial-copy h2{font-size:clamp(42px,4.4vw,68px);line-height:.96;letter-spacing:-.052em;margin:12px 0 20px;color:var(--gp-navy)}
.gp-section-head>p{font-size:15px;line-height:1.65;color:rgba(16,24,43,.66);margin:0}
.gp-editorial-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.68fr);gap:72px;align-items:start}
.gp-editorial-lead{font-size:20px;line-height:1.7;color:#2d3851;max-width:820px}
.gp-benefit-stack{display:grid;border-top:1px solid var(--gp-line)}
.gp-benefit-stack article{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--gp-line)}
.gp-benefit-stack span{font-size:11px;font-weight:900;color:#8c6912;padding-top:5px}.gp-benefit-stack p{margin:0;font-size:15px;line-height:1.6}

/* Capabilities */
.gp-capabilities{background:var(--gp-navy);color:#fff}
.gp-capabilities h2{color:#fff}.gp-capabilities .gp-kicker{color:var(--gp-gold-hi)}.gp-capabilities .gp-section-head>p{color:rgba(255,255,255,.68)}
.gp-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2)}
.gp-capability-grid article{min-height:220px;padding:28px;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent)}
.gp-capability-grid span{font-size:11px;color:var(--gp-gold-hi);font-weight:900}.gp-capability-grid h3{font-size:22px;line-height:1.34;letter-spacing:-.02em;margin:36px 0 0;color:#fff}

/* Workflow */
.gp-workflow{background:#edf2f5}
.gp-workflow-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #cbd3d9;border-left:1px solid #cbd3d9}
.gp-workflow-track article{position:relative;min-height:260px;padding:24px 22px;border-right:1px solid #cbd3d9;border-bottom:1px solid #cbd3d9}
.gp-workflow-track article:not(:last-child):after{content:"→";position:absolute;right:-12px;top:28px;z-index:2;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gp-gold);color:var(--gp-navy);font-weight:900}
.gp-workflow-track span{font-size:11px;font-weight:900;color:#8a6611}.gp-workflow-track h3{font-size:18px;line-height:1.2;margin:32px 0 14px;color:var(--gp-navy)}.gp-workflow-track p{font-size:14px;line-height:1.58;color:#526078;margin:0}

/* Applications */
.gp-application-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gp-application-grid article{min-height:210px;border:1px solid var(--gp-line);padding:26px;background:rgba(255,255,255,.3);display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.gp-application-grid article:hover{transform:translateY(-3px);background:#fbf8f1;box-shadow:0 16px 34px rgba(7,23,67,.08)}
.gp-application-grid span{font-size:11px;font-weight:900;color:#8a6813}.gp-application-grid h3{font-size:25px;line-height:1.1;letter-spacing:-.03em;margin:42px 0 0;color:var(--gp-navy)}

/* Visual feature */
.gp-visual-feature{min-height:660px;display:grid;grid-template-columns:1.12fr .88fr;background:#e8edf0}
.gp-visual-image{min-height:620px;overflow:hidden}.gp-visual-image img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.9) contrast(1.03)}
.gp-visual-copy{padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center}
.gp-visual-copy h2{font-size:clamp(46px,5vw,76px);line-height:.93;letter-spacing:-.055em;margin:12px 0 20px;color:var(--gp-navy)}
.gp-visual-copy p{font-size:17px;line-height:1.7;color:#49566d}.gp-visual-copy ul{list-style:none;padding:0;margin:24px 0 0;border-top:1px solid #c6d0d7}.gp-visual-copy li{font-size:13px;font-weight:800;line-height:1.45;padding:13px 0;border-bottom:1px solid #c6d0d7}

/* Pricing */
.gp-pricing-section{background:#f1eadc}
.gp-pricing-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);gap:18px;align-items:start}
.gp-reference-panel,.gp-commercial-panel{padding:30px;border:1px solid var(--gp-line);min-width:0}
.gp-reference-panel{background:var(--gp-navy);color:#fff;border-color:var(--gp-navy)}.gp-commercial-panel{background:#fbf8f1;border-top:4px solid var(--gp-gold)}
.gp-panel-head>span{font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:900;color:var(--gp-gold-hi)}.gp-commercial-panel .gp-panel-head>span{color:#866410}
.gp-panel-head h3{font-size:30px;line-height:1.05;margin:8px 0 7px;letter-spacing:-.035em}.gp-panel-head p{font-size:12px;line-height:1.55;margin:0;color:rgba(255,255,255,.65)}.gp-commercial-panel .gp-panel-head p{color:rgba(16,24,43,.63)}
.gp-tier-grid{display:grid;gap:10px;margin:24px 0}.gp-tier-count-1{grid-template-columns:minmax(0,520px)}.gp-tier-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-tier-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gp-tier-count-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.gp-tier-grid article{border:1px solid rgba(255,255,255,.2);padding:20px;min-height:205px;display:flex;flex-direction:column}.gp-tier-grid article>span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--gp-gold-hi);font-weight:900}.gp-tier-grid h4{font-size:19px;line-height:1.15;margin:18px 0 22px}.gp-tier-grid strong{font-size:24px;color:#f0ca66}.gp-tier-grid p{font-size:12px;line-height:1.45;color:rgba(255,255,255,.66);margin:8px 0 0}.gp-tier-grid .gp-tier-limit{border-top:1px solid rgba(255,255,255,.16);padding-top:10px;margin-top:auto}
.gp-source-inline{display:inline-block;color:#f0ca66;font-size:12px;font-weight:900;margin-top:8px;text-underline-offset:3px}
.gp-reference-empty{border:1px dashed currentColor;padding:20px;margin:22px 0;opacity:.82}.gp-reference-empty p{font-size:13px;line-height:1.55;margin:8px 0 0}
.gp-market-switch-light a{color:var(--gp-navy);border-color:var(--gp-line);background:#fff}.gp-market-switch-light a.active{color:#fff;background:var(--gp-navy);border-color:var(--gp-navy)}
.gp-commercial-grid{display:grid;gap:10px;margin:18px 0 22px}.gp-commercial-count-1{grid-template-columns:minmax(0,520px)}.gp-commercial-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-commercial-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gp-commercial-count-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.gp-commercial-grid article{border:1px solid var(--gp-line);padding:18px;min-height:130px;display:flex;flex-direction:column;justify-content:flex-end}.gp-commercial-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#79621f}.gp-commercial-grid strong{font-size:24px;letter-spacing:-.025em;margin-top:20px;color:var(--gp-navy)}.gp-commercial-grid small{font-size:11px;line-height:1.4;color:var(--gp-muted);margin-top:6px}

/* Selection */
.gp-selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.gp-selection-grid article{border:1px solid var(--gp-line);padding:26px;background:rgba(255,255,255,.32);min-height:260px}.gp-selection-grid .gp-selection-primary{background:var(--gp-navy);color:#fff;border-color:var(--gp-navy)}
.gp-selection-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#886711;font-weight:900}.gp-selection-primary span{color:var(--gp-gold-hi)}
.gp-selection-grid p{font-size:17px;line-height:1.7;margin:28px 0 0}.gp-selection-grid ul{list-style:none;padding:0;margin:22px 0 0}.gp-selection-grid li{position:relative;padding:12px 0 12px 24px;border-top:1px solid var(--gp-line);font-size:14px;line-height:1.5}.gp-selection-grid li:before{content:"→";position:absolute;left:0;color:#8a6813;font-weight:900}

/* Integrations + related */
.gp-connections{background:#eae3d5}.gp-connections-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.gp-connection-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#866410;font-weight:900;margin-bottom:13px}
.gp-integration-list,.gp-related-grid{display:grid;border-top:1px solid var(--gp-line)}
.gp-integration-list article{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:17px 0;border-bottom:1px solid var(--gp-line);align-items:start}.gp-integration-list article span{font-size:11px;color:#896712;font-weight:900}.gp-integration-list strong{font-size:15px;line-height:1.5}
.gp-related-grid a,.gp-related-grid>div{display:grid;grid-template-columns:120px 1fr auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--gp-line);text-decoration:none}.gp-related-grid a:hover strong,.gp-related-grid a:focus-visible strong{text-decoration:underline;text-underline-offset:3px}.gp-related-grid span,.gp-related-grid small{font-size:10px;line-height:1.4;color:#6f6243;text-transform:uppercase;letter-spacing:.06em}.gp-related-grid strong{font-size:16px;color:var(--gp-navy)}

/* FAQ */
.gp-faq-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:72px;align-items:start}.gp-faq-intro{position:sticky;top:160px}.gp-faq-intro h2{font-size:clamp(40px,4.4vw,66px);line-height:.97;letter-spacing:-.05em;margin:12px 0 20px;color:var(--gp-navy)}.gp-faq-intro p{font-size:15px;line-height:1.65;color:#596379}
.gp-faq details{border-top:1px solid var(--gp-line);padding:18px 0}.gp-faq details:last-child{border-bottom:1px solid var(--gp-line)}.gp-faq summary{font-size:18px;line-height:1.35;font-weight:900;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:22px;min-height:44px;align-items:center}.gp-faq summary::-webkit-details-marker{display:none}.gp-faq summary:after{content:"+";flex:0 0 auto;color:#8b6810;font-size:24px}.gp-faq details[open] summary:after{content:"−"}.gp-faq p{font-size:16px;line-height:1.7;color:#546076;max-width:840px;margin:14px 0 4px}

/* CTA */
.gp-final{background:linear-gradient(120deg,#a97f17 0%,#c99a22 52%,#dfb94c 100%);color:var(--gp-navy);padding:88px 0}.gp-final-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(330px,.68fr);gap:72px;align-items:end}.gp-final .gp-kicker{color:var(--gp-navy)}.gp-final h2{font-size:clamp(46px,5.5vw,82px);line-height:.92;letter-spacing:-.06em;margin:12px 0}.gp-final p{font-size:18px;line-height:1.65;margin:0}.gp-final .gp-actions{margin-top:24px}

/* Discipline accents */
.gp-theme-water .gp-hero-caption,.gp-theme-water.gp-final{--gp-accent-local:#2a8daa}.gp-theme-transportation .gp-hero-caption{border-color:rgba(184,122,31,.28)}.gp-theme-geotechnical .gp-hero-caption{border-color:rgba(91,72,48,.24)}

/* Focus / accessibility */
.generic-product-page a:focus-visible,.generic-product-page button:focus-visible,.generic-product-page summary:focus-visible{outline:3px solid #e2ae27;outline-offset:3px}
.gp-subnav a,.gp-subnav button,.gp-market-switch a{min-height:44px}

@media(max-width:1180px){
  .gp-hero-layout{grid-template-columns:1fr;gap:30px}.gp-hero-media{grid-template-columns:1.1fr .9fr;grid-template-rows:1fr}.gp-hero-media>img{min-height:520px;max-height:none}.gp-commerce{display:flex;flex-direction:column;justify-content:center}.gp-decision-grid{grid-template-columns:repeat(3,1fr)}.gp-decision article:nth-child(4){border-left:1px solid var(--gp-line)}
  .gp-workflow-track{grid-template-columns:repeat(3,1fr)}.gp-workflow-track article:nth-child(3):after{display:none}.gp-pricing-split{grid-template-columns:1fr}.gp-tier-count-3{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .gp-wrap{width:min(92vw,100%)}.gp-crumb{padding-bottom:22px}.gp-hero-layout{padding-bottom:54px}.gp-hero-copy{padding-top:8px}.gp-hero h1{font-size:clamp(52px,10vw,76px)}.gp-hero-media{grid-template-columns:1fr;grid-template-rows:auto auto}.gp-hero-media>img{min-height:430px;height:52vw;max-height:520px}.gp-price-row{grid-template-columns:1fr}.gp-price-row strong{text-align:left}.gp-price-row small{grid-column:1}.gp-decision-grid{grid-template-columns:1fr 1fr}.gp-decision article:nth-child(n){border-left:0}.gp-decision article:nth-child(odd){border-left:1px solid var(--gp-line)}
  .gp-subnav{top:76px}.gp-subnav .gp-wrap{gap:18px}.gp-subnav-cta{display:none}
  .gp-section{padding:70px 0}.gp-section-head,.gp-editorial-grid,.gp-faq-layout,.gp-final-grid{grid-template-columns:1fr;gap:30px}.gp-section-head{margin-bottom:28px}.gp-editorial-lead{font-size:18px}.gp-capability-grid,.gp-application-grid{grid-template-columns:1fr 1fr}.gp-workflow-track{grid-template-columns:1fr 1fr}.gp-workflow-track article:nth-child(n):after{display:none}.gp-visual-feature{grid-template-columns:1fr}.gp-visual-image{min-height:440px}.gp-visual-copy{padding:64px 5vw}.gp-connections-grid{grid-template-columns:1fr}.gp-faq-intro{position:static}.gp-tier-count-3,.gp-tier-count-4{grid-template-columns:1fr 1fr}.gp-final{padding:70px 0}
}
@media(max-width:620px){
  .gp-wrap{width:calc(100% - 36px)}.gp-crumb{font-size:11px}.gp-hero h1{font-size:48px}.gp-lead{font-size:17px}.gp-actions{display:grid}.gp-actions .gp-btn{width:100%}.gp-hero-media>img{height:78vw;min-height:330px}.gp-commerce{padding:24px 20px}.gp-commerce h2{font-size:24px}.gp-market-switch{display:grid;grid-template-columns:repeat(3,1fr)}.gp-market-switch a{justify-content:center;padding:8px 6px}.gp-decision-grid{grid-template-columns:1fr}.gp-decision article:nth-child(n){border-left:1px solid var(--gp-line)}
  .gp-section{padding:58px 0}.gp-section h2,.gp-editorial-copy h2{font-size:40px}.gp-capability-grid,.gp-application-grid,.gp-workflow-track{grid-template-columns:1fr}.gp-capability-grid article,.gp-application-grid article{min-height:180px}.gp-visual-image{min-height:330px}.gp-visual-copy{padding:54px 20px}.gp-visual-copy h2{font-size:42px}.gp-reference-panel,.gp-commercial-panel{padding:22px 18px}.gp-tier-count-2,.gp-tier-count-3,.gp-tier-count-4,.gp-commercial-count-2,.gp-commercial-count-3,.gp-commercial-count-4{grid-template-columns:1fr}.gp-tier-grid article{min-height:170px}.gp-selection-grid{grid-template-columns:1fr}.gp-related-grid a,.gp-related-grid>div{grid-template-columns:1fr;gap:5px}.gp-faq summary{font-size:17px}.gp-final h2{font-size:44px}.gp-final p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.gp-btn,.gp-application-grid article{transition:none!important}}
