

:root{
  --content:1320px;
  --page-gutter:clamp(20px,3vw,48px);
  --section-space:clamp(68px,7vw,108px);
  --section-space-small:clamp(48px,5vw,76px);
  --content-gap:clamp(28px,4vw,64px);
}
html{scroll-padding-top:118px}
body{overflow-x:hidden;overflow-wrap:normal;word-break:normal}
.container{width:min(calc(100% - (var(--page-gutter) * 2)),var(--content))}
.section{padding-block:var(--section-space)}
.page-hero,.portal-hero,.form-page-hero,.demo-page{padding-block:clamp(58px,6vw,92px)}
section[id],div[id],form[id],details[id]{scroll-margin-top:118px}
h1,h2,h3{text-wrap:balance}
p,.lead{max-width:72ch}
.lead{line-height:1.55}
.section-head{gap:var(--content-gap);margin-bottom:clamp(34px,4vw,56px)}
.btn-row{gap:14px}
.btn-row:not(:first-child),p + .btn-row,.lead + .btn-row,.check-list + .btn-row,.showcase-points + .btn-row{margin-top:clamp(24px,2.4vw,34px)!important}
.reality-grid .btn-row,.reality-copy .btn-row{margin-top:30px!important}
.btn{min-height:52px;padding:13px 21px;line-height:1.25;text-align:center}
.card-grid,.feature-grid,.solution-grid,.integration-grid,.process-grid,.workflow-grid,.module-grid{gap:clamp(16px,2vw,24px)}
.card,.feature,.solution-card,.integration,.process,.module-card,.trust-card{height:100%}
.hero-panel,.product-shot,.terminal-image,.contact-card,.demo-form{min-width:0}
.hero-panel img,.product-shot img,.terminal-image img{width:100%;height:auto}
.form-status{scroll-margin-top:130px}
footer{margin-top:0}
.footer-grid{gap:clamp(28px,4vw,64px)}


@media (max-width:1120px){
  .nav-links,.nav-cta{display:none!important}
  .menu-button{display:grid!important;margin-left:auto}
  .mobile-nav{position:fixed;inset:78px 0 auto;display:grid;padding:14px var(--page-gutter) 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow2);transform:translateY(-120%);opacity:0;pointer-events:none;transition:.22s;max-height:calc(100vh - 78px);overflow-y:auto}
  .mobile-nav.open{transform:none;opacity:1;pointer-events:auto}
  .mobile-nav a{padding:12px 4px;border-bottom:1px solid #edf2f2;font-weight:710}
  .mobile-label{padding:15px 4px 6px;color:var(--teald);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
  .page-hero-grid,.showcase-grid,.terminal-grid,.reality-grid,.form-layout,.request-grid,.demo-intro{grid-template-columns:1fr!important}
  .hero-panel,.product-shot,.terminal-image{max-width:860px;margin-inline:auto}
  .request-copy{position:static!important}
  .local-nav{top:78px}
}

@media (max-width:900px){
  :root{--page-gutter:24px;--section-space:72px;--section-space-small:52px}
  html{scroll-padding-top:104px}
  section[id],div[id],form[id],details[id]{scroll-margin-top:104px}
  .section-head{grid-template-columns:1fr!important;gap:14px}
  .section-head .lead{justify-self:start!important}
  .solution-grid,.card-grid,.feature-grid,.module-grid,.hr-overview,.workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .integration-grid,.footer-grid{grid-template-columns:1fr 1fr!important}
  .footer-brand{grid-column:1/-1}
  .platform-strip{grid-template-columns:1fr 1fr!important}
  .platform-strip .intro{grid-column:1/-1}
  .demo-cta-panel,.contact-panel{grid-template-columns:1fr!important;padding:clamp(28px,5vw,42px)}
}

@media (max-width:640px){
  :root{--page-gutter:16px;--section-space:56px;--section-space-small:42px}
  html{scroll-padding-top:94px}
  section[id],div[id],form[id],details[id]{scroll-margin-top:94px}
  .nav-wrap{min-height:70px}
  .brand{width:166px;min-width:166px}
  .mobile-nav{inset:70px 0 auto;max-height:calc(100vh - 70px)}
  h1{font-size:clamp(2.35rem,12vw,3.5rem);line-height:1.02;letter-spacing:-.05em}
  h2{font-size:clamp(1.85rem,9vw,2.8rem);line-height:1.08}
  .portal-copy{margin-bottom:34px}
  .solution-grid,.card-grid,.feature-grid,.module-grid,.hr-overview,.workflow-grid,.process-grid,.integration-grid,.footer-grid,.platform-strip,.use-grid,.stat-grid{grid-template-columns:1fr!important}
  .solution-card.primary,.footer-brand,.platform-strip .intro{grid-column:auto!important}
  .platform-strip .item{border-left:0!important;border-top:1px solid var(--line)}
  .card,.feature,.solution-card,.module-card,.process,.integration{padding:22px}
  .btn-row{display:grid;width:100%}
  .btn-row .btn,.demo-cta-actions .btn{width:100%}
  .btn{white-space:normal}
  .asp-form .two,.form-grid-demo,.appointment,.contact-form{grid-template-columns:1fr!important}
  .demo-form,.contact-card{padding:24px 18px}
  .footer-bottom{flex-direction:column;gap:8px}
  .hero-emotion{padding:6px;border-radius:18px}
  .hero-emotion img{border-radius:13px}
}

@media (min-width:1800px){
  :root{--content:1480px;--section-space:118px}
  body{font-size:17px}
  .nav-wrap{min-height:84px}
  .brand{width:205px;min-width:205px}
  .nav-links a,.nav-links button{font-size:1rem}
  .solution-card,.card,.feature{padding:32px}
}

@media (min-width:2600px){
  :root{--content:1600px;--page-gutter:64px}
  body{font-size:18px}
}



p,li,small,.lead,.footer-col a,.support-box{overflow-wrap:break-word;word-break:normal}
.menu-button{touch-action:manipulation;position:relative;z-index:70}
.mobile-nav{z-index:65}
.support-box small{display:block;margin-bottom:.35rem}
.support-box a[href^="tel"]{display:block;width:max-content;max-width:100%;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.tel-label,.tel-number{display:inline}
.tel-number{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.footer-col a[href^="tel"]{display:flex;flex-wrap:wrap;column-gap:.35rem;align-items:baseline}
.function-hero h1,.function-hero h1 span{overflow-wrap:normal;word-break:normal;hyphens:none}

@media (max-width:640px){
  .support-box{padding:24px 20px}
  .support-box small{font-size:.9rem;line-height:1.4}
  .support-box a[href^="tel"]{font-size:clamp(1.55rem,7.5vw,2.05rem);line-height:1.16;margin-top:.2rem}
  .footer-col a[href^="tel"]{display:block}
  .footer-col a[href^="tel"] .tel-label,.footer-col a[href^="tel"] .tel-number{display:block}
  .footer-col a[href^="tel"] .tel-number{margin-top:.12rem}
  .function-hero h1{font-size:clamp(2.15rem,9.2vw,2.8rem);line-height:1.04;letter-spacing:-.045em}
  .function-hero h1 span{display:block;margin-top:.12em}
  .form-page-hero,.demo-page{padding-top:42px}
}

@media (max-width:390px){
  .function-hero h1{font-size:clamp(2rem,8.8vw,2.35rem)}
  .brand{width:154px;min-width:154px}
  .menu-button{width:48px;height:48px}
}



.skip-link{position:fixed;left:16px;top:12px;z-index:9999;padding:12px 16px;border-radius:8px;background:#0b2630;color:#fff;font-weight:800;transform:translateY(-180%);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
main:focus{outline:none}
.switcher.open>.switcher-menu{opacity:1;visibility:visible;transform:none}
.switcher>button{min-height:44px;min-width:44px}
.mobile-nav[hidden]{display:none!important}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:rgba(8,119,110,.18)}
summary{cursor:pointer}
summary:focus-visible,.btn:focus-visible,.nav-links a:focus-visible,.nav-links button:focus-visible,.mobile-nav a:focus-visible{outline:3px solid #08776e;outline-offset:3px}
.eyebrow,.card-kicker,.process b,.check-list span:before{color:#08776e}
.form-status[role="alert"]{scroll-margin-top:130px}
.asp-form input,.asp-form select,.asp-form textarea{min-height:48px}
.asp-form textarea{min-height:150px}
.asp-form .check{min-height:44px;align-items:flex-start}
.asp-form .check input{min-width:20px;min-height:20px}
.breadcrumbs a{text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em}
@media (prefers-contrast:more){
  :root{--line:#9bb4b9;--muted:#41565c}
  .btn-primary{background:#066d65}
  .card,.feature,.solution-card,.contact-card,.demo-form,.hero-panel{box-shadow:none}
}



.form-layout>*{min-width:0}
.support-box{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  box-sizing:border-box;
}
.support-box small{
  display:block;
  max-width:100%;
}
.support-box .support-phone{
  display:block;
  width:100%;
  max-width:100%;
  margin-top:.25rem;
  color:#fff;
  text-decoration:none;
  white-space:normal;
}
.support-box .support-phone-number{
  display:block;
  width:100%;
  max-width:100%;
  font-size:clamp(1.45rem,4.2vw,2.15rem);
  line-height:1.15;
  letter-spacing:-.025em;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
}
.support-box p{
  max-width:100%;
  margin-top:.65rem;
  overflow-wrap:break-word;
}
.contact-card,.demo-form,.form-page-hero .container,.form-layout{
  max-width:100%;
  min-width:0;
}

@media (max-width:640px){
  .form-page-hero .container{width:min(calc(100% - 28px),var(--content))}
  .form-layout{gap:38px!important}
  .support-box{padding:24px 20px!important;border-radius:18px}
  .support-box .support-phone-number{
    font-size:clamp(1.25rem,5.7vw,1.65rem);
    letter-spacing:-.035em;
  }
  .support-box p{font-size:1rem;line-height:1.5}
  .contact-card,.demo-form{width:100%;padding:24px 18px!important}
  .asp-form input,.asp-form select,.asp-form textarea{max-width:100%}
}

@media (max-width:380px){
  .support-box{padding-inline:17px!important}
  .support-box .support-phone-number{
    font-size:clamp(1.12rem,5.55vw,1.35rem);
    letter-spacing:-.045em;
  }
}


.function-accordion summary::after,
.footer-services summary::after {
  content: "" !important;
  display: block;
  place-items: initial;
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  flex: 0 0 34px;
  box-sizing: border-box;
  border-radius: 50%;
  background-image:
    linear-gradient(currentColor, currentColor),
    linear-gradient(currentColor, currentColor);
  background-position: center, center;
  background-size: 12px 2px, 2px 12px;
  background-repeat: no-repeat;
  line-height: 0;
  font-size: 0;
  transform: none;
}

.function-accordion details[open] > summary::after,
.footer-services[open] > summary::after {
  content: "" !important;
  background-image: linear-gradient(currentColor, currentColor);
  background-position: center;
  background-size: 12px 2px;
  background-repeat: no-repeat;
}

.function-accordion summary::after {
  border: 1px solid var(--line);
  color: var(--teald);
}

.footer-services summary::after {
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
}

@media (max-width: 620px) {
  .function-accordion summary::after,
  .footer-services summary::after {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    flex-basis: 34px;
  }
}



.section-head>*{min-width:0}
.visual-grid>*,.portal-panel>*,.reality-flow>*,.function-detail-grid>*,.billing-grid>*,.channel-grid>*,.page-hero-grid>*,.showcase-grid>*,.terminal-grid>*{min-width:0}
@media (max-width:900px){
  .section-head{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:640px){
  h2{font-size:clamp(1.75rem,7.6vw,2.45rem);text-wrap:pretty}
}



:is(.solution-grid,.card-grid,.feature-grid,.module-grid,.hr-overview,.workflow-grid,.process-grid,.integration-grid,.platform-strip,.use-grid,.stat-grid,.visual-grid,.portal-panel,.reality-flow,.function-detail-grid,.billing-grid,.channel-grid,.page-hero-grid,.showcase-grid,.terminal-grid,.scenario-shell)>*{min-width:0}
:is(h1,h2,h3,h4,p,.lead,summary){max-width:100%}


.section-dark .channel{color:var(--ink)}
.section-dark .channel b{color:var(--ink)}
.section-dark .channel span{color:var(--muted)}


.function-accordion summary{grid-template-columns:52px minmax(0,1fr) 34px}
.function-accordion summary>span:not(.num){min-width:0}
.function-accordion summary small{max-width:100%;overflow-wrap:break-word}

@media (max-width:620px){
  .function-accordion summary{grid-template-columns:38px minmax(0,1fr) 34px;gap:12px;padding:18px 16px}
  .function-accordion summary .num{width:36px;height:36px}
}


@media (max-width:360px){
  :root{--page-gutter:14px}
  h1{font-size:clamp(2rem,10vw,2.35rem)}
  h2{font-size:1.55rem;line-height:1.12;letter-spacing:-.035em;text-wrap:pretty}
  .function-hero h1{font-size:1.7rem;line-height:1.08;letter-spacing:-.035em}
  .solution-card{padding:18px}
  .solution-card h2{font-size:1.4rem;line-height:1.12;letter-spacing:-.025em}
  .function-accordion summary{grid-template-columns:34px minmax(0,1fr) 32px;gap:9px;padding:16px 13px;font-size:.94rem}
  .function-accordion summary .num{width:32px;height:32px}
  .function-accordion summary::after{width:32px;height:32px;min-width:32px;min-height:32px;flex-basis:32px}
}


.function-details-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);
  gap:42px;
  align-items:end;
  margin-bottom:30px;
}
.function-details-intro>*{min-width:0}
.function-details-intro p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.function-accordion{
  display:grid;
  gap:14px;
}
.function-accordion details{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow2);
  overflow:hidden;
}
.function-accordion summary{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 34px;
  gap:16px;
  align-items:center;
  width:100%;
  min-width:0;
  padding:22px 24px;
  cursor:pointer;
  list-style:none;
  color:var(--ink);
  font-weight:800;
  line-height:1.3;
}
.function-accordion summary::-webkit-details-marker{display:none}
.function-accordion summary::marker{content:"";font-size:0}
.function-accordion summary .num{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:var(--soft2);
  color:var(--teald);
  font-size:.84rem;
  font-weight:850;
}
.function-accordion summary>span:not(.num){
  display:block;
  min-width:0;
}
.function-accordion summary small{
  display:block;
  max-width:100%;
  margin-top:4px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:500;
  line-height:1.45;
  overflow-wrap:break-word;
}
.function-accordion details[open]>summary{
  background:linear-gradient(180deg,#fbfdfd,#f7fbfb);
}
.function-detail-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  padding:24px;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,#fbfdfd,#fff);
}
.function-detail-grid>*{min-width:0}
.function-detail-grid h3,
.function-detail-grid h4{
  margin:0 0 10px;
  color:var(--teald);
  font-size:.9rem;
  line-height:1.35;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.function-detail-grid ul{
  margin:0;
  padding-left:18px;
  color:var(--muted);
}
.function-detail-grid li{
  margin:8px 0;
  line-height:1.5;
}
.function-scope-note,
.hr-function-details>.container>.scope-note,
.pd-function-details>.container>.scope-note{
  margin-top:20px;
}
@media (max-width:860px){
  .function-details-intro{grid-template-columns:minmax(0,1fr);gap:14px}
  .function-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .function-details-intro{margin-bottom:22px}
  .function-accordion{gap:12px}
  .function-accordion summary{
    grid-template-columns:38px minmax(0,1fr) 34px;
    gap:12px;
    padding:18px 16px;
  }
  .function-accordion summary .num{width:36px;height:36px}
  .function-detail-grid{
    grid-template-columns:minmax(0,1fr);
    gap:20px;
    padding:20px 18px;
  }
}
@media (max-width:360px){
  .function-accordion summary{
    grid-template-columns:34px minmax(0,1fr) 32px;
    gap:9px;
    padding:16px 13px;
    font-size:.94rem;
  }
  .function-accordion summary .num{width:32px;height:32px}
}
