/* Visa Link brand identity. White-led layouts, original Manrope + DM Sans,
   blue #094d86, orange #ea7b19, and black #111318. */
:root {
  --blue: #094d86;
  --blue-dark: #06365f;
  --orange: #ea7b19;
  --ink: #111318;
  --muted: #656b76;
  --soft: #fff;
  --vl-navy: #111318;
  --vl-deep: #111318;
  --vl-orange: #ea7b19;
  --vl-ivory: #fff;
  --vl-muted: #656b76;
  --vl-line: #e5e8ec;
  --heading: "Manrope", sans-serif;
  --body: "DM Sans", sans-serif;
}
body { background:#fff; color:var(--ink); font-family:var(--body); }
h1,h2,h3,h4 { font-family:var(--heading); font-weight:800; letter-spacing:-.035em; }
.container { max-width:1280px; width:calc(100% - 100px); }
.vl-section h2,.vl-support h2,.vl-final-cta h2,.section-title {
  font-family:var(--heading); font-weight:800; font-size:clamp(2rem,3.4vw,3.15rem); line-height:1.2; letter-spacing:-.04em;
}
.vl-section h2 em,.vl-support h2 em,.vl-final-cta h2 em,.page-hero h1 em {
  font-family:var(--heading); font-weight:800; font-style:normal; color:var(--blue); letter-spacing:inherit;
}
.vl-section { padding:86px 0; background:#fff; }
.vl-overline { color:var(--blue); font-size:.68rem; letter-spacing:.13em; font-weight:700; }
.vl-overline>span { color:#aa5308; }
.vl-section-head { margin-bottom:36px; }
.vl-text-link { color:var(--blue); border-color:#b9cde0; font-size:.83rem; }
.vl-button { border-radius:5px; padding:16px 24px; font-size:.86rem; font-weight:700; }
.vl-button-orange { background:var(--orange); border-color:var(--orange); color:#111318; }
.vl-button-orange:hover { background:#f4913b; color:#111318; }
.brand-button-blue { color:#fff; background:var(--blue); border:1px solid var(--blue); }
.brand-button-blue:hover { color:#fff; background:var(--blue-dark); border-color:var(--blue-dark); }
.vl-actions { gap:24px; }
.brand-topbar { background:#111318; padding:8px 0; color:#eee; font-size:.71rem; }
.brand-topbar>.container { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.brand-topbar>.container>div { display:flex; gap:30px; }
.brand-topbar i { margin-right:6px; color:#f09a4d; }
.brand-navbar { min-height:100px; background:#fff!important; border-bottom:1px solid #edf0f3; }
.brand-navbar.is-scrolled { min-height:82px; }
.brand-navbar .navbar-brand { gap:9px; }
.brand-navbar .brand-symbol { width:47px; height:55px; }
.brand-navbar .brand-wordmark { width:169px; height:auto; }
.brand-navbar .nav-link { color:#252b32; padding:12px 15px!important; font-size:.82rem; font-weight:700; }
.brand-navbar .nav-link.active,.brand-navbar .nav-link:hover { color:var(--blue)!important; }
.brand-navbar .nav-link.active:after { background:var(--orange); height:2px; }
.brand-navbar .brand-nav-cta { background:var(--blue); border-color:var(--blue); border-radius:5px; padding:15px 20px; font-size:.8rem; color:#fff; }
.brand-nav-cta i { margin-left:12px; }
.brand-hero { position:relative; background:#162029; isolation:isolate; }
.brand-hero-slide { min-height:615px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.brand-hero-photo,.brand-hero-overlay { position:absolute; inset:0; height:100%; width:100%; }
.brand-hero-photo { object-fit:cover; object-position:center 46%; }
.brand-hero-overlay { background:linear-gradient(90deg,#07182c82,#061c3370),linear-gradient(0deg,#111318a0,#11131815); }
.brand-hero-copy { position:relative; z-index:1; color:#fff; text-align:center; padding:72px 50px 115px; }
.brand-hero-label { font-size:.68rem; letter-spacing:.2em; font-weight:700; color:#fff; display:block; margin-bottom:22px; }
.brand-hero h1,.brand-hero h2 { font-size:clamp(2.9rem,4.7vw,4.4rem); line-height:1.16; letter-spacing:-.035em; font-weight:800; color:#fff; margin:0 0 24px; }
.brand-hero h1 span,.brand-hero h2 span { color:#ffa552; }
.brand-hero-copy p { max-width:680px; margin:0 auto 30px; color:#f4f5f7; font-size:1.02rem; line-height:1.85; }
.brand-hero-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; }
.brand-button-outline { color:#fff; border-color:#ffffffa0; background:#11131820; }
.brand-button-outline:hover { background:#fff; border-color:#fff; color:var(--blue); }
.brand-hero-arrow { position:absolute; top:46%; z-index:3; display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff90; border-radius:50%; background:#0001; color:#fff; font-size:2rem; line-height:1; }
.brand-hero-arrow.prev { left:24px; }
.brand-hero-arrow.next { right:24px; }
.brand-hero-arrow:hover { background:#fff; color:var(--blue); }
.brand-hero-pagination { position:absolute; bottom:65px; z-index:3; display:flex; gap:8px; justify-content:center; width:100%; }
.brand-hero-pagination button { width:9px; height:9px; border:0; padding:0; border-radius:10px; background:#ffffff80; transition:width .3s,background .3s; }
.brand-hero-pagination button[aria-pressed=true] { background:var(--orange); width:28px; }
.brand-hero-slide.is-animating .brand-hero-copy { animation:brandHeroText .5s ease both; }
.brand-hero-slide.is-animating .brand-hero-photo { animation:brandHeroPhoto .8s ease both; }
@keyframes brandHeroText { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes brandHeroPhoto { from { opacity:.55; transform:scale(1.015); } to { opacity:1; transform:scale(1); } }
.brand-quick-links { position:relative; z-index:4; margin-top:-34px; display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border-radius:8px; box-shadow:0 12px 36px #10294912; border:1px solid #e5eaf0; overflow:hidden; }
.brand-quick-links>a { display:flex; gap:13px; align-items:center; padding:26px 22px; color:var(--ink); border-right:1px solid #e6eaf0; transition:background .25s; }
.brand-quick-links>a:last-child { border-right:0; }
.brand-quick-links>a>i { color:var(--blue); font-size:1.6rem; }
.brand-quick-links small { display:block; font-size:.47rem; font-weight:700; letter-spacing:.06em; color:#6d747e; margin-bottom:6px; }
.brand-quick-links span { font-size:.89rem; font-weight:700; line-height:1.4; }
.brand-quick-links b { font-size:1.1rem; color:var(--orange); margin-left:auto; }
.brand-quick-links>a:hover { background:#f3f8fc; }
.vl-introduction { gap:80px; }
.vl-introduction p { font-size:.96rem; line-height:1.9; }
.vl-principles { border-top-color:#e3e8ed; }
.vl-principles h3 { font-size:1.1rem; font-weight:800; }
.vl-principles p { font-size:.88rem; }
.vl-principles i { color:var(--orange); }
.vl-packages-preview { border-top:1px solid #e5e9ef; background:#fff; }
.vl-heading-row p { font-size:.95rem; }
.vl-heading-row .vl-overline { margin-bottom:16px; }
.vl-featured-package { border:1px solid #dfe6ec; border-radius:8px; overflow:hidden; box-shadow:0 5px 18px #17375405; }
.vl-featured-poster { background:#fff; padding:12px; border-bottom:1px solid #eef1f5; }
.vl-featured-package-copy { padding:24px; }
.vl-featured-package-copy h3 { font-weight:800; font-size:1.22rem; }
.vl-featured-package-copy>.vl-overline { color:var(--blue); font-size:.59rem; }
.vl-package-price>strong { color:var(--blue); font-weight:800; }
.vl-package-price>span { font-size:.64rem!important; }
.vl-advertised-salary { background:#f3f7fc; border-radius:4px; font-size:.78rem; }
.vl-advertised-salary strong { color:var(--blue); }
.vl-advertised-salary>span { font-size:.68rem!important; }
.vl-package-rail { scrollbar-color:#ea7b19 #f2f4f7; }
.vl-package-rail-controls p,.vl-discreet-note { font-size:.75rem; }
.vl-package-rail-controls button:hover:not(:disabled) { background:var(--blue); border-color:var(--blue); }
.brand-services-overview { border-top:1px solid #e8edf2; }
.brand-service-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.brand-service-box { padding:35px 38px; border:1px solid #d9e2ed; border-radius:8px; background:#fff; display:flex; flex-direction:column; transition:transform .25s,box-shadow .25s; }
.brand-service-box:hover { transform:translateY(-4px); box-shadow:0 12px 25px #0a2b4412; }
.brand-service-box>i { color:var(--blue); font-size:1.6rem; margin-bottom:20px; }
.brand-service-box h3 { font-size:1.4rem; line-height:1.35; margin-bottom:14px; }
.brand-service-box p { font-size:.91rem; line-height:1.85; color:#626975; max-width:475px; margin-bottom:25px; }
.brand-service-box>a { display:flex; justify-content:space-between; align-items:center; width:100%; max-width:285px; padding:11px 17px; color:var(--blue); border:1px solid #c5d5e6; border-radius:5px; font-size:.79rem; font-weight:700; margin-top:auto; }
.brand-service-box.blue { background:var(--blue); border-color:var(--blue); color:white; }
.brand-service-box.blue>i,.brand-service-box.blue p { color:#e4eff8; }
.brand-service-box.blue>a { background:#fff; border-color:#fff; }
.brand-service-box.orange { background:#fff2e6; border-color:#f3d5ba; border-top:4px solid var(--orange); }
.brand-service-box.orange>i { color:#ae5609; }
.vl-journey { background:#fff; border-top:1px solid #e5e9ef; }
.vl-stage-tabs { border-bottom-color:#dce4ed; }
.vl-stage-tabs button { font-size:.83rem; }
.vl-stage-tabs button span { color:#ac580e; }
.vl-stage-tabs button[aria-selected=true] { border-color:var(--orange); color:var(--blue); }
.vl-stage-panel { border:1px solid #e2e8ef; border-radius:10px; overflow:hidden; background:#fff; }
.vl-stage-copy h3 { font-size:1.95rem; font-weight:800; }
.vl-stage-copy>p { font-size:.9rem; }
.vl-stage-copy>.vl-overline { color:var(--blue); }
.vl-stage-copy li { font-size:.84rem; }
.vl-stage-copy li i { color:var(--orange); }
.vl-destination { background:#fff; border:1px solid #dce4ee; border-radius:9px; min-height:455px; }
.vl-destination-top { color:var(--blue); }
.vl-destination-art { height:150px; margin-top:25px; }
.vl-destination-art>span { color:var(--blue); font-size:3.75rem; }
.vl-europe .vl-destination-art>span { color:#bb6011; }
.vl-orbit,.vl-orbit:before,.vl-orbit:after { border-color:#094d861c; }
.vl-europe .vl-orbit,.vl-europe .vl-orbit:before,.vl-europe .vl-orbit:after { border-color:#ea7b1926; }
.vl-destination-bottom h3 { font-weight:800; }
.vl-destination-bottom p { font-size:.87rem; color:#626975; }
.vl-destination-link { color:var(--blue); border-top-color:#dee5ed; font-size:.81rem; }
.vl-tags span { border-color:#dae3ed; background:#f4f8fc; font-size:.65rem; }
.brand-purpose { border-top:1px solid #e8edf2; }
.brand-purpose-intro { margin-bottom:32px; }
.brand-purpose-intro>.vl-overline { margin-bottom:16px; }
.brand-purpose-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; }
.brand-purpose-image img { width:100%; height:auto; display:block; }
.brand-purpose-accordions { align-self:center; }
.brand-purpose-accordions details { border-bottom:1px solid #dde4eb; padding:0; margin-bottom:12px; }
.brand-purpose-accordions summary { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:1.05rem; color:var(--blue); font-weight:800; cursor:pointer; padding:25px; list-style:none; }
.brand-purpose-accordions summary::-webkit-details-marker { display:none; }
.brand-purpose-accordions summary i { font-size:.8rem; transition:transform .2s; }
.brand-purpose-accordions details[open] { background:#f0f6fc; border:1px solid #b8cfe5; border-radius:10px; }
.brand-purpose-accordions details[open] summary i { transform:rotate(180deg); }
.brand-purpose-accordions p { margin:0; padding:0 25px 26px; color:#535d6a; font-size:.91rem; line-height:1.9; }
.vl-original-gallery { border-top:1px solid #e8edf2; }
.vl-original-photo-grid figure { border-radius:8px; }
.vl-original-photo-grid figcaption { background:linear-gradient(transparent,#111318ed); }
.vl-original-photo-grid figcaption span { color:#ffad66; }
.vl-original-gallery { overflow:clip; }
/* Rounded orange office invitation with inset photography. */
.vl-original-office {
  position:relative; isolation:isolate; border:0; border-radius:28px;
  background:var(--orange, #ea7b19); padding:40px; margin-top:64px;
  gap:48px; overflow:hidden;
}
.vl-original-office::before {
  content:""; position:absolute; z-index:-1; width:380px; height:380px;
  border:1px solid rgb(255 255 255 / .25); border-radius:50%;
  right:-130px; top:-70px; pointer-events:none;
  box-shadow:0 0 0 48px rgb(255 255 255 / .07),0 0 0 96px rgb(255 255 255 / .05);
}
.vl-original-office img { height:270px; border-radius:18px; }
.vl-original-office .vl-overline { color:#171b20; }
.vl-original-office h3 { font-weight:800; font-size:clamp(1.8rem,3.2vw,2.8rem); color:#171b20; max-width:620px; }
.vl-original-office p { color:#27231e; max-width:510px; font-size:.95rem; }
.vl-original-office .vl-text-link {
  display:inline-flex; align-items:center; gap:30px; background:#fff;
  color:#094d86; border:0; border-radius:12px; padding:16px 22px; margin-top:12px;
  transition:background .25s, transform .25s;
}
.vl-original-office .vl-text-link:hover { background:#f3f6fa; transform:translateY(-3px); }
.vl-original-office .vl-text-link span { transition:transform .25s; }
.vl-original-office .vl-text-link:hover span { transform:translate(3px,-3px); }
.vl-original-office.vl-motion:not(.is-pending)::before { animation:office-orbit 4s ease-out both; }
@keyframes office-orbit { from { transform:translateX(55px) scale(.8); opacity:0; } to { transform:translateX(0) scale(1); opacity:1; } }
@media(max-width:767px) {
  .vl-original-office { grid-template-columns:1fr; padding:22px; gap:26px; margin-top:36px; border-radius:22px; }
  .vl-original-office img { height:230px; }
  .vl-original-office p { font-size:.88rem; }
}
.vl-support { background:white; color:var(--ink); padding:86px 0; border-top:1px solid #e7ecf2; }
.vl-support .vl-overline { color:var(--blue); }
.vl-support .vl-overline>span { color:#ac580e; }
.vl-support h2 em { color:var(--blue); }
.vl-support-grid>div>p { color:#626975; font-size:.94rem; }
.vl-support-list article { border-color:#dfe6ee; padding:23px 0; }
.vl-support-list article>span { color:#b3590b; }
.vl-support-list h3 { color:#111318; font-weight:800; font-size:1.12rem; }
.vl-support-list p { color:#626975; font-size:.89rem; }
.vl-support-word { display:none; }
.vl-planning-section { border-top:1px solid #e7ecf2; }
.vl-body-copy { font-size:.93rem; }
.vl-checklist { border-color:#dce5ee; border-radius:8px; box-shadow:12px 12px 0 #f1f6fb; }
.vl-checklist>.vl-overline { color:var(--blue); }
.vl-checklist h3 { font-weight:800; }
.vl-checklist strong { font-size:.9rem; }
.vl-checklist p { font-size:.84rem; }
.vl-checklist li>span { color:#b65e10; }
.brand-mobile-section { border-top:1px solid #e7ecf2; }
.brand-mobile-grid { display:grid; grid-template-columns:1.25fr .85fr; align-items:center; gap:95px; }
.brand-mobile-grid>.brand-phone { justify-self:center; }
.brand-mobile-grid>div>.vl-overline { margin-bottom:20px; }
.brand-mobile-grid>div>p { color:#626975; font-size:.97rem; line-height:1.9; margin:25px 0 32px; max-width:560px; }
.brand-mobile-features { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-bottom:33px; margin-bottom:33px; border-bottom:1px solid #dfe7ef; }
.brand-mobile-features>div { display:flex; flex-direction:column; }
.brand-mobile-features i { color:var(--blue); font-size:1.6rem; margin-bottom:9px; }
.brand-mobile-features strong { font-size:1.1rem; color:var(--blue); }
.brand-mobile-features span { font-size:.78rem; color:#626975; margin-top:5px; }
.brand-phone { border:9px solid #18191b; border-radius:42px; background:#fff; width:310px; padding:26px 17px 22px; box-shadow:18px 22px 45px #15395518; transform:rotate(3deg); position:relative; }
.brand-phone-speaker { position:absolute; width:92px; height:13px; border-radius:0 0 15px 15px; background:#18191b; left:50%; top:0; transform:translateX(-50%); }
.brand-phone-header { display:flex; align-items:center; gap:7px; padding:4px 0 14px; border-bottom:1px solid #e7edf3; color:var(--blue); }
.brand-phone-header img { width:23px; height:27px; object-fit:contain; }
.brand-phone-header strong { font-size:.85rem; }
.brand-phone-header i { margin-left:auto; }
.brand-phone-content>.vl-overline { font-size:.42rem; margin:17px 0 12px; }
.brand-phone-content>img { display:block; width:100%; height:auto; border-radius:7px; }
.brand-phone-content h3 { font-size:1.05rem; margin:16px 0 9px; }
.brand-phone-content p { font-size:.68rem; color:#626975; line-height:1.7; }
.brand-phone-price { display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-top:1px solid #e6ebf0; margin-top:13px; }
.brand-phone-price span { font-size:.6rem; color:#69747e; }
.brand-phone-price strong { color:var(--blue); font-size:1.15rem; }
.brand-phone-content>a { display:flex; justify-content:space-between; align-items:center; background:var(--blue); color:white; font-weight:700; padding:12px; border-radius:5px; font-size:.63rem; }
.vl-faq-section { background:white; border-top:1px solid #e7ecf2; }
.vl-faq-list { border-top-color:#dfe6ee; }
.vl-faq-list details { border-color:#dfe6ee; }
.vl-faq-list summary { font-size:.9rem; font-weight:700; }
.vl-faq-list summary i { color:var(--blue); }
.vl-faq-list p { color:#626975; font-size:.88rem; }
.vl-faq-list details[open] summary { color:var(--blue); }
.brand-contact-banner { background:white; padding:35px 0 80px; }
.brand-contact-card { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; background:#edf4fb; border-radius:12px; overflow:hidden; min-height:350px; }
.brand-contact-card>div { padding:45px 0 45px 46px; align-self:center; }
.brand-contact-card .vl-overline { font-size:.62rem; margin-bottom:18px; }
.brand-contact-card h2 { font-family:var(--heading); font-weight:800; font-size:2.25rem; line-height:1.3; margin:0 0 17px; color:#111318; }
.brand-contact-card p { font-size:.91rem; color:#626975; max-width:440px; line-height:1.85; margin-bottom:25px; }
.brand-contact-card>img { display:block; width:100%; height:auto; max-height:390px; object-fit:contain; object-position:bottom; align-self:end; }
.page-hero { background:#fff; color:#111318; padding:55px 0; min-height:270px; border-bottom:1px solid #e5ebf2; }
.page-hero h1 { color:#111318; font-family:var(--heading); font-size:clamp(2rem,3.8vw,3.5rem); font-weight:800; line-height:1.2; }
.page-hero p { color:#626975; font-size:.94rem; }
.page-hero .eyebrow { color:var(--blue); font-size:.65rem; margin-bottom:15px; }
.page-hero .page-orbit { display:none; }
.services-directory,.about-story,.values-section,.contact-section,.contact-options,.packages-grid-section,.all-services { background:white; }
.directory-card { background:#fff; border-color:#dfe6ef; border-radius:8px; }
.directory-card h2 { font-weight:800; }
.directory-card p,.directory-card li { font-size:.87rem; }
.directory-card a { color:var(--blue); }
.directory-icon { color:var(--blue); background:#eef5fb; border-radius:9px; }
.category-label { color:#af5506; }
.dark-directory { background:#fff; color:#111318; border-color:#dfe6ef; border-top:4px solid var(--blue); }
.dark-directory .directory-icon { background:#eef5fb; color:var(--blue); }
.dark-directory p,.dark-directory li { color:#626975; }
.dark-directory:hover { background:#f8fbff; }
.dark-directory a { color:var(--blue); }
.all-services-shell { border-radius:8px; background:#fff; }
.service-chip-grid span { background:#fff; border-color:#dfe6ef; border-radius:5px; }
.about-visual { border-radius:8px; }
.about-badge { background:var(--blue); }
.value-card { border:1px solid #dfe6ef; background:white; border-radius:8px; }
.value-card h3 { font-weight:800; }
.value-card p { font-size:.87rem; }
.about-numbers { background:#fff; color:var(--blue); border-top:1px solid #e5ebf2; border-bottom:1px solid #e5ebf2; }
.about-numbers strong { color:var(--blue); font-size:1.65rem; }
.about-numbers span { color:#626975; }
.process-section { background:#fff; color:#111318; }
.process-section:after { display:none; }
.process-section .text-white { color:#111318!important; }
.process-section .text-white-50 { color:#626975!important; }
.process-section .eyebrow { color:var(--blue); }
.process-step { background:#fff; border:1px solid #dfe6ef; border-radius:8px; }
.process-step h3 { color:#111318; font-weight:800; }
.process-step p { color:#626975; font-size:.9rem; }
.process-step>i { color:var(--orange); }
.process-step>span { color:#8d99a5; }
.process-step:hover { background:#f4f8fc; }
.contact-shell { border:1px solid #dfe6ef; border-radius:9px; }
.contact-info { background:#f0f6fc; color:#111318; }
.contact-info>p { color:#626975; }
.contact-info h2 { font-weight:800; }
.contact-lines i { background:white; color:var(--blue); }
.contact-lines span { color:#2d3541; }
.contact-lines small { color:#576d83; }
.form-control,.form-select { background:white; border-radius:5px; border-color:#d5dee9; }
.form-label { font-size:.85rem; }
.contact-option { background:white; border:1px solid #dfe6ef; border-radius:8px; }
.vl-enquiry-context { border-color:var(--orange); background:#fff5ea; }
.vl-filter-buttons button { border-radius:5px; font-size:.76rem; }
.vl-filter-buttons button[aria-pressed=true] { background:var(--blue); border-color:var(--blue); }
.package-card { border-radius:8px; border:1px solid #dfe6ef; }
.package-card .package-poster { background:#fff; border-bottom:1px solid #e7ecf2; padding:12px; }
.package-card-body h2 { font-weight:800; }
.package-card-body p { font-size:.86rem; }
.package-card-body>span { color:var(--blue); }
.package-card .btn-whatsapp { background:var(--blue); border-color:var(--blue); color:white; }
.package-card .btn-whatsapp:hover { background:var(--blue-dark); }
.package-disclaimer-bar { background:#fff6eb; }
.package-disclaimer-bar p { color:#655846; }
.vl-package-details li,.vl-package-details p { font-size:.8rem; }
.vl-package-details summary { font-size:.78rem; }
.policy-card,.notice-card,.delete-form-card { border-radius:8px; background:white; }
.vl-footer { background:#111318; color:#b8bcc3; padding-top:55px; }
.vl-footer-brand { display:inline-flex; background:#fff; border-radius:6px; padding:10px 14px; margin-bottom:18px; }
.vl-footer-brand .brand-footer-logo { width:118px; height:auto; object-fit:contain; }
.vl-footer-top { grid-template-columns:1.35fr 1fr 1.15fr 1.35fr; }
.vl-footer-top h2 { font-size:.84rem; }
.vl-footer-top p,.vl-footer-top>div>a:not(.vl-footer-brand) { font-size:.79rem; }
.vl-footer-signature { color:#ffffff13; font-size:clamp(1.3rem,4.5vw,4rem); margin-top:35px; }
.vl-footer .footer-bottom,.vl-footer .footer-legal a { font-size:.69rem; }
.floating-whatsapp { background:var(--blue); }
.vl-dialog { border-radius:10px; }
.vl-dialog h2 { font-weight:800; }
.vl-dialog-head .vl-overline { color:var(--blue); }
.vl-planner-progress span.active { background:var(--orange); }
.vl-planner-option { border-radius:5px; }
.vl-planner-option:has(input:checked) { background:#f1f7fd; border-color:var(--blue); }
.vl-planner-option input { accent-color:var(--blue); }
.vl-planner-summary { background:#f1f7fd; border-radius:6px; }
@media (max-width:1199px) {
  .container { width:calc(100% - 64px); }
  .brand-navbar .brand-symbol { width:40px; height:48px; }
  .brand-navbar .brand-wordmark { width:145px; }
  .brand-navbar .nav-link { font-size:.75rem; padding:12px!important; }
  .brand-navbar .brand-nav-cta { font-size:.72rem; padding:13px 15px; }
  .brand-quick-links>a { padding:22px 16px; gap:10px; }
  .brand-quick-links span { font-size:.77rem; }
  .brand-quick-links small { font-size:.42rem; }
  .brand-quick-links>a>i { font-size:1.3rem; }
  .brand-hero-arrow.prev { left:14px; }
  .brand-hero-arrow.next { right:14px; }
  .brand-mobile-grid { gap:50px; }
  .brand-purpose-grid { gap:40px; }
  .brand-contact-card>div { padding-left:34px; }
}
@media (max-width:991px) {
  .brand-navbar { min-height:82px; }
  .brand-navbar .navbar-collapse { padding:15px 0 22px; }
  .brand-navbar .nav-link { font-size:.9rem; padding:12px 0!important; }
  .brand-navbar .brand-nav-cta { font-size:.8rem; }
  .brand-hero-slide { min-height:570px; }
  .brand-hero-copy { padding:70px 25px 105px; }
  .brand-hero h1,.brand-hero h2 { font-size:3.2rem; }
  .brand-hero-copy p { font-size:.94rem; max-width:580px; }
  .brand-hero-arrow { width:34px; height:34px; font-size:1.6rem; }
  .brand-quick-links { grid-template-columns:1fr 1fr; }
  .brand-quick-links>a { padding:23px; }
  .brand-quick-links>a:nth-child(2) { border-right:0; }
  .brand-quick-links>a:nth-child(-n+2) { border-bottom:1px solid #e6eaf0; }
  .brand-quick-links span { font-size:.9rem; }
  .brand-quick-links small { font-size:.52rem; }
  .vl-introduction { gap:35px; }
  .brand-service-box { padding:28px; }
  .brand-purpose-grid { gap:25px; }
  .brand-purpose-accordions summary { padding:20px; font-size:.95rem; }
  .brand-purpose-accordions p { padding:0 20px 23px; font-size:.84rem; }
  .brand-mobile-grid { gap:35px; grid-template-columns:1fr .8fr; }
  .brand-mobile-features { gap:12px; }
  .brand-mobile-features span { font-size:.69rem; }
  .brand-phone { width:275px; }
  .brand-contact-card { grid-template-columns:1.2fr .9fr; }
  .brand-contact-card h2 { font-size:1.8rem; }
  .brand-contact-card>div { padding:30px 0 30px 30px; }
  .brand-contact-card p { font-size:.83rem; }
  .vl-footer-top { grid-template-columns:1.3fr 1fr; }
}
@media (max-width:767px) {
  .container { width:calc(100% - 40px); }
  .brand-navbar { min-height:78px; }
  .brand-navbar .brand-symbol { width:37px; height:43px; }
  .brand-navbar .brand-wordmark { width:145px; }
  .brand-hero-slide { min-height:560px; }
  .brand-hero-photo { object-position:center; }
  .brand-hero-overlay { background:linear-gradient(0deg,#0d172bcc,#0d172b80); }
  .brand-hero-copy { padding:66px 8px 105px; }
  .brand-hero h1,.brand-hero h2 { font-size:clamp(2rem,7.8vw,3rem); line-height:1.22; margin-bottom:21px; }
  .brand-hero-label { font-size:.49rem; letter-spacing:.12em; margin-bottom:22px; }
  .brand-hero-copy p { font-size:.86rem; line-height:1.85; margin-bottom:26px; }
  .brand-hero-actions { gap:10px; }
  .brand-hero-actions .vl-button { font-size:.71rem; padding:13px 15px; gap:13px; }
  .brand-hero-arrow { top:auto; bottom:50px; width:32px; height:32px; }
  .brand-hero-arrow.prev { left:calc(50% - 88px); }
  .brand-hero-arrow.next { right:calc(50% - 88px); }
  .brand-hero-pagination { bottom:61px; width:auto; left:50%; transform:translateX(-50%); }
  .brand-quick-links { margin-top:-23px; border-radius:7px; }
  .brand-quick-links>a { padding:20px 13px; gap:10px; }
  .brand-quick-links>a>i { font-size:1.2rem; }
  .brand-quick-links span { font-size:.74rem; }
  .brand-quick-links small { font-size:.38rem; letter-spacing:.025em; }
  .brand-quick-links b { display:none; }
  .vl-section { padding:58px 0; }
  .vl-section h2,.vl-support h2,.section-title { font-size:2.05rem; }
  .vl-overline { font-size:.57rem; }
  .vl-section-head { gap:16px; margin-bottom:25px; }
  .vl-section-head .vl-overline { font-size:.51rem; }
  .vl-introduction p { font-size:.89rem; }
  .vl-principles p { font-size:.83rem; }
  .vl-heading-row p { font-size:.86rem; }
  .vl-text-link { font-size:.79rem; }
  .brand-service-grid { grid-template-columns:1fr; gap:17px; }
  .brand-service-box { padding:27px; }
  .brand-service-box h3 { font-size:1.25rem; }
  .brand-service-box p { font-size:.86rem; }
  .vl-stage-tabs button { font-size:.72rem; }
  .vl-stage-copy h3 { font-size:1.6rem; }
  .vl-stage-copy>p { font-size:.85rem; }
  .vl-stage-copy li { font-size:.78rem; }
  .vl-destination-art>span { font-size:3.5rem; }
  .vl-destination { min-height:440px; }
  .brand-purpose-grid { grid-template-columns:1fr; gap:28px; }
  .brand-purpose-image { max-width:460px; }
  .brand-purpose-intro { margin-bottom:20px; }
  .brand-purpose-accordions summary { font-size:1rem; }
  .vl-support { padding:58px 0; }
  .vl-support-grid>div>p,.vl-support-list p { font-size:.86rem; }
  .vl-checklist p { font-size:.82rem; }
  .brand-mobile-grid { grid-template-columns:1fr; gap:45px; }
  .brand-mobile-grid>div>p { font-size:.89rem; margin-top:20px; }
  .brand-mobile-features { margin-bottom:27px; padding-bottom:27px; }
  .brand-mobile-features strong { font-size:1rem; }
  .brand-mobile-features span { font-size:.71rem; }
  .brand-phone { width:280px; max-width:calc(100% - 20px); }
  .brand-mobile-grid .vl-actions { gap:18px; }
  .brand-mobile-grid .vl-actions .vl-button { font-size:.76rem; padding:14px 18px; }
  .vl-faq-list summary { font-size:.85rem; }
  .vl-faq-list p { font-size:.83rem; }
  .brand-contact-banner { padding:15px 0 55px; }
  .brand-contact-card { grid-template-columns:1fr; gap:12px; border-radius:9px; }
  .brand-contact-card>div { padding:30px 26px 15px; }
  .brand-contact-card .vl-overline { font-size:.51rem; }
  .brand-contact-card h2 { font-size:1.8rem; }
  .brand-contact-card p { font-size:.85rem; }
  .brand-contact-card>img { max-height:300px; width:100%; padding:0 10px; }
  .page-hero { min-height:235px; padding:40px 0; }
  .page-hero h1 { font-size:2rem; }
  .page-hero p { font-size:.85rem; }
  .directory-card h2 { font-size:1.3rem; }
  .directory-card p,.directory-card li { font-size:.83rem; }
  .vl-filter-buttons button { font-size:.65rem; }
  .contact-info h2 { font-size:1.8rem; }
  .vl-footer-top { grid-template-columns:1fr 1fr; }
  .vl-footer-top h2 { font-size:.78rem; }
  .vl-footer-top p,.vl-footer-top>div>a:not(.vl-footer-brand) { font-size:.75rem; }
  .vl-footer .footer-bottom,.vl-footer .footer-legal a { font-size:.64rem; }
}
@media (prefers-reduced-motion:reduce) {
  .brand-hero-slide.is-animating .brand-hero-copy,.brand-hero-slide.is-animating .brand-hero-photo { animation:none; }
  .brand-service-box:hover { transform:none; }
}

/* Equal-size, swipeable photo album. */
.vl-photo-controls { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 22px; }
.vl-photo-controls p { color:#626975; font-size:.85rem; margin:0; }
.vl-photo-controls>div { display:flex; gap:10px; }
.vl-photo-controls button { width:46px; height:46px; border:1px solid #dce4ed; border-radius:50%; background:white; color:#094d86; font-size:1.25rem; transition:background .2s, color .2s; }
.vl-photo-controls button:hover:not(:disabled) { background:#094d86; color:white; }
.vl-photo-controls button:disabled { opacity:.3; cursor:default; }
.vl-original-photo-grid { display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:38%; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#ea7b19 #f2f4f7; padding-bottom:16px; }
.vl-original-photo-grid figure,.vl-original-photo-grid figure:nth-child(2),.vl-original-photo-grid figure:last-child { margin:0; grid-column:auto; scroll-snap-align:start; border-radius:16px; min-width:0; }
.vl-original-photo-grid img,.vl-original-photo-grid figure:last-child img { width:100%; height:480px; object-fit:cover; object-position:center 24%; }
.vl-original-photo-grid:focus-visible { outline:3px solid #094d86; outline-offset:6px; }
@media(max-width:991px) { .vl-original-photo-grid { grid-auto-columns:46%; gap:20px; } .vl-original-photo-grid img,.vl-original-photo-grid figure:last-child img { height:380px; } }
@media(max-width:767px) { .vl-original-photo-grid { grid-auto-columns:86%; gap:16px; } .vl-original-photo-grid img,.vl-original-photo-grid figure:last-child img { height:390px; } .vl-photo-controls p { font-size:.75rem; } }

/* Compact rhythm shared by the home, service, package and information pages. */
.vl-section,.section-space,.vl-support { padding-top:54px; padding-bottom:54px; }
.vl-section-head { margin-bottom:24px; }
.vl-introduction,.vl-heading-row { column-gap:48px; }
.vl-introduction p { line-height:1.75; margin-bottom:12px; }
.vl-heading-row { margin-bottom:26px; }
.vl-introduction .vl-text-link { margin-top:4px; }
.vl-principles { margin-top:30px; border:0; gap:20px; }
.vl-principles>div,.vl-principles>div+div {
  position:relative; padding:24px; border:1px solid #e2e9f0; border-radius:18px;
  background:#fff; box-shadow:0 6px 22px #094d8610;
  transition:opacity .6s ease,transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.vl-principles>div:nth-child(2) { background:#fffaf5; border-color:#f3dfcb; }
.vl-principles>div:nth-child(3) { background:#f7faff; }
.vl-principles i { display:grid; place-items:center; float:none; width:46px; height:46px; margin:0 0 16px; border-radius:13px; background:#fff0e1; color:#ab5103; font-size:1.35rem; }
.vl-principles>div:nth-child(3) i { color:#094d86; background:#e7f0fa; }
.vl-principles h3 { margin-bottom:10px; line-height:1.4; }
.vl-principles p { max-width:none; line-height:1.7; }
@media(hover:hover) {
  .vl-principles>div:hover { transform:translateY(-5px); box-shadow:0 14px 30px #094d8620; border-color:#ea7b1980; }
}
.vl-principles>div:nth-child(2).vl-motion { transition-delay:.07s; }
.vl-principles>div:nth-child(3).vl-motion { transition-delay:.14s; }
.brand-service-grid { gap:20px; }
.brand-service-box { padding:27px; }
.brand-service-box>i { margin-bottom:14px; }
.brand-service-box p { margin-bottom:18px; line-height:1.75; }
.vl-stage-copy { padding:30px; }
.vl-stage-copy>p { margin:14px 0; }
.vl-stage-copy ul { margin-bottom:18px; }
.brand-purpose-grid { gap:36px; }
.brand-purpose-intro { margin-bottom:22px; }
.vl-original-office { margin-top:36px; padding:32px; gap:32px; }
.vl-support-list article { padding:17px 0; }
.brand-mobile-grid { gap:36px; }
.brand-contact-banner { padding:20px 0 48px; }
.page-hero { min-height:220px; padding:36px 0; }
.about-numbers { padding:32px 0; }
.contact-info,.contact-form-wrap { padding:32px; }
.policy-card,.notice-card,.delete-form-card { padding:24px; }
.section-space .row.g-5 { --bs-gutter-y:2rem; --bs-gutter-x:2rem; }
.vl-footer { padding-top:38px; }
.vl-footer-signature { margin-top:20px; }
@media(max-width:767px) {
  .vl-section,.section-space,.vl-support { padding-top:36px; padding-bottom:36px; }
  .vl-section-head { margin-bottom:18px; }
  .vl-introduction,.vl-heading-row,.vl-support-grid,.vl-planning-grid,.vl-faq-grid { gap:20px; }
  .vl-heading-row { margin-bottom:22px; }
  .vl-principles { margin-top:24px; gap:14px; }
  .vl-principles>div,.vl-principles>div+div { padding:20px; }
  .vl-principles i { width:40px; height:40px; margin-bottom:12px; }
  .brand-service-box,.vl-stage-copy { padding:22px; }
  .brand-purpose-grid,.brand-mobile-grid { gap:24px; }
  .vl-original-office { margin-top:26px; padding:22px; gap:22px; }
  .brand-contact-banner { padding:12px 0 32px; }
  .page-hero { min-height:190px; padding:28px 0; }
  .contact-info,.contact-form-wrap { padding:24px; }
  .policy-card,.notice-card,.delete-form-card { padding:22px; }
  .vl-footer { padding-top:30px; }
}
@media(prefers-reduced-motion:reduce) {
  .vl-principles>div:hover { transform:none; }
}

/* Client portal access in the shared navigation. */
.brand-portal-item { margin-left:12px; }
.brand-navbar .brand-portal-button { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:14px 16px; border:1px solid #ea7b19; border-radius:8px; color:#111318; background:#ea7b19; box-shadow:0 4px 12px #ea7b1926; font-size:.78rem; font-weight:700; transition:background .2s,color .2s; }
.brand-navbar .brand-portal-button:hover { background:#f4913b; border-color:#f4913b; color:#111318; }
.brand-navbar .brand-portal-button:focus-visible { outline:3px solid #094d86; outline-offset:3px; }
@media(min-width:992px) and (max-width:1199px) {
 .brand-navbar .nav-link { padding:10px 8px!important; font-size:.7rem; }
 .brand-navbar .nav-item.ms-lg-4 { margin-left:10px!important; }
 .brand-navbar .brand-nav-cta { padding:12px 10px; font-size:.68rem; }
 .brand-nav-cta i { margin-left:5px; }
 .brand-navbar .brand-portal-button { padding:12px 10px; font-size:.68rem; }
 .brand-portal-item { margin-left:8px; }
}
@media(max-width:991px) {
 .brand-portal-item { margin:12px 0 0; }
 .brand-navbar .brand-portal-button { min-height:44px; }
}

/* Persistent WhatsApp help hint, matching the supplied reference. */
.floating-whatsapp { width:64px; height:64px; right:24px; bottom:24px; background:#25b83f; box-shadow:0 5px 20px #0002; color:white; animation:none; }
.floating-whatsapp i { font-size:2.2rem; }
.floating-whatsapp span { display:block; position:absolute; right:78px; padding:13px 17px; opacity:1; pointer-events:auto; background:#f5f6fa; color:#41454e; border:1px solid #e8eaf0; border-radius:7px; font-size:.9rem; font-weight:400; line-height:1.5; white-space:nowrap; transform:none; box-shadow:0 3px 16px #00000012; }
.floating-whatsapp span strong { font-weight:700; }
.floating-whatsapp:hover,.floating-whatsapp:focus-visible { background:#1d9e35; color:white; }
.floating-whatsapp:hover span { transform:none; }
@media(max-width:767px) {
 .floating-whatsapp { width:52px; height:52px; right:14px; bottom:max(14px,env(safe-area-inset-bottom)); }
 .floating-whatsapp i { font-size:1.8rem; }
 .floating-whatsapp span { display:block; right:62px; padding:10px 12px; font-size:.78rem; }
}
