:root{color-scheme:light;--bg:#fff;--panel:#f3f7fb;--panel-deep:#edf4fb;--raised:#e8f5fd;--line:#dce6ef;--white:#10243c;--muted:#52647b;--lime:#0758a7}
body{background:#fff;color:#24374d}
.header{background:#fffffff5;border-color:#e1e8f0}
.header-inner{min-height:86px}
.brand-name{color:#074ea2}
.button{border-radius:100px;padding:15px 24px}
.button-primary{background:linear-gradient(120deg,#074ea2,#008dc9);color:white;box-shadow:0 8px 22px #0758a720}
.button-primary:hover{background:#063a7c}
.button-outline{background:#ffffff15;color:white;border-color:#ffffff80}
.button-outline:hover{background:#ffffff30;color:white}
.hero{background:#05224a;color:white}
.hero-inner{min-height:690px;gap:45px;justify-content:space-between;padding-block:85px}
.hero-content{width:72%;max-width:780px}
.hero h1{font-size:clamp(2.7rem,5.25vw,5rem);line-height:1.1;letter-spacing:-.045em;font-weight:750;max-width:none}
.hero h1 em{color:#63d1ff}
.hero-intro{color:#e0e9f5;max-width:600px}
.hero .kicker{color:#ace5ff}
.hero .signal{background:#63d1ff}
.hero-visual{inset:0}
.hero-image{object-position:center 55%;opacity:.55}
.hero-visual::after{background:linear-gradient(90deg,#031631ed,#05224a99 55%,#05224a55)}
.hero-grid{display:none}
.hero-contact{position:relative;z-index:2;align-self:flex-end;padding:28px;width:290px;flex:none;border:1px solid #ffffff50;border-radius:24px;background:#ffffff15;backdrop-filter:blur(12px)}
.hero-contact p{font:650 .7rem var(--mono);color:#bfe9ff}
.hero-contact a{display:block;font-size:1.35rem;font-weight:750;margin:14px 0;color:white;white-space:nowrap}
.hero-contact span{display:block;border-top:1px solid #ffffff40;padding-top:15px;font-size:.9rem;color:#e0e9f5}
.quick{background:linear-gradient(110deg,#074ea2,#0089c7);border:0;color:white}
.quick small,.quick strong,.quick-icon{color:white}
.quick-inner>*+*{border-color:#ffffff30}
.quick-icon{border-color:#ffffff60}
.section{padding-block:95px}
.section h2{font-weight:700;letter-spacing:-.045em;color:#0b2544}
.index{border-color:#b4cde7}
.filters{background:#f3f7fb}
.filters button[aria-pressed=true]{background:#e2f0fb;color:#074ea2;border-color:#b4cde7}
.service-card{background:white;box-shadow:0 10px 35px #05224a09;border-radius:20px;padding:27px}
.card-top .icon{background:#e8f5fd;border-color:#cde4f5;color:#074ea2;width:48px;height:48px;padding:10px}
.service-card h3{color:#0b2544}
.services{background:#f3f7fb}
.about{background:white;border:0}
.work-photo{border-radius:24px;box-shadow:0 25px 50px #05224a16}
.work-photo img{object-position:center 45%}
.work-photo figcaption{background:#074ea2;color:white}
.work-photo figcaption>span:last-child{color:#d2eaff}
.work-photo .signal{background:#63d1ff}
.booking{background:linear-gradient(135deg,#edf6ff,#f5f8fb)}
.booking-note{background:#e3f0fc;border-color:#bed7ed}
.form-panel{background:white;border-color:#d4e1ed;border-radius:24px;box-shadow:0 18px 50px #05224a0d}
input,select,textarea{background:#f8fafc;color:#10243c;border-color:#bdccdc;border-radius:10px}
input::placeholder,textarea::placeholder{color:#65768a}
.request-result .button-outline{color:#0758a7;border-color:#a9bfd5;background:white}
.contact{background:#fff}
.contact-grid>a{background:#f3f7fb;border-radius:16px;padding:24px}
.footer{background:#031631;color:white}
.footer .brand-name{color:white}
.footer .brand-name>span,.footer p,.social{color:#c3d3e7}
.gallery{background:white}
.gallery-card{border-radius:18px;background:#f3f7fb;box-shadow:0 8px 25px #05224a08}
.gallery-card img{background:#edf3f8}
.gallery-zoom{color:white;background:#074ea2;border-color:#ffffff50}
.gallery-dialog{background:white;color:#10243c}
.gallery-close{background:#074ea2;color:white}
.menu-button{background:#eef5fc;color:#074ea2}
@media(max-width:1000px){.hero-inner{gap:25px}.hero-contact{width:245px;padding:20px}.hero-content{width:65%}.nav{gap:18px}}
@media(max-width:800px){.hero-contact{display:none}.hero-content{width:100%;max-width:660px}.hero-inner{min-height:600px}.header-inner{min-height:74px}.section{padding-block:65px}}
@media(max-width:650px){.hero{display:block}.hero-visual{position:absolute;inset:0;min-height:0}.hero-inner{padding-block:55px 65px;min-height:590px}.hero h1{font-size:clamp(2.3rem,8.5vw,3.4rem)}.hero-image{object-position:58% center}.hero-visual::after{background:linear-gradient(90deg,#031631e8,#05224a99)}.hero-content{width:100%}.hero-caption{display:none}.nav{background:white}.nav a:hover{background:#edf5fc}.header-inner{min-height:70px}.header-cta{padding:10px}.hero-content .button{padding:13px 17px}.section{padding-block:52px}.service-card{padding:22px}.gallery-card figcaption{color:#304b68}}

/* Service overview and detail pages */
.header .nav [aria-current] { color: #0758a7; }
.service-card {
  --card-padding: 27px;
  overflow: hidden;
  padding: var(--card-padding);
}
.service-card:hover, .service-card:focus-within { border-color: #a9cce8; }
.service-cover {
  width: calc(100% + 2 * var(--card-padding));
  height: 168px;
  object-fit: cover;
  object-position: center 60%;
  margin: calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) 20px;
}
.service-card[data-category="mobility"] { background: #eef6ff; }
.service-actions { display: flex; flex-wrap: wrap; gap: 0 17px; margin-top: auto; }
.service-actions a + a { color: #52647b; }
.detail-hero { padding-block: clamp(38px, 7vw, 96px); background: linear-gradient(120deg, #eaf4ff, #f8fbfe); }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(22px, 5vw, 70px); align-items: center; }
.detail-back { display: inline-flex; color: #0758a7; font-size: .9rem; font-weight: 700; margin-bottom: 24px; }
.detail-copy h1 {
  color: #0b2544;
  margin-block: 10px 14px;
  font-size: clamp(2.6rem, 5.8vw, 5rem);
  letter-spacing: -.05em;
  line-height: 1.03;
  text-wrap: balance;
}
.detail-copy > p:not(.kicker) { font-size: clamp(1rem, 2vw, 1.22rem); color: var(--muted); max-width: 550px; }
.detail-copy .actions { margin-top: 25px; }
.detail-copy .button-outline { color: #0758a7; background: white; border-color: #a9cce8; }
.detail-copy .button-outline:hover { background: #e5f2fd; }
.detail-visual { height: clamp(285px, 34vw, 450px); overflow: hidden; border-radius: 24px; box-shadow: 0 18px 44px #05224a18; }
.detail-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 59%; }
.detail-emblem {
  display: grid;
  place-items: center;
  height: 100%;
  background: radial-gradient(ellipse at 70% 20%, #1877bd, #052a55 68%);
  color: #ace5ff;
}
.detail-emblem .icon { width: clamp(95px, 13vw, 180px); height: auto; stroke-width: 1; }
.detail-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.detail-check-grid article { border: 1px solid var(--line); border-radius: 17px; padding: 23px; background: #f8fbfe; }
.detail-check-grid span { color: #0758a7; font: 700 .75rem var(--mono); }
.detail-check-grid h3 { margin-block: 10px 5px; }
.detail-check-grid p, .detail-prepare p { color: var(--muted); }
.detail-prepare {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: clamp(20px, 4vw, 34px);
  margin-top: 20px;
  border: 1px solid #bed7ed;
  border-radius: 17px;
  background: #eaf4fd;
}
.detail-prepare p { margin-top: 4px; }
.detail-prepare > a { flex: none; }
.detail-related { background: #f3f7fb; }
.related-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.related-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 14px 16px;
  color: #0758a7;
  font-weight: 700;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.related-links a:hover { border-color: #a9cce8; }

/* Gallery filters and controls */
.gallery-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin: 0 0 20px; }
.gallery-count { font-size: .88rem; color: var(--muted); }
.gallery-dialog { width: min(960px, calc(100% - 24px)); }
.gallery-full { width: 100%; height: min(69dvh, 720px); background: #0b2544; border-radius: 5px; }
.gallery-controls { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 8px; }
.gallery-step {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  background: #eef5fc;
  color: #0758a7;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.gallery-step:hover { background: #e0eefb; }
.gallery-prev .icon { transform: rotate(180deg); }
.gallery-description { text-align: center; }
#gallery-caption { padding: 0; }
.gallery-position { font-size: .78rem; color: var(--muted); }

/* Common questions and phone navigation */
.faq { background: #f3f7fb; }
.faq-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 34px; }
.faq-list details { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 0 16px; margin-bottom: 8px; }
.faq-list summary { cursor: pointer; padding: 13px 0; font-weight: 700; }
.faq-list p { color: var(--muted); padding-bottom: 13px; }
.faq-list p a { color: #0758a7; text-decoration: underline; }
.mobile-contact { display: none; }

@media (max-width: 800px) {
  .detail-grid, .faq-grid { grid-template-columns: minmax(0, 1fr); }
  .detail-visual { height: clamp(220px, 44vw, 350px); }
  .detail-check-grid { grid-template-columns: minmax(0, 1fr); }
  .detail-prepare { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 650px) {
  .service-card { --card-padding: 22px; }
  .related-links { grid-template-columns: minmax(0, 1fr); }
  .gallery-tools .filters { flex-wrap: wrap; }
  .mobile-contact {
    position: fixed;
    z-index: 6;
    inset: auto 0 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    padding: 6px 8px max(6px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: #fffffff7;
    box-shadow: 0 -4px 22px #05224a16;
  }
  .mobile-contact a {
    min-height: 48px;
    padding: 5px 2px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    color: #0758a7;
    font-size: .74rem;
    font-weight: 750;
    text-align: center;
    border-radius: 8px;
  }
  .mobile-contact .icon { width: 17px; height: 17px; }
  .mobile-contact .mobile-book { color: white; background: #0758a7; }
  body { padding-bottom: calc(61px + env(safe-area-inset-bottom)); }
}
