/* Owner-approved homepage layout. */
body{background:#f1f8f8}
.orbit-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 15%,#fff 0%,#eef8f6 55%,#e4f3f1 100%);padding-top:30px;text-align:center;isolation:isolate}.orbit-intro{position:relative;z-index:2;max-width:800px;margin:auto;padding:0 24px}.orbit-intro .eyebrow{font-size:15px}.orbit-intro h1{font-size:clamp(36px,3.5vw,54px);line-height:1.3;letter-spacing:-1px;margin:12px 0;color:#04333e}.orbit-intro h1 em{font-style:normal;color:#008ba2}.orbit-intro>p:not(.eyebrow){font-size:18px;line-height:1.8;color:#4a6970;max-width:630px;margin:14px auto 20px}.orbit-actions{display:flex;justify-content:center;gap:22px;align-items:center;flex-wrap:wrap}.orbit-actions .button{font-size:17px;border-radius:12px;padding:12px 26px;background:#064e57;color:#fff}.orbit-actions .text-link{font-size:16px}
.orbit-gallery{height:520px;position:relative;perspective:1500px;perspective-origin:50% 40%;margin-top:-15px;direction:ltr}.orbit-ring{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d;--curve-width:260px}.orbit-card{position:absolute;left:50%;top:0;width:var(--curve-width);aspect-ratio:7/10;margin-left:calc(var(--curve-width)/-2);display:block;border-radius:16px;backface-visibility:hidden;transform-origin:50% 0;will-change:transform;overflow:hidden;box-shadow:0 12px 24px #04333e13}.orbit-card img{display:block;width:100%;height:100%;object-fit:contain}.orbit-card:focus-visible{outline:3px solid #008ba2;outline-offset:5px}.orbit-gallery:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#eaf6f3 0%,transparent 15%,transparent 85%,#eaf6f3 100%)}
.orbit-toolbar{display:flex;justify-content:center;align-items:center;gap:12px;padding:0 20px 27px;color:#55777a;font-size:13px}.orbit-toggle{background:#fff;color:#064e57;border:1px solid #a8ccc5;border-radius:9px;min-height:42px;padding:7px 16px;font-weight:700}.orbit-toggle:focus-visible{outline:3px solid #008ba2;outline-offset:3px}.orbit-mobile-note{display:none}.homepage-content{background:#fcfdfc}.services{padding-top:55px}
.orbit-gallery:not(.curve-ready){height:auto;perspective:none;overflow-x:auto;scroll-snap-type:x mandatory;padding:28px 22px;direction:rtl;margin-top:14px}.orbit-gallery:not(.curve-ready) .orbit-ring{position:static;display:flex;gap:20px;width:max-content;height:auto;direction:rtl}.orbit-gallery:not(.curve-ready) .orbit-card{position:static;flex:0 0 224px;width:224px;height:320px;margin:0;transform:none;scroll-snap-align:center;will-change:auto}.orbit-gallery:not(.curve-ready):after{display:none}.orbit-gallery:not(.curve-ready)+.orbit-toolbar .orbit-toggle,.orbit-gallery:not(.curve-ready)+.orbit-toolbar .orbit-desktop-note{display:none}.orbit-gallery:not(.curve-ready)+.orbit-toolbar .orbit-mobile-note{display:inline}
@media(max-width:760px){.orbit-hero{padding-top:30px}.orbit-intro h1{font-size:36px}.orbit-intro>p:not(.eyebrow){font-size:16px}.orbit-intro .eyebrow{font-size:13px}.orbit-actions{gap:18px}.orbit-actions .button{font-size:15px}.orbit-actions .text-link{font-size:14px}.orbit-toolbar{padding-bottom:22px}.services{padding-top:36px}}
/* Real inward-facing cylinder: one camera, one radius, no per-card scale or vertical offsets. */
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .orbit-hero{min-height:870px;padding-bottom:75px}
 .orbit-gallery.curve-ready{position:absolute;inset-inline:0;top:-30px;height:1200px;margin:0;perspective:clamp(800px,64vw,1280px);perspective-origin:50% 50%;pointer-events:none}
 .curve-ready .orbit-ring{display:grid;position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d;transform-origin:50% 50%}
 .curve-ready .orbit-card{grid-area:1/1;place-self:center;position:relative;inset:auto;width:var(--curve-width);margin:0;aspect-ratio:7/10;transform-origin:50% 50%;transform:rotateY(var(--angle)) translateZ(calc(-1 * var(--ring-radius)));pointer-events:auto;box-shadow:none;will-change:auto}
 .curve-ready .orbit-card img{width:100%;height:100%;object-fit:contain}
 .orbit-intro{z-index:2;pointer-events:none}.orbit-intro a{pointer-events:auto}
 .orbit-toolbar{position:absolute;inset-inline:0;bottom:0;z-index:3}
}
.orbit-gallery:not(.curve-ready) .orbit-repeat{display:none}
@media(min-width:761px) and (max-width:1549px) and (prefers-reduced-motion:no-preference){
 .orbit-hero{min-height:820px}
 .orbit-gallery.curve-ready{top:95px;height:900px}
}
/* Uniform 12% enlargement of artwork, cylinder radius and camera distance. */
@media(min-width:761px) and (prefers-reduced-motion:no-preference){.orbit-gallery.curve-ready{perspective:clamp(896px,71.68vw,1433.6px)}}
/* Compact split introduction: fixed copy on the right, four slides on the left. */
.home-lead{background:#f1f8f8;padding:12px 0 0;overflow-x:clip}
.home-lead-layout{width:min(1440px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.home-lead-copy{text-align:right;padding:10px 0 20px}
.home-lead-copy .eyebrow{font-size:14px;margin-bottom:10px}
.home-lead-copy h1{font-size:clamp(32px,3vw,46px);line-height:1.35;color:#04333e;letter-spacing:-.8px;margin:0 0 16px}
.home-lead-copy h1 em{font-style:normal;color:#008ba2}
.home-lead-description{font-size:18px;line-height:1.85;color:#45656e;margin-bottom:22px}
.home-lead-copy .orbit-actions{justify-content:flex-start}
.home-lead-slides{min-width:0}
.compact-hero{background:transparent;overflow:hidden}
.compact-hero .hero-layout{display:block;width:100%;min-height:0;height:390px;margin:0}
.compact-hero .hero-art{height:390px;min-height:0;margin:0;width:100%;border-radius:16px;overflow:hidden}
.compact-hero .hero-art:after{display:none}
.compact-hero .hero-art img{object-fit:cover;object-position:center}
.compact-hero .hero-bottom{width:100%;height:42px;gap:8px;margin:0;padding:0}
.compact-hero .image-note{font-size:11px;max-width:160px;line-height:1.5}
.compact-hero .carousel-controls{gap:8px}
.compact-hero .carousel-dots button{width:22px}
.compact-hero .round-control,.compact-hero .pause-control{width:30px;height:30px}
.orbit-intro{max-width:800px}
.orbit-intro h2{font-size:26px;line-height:1.4;color:#04333e;margin:4px 0}
.orbit-intro>p:not(.eyebrow){font-size:16px;margin:8px auto 0}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .orbit-hero{min-height:555px;padding-top:20px}
 .orbit-gallery.curve-ready{top:-335px;height:1200px}
}
@media(max-width:760px){
 .home-lead{padding-top:20px}.home-lead-layout{width:calc(100% - 36px);grid-template-columns:1fr;gap:16px}
 .home-lead-copy{padding:0}.home-lead-copy h1{font-size:32px;margin-bottom:12px}.home-lead-description{font-size:15px;line-height:1.8;margin-bottom:16px}.home-lead-copy .eyebrow{font-size:12px}
 .home-lead-copy .orbit-actions{gap:16px}.home-lead-copy .button{font-size:14px;padding:10px 18px}.home-lead-copy .text-link{font-size:14px}
 .compact-hero .hero-layout,.compact-hero .hero-art{height:240px}.compact-hero .image-note{max-width:100px;font-size:10px}
 .compact-hero .carousel-controls{gap:4px}.compact-hero .carousel-dots button{width:18px}
 .orbit-intro h2{font-size:23px}.orbit-intro>p:not(.eyebrow){font-size:14px}
}
/* One continuous page surface across the introduction, portfolio and services. */
body{--home-surface:#f1f8f8}
.home-lead,.orbit-hero,.homepage-content,.homepage-content .services{background:var(--home-surface)}
.orbit-gallery:after{background:linear-gradient(90deg,var(--home-surface) 0%,transparent 15%,transparent 85%,var(--home-surface) 100%)}
/* Blend the four-slide artwork into the page like the original hero. */
@media(min-width:761px){
 .home-lead{padding-top:0}
 .home-lead-slides{margin-inline-start:-64px;margin-inline-end:calc((min(1440px, calc(100vw - 64px)) - 100vw)/2)}
 .compact-hero .hero-layout,.compact-hero .hero-art{height:440px}
 .compact-hero .hero-art{border-radius:0}
 .compact-hero .hero-art:after{display:block;background:linear-gradient(to left,var(--home-surface) 0%,transparent 24%)}
 .compact-hero .hero-bottom{height:22px;padding-inline:24px;position:relative;z-index:2}
}
/* Lift only the small company caption marked by the owner. */
@media(min-width:761px){.home-lead-copy>.eyebrow{position:relative;top:-20px}}
/* Services: the preview image becomes a full-card background on interaction. */
.services .service-reveal{overflow:hidden}
.service-reveal .service-backdrop{position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;transition:opacity .5s ease;background:#04333e}
.service-backdrop>img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .7s ease}
.service-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#04333e38 0%,#04333edb 58%,#04333ef5 100%)}
.services .service-reveal .service-image{display:block;align-self:stretch;flex-shrink:0;width:auto;border:0;padding:0;background:transparent;z-index:1;transition:opacity .5s ease}
.service-reveal .service-copy{position:relative;z-index:1}
.service-reveal :is(h3,.service-copy>p,.service-tags,.service-link){transition:color .3s ease,border-color .3s ease}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) .service-backdrop{opacity:1}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) .service-backdrop>img{transform:scale(1.05)}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) .service-image{opacity:0}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) :is(h3,.service-copy>p,.service-tags,.service-link){color:#fff}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) .service-link{border-color:#ffffff70}
.services .service-reveal:has(:focus-visible){outline:3px solid #008ba2;outline-offset:4px}
.services .service-reveal .service-image:focus-visible{outline:none}
@media(hover:hover) and (pointer:fine){
 .services .service-reveal:hover .service-backdrop{opacity:1}
 .services .service-reveal:hover .service-backdrop>img{transform:scale(1.05)}
 .services .service-reveal:hover .service-image{opacity:0}
 .services .service-reveal:hover :is(h3,.service-copy>p,.service-tags,.service-link){color:#fff}
 .services .service-reveal:hover .service-link{border-color:#ffffff70}
}
@media(prefers-reduced-motion:reduce){.service-reveal .service-backdrop,.service-backdrop>img,.services .service-reveal .service-image,.service-reveal :is(h3,.service-copy>p,.service-tags,.service-link){transition:none}}
/* Owner-supplied portrait artwork: keep the main subject in the thumbnail crop. */
.service-reveal .service-image img{object-position:50% 30%}
.service-reveal .service-backdrop>img{object-position:50% 25%}
#service-design .service-image img{object-position:50% 35%}
/* Keep the inquiry link transparent over the expanded card artwork. */
.services .service-reveal .service-link:is(:hover,:focus-visible,:active){background:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:5px}
/* Cyan cloud-inspired edge appears only while the service card is revealed. */
.services .service-reveal{transition:border-color .3s ease,box-shadow .3s ease}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)){border-color:#2ee6f0;box-shadow:0 0 0 3px #2ee6f0,0 0 12px #2ee6f0b3,0 0 30px #16dce880,0 10px 25px #04333e24}
@media(hover:hover) and (pointer:fine){.services .service-reveal:hover{border-color:#2ee6f0;box-shadow:0 0 0 3px #2ee6f0,0 0 12px #2ee6f0b3,0 0 30px #16dce880,0 10px 25px #04333e24}}
@media(prefers-reduced-motion:reduce){.services .service-reveal{transition:none}}

[dir=ltr] .compact-hero .hero-art:after{background:linear-gradient(to right,var(--home-surface) 0%,transparent 24%)}
[dir=ltr] .home-lead-copy{text-align:left}
.orbit-empty{padding:30px;text-align:center}/* Keep the controls fully visible without moving the next section. */
.compact-hero{overflow:visible}
.home-lead{position:relative;z-index:1}
.services .service-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px;padding-top:14px;border-top:1px solid #cfe2e5}
.services .service-actions:not(:has(.service-store-link)){grid-template-columns:1fr}
.services .service-reveal .service-actions .service-link{display:flex;align-items:center;justify-content:center;margin:0;padding:10px 8px;min-height:48px;border:1px solid #78abb2;border-radius:10px;text-align:center;font-size:15px;line-height:1.5;text-decoration:none}
.services .service-reveal .service-actions .service-store-link{background:#075460;color:#fff;border-color:#075460}
.services .service-reveal .service-actions .service-store-link:is(:hover,:focus-visible){background:#063f49;color:#fff;text-decoration:none;box-shadow:0 3px 10px #04333e26}
.services .service-reveal .service-actions .service-ticket-link:is(:hover,:focus-visible){background:#e1f2f3;color:#075460;text-decoration:none}
.services .service-reveal:is(.is-expanded,:has(.service-link:focus-visible)) .service-actions{border-color:#ffffff50}
@media(hover:hover){.services .service-reveal:hover .service-actions{border-color:#ffffff50}}
@media(max-width:760px){.services .service-actions{grid-template-columns:1fr;gap:10px}}
/* Project the same cylinder per card without a shared 3D depth-sorting surface. */
.orbit-gallery.orbit-projected{perspective:none!important}
.orbit-projected .orbit-ring{transform:none!important;transform-style:flat;isolation:isolate}
.orbit-projected .orbit-card{backface-visibility:visible;transform-style:flat;will-change:transform}
