/* Fan geometry belongs to CSS. Swiper handles only the local horizontal carousel. */
.connections{--arc-angle:11;--arc-rise:48px;--arc-gap:76px;--fan-bottom:228px;--connection-width:328px;position:relative;z-index:6;overflow:clip;background:#edf1e9;color:var(--ink);padding:96px 0 0}
.connections__heading{max-width:1000px;margin:0 auto 34px;padding:0 var(--gutter);text-align:center}
.connections__heading h2{font:500 clamp(46px,4.7vw,74px)/1.04 var(--font-display);letter-spacing:-.035em;text-wrap:balance}
.connections__heading>p{margin-top:24px;font-size:17px;line-height:1.7;color:var(--muted)}
.connections__carousel{position:relative;outline-offset:-4px}
.connections__viewport{overflow:visible;padding:34px 0 var(--fan-bottom);touch-action:pan-y}
.connections__track{align-items:stretch;transition-timing-function:var(--ease)}
.connections__slide{width:var(--connection-width);height:auto;flex-shrink:0}
.connection-card{--card-paper:#cfdfca;--card-ink:#203d30;--card-soft:#415947;position:relative;display:flex;flex-direction:column;align-items:stretch;height:100%;min-height:650px;padding:24px 26px 26px;background:var(--card-paper);color:var(--card-ink);border:1px solid rgb(28 56 42 / .07);border-radius:22px;box-shadow:0 8px 20px rgb(24 45 37 / .035);text-align:center;transform-origin:50% 50%;transition-property:transform;transition-timing-function:var(--ease);backface-visibility:hidden}
.connection-card--rose{--card-paper:#edcfc6;--card-ink:#4b3337;--card-soft:#674a4d}
.connection-card--agate{--card-paper:#e9d4ac;--card-ink:#493d2e;--card-soft:#65563e}
.connection-card--obsidian{--card-paper:#173e34;--card-ink:#f5f5ec;--card-soft:#d8e3d7;border-color:rgb(255 255 255 / .10)}
.connection-card--amethyst{--card-paper:#d3c0e5;--card-ink:#403148;--card-soft:#5b4868}
.connection-card--quartz{--card-paper:#f9f7ed;--card-ink:#263e32;--card-soft:#506152}
.connection-card--moss{--card-paper:#bacba7;--card-ink:#293e2e;--card-soft:#45563b}
.connection-card--celestite{--card-paper:#bdd6e5;--card-ink:#263d4c;--card-soft:#435b6a}
.connection-card__mineral{position:relative;align-self:center;width:124px;height:112px;margin:0 0 16px;pointer-events:none}
.connection-card__mineral img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px rgb(24 45 37 / .10));user-select:none}
.connection-card__title{display:grid;place-items:center;min-height:72px;margin:0 0 16px;font:600 35px/1.02 var(--font-display);letter-spacing:-.025em;text-wrap:balance}
.connection-card__description{min-height:72px;margin:0 0 18px;color:var(--card-soft);font-size:14px;line-height:1.7;text-wrap:pretty}
.connection-card__features{display:grid;gap:6px;list-style:none;padding:0;margin:0 0 20px;text-align:center;font-size:12px;line-height:1.5;color:var(--card-ink)}
.connection-card__features li{display:flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:6px 10px;border:1px solid rgb(28 56 42 / .10);border-radius:7px;background:rgb(255 255 255 / .22)}
.connection-card__features li::before{content:"";display:block;flex:0 0 5px;width:5px;height:6px;background:currentColor;opacity:.64;clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%)}
.connection-card--obsidian .connection-card__features li{border-color:rgb(255 255 255 / .14);background:rgb(255 255 255 / .065)}
.connection-card__quote{flex:1;display:flex;align-items:center;justify-content:center;min-height:86px;margin:0 0 20px;padding:0;font:500 20px/1.3 var(--font-display);color:var(--card-soft);text-wrap:pretty}
.connection-card__quote p::before{content:'“'}
.connection-card__quote p::after{content:'”'}
.connection-card .connection-card__action{width:100%;max-width:none;height:54px;margin-top:auto}
.connection-card__action .crystal-button__surface{padding:0 17px;background:rgb(255 255 255 / .28);color:var(--card-ink);backdrop-filter:none;-webkit-backdrop-filter:none}
.connection-card__action .crystal-button__label{font-size:12px;letter-spacing:.01em;text-shadow:none}
.connection-card__action .crystal-button__rim{stroke:var(--card-ink);stroke-opacity:.42}
.connection-card__action .crystal-button__inner-rim{stroke:var(--card-ink);stroke-opacity:.10}
.connection-card--obsidian .connection-card__action .crystal-button__surface{background:rgb(255 255 255 / .07)}
.connections__controls{display:none;position:absolute;bottom:calc(var(--fan-bottom) - 74px);left:50%;transform:translateX(-50%);align-items:center;justify-content:center;gap:18px;z-index:4}
.connections.is-carousel .connections__controls{display:flex}
.connections__control{display:grid;place-items:center;width:48px;height:48px;padding:0;background:transparent;color:var(--forest);transition:transform .5s var(--ease),color .5s var(--ease)}
.connections__control svg{width:48px;height:48px;overflow:visible}
.connections__control .prism-rim{fill:rgb(255 255 255 / .28);stroke:currentColor;stroke-opacity:.35;stroke-width:.8;transition:fill .5s var(--ease),stroke-opacity .5s var(--ease)}
.connections__control .prism-fold{stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;fill:none}
.connections__control--next svg{transform:rotate(180deg)}
.connections__count{font-size:11px;letter-spacing:.12em;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.connections__count-current{color:var(--forest);font-weight:600}
.connections__help,.connections__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.connections:not(.is-carousel) .connections__viewport{padding:32px var(--gutter) 80px;max-width:1440px;margin:auto}
.connections:not(.is-carousel) .connections__track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;height:auto}
.connections:not(.is-carousel) .connections__slide{width:auto}
@media(hover:hover) and (pointer:fine){
  .connections.is-carousel .connections__viewport{cursor:grab}
  .connections.is-carousel.is-dragging .connections__viewport{cursor:grabbing}
  .connection-card__action:hover .crystal-button__surface{background:rgb(255 255 255 / .48)}
  .connection-card--obsidian .connection-card__action:hover .crystal-button__surface{background:rgb(255 255 255 / .14)}
  .connections__control:hover .prism-rim{fill:rgb(255 255 255 / .7);stroke-opacity:.7}
}
@media(min-width:1600px){.connections{--connection-width:340px}}
@media(max-width:950px){.connections{--arc-angle:7;--arc-rise:34px;--arc-gap:56px;--fan-bottom:190px;--connection-width:320px;padding-top:80px}.connections__heading h2{font-size:clamp(46px,6.3vw,62px)}.connections:not(.is-carousel) .connections__track{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .connections{--arc-angle:5;--arc-rise:22px;--arc-gap:38px;--fan-bottom:146px;--connection-width:min(328px,calc(100vw - 56px));padding-top:70px}
  .connections__heading{margin-bottom:22px}
  .connections__heading h2{font-size:clamp(40px,10.5vw,57px);line-height:1.04}
  .connections__heading>p{font-size:15px;margin-top:20px;max-width:290px;margin-left:auto;margin-right:auto}
  .connections__viewport{padding-top:22px}
  .connection-card{padding:22px 24px 24px;min-height:660px;border-radius:21px}
  .connection-card__mineral{width:126px;height:110px;margin-bottom:14px}
  .connection-card__title{font-size:34px;min-height:70px;margin-bottom:15px}
  .connection-card__description{font-size:14px;line-height:1.75;margin-bottom:18px}
  .connection-card__features{font-size:12px}
  .connection-card__quote{font-size:20px;min-height:86px}
  .connections__controls{gap:15px}
  .connections:not(.is-carousel) .connections__track{grid-template-columns:1fr;gap:24px}
}
@media(max-width:359px){.connection-card{padding-left:20px;padding-right:20px}.connection-card__title{font-size:30px}.connection-card__description{min-height:96px}.connection-card__features{font-size:11px}}
@media(prefers-reduced-motion:reduce){.connection-card,.connections__control{transition:none}}

/* Stability pass: offer CTAs stay still under the pointer. Keyboard focus
   and the approved hero/essence buttons keep their original feedback. */
.connection-card__action .crystal-button__surface,
.connection-card__action .crystal-button__label,
.connection-card__action .crystal-button__rim,
.connection-card__action .crystal-button__inner-rim,
.connection-card__action .crystal-button__facets{transition:none}
.connection-card__action:hover:not(:focus-visible) .crystal-button__surface{background:rgb(255 255 255 / .28)}
.connection-card--obsidian .connection-card__action:hover:not(:focus-visible) .crystal-button__surface{background:rgb(255 255 255 / .07)}
.connection-card__action:hover:not(:focus-visible) .crystal-button__label{letter-spacing:.01em}
.connection-card__action:hover:not(:focus-visible) .crystal-button__rim{stroke-opacity:.42}
.connection-card__action:hover:not(:focus-visible) .crystal-button__inner-rim{stroke-opacity:.10}
.connection-card__action:hover:not(:focus-visible) .crystal-button__facets{opacity:1}
