/* One material and one light direction, based on the supplied soft-relief references. */
:root{
  --soft-ground:#eaf0f5;
  --soft-surface:#e9edef;
  --soft-control:#edf3f8;
  --soft-ink:#254a6b;
  --soft-line:#cbd8e459;
  --soft-raised:7px 7px 16px #18395820,-6px -6px 15px #ffffffed,inset 0 0 0 #18395800,inset 0 0 0 #ffffff00,inset 0 1px 0 #ffffff80;
  --soft-hover:0 0 0 #18395800,0 0 0 #ffffff00,inset 2px 2px 5px #1839582e,inset -2px -2px 5px #fff,inset 0 1px 0 #ffffff00;
  --soft-pressed:0 0 0 #18395800,0 0 0 #ffffff00,inset 3px 3px 7px #18395838,inset -3px -3px 7px #fff,inset 0 1px 0 #ffffff00;
  --soft-deep:0 0 0 #18395800,0 0 0 #ffffff00,inset 6px 6px 11px #18395847,inset -5px -5px 10px #fff,inset 0 1px 1px #18395812;
  --soft-panel:14px 16px 34px -9px #18395826,-11px -11px 29px -4px #ffffffed;
}
body{background:var(--soft-ground)}
/* Shared sizes for section titles, subsections and card headings. */
:root{--heading-section:clamp(34px,3.2vw,48px);--heading-subsection:28px;--heading-card:24px}
.section-head h2,.photo-stage .section-head h2,.brief-heading h2{
  font-size:var(--heading-section);font-weight:500;line-height:1.16;letter-spacing:-.04em;
}
.section-head h2 em,.administration .section-head h2 em{
  font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;margin-top:0;
}
.source-company-history h3,.content-intro h3,.benefit-conditions .content-intro h3,
.turnkey-scope>h3,.service-geography h3,.journey-options>h3{
  font-size:var(--heading-subsection);font-weight:500;line-height:1.3;letter-spacing:-.025em;
}
.benefit-highlights h3{font-size:var(--heading-card);font-weight:500;line-height:1.3;letter-spacing:-.025em}
#services-title{white-space:nowrap}
#services-title em{display:inline}
@media(max-width:600px){:root{--heading-subsection:25px;--heading-card:22px}}
@media(max-width:360px){:root{--heading-section:30px}}
.header{background:#f1f6faf2;border-bottom-color:#ffffff66;box-shadow:0 5px 20px -12px #18395825}
/* One raised navigation surface, with independently recessed destinations. */
.header nav{
  min-width:0;max-width:100%;align-items:center;gap:3px;padding:6px;
  border:1px solid #ffffff59;border-radius:18px;
  background:var(--soft-control);box-shadow:var(--soft-raised);
}
.header nav a{
  display:flex;align-items:center;justify-content:center;min-height:44px;
  padding:11px 12px;border-radius:12px;line-height:1.4;color:var(--soft-ink);
  box-shadow:0 0 0 #18395800,0 0 0 #ffffff00,inset 0 0 0 #18395800,inset 0 0 0 #ffffff00,inset 0 0 0 #ffffff00;
  transition:box-shadow .2s ease,color .2s ease;
  touch-action:manipulation;
}
.header nav a:after{display:none}
.header nav a:focus-visible{outline:2px solid #3676a6;outline-offset:1px}
.hero,.section-surface{
  border:1px solid #ffffff73;
  box-shadow:var(--soft-panel);
  background:var(--soft-surface);
}
.hero{background:radial-gradient(ellipse at 78% 43%,#deebf84d,#deebf800 61%),var(--soft-surface)}
.section-surface.photo-surface{background:var(--soft-surface);box-shadow:var(--soft-panel)}

/* Raised controls settle into the surface when pressed, without moving their labels. */
.button,.button.primary,.contact-trigger,
.journey .journey-selector button,
.journey .journey-back,.journey .journey-next{
  border:1px solid #ffffff26;
  border-radius:14px;
  color:var(--soft-ink);
  background:linear-gradient(145deg,#f3f7fb,#e9f0f6);
  box-shadow:var(--soft-raised);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  text-shadow:none;
  font-weight:500;
  transform:none;
  transition:box-shadow .2s ease,color .2s ease,border-color .2s ease;
}
.button.primary,.journey .journey-next{color:var(--brand-navy);font-weight:600}
.header .button.small{border-radius:13px}
.button:hover,.button.primary:hover,.contact-trigger:hover,
.journey .journey-selector button:hover,
.journey .journey-next:hover,.journey .journey-back:not(:disabled):hover{
  transform:none;
  background:linear-gradient(145deg,#f3f7fb,#e9f0f6);
  color:var(--brand-navy);
  box-shadow:var(--soft-raised);
}
.button:focus-visible,.contact-trigger:focus-visible,
.journey .journey-selector button:focus-visible,
.journey .journey-back:focus-visible,.journey .journey-next:focus-visible{
  outline:2px solid #3676a6;outline-offset:5px;
}
.button:disabled,.button.primary:disabled,.journey .journey-back:disabled,.journey .journey-next:disabled{
  opacity:.45;transform:none;cursor:default;background:var(--soft-control);box-shadow:none;
}
.brief-form .button:not(:disabled){opacity:1}
.journey .journey-back{padding:11px 8px;text-align:center}
.contact-trigger{border-radius:16px}
.contact-panel{
  background:var(--soft-surface);
  border-color:#ffffff73;
  box-shadow:12px 14px 30px -6px #18395833,-9px -9px 24px #ffffffd9;
}
.contact-close{
  display:grid;place-items:center;width:40px;height:40px;padding:0;
  border:1px solid #ffffff26;border-radius:12px;background:var(--soft-control);
  color:var(--soft-ink);box-shadow:var(--soft-raised);
  transition:box-shadow .2s ease;
}
.contact-trigger[aria-expanded=true],.contact-trigger[aria-expanded=true]:hover{background:var(--soft-control);box-shadow:var(--soft-pressed)}

/* The selected route is visibly recessed, as in the iOS-tab reference. */
.journey .journey-selector{
  background:var(--soft-control);
  gap:13px;
  padding:17px;
  border:1px solid var(--soft-line);
  border-bottom:0;
  border-radius:25px 25px 0 0;
}
.journey .journey-selector button{min-height:52px;padding:15px 10px;border-radius:13px}
.journey .journey-selector button[aria-selected=true],
.journey .journey-selector button[aria-selected=true]:hover{
  background:var(--soft-control);
  border-color:transparent;
  color:var(--brand-navy);
  font-weight:600;
  box-shadow:var(--soft-pressed);
  transform:none;
}
.journey .journey-player{
  background:var(--soft-surface);
  border-color:var(--soft-line);
  box-shadow:inset 4px 4px 12px #1839580d,inset -4px -4px 12px #fff;
}
.journey-overview{background:#edf3f880;border-bottom-color:var(--soft-line)}
.journey .journey-progress{height:4px;background:#e4edf5;box-shadow:inset 1px 1px 3px #24496b25,inset -1px -1px 2px #fff}
.journey .journey-progress>span{background:#477ca7}

/* The catalogue header uses the same single surface as every other disclosure. */
.catalog,.catalog:hover{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
/* Each sector is one card, including its description and every specialty. */
.catalog .catalog-groups{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  align-items:stretch;gap:24px;padding:14px 12px 18px;
}
.catalog .catalog-group{
  min-width:0;padding:26px;border:1px solid #ffffff59;border-radius:18px;
  background:var(--soft-control);box-shadow:var(--soft-raised);
  transition:box-shadow .24s ease,border-color .24s ease;
}
.catalog .catalog-group h3{font-size:var(--heading-card);font-weight:500;line-height:1.3;letter-spacing:-.025em;margin-bottom:18px;overflow-wrap:anywhere}
.catalog .catalog-group ul{display:block;padding:0;margin:0;list-style:none}
.catalog .catalog-group li{
  padding:9px 0;border:0;border-radius:0;background:none;
  font-size:16px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere;
}
.catalog .catalog-group li+li{border-top:1px solid #cbd8e473}
.catalog .catalog-group li:first-child{padding-top:0}
.catalog .catalog-group li:last-child{padding-bottom:0}
.accreditation-card{border-radius:22px}
.accreditation-card:before{display:none}
.accreditation-face{
  border-color:#ffffff59;
  background:var(--soft-control);
  box-shadow:9px 9px 23px #18395822,-8px -8px 22px #fff,inset 0 1px 0 #ffffffa6;
}
.accreditation-face:before,.accreditation-reflection{display:none}
/* A whole row is the disclosure control; its arrow is part of that surface. */
:root{--disclosure-inset:22px;--disclosure-fill:#e8f0f7a6}
.service-menu,.professions .profession-picker{display:flex;flex-direction:column;gap:16px;border:0}
.service-item,.professions .profession-item{min-width:0;border:0}
details.disclosure,details.disclosure:last-of-type{border:0;margin:0 0 16px}
:is(.service-item>button,.professions .profession-choice,.photo-stage .disclosure>summary,.content-extension .disclosure>summary,.disclosure>summary,.catalog>summary){
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  width:100%;max-width:none;min-height:66px;margin:0;padding:18px var(--disclosure-inset);
  border:1px solid #ffffff73;border-radius:15px;background:var(--disclosure-fill);
  color:var(--soft-ink);box-shadow:var(--soft-raised);
  font-size:20px;font-weight:500;line-height:1.45;letter-spacing:-.025em;
  text-align:left;white-space:normal;overflow-wrap:anywhere;
  transform:none;touch-action:manipulation;
  transition:box-shadow .2s ease,color .2s ease,border-color .2s ease;
}
.service-item>button[aria-expanded=true],
.professions .profession-choice[aria-expanded=true],
.disclosure>summary[aria-expanded=true],.catalog>summary[aria-expanded=true],
.disclosure[open]>summary:not([aria-expanded]),.catalog[open]>summary:not([aria-expanded]){
  color:var(--brand-navy);border-color:transparent;box-shadow:var(--soft-pressed);
}
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary):focus-visible{
  outline:2px solid #3676a6;outline-offset:4px;
}
/* Match inner text to the label inset, without leaving space in collapsed panels. */
.service-body>div,.profession-detail>div{padding:18px var(--disclosure-inset) 8px}
.profession-detail p{margin:0 0 10px}
.disclosure .answer{padding:20px var(--disclosure-inset) 10px}
.catalog .catalog-content{padding:8px 0 0}
.catalog .catalog-intro,.catalog .catalog-tail,.catalog .catalog-empty{padding-inline:var(--disclosure-inset)}
/* Keep navigation centred even when its two button labels have different lengths. */
.journey .journey-nav-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.journey .journey-back,.journey .journey-next{min-width:0;width:100%;text-align:center}
.header-inner>.brand{min-width:0;max-width:100%}
.header .brand-logo{max-width:100%}
.header-phone{white-space:nowrap}
/* Shared heading rows keep adjacent lists aligned when one title wraps. */
@supports(grid-template-rows:subgrid){
  @media(min-width:1001px){
    .turnkey-scope .scope-columns,.condition-list{grid-template-rows:auto 1fr;row-gap:0}
    .turnkey-scope .scope-columns>div,.condition-list>article{display:grid;grid-row:span 2;grid-template-rows:subgrid;min-width:0}
    .turnkey-scope .scope-columns ul,.condition-list p{align-self:start}
  }
}
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary) .disclosure-chevron,
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary)[aria-expanded] .disclosure-chevron,
.disclosure[open]>summary .disclosure-chevron,.catalog[open]>summary .disclosure-chevron{
  display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
  color:currentColor;transform:none;transition:none;
}
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary) .disclosure-chevron:after{
  transform:translateY(-2px) rotate(45deg);
  transition:transform .24s cubic-bezier(.22,1,.36,1);
}
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary)[aria-expanded=true] .disclosure-chevron:after,
.disclosure[open]>summary:not([aria-expanded]) .disclosure-chevron:after,
.catalog[open]>summary:not([aria-expanded]) .disclosure-chevron:after{
  transform:translateY(2px) rotate(225deg);
}

/* Recessed inputs: keep the actual field geometry and native form semantics. */
.brief-form{
  background:var(--soft-surface);
  border:1px solid #ffffff4d;
  box-shadow:10px 10px 25px #1839581c,-9px -9px 25px #fff;
}
.brief-form .field-pair input,.brief-form .field-pair select,
.brief-form textarea,.catalog-search input{
  background-color:var(--soft-control);
  border:1px solid #ffffff26;
  border-radius:13px;
  color:var(--ink);
  box-shadow:inset 4px 4px 9px #18395822,inset -4px -4px 9px #fff;
  transition:box-shadow .2s ease,outline-color .2s ease;
}
.brief-form .field-pair input::placeholder,.catalog-search input::placeholder{color:var(--brand-navy);opacity:1}
.brief-form .field-pair input:focus,.brief-form .field-pair select:focus,
.brief-form textarea:focus,.catalog-search input:focus{
  border-color:#6492b84d;
  outline:2px solid #3676a666;
  outline-offset:3px;
  box-shadow:inset 4px 4px 9px #18395822,inset -4px -4px 9px #fff;
}
.social-item{
  border:1px solid #ffffff26;
  border-radius:13px;
  background:var(--soft-control);
  color:var(--brand-navy);
  box-shadow:var(--soft-raised);
  transition:box-shadow .2s ease,color .2s ease;
}
a.social-item:hover{color:var(--brand-blue);box-shadow:var(--soft-raised)}
.social-item:disabled{color:var(--brand-navy);box-shadow:3px 3px 8px #18395817,-3px -3px 8px #ffffffbf}

/* Hover is a shallow press; mouse-down, keyboard activation and touch press deeper. */
@media(hover:hover) and (pointer:fine){
  .header nav a:hover{color:var(--brand-navy);box-shadow:var(--soft-pressed)}
  .catalog .catalog-group:hover{border-color:transparent;box-shadow:var(--soft-pressed)}
  .button:not(:disabled):hover,.button.primary:not(:disabled):hover,
  .contact-trigger:hover,.contact-close:hover,
  .journey .journey-selector button:hover,
  .journey .journey-back:not(:disabled):hover,.journey .journey-next:not(:disabled):hover,
  a.social-item:hover{
    background:var(--soft-control);box-shadow:var(--soft-hover);
  }
  .contact-trigger[aria-expanded=true]:hover,
  .journey .journey-selector button[aria-selected=true]:hover{box-shadow:var(--soft-pressed)}
  :is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary):hover{
    color:var(--brand-navy);border-color:transparent;box-shadow:var(--soft-pressed);
  }
}
.header nav a:active,.catalog .catalog-group:active{box-shadow:var(--soft-deep);transition-duration:.08s}
.button:not(:disabled):active,.button.primary:not(:disabled):active,
.contact-trigger:active,.contact-trigger[aria-expanded]:active,.contact-close:active,
.journey .journey-selector button:active,.journey .journey-selector button[aria-selected]:active,
.journey .journey-next:not(:disabled):active,.journey .journey-back:not(:disabled):active,
a.social-item:active{
  transform:none;background:var(--soft-control);box-shadow:var(--soft-deep);transition-duration:.08s;
}
:is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary):active{
  box-shadow:var(--soft-deep);transition-duration:.08s;
}

@media(max-width:1100px){
  :root{--header:142px;scroll-padding-top:calc(var(--header) + 22px)}
  .header{height:auto;min-height:136px;padding:6px 0 12px}
  .header-inner{height:auto;row-gap:8px}
  .header nav{width:100%;justify-content:center;flex-wrap:wrap;gap:3px;padding:6px}
  .header nav a{padding:10px 12px}
}
@media(max-width:700px){
  :root{--soft-raised:5px 5px 12px #18395820,-4px -4px 12px #ffffffed,inset 0 0 0 #18395800,inset 0 0 0 #ffffff00,inset 0 1px 0 #ffffff80;--soft-panel:9px 11px 24px -7px #18395829,-7px -7px 21px -3px #ffffffed}
  .journey .journey-selector{padding:12px;gap:11px}
  .journey .journey-selector button{min-height:49px;padding:13px 8px}
  .button,.button.primary,.contact-trigger,.journey .journey-back,.journey .journey-next{border-radius:13px}
  .brief-form{box-shadow:7px 7px 18px #18395819,-6px -6px 18px #fff}
  .catalog .catalog-groups{gap:20px}
  .catalog .catalog-group{padding:22px;border-radius:16px}
}
@media(max-width:600px){
  :root{--header:178px;--disclosure-inset:18px}
  .header-inner{column-gap:12px}
  .journey .journey-nav-row{gap:8px}
  .journey .journey-back,.journey .journey-next{padding-inline:8px}
  :is(.service-item>button,.professions .profession-choice,.photo-stage .disclosure>summary,.content-extension .disclosure>summary,.disclosure>summary,.catalog>summary){
    min-height:62px;padding:16px var(--disclosure-inset);gap:14px;border-radius:14px;font-size:18px;
  }
  .header nav{padding:5px;gap:2px;border-radius:16px;white-space:normal}
  .header nav a{padding:10px 9px;font-size:14px}
  .catalog .catalog-group{padding:20px 18px}
}
@media(prefers-reduced-motion:reduce){
  .header nav a,.catalog .catalog-group,.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary{transition:none!important}
  .button,.button.primary,.contact-trigger,.contact-close,.journey .journey-selector button,.journey .journey-back,.journey .journey-next,.social-item,.brief-form .field-pair input,.brief-form .field-pair select,.brief-form textarea,.catalog-search input,.disclosure-chevron,.disclosure-chevron:after{transition:none!important}
}
@media(forced-colors:active){
  :is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary){box-shadow:none!important;background:ButtonFace;border:1px solid ButtonText;color:ButtonText}
  :is(.service-item>button,.professions .profession-choice,.disclosure>summary,.catalog>summary)[aria-expanded=true]{outline:2px solid Highlight;outline-offset:-4px}
  .header nav,.header nav a,.catalog .catalog-group{box-shadow:none!important;border:1px solid CanvasText}
  .hero,.section-surface,.brief-form,.catalog,.contact-panel,.accreditation-face{box-shadow:none;border:1px solid CanvasText}
  .button,.button.primary,.contact-trigger,.contact-close,.journey .journey-selector button,.journey .journey-back,.journey .journey-next,.social-item{box-shadow:none;border:1px solid ButtonText;background:ButtonFace;color:ButtonText}
  .journey .journey-selector button[aria-selected=true]{outline:2px solid Highlight;outline-offset:-3px;box-shadow:none;background:ButtonFace;color:Highlight}
  .brief-form .field-pair input,.brief-form .field-pair select,.brief-form textarea,.catalog-search input{box-shadow:none;border:1px solid FieldText;background-color:Field;color:FieldText}
}
