/* Service folios: chapter navigation, native scroll and light across real photography. */
.alb-services { position: relative; }
/* Names form a quiet side index on wide screens, a native disclosure elsewhere. */
.alb-service-index { margin: 0 0 32px; }
.alb-service-index > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 56px;
  padding-block: 12px;
  border-block: 1px solid var(--alb-line);
  color: var(--alb-ink);
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
.alb-service-index > summary::-webkit-details-marker { display: none; }
.alb-service-index > summary span { color: var(--alb-blue); font-size: 24px; }
.alb-service-index[open] > summary span { transform: rotate(90deg); }
.alb-deck-links { display: grid; padding-block: 12px; }
.alb-deck-links a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 10px 24px 10px 0;
  color: #46586d;
  font: 400 15px/1.4 var(--alb-heading);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color .2s;
}
.alb-deck-links a:after {
  content: '';
  position: absolute;
  right: 0;
  width: 12px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s;
}
.alb-deck-links a:hover, .alb-deck-links a[aria-current] { color: var(--alb-blue); }
.alb-deck-links a[aria-current] { font-weight: 600; }
.alb-deck-links a[aria-current]:after { transform: scaleX(1); }
.alb-service-cards { min-width: 0; }
@media (min-width: 1280px) and (min-height: 650px) {
  .alb-services { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 40px; align-items: start; }
  .alb-service-index { grid-column: 1; grid-row: 1; margin: 0; }
  .alb-motion-ready .alb-service-index {
    position: sticky;
    top: var(--alb-deck-top, 128px);
    max-height: calc(100svh - var(--alb-deck-top, 128px) - 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
  .alb-motion-ready .alb-service-index > summary { display: none; }
  .alb-deck-links { padding-block: 8px; gap: 8px; }
  .alb-service-cards { grid-column: 2; grid-row: 1; }
  .alb-services .alb-service-layout { gap: 36px; }
}
.alb-service-waypoint { display: block; height: 0; scroll-margin-top: var(--alb-service-anchor-offset, 8px); }
.albatros .alb-services .alb-service {
  display: block;
  padding: 24px 30px 30px;
  margin-bottom: 52px;
  border: 1px solid #dce4ee;
  border-radius: 20px;
  background: #fff;
  box-shadow: none;
}
.alb-service-caption { display: flex; align-items: center; gap: 22px; margin-bottom: 24px; }
.alb-service-caption > span:first-child {
  color: #46586d;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.alb-card-track { height: 1px; flex: 1; background: var(--alb-line); overflow: hidden; }
.alb-card-track > span { display: block; height: 100%; background: var(--alb-blue); transform-origin: left; transform: scaleX(0); }
.alb-service-layout { display: grid; grid-template-columns: 1.06fr 1fr; gap: 64px; align-items: center; }
.alb-services .alb-service:nth-of-type(odd) .alb-service-photo { order: 0; }
.alb-services .alb-service:nth-of-type(odd) .alb-service-body { order: 1; }
.alb-services .alb-service:nth-of-type(even) .alb-service-photo { order: 2; }
.alb-services .alb-service:nth-of-type(even) .alb-service-body { order: 1; }
.alb-services .alb-service-photo { position: relative; isolation: isolate; height: 410px; border-radius: 14px; background: var(--alb-mist); }
.alb-services .alb-service-body { padding: 12px 10px 12px 0; }
.alb-services .alb-service h3 { font-size: clamp(28px, 2.8vw, 42px); line-height: 1.14; letter-spacing: -.035em; margin-bottom: 22px; }
@media (min-width: 1280px) and (min-height: 650px) {
  .alb-services .alb-service h3 { font-size: clamp(28px, 2.6vw, 38px); }
}
.alb-service-description p { max-width: 44ch; }
.alb-service-description details { margin-top: 26px; }
.alb-service-description summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; padding-block: 8px; }
.alb-service-description summary::-webkit-details-marker { display: none; }
.alb-service-description summary:after { content: ''; width: 14px; height: 14px; flex-shrink: 0; background: linear-gradient(currentColor, currentColor) center/14px 1px no-repeat, linear-gradient(currentColor, currentColor) center/1px 14px no-repeat; transition: transform .25s; }
.alb-service-description details[open] summary:after { transform: rotate(45deg); }
.alb-service .alb-text-link { border: 0; padding: 0; gap: 18px; min-height: 44px; }
.alb-service .alb-text-link span { display: grid; place-items: center; width: 40px; height: 40px; background: var(--alb-blue); color: #fff; border-radius: 50%; font-size: 21px; }
.alb-service .alb-text-link:hover span { transform: translate(3px, -3px); }
.alb-motion-ready:not(.alb-motion-paused) .alb-service-photo img {
  transform: translate3d(var(--alb-photo-x, 0px), calc(var(--alb-photo-pan, 0px) + var(--alb-photo-y, 0px)), 0) scale(1.1);
  transition: transform .65s cubic-bezier(.16, 1, .3, 1);
}
.alb-motion-ready:not(.alb-motion-paused) .alb-service:hover .alb-service-photo img {
  transform: translate3d(var(--alb-photo-x, 0px), calc(var(--alb-photo-pan, 0px) + var(--alb-photo-y, 0px)), 0) scale(1.13);
}
.alb-motion-paused .alb-services .alb-service-photo img { transform: none; transition: none; }
@media (min-width: 1024px) and (min-height: 650px) {
  .alb-motion-ready .alb-services { padding-bottom: 32px; }
  .alb-motion-ready .alb-services .alb-service {
    position: sticky;
    top: var(--alb-sticky-top, 128px);
    min-height: min(660px, calc(100svh - var(--alb-sticky-top, 128px) - 24px));
    transform: perspective(1800px) translate3d(0, calc(var(--alb-card-depth, 0)*-12px), 0) scale(calc(1 - var(--alb-card-depth, 0)*.035)) rotateX(calc(var(--alb-card-depth, 0)*.8deg));
    transform-origin: center top;
    box-shadow: none;
  }
  .alb-motion-ready .alb-service-layout { min-height: calc(min(660px, 100svh - var(--alb-sticky-top, 128px) - 24px) - 98px); }
  .alb-motion-ready .alb-services .alb-service-photo { height: clamp(280px, calc(100svh - var(--alb-sticky-top, 128px) - 130px), 540px); }
  .alb-motion-ready:not(.alb-motion-paused) .alb-service-body { transform: translateY(calc((1 - var(--alb-card-arrival, 1))*22px)); }
  .alb-motion-ready:not(.alb-motion-paused) .alb-service-photo:before {
    content: '';
    position: absolute;
    z-index: 2;
    pointer-events: none;
    inset: -20% -60%;
    background: linear-gradient(115deg, transparent 34%, rgb(255 255 255 / 22%) 48%, transparent 62%);
    transform: translateX(calc((var(--alb-card-arrival, 1) - .5)*110%));
    opacity: var(--alb-card-glint, 0);
  }
  .alb-motion-ready:not(.alb-motion-paused) .alb-service-photo:after { content: ''; position: absolute; z-index: 1; pointer-events: none; inset: 0; background: #14243b; opacity: calc(var(--alb-card-depth, 0)*.15); }
  .alb-motion-ready:not(.alb-motion-paused) .alb-service-current.alb-loop-visible .alb-service-photo:before { animation: alb-folio-glass 16s cubic-bezier(.45, 0, .2, 1) infinite; }
  .alb-page-hidden .alb-service-photo:before { animation-play-state: paused !important; }
  .alb-motion-ready:not(.alb-motion-paused) .alb-card-track > span { transform: scaleX(var(--alb-card-arrival, 1)); }
  .alb-motion-ready .alb-services .alb-service.alb-service-tall { position: relative; top: auto; transform: none; }
  .alb-motion-ready .alb-services .alb-service:has(:focus-visible) { z-index: 45; }
}
@keyframes alb-folio-glass {
  0%, 24% { transform: translateX(-45%); opacity: 0; }
  32%, 60% { opacity: .55; }
  72%, 100% { transform: translateX(45%); opacity: 0; }
}
@media (max-width: 1150px) {
  .alb-service-layout { gap: 38px; }
  .alb-services .alb-service-photo { height: 350px; }
}
@media (max-width: 760px) {
  /* With no script the full site menu stays visible; let it scroll away. */
  html:not(.alb-js) .alb-header { position: relative; top: auto; }
  .alb-service-index { margin-bottom: 24px; }
  .albatros .alb-services .alb-service { padding: 16px 16px 26px; margin-bottom: 24px; border-radius: 16px; }
  .alb-service-caption { gap: 16px; margin-bottom: 16px; }
  .alb-service-layout { display: flex; flex-direction: column; align-items: stretch; gap: 26px; }
  .alb-services .alb-service:nth-of-type(n) .alb-service-photo, .alb-services .alb-service:nth-of-type(n) .alb-service-body { order: 0; }
  .alb-services .alb-service-photo { height: 250px; border-radius: 10px; }
  .alb-services .alb-service-body { padding: 0; }
  .alb-services .alb-service h3 { font-size: 29px; }
  .alb-service-description details { margin-top: 20px; }
  .alb-motion-ready:not(.alb-motion-paused) .alb-service-photo img, .alb-motion-ready:not(.alb-motion-paused) .alb-service:hover .alb-service-photo img { transform: scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  .alb-motion-ready .alb-services .alb-service { position: relative; top: auto; transform: none; }
  .alb-motion-ready .alb-service-layout { min-height: 0; }
  .alb-deck-links a, .alb-deck-links a:after, .alb-service-description summary:after, .alb-service .alb-text-link span { transition: none; }
  .alb-services .alb-service-photo img { transform: none; transition: none; }
}
