/* Six business scenes. HTML links and the complete story remain usable without motion. */
.service-hub-page .service-hub-catalogue { background: #fffcf7; }
.service-hub-page .section-intro { margin-bottom: 46px; }
.catalogue-example-note { margin: 0 0 20px; color: #746b60; font-size: .76rem; }
.catalogue-gallery { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 26px; }
.catalogue-card { --cv-surface: #f0e9df; --cv-shadow: #b6a491; position: relative; display: flex; flex-direction: column; grid-column: span 6; min-width: 0; isolation: isolate; overflow: hidden; border: 1px solid #d9d0c4; border-radius: 19px; background: var(--cv-surface); color: #221e19; text-decoration: none; transition: border-color .3s ease, box-shadow .35s ease; }
.catalogue-card--phone,.catalogue-card--email { grid-column: span 7; }
.catalogue-card--admin,.catalogue-card--agent { grid-column: span 5; }
.catalogue-card--agent { --cv-surface: #e2e6dc; }
.catalogue-card--email { --cv-surface: #eee2d7; }
.catalogue-card--invoice { --cv-surface: #e7e2d3; }
.catalogue-card--visibility { --cv-surface: #efdfc7; }
.catalogue-card::after { position: absolute; inset: 0; z-index: -1; background: linear-gradient(140deg,#fff7 0%,#fff0 45%,#54331008); content: ''; pointer-events: none; }
.catalogue-card__top { display: flex; align-items: center; gap: 12px; padding: 24px 28px 0; font-size: .64rem; letter-spacing: .065em; color: #675b4d; }
.catalogue-card__top > :first-child { font-family: ui-monospace,SFMono-Regular,Menlo,monospace; color: #aa3024; }
.catalogue-card__top > :last-child { margin-left: auto; color: #8c4634; font-size: 1.3rem; transition: translate .3s ease; }
.catalogue-art { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 600 / 360; min-height: 260px; perspective: 1000px; overflow: hidden; }
.catalogue-art::before { position: absolute; inset: 10% 10% 1%; content: ''; background: radial-gradient(ellipse,#fff7,transparent 67%); pointer-events: none; }
.catalogue-art__plane { width: min(100%,690px); will-change: auto; transform: rotateX(var(--cv-rx,0deg)) rotateY(var(--cv-ry,0deg)); transition: transform .5s cubic-bezier(.2,.7,.2,1); transform-style: preserve-3d; }
.catalogue-art svg { width: 100%; overflow: visible; font-family: Helvetica,Arial,sans-serif; }
.catalogue-card__copy { margin-top: auto; padding: 13px 30px 29px; border-top: 1px solid #9d826620; background: #fffcf741; }
.catalogue-card__copy > p { margin: 0 0 10px; color: #716252; font-size: .84rem; line-height: 1.45; }
.catalogue-card__copy h3 { max-width: 560px; margin: 0 0 21px; font-size: clamp(1.45rem,2.3vw,2.15rem); font-weight: 550; letter-spacing: -.045em; line-height: 1.12; }
.catalogue-card__cta { display: inline-flex; align-items: center; gap: 22px; min-height: 26px; font-size: .78rem; font-weight: 540; }
.catalogue-card__cta > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid #ab948173; transition: background-color .3s,color .3s,translate .3s; }
.catalogue-card:hover,.catalogue-card:focus-visible { border-color: #b6886b; box-shadow: 0 18px 30px -24px #775a43a3; }
.catalogue-card:focus-visible { outline: 3px solid #ac3025; outline-offset: 5px; }
.catalogue-card:is(:hover,:focus-visible) .catalogue-card__top > :last-child { translate: 3px -3px; }
.catalogue-card:is(:hover,:focus-visible) .catalogue-card__cta > span { background: #ab3024; color: #fffdf8; border-color: #ab3024; translate: 3px -2px; }
.catalogue-card:active { border-color: #9a3025; background: #ebe0d0; }
.catalogue-card:active .catalogue-art__plane { transform: scale(.985); }
.cv-float { animation: cv-levitate 4.8s cubic-bezier(.45,0,.55,1) infinite; }
.cv-float--later { animation-delay: -2.4s; }
.cv-floating-label { animation: cv-levitate 5.5s cubic-bezier(.45,0,.55,1) -1.8s infinite; }
.cv-route { animation: cv-flow 2.1s linear infinite; }
.cv-wave { animation: cv-wave .75s ease-in-out alternate infinite; transform-box: fill-box; transform-origin: center; }
.cv-highlight { animation: cv-highlight 3.2s ease-in-out infinite; }
.cv-scan,.cv-scan-glow { animation: cv-scan 3.8s cubic-bezier(.45,0,.2,1) infinite; }
.cv-envelope { transition: translate .7s cubic-bezier(.2,.7,.2,1),rotate .7s cubic-bezier(.2,.7,.2,1); transform-box: fill-box; transform-origin: center; }
.catalogue-card:is(:hover,:focus-visible) .cv-envelope--back { translate: -17px -13px; rotate: -4deg; }
.catalogue-card:is(:hover,:focus-visible) .cv-envelope--front { translate: -7px 3px; rotate: 2deg; }
@keyframes cv-levitate { 0%,100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes cv-flow { to { stroke-dashoffset: -52; } }
@keyframes cv-wave { from { scale: 1 .58; opacity: .7; } to { scale: 1 1; opacity: 1; } }
@keyframes cv-highlight { 0%,100% { opacity: .45; } 45%,70% { opacity: 1; } }
@keyframes cv-scan { 0%,12% { translate: 0 -28px; opacity: 0; } 20% { opacity: 1; } 75% { translate: 0 133px; opacity: 1; } 90%,100% { translate: 0 133px; opacity: 0; } }
body[data-ambient-motion="paused"] .catalogue-card *, .catalogue-card[data-catalogue-motion="paused"] * { animation-play-state: paused!important; }
body[data-ambient-motion="paused"] .catalogue-art__plane { transform: none!important; }
@media (min-width:1500px) { .catalogue-art { aspect-ratio: 600 / 340; } }
@media (max-width:1024px) { .catalogue-card__top { padding: 20px 21px 0; font-size: .59rem; }.catalogue-card__copy { padding: 12px 23px 24px; }.catalogue-art { min-height: 215px; }.catalogue-card__copy h3 { font-size: 1.6rem; }.catalogue-card__copy > p { font-size: .76rem; } }
@media (max-width:700px) { .catalogue-gallery { grid-template-columns: 1fr; gap: 22px; }.catalogue-card { grid-column: 1; }.catalogue-art { aspect-ratio: 600 / 390; min-height: 0; }.catalogue-card__copy { padding: 18px 23px 24px; }.catalogue-card__copy h3 { font-size: clamp(1.55rem,6vw,2rem); }.catalogue-card__copy > p { font-size: .81rem; }.catalogue-card__cta { font-size: .76rem; }.catalogue-example-note { max-width: 290px; font-size: .71rem; }.service-hub-page .section-intro { margin-bottom: 30px; } }
@media (prefers-reduced-motion:reduce) { .catalogue-card * { animation: none!important; transition: none!important; }.catalogue-art__plane { transform: none!important; }.catalogue-card:is(:hover,:focus-visible) .cv-envelope { translate: none; rotate: none; }.cv-scan,.cv-scan-glow { opacity: 0; } }
/* The catalogue entry itself is a navigable model of the business. */
.catalogue-overview { position: relative; min-width: 0; width: 100%; max-width: 650px; margin-inline: auto; }
.catalogue-overview__label { margin: 0 0 0 5%; color: #746658; font-size: .64rem; letter-spacing: .11em; }
.catalogue-overview__scene { position: relative; isolation: isolate; aspect-ratio: 550 / 480; perspective: 1100px; }
.catalogue-overview__floor { position: absolute; inset: 26% 11% 10%; z-index: -2; background: linear-gradient(90deg,#99867522 1px,transparent 1px),linear-gradient(#99867522 1px,transparent 1px); background-size: 32px 32px; border: 1px solid #b59a7733; transform: rotateX(60deg) rotateZ(-27deg); transform-origin: center; box-shadow: 0 26px 38px -18px #5c382018; }
.catalogue-overview__connections { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: #b841314f; stroke-width: 1; stroke-dasharray: 3 6; }
.catalogue-overview__core { position: absolute; top: 42%; left: 27%; display: flex; align-items: center; justify-content: center; gap: 12px; width: 46%; min-height: 18%; padding: 12px; color: #fff6e8; background: linear-gradient(135deg,#3b352a,#1b1916); border: 1px solid #504332; border-radius: 14px; box-shadow: 0 7px 0 #110f0c,0 28px 35px -18px #5c382082; transform: rotate(-4deg); }
.catalogue-overview__core strong { font-size: clamp(.8rem,1.3vw,1.2rem); font-weight: 500; letter-spacing: -.03em; }
.catalogue-core-mark { display: grid; grid-template-columns: repeat(2,7px); gap: 4px; }
.catalogue-core-mark i { width: 7px; height: 7px; background: #d9cabb; border-radius: 1.5px; }.catalogue-core-mark i:last-child { background: #ce4837; }
.catalogue-orbit { position: absolute; display: grid; justify-items: center; gap: 12px; width: 24%; color: #55473b; text-decoration: none; font-size: .74rem; }
.catalogue-orbit__tile { display: grid; place-items: center; width: 80%; aspect-ratio: 1.25; background: linear-gradient(125deg,#fffdf4,#e9dfcf); border: 1px solid #d4c3ae; border-radius: 16px; box-shadow: 0 5px 0 #d2c0a6,0 20px 24px -14px #765d4266; transform: rotateX(14deg) rotateY(-10deg) rotateZ(-5deg); transition: transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s; }
.catalogue-orbit__tile svg { width: 40%; height: 50%; color: #9d4531; fill: currentColor; }
.catalogue-orbit--phone { top: 8%; left: 10%; }.catalogue-orbit--admin { top: 5%; right: 11%; }.catalogue-orbit--agent { top: 38%; right: -1%; }.catalogue-orbit--email { bottom: 8%; right: 13%; }.catalogue-orbit--invoice { bottom: 7%; left: 9%; }.catalogue-orbit--visibility { top: 39%; left: -3%; }
.catalogue-orbit--admin .catalogue-orbit__tile { transform: rotateX(14deg) rotateY(10deg) rotateZ(7deg); }
.catalogue-orbit--agent .catalogue-orbit__tile { background: linear-gradient(125deg,#f3f6e9,#d9dfc7); }.catalogue-orbit--email .catalogue-orbit__tile { transform: rotateX(14deg) rotateY(10deg) rotateZ(5deg); }.catalogue-orbit--visibility .catalogue-orbit__tile svg { color: #b84430; }
.catalogue-orbit:focus-visible { outline: 2px solid #ad3125; outline-offset: 6px; border-radius: 12px; }
.catalogue-orbit:is(:hover,:focus-visible) .catalogue-orbit__tile { transform: rotateX(0) rotateY(0) rotateZ(0) translateY(-9px); box-shadow: 0 7px 0 #d2c0a6,0 28px 34px -14px #765d427a; }
.catalogue-orbit:is(:hover,:focus-visible)>span:last-child { text-decoration: underline; text-underline-offset: 5px; }
.catalogue-overview__hint { margin: 0 auto 16px; max-width: 360px; text-align: center; color: #74685b; font-size: .74rem; line-height: 1.5; }
.catalogue-overview .service-motion-control { justify-content: center; }
@media (max-width:1024px) { .catalogue-overview { max-width: 550px; }.catalogue-overview__core strong { font-size: 1.15rem; } }
@media (max-width:700px) { .catalogue-overview__core { gap: 8px; padding: 10px 7px; border-radius: 10px; }.catalogue-overview__core strong { font-size: clamp(.67rem,2.9vw,.95rem); }.catalogue-core-mark { grid-template-columns: repeat(2,5px); gap: 3px; }.catalogue-core-mark i { width: 5px; height: 5px; }.catalogue-orbit { gap: 10px; font-size: .62rem; }.catalogue-orbit__tile { border-radius: 10px; }.catalogue-overview__hint { max-width: 245px; font-size: .71rem; }.catalogue-overview__floor { background-size: 20px 20px; } }
@media (prefers-reduced-motion:reduce) { .catalogue-orbit__tile { transition: none; }.catalogue-orbit:is(:hover,:focus-visible) .catalogue-orbit__tile { transform: none; } }
