/* Harbour editorial photography, visa guides and restrained icon motion. */
.harbour-photo{margin:0;position:relative;overflow:hidden;background:#dedbd2}.harbour-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;filter:saturate(.78)}.harbour-photo figcaption{position:absolute;inset:auto 0 0;padding:50px 24px 22px;background:linear-gradient(transparent,rgba(8,30,40,.86));color:#fff;display:flex;flex-direction:column;gap:9px}.harbour-photo figcaption>span{font:25px/1.15 var(--serif);max-width:300px}.harbour-photo figcaption small{font-size:8px;letter-spacing:.06em;color:#e5e8e6}.visual-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center}.visual-hero-grid h1{font-size:clamp(46px,5.5vw,78px);line-height:1.04}.visual-hero-grid .eyebrow{margin-bottom:24px}.visual-hero-grid .page-intro{font-size:14px;line-height:1.85}.visual-hero-grid .button{margin-top:28px;font-size:11px}.service-hero-photo{height:440px;border-radius:180px 0 0 0}.service-page .page-hero{padding-bottom:65px}.service-page .page-hero .breadcrumbs{margin-bottom:30px}.journal-photo{height:230px}.journal-card:hover .journal-photo img{transform:scale(1.035)}.featured-card .journal-photo{height:100%;min-height:340px}.article-cover{padding-top:0;padding-bottom:60px}.article-cover-photo{height:460px;border-radius:0 110px 0 0}.article-cover-photo img{object-position:center 55%}.article-cover-photo figcaption{padding-left:32px}.article-hero{padding-bottom:36px}.service-thumbnail{height:180px;margin:-30px -30px 28px;max-width:none}.service-thumbnail img{object-position:center}.service-card:hover .service-thumbnail img{transform:scale(1.035)}.visa-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.visa-guide-card{display:flex;flex-direction:column;padding:27px;background:var(--paper);border:1px solid var(--line);transition:background .2s,box-shadow .2s}.visa-guide-card:hover{background:#eee5d8;box-shadow:0 7px 20px #102a3b09}.visa-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}.visa-card-top .visa-number{font:34px/1 var(--serif);color:var(--clay);white-space:nowrap}.visa-type{font-size:9px;line-height:1.4;text-align:right;color:var(--muted);max-width:100px}.visa-guide-card h3{font:31px/1.1 var(--serif);margin:23px 0 14px}.visa-guide-card>p{font-size:12px!important;line-height:1.8!important;color:var(--muted);margin:0 0 23px}.visa-guide-card .text-link{font-size:10px;align-self:flex-start;margin-top:auto}.visa-hero{padding-top:30px;padding-bottom:42px}.visa-hero .breadcrumbs{margin-bottom:30px}.visa-hero h1{font-size:clamp(44px,4.7vw,67px)}.visa-hero-photo{height:360px;border-radius:0 160px 0 0}.visa-facts{padding-top:0;padding-bottom:42px;display:grid;grid-template-columns:.8fr 1.7fr 1fr;gap:35px}.visa-facts>div{border-top:1px solid var(--line);padding-top:22px}.visa-facts .eyebrow{display:block;margin-bottom:13px}.visa-facts strong{font:29px/1.2 var(--serif);font-weight:400}.visa-facts p,.visa-facts a{font-size:12px;line-height:1.8}.visa-facts a{border-bottom:1px solid var(--clay)}.visa-facts small{display:block;font-size:9px;color:var(--muted);margin-top:14px}.visa-content .check-list li{padding:17px 0 17px 26px;font-size:14px;line-height:1.85;border-bottom:1px solid var(--line)}.visa-content .check-list li:before{top:19px}.evidence-panel{padding:22px 30px;background:var(--paper);border-left:2px solid var(--clay)}.evidence-panel>p{font-size:11px!important;margin-top:20px;color:var(--muted)}.visa-timeline{padding:0;margin:32px 0;list-style:none}.visa-timeline li{display:flex;gap:23px;position:relative;padding-bottom:28px}.visa-timeline li:not(:last-child):before{content:'';position:absolute;top:38px;bottom:0;left:19px;width:1px;background:#d5d8d5}.visa-timeline li>span{display:grid;place-items:center;width:39px;height:39px;flex-shrink:0;border:1px solid #c9d3d0;border-radius:50%;background:#eaf0eb;color:#365c50;font-size:11px}.visa-timeline li>p{margin:4px 0 0;font-size:14px;line-height:1.85}.visa-considerations{background:var(--navy);color:var(--paper);padding:35px!important;margin-top:20px}.visa-considerations .eyebrow,.visa-considerations h2 em{color:#e9b090}.visa-considerations .check-list li{color:#e1e8e9;border-color:#ffffff25}.visa-considerations .check-list li:before{color:#e9b090}.cost-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:25px 0}.cost-mini-grid h3{font:28px/1.1 var(--serif)}.cost-mini-grid p{font-size:13px;line-height:1.9;color:var(--muted)}.motion-icon{display:inline-flex;flex-shrink:0;color:var(--clay);width:48px;height:48px}.motion-icon svg{width:100%;height:100%;overflow:visible}.trust-strip .motion-icon{width:42px;height:42px}.step-number .motion-icon{width:34px;height:34px;color:#e8ae90}.motion-icon .icon-needle,.motion-icon .icon-orbit{transform-origin:28px 28px}.motion-icon.is-active svg{animation:icon-arrive 1.8s ease both}.motion-icon.is-active .icon-needle{animation:needle-settle 2.2s ease both}.motion-icon.is-active .icon-orbit{animation:globe-settle 2s ease both}.motion-icon.is-active path{animation:icon-draw 1.8s ease both}.trust-strip>div:hover .motion-icon svg,.step:hover .motion-icon svg{transform:translateY(-3px);transition:transform .3s}.motion-icon svg path{stroke-dasharray:220;stroke-dashoffset:0}@keyframes icon-arrive{0%{opacity:.3;transform:translateY(6px) scale(.88)}100%{opacity:1;transform:none}}@keyframes needle-settle{0%{transform:rotate(-70deg)}65%{transform:rotate(10deg)}100%{transform:rotate(0)}}@keyframes globe-settle{0%{transform:scaleX(.2)}60%{transform:scaleX(1.2)}100%{transform:scaleX(1)}}@keyframes icon-draw{0%{stroke-dashoffset:220}100%{stroke-dashoffset:0}}
@media(min-width:1100px){.visa-page .detail-layout{grid-template-columns:220px minmax(0,760px)}}
@media(max-width:1000px){.visual-hero-grid{gap:35px}.service-hero-photo{height:390px}.visa-facts{gap:25px}.visa-guide-card{padding:22px}.service-thumbnail{margin:-25px -25px 25px}.visa-type{font-size:8px}}
@media(max-width:720px){.visual-hero-grid{grid-template-columns:1fr;gap:30px}.visual-hero-grid h1{font-size:53px}.visual-hero-grid .page-intro{font-size:14px}.service-hero-photo{height:330px;border-top-left-radius:120px}.visa-hero-photo{height:270px;border-top-right-radius:100px}.visa-hero h1{font-size:47px}.visa-facts{grid-template-columns:1fr;gap:20px;padding-bottom:35px}.visa-facts>div{padding-top:18px}.visa-facts .eyebrow{margin-bottom:8px}.visa-guide-grid{grid-template-columns:1fr}.visa-guide-card{padding:25px}.visa-type{font-size:10px}.article-cover{padding-bottom:32px}.article-cover-photo{height:290px;border-top-right-radius:75px}.article-cover-photo figcaption{padding:50px 22px 20px}.harbour-photo figcaption>span{font-size:25px}.journal-photo{height:240px}.featured-card .journal-photo{height:260px;min-height:0}.service-thumbnail{margin:-30px -30px 25px;height:210px}.visa-considerations{padding:25px!important}.cost-mini-grid{grid-template-columns:1fr;gap:10px}.evidence-panel{padding:14px 22px}.visa-content .check-list li{font-size:13px}.visa-timeline li>p{font-size:13px}.visa-hero .breadcrumbs{font-size:9px}.visa-page .detail-layout{padding-top:35px}}
@media(prefers-reduced-motion:reduce){.motion-icon.is-active svg,.motion-icon.is-active path,.motion-icon.is-active .icon-needle,.motion-icon.is-active .icon-orbit{animation:none!important}.motion-icon svg,.harbour-photo img{transition:none!important}.journal-card:hover .journal-photo img,.service-card:hover .service-thumbnail img{transform:none}.trust-strip>div:hover .motion-icon svg,.step:hover .motion-icon svg{transform:none}}
@media print{.harbour-photo,.visa-hero-photo,.visa-facts,.visa-page .page-sidebar,.visa-page .mini-cta{display:none}.visual-hero-grid,.visa-page .detail-layout{display:block}.visa-page .visa-content{max-width:none}.visa-considerations{background:#fff;color:#000;padding:0!important}.visa-considerations .check-list li{color:#000}.visa-page section{break-inside:avoid}}
/* Photography and the original Harbour illustrated tiles share the visual rhythm. */
.animated-tile{isolation:isolate}.art-motion{position:absolute;inset:0;transform-origin:center}.art-horizon .art-motion{z-index:0}.animated-tile .art-index{font-size:28px}.animated-tile.is-active .art-motion{animation:harbour-tile-arrive 3.8s cubic-bezier(.2,.7,.2,1) both}.animated-tile.art-compass.is-active .art-motion{animation:harbour-compass-settle 3.8s ease both}.animated-tile .art-disc{transition:scale .65s ease}.journal-card:hover .art-disc,.journal-card:focus-visible .art-disc,.service-card:hover .art-disc,.service-card:focus-visible .art-disc{scale:1.06}.journal-tile{height:230px}.featured-card .journal-tile{height:100%;min-height:340px}.mixed-visual{position:relative;min-width:0}.mixed-photo{height:100%;width:100%;border-radius:130px 0 0 0}.service-mixed{height:460px;padding:0 36px 42px 0}.mixed-tile{position:absolute;right:0;bottom:0;width:46%;height:45%;border:7px solid var(--paper);box-shadow:0 8px 30px #102a3b0b}.mixed-tile .art-mark{font-size:7px;left:14px;bottom:14px;letter-spacing:.08em}.mixed-tile .art-index{font-size:23px;right:14px;top:12px}.mixed-tile .art-disc{scale:.72}.mixed-tile .art-line{opacity:.3}.service-mixed .mixed-photo figcaption,.visa-mixed .mixed-photo figcaption{padding:50px 20px 22px 20px;right:39%;min-width:0}.service-mixed .mixed-photo figcaption>span,.visa-mixed .mixed-photo figcaption>span{font-size:23px}.service-mixed .mixed-photo figcaption small,.visa-mixed .mixed-photo figcaption small{font-size:7px;line-height:1.5}.visa-mixed{height:390px;padding:0 32px 35px 0}.visa-mixed .mixed-photo{border-radius:0 120px 0 0}.visa-mixed .mixed-tile{height:43%;width:45%}.visa-mixed .mixed-tile .art-mark{font-size:6px}.visa-mixed .mixed-tile .art-index{font-size:20px}.article-mixed{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;height:400px}.article-mixed .mixed-photo{border-radius:0}.article-mixed .mixed-tile{position:relative;inset:auto;width:100%;height:100%;border:0;border-radius:0 110px 0 0;box-shadow:none}.article-mixed .mixed-tile .art-disc{scale:1.3}.article-mixed .mixed-tile .art-mark{font-size:9px;left:25px;bottom:25px}.article-mixed .mixed-tile .art-index{font-size:36px;right:25px;top:35px}.article-mixed .mixed-photo figcaption{padding:60px 26px 25px}.service-card .animated-tile.service-thumbnail{height:180px}.mixed-tile:hover .art-disc{scale:.79}.article-mixed .mixed-tile:hover .art-disc{scale:1.35}@keyframes harbour-tile-arrive{0%{opacity:.5;transform:translateY(18px) scale(.92)}60%{opacity:1;transform:translateY(-4px) scale(1.02)}100%{opacity:1;transform:none}}@keyframes harbour-compass-settle{0%{opacity:.5;transform:rotate(-25deg) scale(.9)}65%{opacity:1;transform:rotate(4deg) scale(1.02)}100%{opacity:1;transform:none}}
@media(max-width:1000px){.service-mixed{height:400px;padding:0 20px 28px 0}.mixed-tile{width:49%;height:43%;border-width:5px}.mixed-tile .art-mark{font-size:6px}.mixed-tile .art-disc{scale:.6}.service-mixed .mixed-photo figcaption>span,.visa-mixed .mixed-photo figcaption>span{font-size:20px}.visa-mixed{height:350px}.article-mixed{height:350px;gap:15px}}
@media(max-width:720px){.service-mixed{height:360px;padding:0 20px 30px 0}.mixed-photo{border-radius:100px 0 0 0}.mixed-tile{width:47%;height:43%}.mixed-tile .art-disc{scale:.62}.mixed-tile .art-index{font-size:21px}.service-mixed .mixed-photo figcaption,.visa-mixed .mixed-photo figcaption{padding-left:16px;right:40%}.service-mixed .mixed-photo figcaption>span,.visa-mixed .mixed-photo figcaption>span{font-size:21px}.visa-mixed{height:330px;padding:0 20px 28px 0}.visa-mixed .mixed-tile{width:47%;height:43%}.visa-mixed .mixed-tile .art-index{font-size:18px}.article-mixed{height:280px;gap:10px;grid-template-columns:1.4fr 1fr}.article-mixed .mixed-tile{border-radius:0 65px 0 0}.article-mixed .mixed-tile .art-disc{scale:.65}.article-mixed .mixed-tile .art-mark{font-size:6px;left:10px;bottom:16px;max-width:75px;line-height:1.8}.article-mixed .mixed-tile .art-index{font-size:25px;right:15px;top:25px}.article-mixed .mixed-photo figcaption{padding:50px 15px 16px}.article-mixed .mixed-photo figcaption>span{font-size:21px}.article-mixed .mixed-photo figcaption small{font-size:7px;line-height:1.6}.journal-tile{height:240px}.featured-card .journal-tile{height:260px;min-height:0}.service-card .animated-tile.service-thumbnail{height:210px}}
@media(prefers-reduced-motion:reduce){.animated-tile.is-active .art-motion,.animated-tile.art-compass.is-active .art-motion{animation:none!important}.animated-tile .art-disc{transition:none!important}.journal-card:hover .art-disc,.journal-card:focus-visible .art-disc,.service-card:hover .art-disc,.service-card:focus-visible .art-disc{scale:1}.mixed-tile:hover .art-disc{scale:.72}.article-mixed .mixed-tile:hover .art-disc{scale:1.3}}
@media print{.mixed-visual,.animated-tile{display:none}}
.mixed-tile.art-route .art-disc{top:38%}
.booking-demo-link{display:inline-flex;align-items:center;gap:10px;margin:0 0 24px;font-size:12px;color:var(--clay);border-bottom:1px solid var(--clay);padding-bottom:5px}
/* Fully sized media: absolute illustration children must not collapse in flex cards. */
.service-card{--card-padding:32px;padding:var(--card-padding);background:#faf8f3;overflow:hidden;gap:16px}
.service-card .service-thumbnail{flex:none;align-self:stretch;width:calc(100% + var(--card-padding) * 2);height:210px;margin:calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) 14px;max-width:none}
.service-card .animated-tile.service-thumbnail{height:210px}
.service-card .service-thumbnail .art-mark{bottom:20px}
.service-card .service-thumbnail.art-route .art-disc{top:36%}
.service-card:hover,.service-card:focus-visible{background:#f1eee5;box-shadow:0 14px 32px #102a3b0d;transform:translateY(-4px)}
.service-card.unsure-card{background:var(--navy);color:var(--paper)}
.service-card.unsure-card:hover{background:#173e4c}
.service-card .row-number{margin-top:2px}
/* The perspective illustrations use the same sage, sand and clay as the editorial tiles. */
.difference-section .difference-grid{gap:28px}
.difference-section .difference-grid article{padding:0 0 12px;border-top:0}
.perspective-art{height:184px;margin-bottom:26px;overflow:hidden;background:#eae4d9;color:#36574f;border:1px solid #d9d5ca;border-radius:3px}
.perspective-art svg{display:block;width:100%;height:100%}
.vector-clarity{background:#e5e9e1}.vector-preparation{background:#eee2d4}
.perspective-art .vector-detail{transform-origin:160px 88px}
.perspective-art .vector-halo{transform-origin:160px 88px}
.perspective-art.is-active .vector-detail{animation:perspective-arrive 2.2s ease both}
.perspective-art.is-active .vector-halo{animation:perspective-halo 2.8s ease both}
.difference-section .difference-grid article:hover .vector-detail{translate:0 -3px;transition:translate .4s ease}
@keyframes perspective-arrive{0%{opacity:.4;transform:translateY(12px) rotate(-4deg)}65%{transform:translateY(-3px) rotate(1deg)}100%{opacity:1;transform:none}}
@keyframes perspective-halo{0%{transform:scale(.75)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
/* Defined process tiles, with equivalent hover and keyboard focus feedback. */
.steps{gap:18px;align-items:stretch}
.step{position:relative;display:flex;flex-direction:column;padding:27px 22px 24px;border:1px solid #526b74;background:#183a49;border-radius:4px;transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease}
.step:after{content:'';position:absolute;inset:auto 22px 0;height:2px;background:var(--coral);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.steps .step:hover,.steps .step:focus-visible{transform:translateY(-6px);background:#204756;border-color:#d5aa8c;box-shadow:0 16px 30px #071c2933}
.step:hover:after,.step:focus-visible:after{transform:scaleX(1)}
.step:focus-visible{outline:2px solid var(--coral);outline-offset:5px}
.step .step-number{margin-bottom:28px}.step h3{line-height:1.5;min-height:3em}.step p{margin-bottom:28px;color:#d5dfe1}.step .step-label{margin-top:auto;line-height:1.7}
/* A full-width band prevents mismatched outer gutters around the transparency panel. */
.care-band{background:#e9e2d5}
.care-band .care-panel{background:transparent;max-width:1360px;margin:0 auto;padding:60px 6%}
/* Short, recognisable icon gestures on entry; replay on deliberate hover/focus. */
.trust-strip .motion-icon{width:46px;height:46px}
.motion-icon.icon-people.is-active svg,.motion-icon.icon-people.is-replaying svg{animation:people-greet 1.5s ease 3}
.motion-icon.icon-compass.is-active .icon-needle,.motion-icon.icon-compass.is-replaying .icon-needle{animation:compass-find 2.2s ease 2}
.motion-icon.icon-globe.is-active .icon-orbit,.motion-icon.icon-globe.is-replaying .icon-orbit{animation:globe-turn 2.2s ease 2}
.motion-icon.icon-plan.is-active .icon-needle,.motion-icon.icon-plan.is-replaying .icon-needle{animation:plan-check 2s ease 2}
@keyframes people-greet{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}70%{transform:translateY(1px)}}
@keyframes compass-find{0%,100%{transform:rotate(0)}35%{transform:rotate(38deg)}70%{transform:rotate(-15deg)}}
@keyframes globe-turn{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.12)}}
@keyframes plan-check{0%,100%{opacity:1;transform:translateY(0)}30%{opacity:.25;transform:translateY(3px)}65%{opacity:1;transform:translateY(-2px)}}
@media(max-width:1050px){.steps{grid-template-columns:1fr 1fr;gap:22px}.step h3{min-height:0}.perspective-art{height:160px}.difference-section .difference-grid{gap:22px}}
@media(max-width:720px){.service-card{--card-padding:26px}.perspective-art{height:190px;max-width:none}.difference-section .difference-grid{gap:34px}.care-band .care-panel{margin:0;padding:45px 6%}.step{padding:24px 20px}.steps{gap:16px}.step p{font-size:12px}.step h3{font-size:14px}.step .step-number{margin-bottom:20px}}
@media(max-width:480px){.steps{grid-template-columns:1fr}.step h3{font-size:16px}.step p{font-size:13px}.step .step-label{font-size:9px}.step .step-number{font-size:42px}.service-card .service-thumbnail,.service-card .animated-tile.service-thumbnail{height:195px}}
@media(prefers-reduced-motion:reduce){.motion-icon.is-active svg,.motion-icon.is-replaying svg,.motion-icon.is-active .icon-needle,.motion-icon.is-replaying .icon-needle,.motion-icon.is-active .icon-orbit,.motion-icon.is-replaying .icon-orbit,.perspective-art.is-active .vector-detail,.perspective-art.is-active .vector-halo{animation:none!important}.step,.step:after,.service-card,.perspective-art .vector-detail{transition:none!important}.steps .step:hover,.steps .step:focus-visible,.service-card:hover,.service-card:focus-visible{transform:none}.difference-section .difference-grid article:hover .vector-detail{translate:none}}
