/* ARCANA V15 — final content-fit, image resilience and responsive safety layer. */
:root{--v15-safe-inline:max(11px,env(safe-area-inset-left))}
html,body{max-inline-size:100%;overflow-x:clip}
body{min-inline-size:320px}
main,.app-shell,.container,.hero,.hero-copy,.nav-tools,.nav-links,
:is(section,article,aside,header,footer,nav,div,form,fieldset){min-inline-size:0}
img,video,canvas,svg{max-inline-size:100%}
img{font-style:italic}
.v14-editorial img,.tarot-image,.card-face img,.v10-card-detail img,.v11-payment-qr img{display:block}
.v14-editorial img{inline-size:100%;block-size:100%;object-fit:cover}
.arcana-image-error{opacity:.001!important}
.arcana-image-fallback{background:
  radial-gradient(circle at 50% 38%,rgba(220,185,91,.16),transparent 24%),
  linear-gradient(145deg,rgba(78,42,103,.42),rgba(9,5,15,.96))!important}

/* Reserve a real header row so numerals and the recommendation badge never sit on copy. */
.v9-service-gateway .v9-tier-card{
  grid-template-rows:minmax(34px,auto) minmax(54px,auto) minmax(0,auto) minmax(86px,auto) auto!important;
  row-gap:7px!important;
  padding-top:62px!important;
}
.v9-service-gateway .v9-tier-card>.v9-tier-roman{top:16px!important;right:18px!important}
.v9-service-gateway .v9-recommend{
  position:absolute!important;inset:15px auto auto 16px!important;transform:none!important;
  z-index:7!important;max-width:calc(100% - 82px)!important;width:max-content!important;
  margin:0!important;padding:6px 10px!important;white-space:normal!important;
  overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;
  font-size:9px!important;line-height:1.25!important;text-align:center!important;
}
.v9-service-gateway .v9-tier-card>small{
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:34px!important;height:auto!important;margin:0!important;padding:0 3px!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
  overflow-wrap:anywhere!important;word-break:normal!important;text-wrap:balance!important;
  line-height:1.35!important;text-align:center!important;
}
.v9-service-gateway .v9-tier-card h3,
html[lang] .v9-service-gateway .v9-tier-card h3{
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:54px!important;height:auto!important;margin:0!important;padding:0 2px!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
  overflow-wrap:anywhere!important;word-break:normal!important;hyphens:auto!important;
  text-wrap:balance!important;line-height:1.12!important;text-align:center!important;
  font-size:clamp(22px,1.9vw,31px)!important;
}
html[lang^="zh"] .v9-service-gateway .v9-tier-card h3,
html[lang="ja"] .v9-service-gateway .v9-tier-card h3,
html[lang="ko"] .v9-service-gateway .v9-tier-card h3{hyphens:none!important;line-break:strict!important}
.v9-service-gateway .v9-tier-card p{
  min-height:0!important;height:auto!important;margin:0!important;
  overflow:visible!important;text-wrap:pretty!important;line-height:1.68!important;
}
.v9-tier-card strong.v14-price-pair{
  grid-template-columns:minmax(0,auto) minmax(0,1fr)!important;
  min-width:0!important;min-height:86px!important;height:auto!important;
  padding-block:3px 7px!important;overflow:visible!important;
}
.v9-tier-card .v14-price-pair>span{max-width:100%!important;white-space:nowrap!important;line-height:1!important}
.v9-tier-card .v14-price-pair>em{min-width:0!important;overflow-wrap:anywhere!important}
.v9-tier-card>i{min-height:1.5em!important;margin-top:2px!important;text-align:center!important;text-wrap:balance!important}

/* Long multilingual headings and form controls must grow instead of clipping. */
:is(h1,h2,h3,h4,p,li,label,summary,button,a,small,strong,em,td,th,dd,dt){max-inline-size:100%}
:is(.display-title,.section-title,.v10-section-heading h2,.v9-page h1,.detail-sheet>h1){
  height:auto!important;min-height:0;overflow:visible!important;text-wrap:balance!important;
}
:is(input,select,textarea,button){max-inline-size:100%}
:is(.modal,.v11-reset-shell,.v114-settings-card,.v113-command-card,.v7-projection-panel){
  max-inline-size:min(100%,calc(100vw - 24px))!important;
}
.modal{position:relative!important}
.modal>.close-modal{
  position:absolute!important;inset:14px 14px auto auto!important;z-index:30!important;float:none!important;
  width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;
  margin:0!important;padding:0!important;transform:none!important;pointer-events:auto!important;
}
.modal>.eyebrow:first-of-type{padding-inline-end:50px!important}
.inline-field,.v11-password,.v11-birth,.modal-actions,.ops-form-actions{min-inline-size:0}
.inline-field>*{min-inline-size:0}
.legal-body,.modal-status,.v11-field-errors{overflow-wrap:anywhere}
.v11-password{position:relative!important;display:block!important;width:100%!important}
.v11-password input{width:100%!important;padding-inline-end:56px!important}
.v11-password button{
  position:absolute!important;inset:50% 6px auto auto!important;transform:translateY(-50%)!important;
  display:grid!important;place-items:center!important;width:42px!important;min-width:42px!important;max-width:42px!important;
  height:42px!important;margin:0!important;padding:0!important;overflow:visible!important;
}

/* The service carousel must keep every slide at a full viewport width. Older layers allowed flex-shrink. */
#view-services{min-height:calc(100svh - 76px)!important;overflow:visible!important}
.service-atlas{
  position:relative!important;height:auto!important;min-height:calc(100svh - 76px)!important;
  overflow:hidden!important;
}
.service-track{
  display:flex!important;align-items:stretch!important;width:100%!important;height:auto!important;
  min-height:inherit!important;
}
.service-slide{
  flex:0 0 100%!important;width:100%!important;min-width:100%!important;max-width:100%!important;
  height:auto!important;min-height:calc(100svh - 76px)!important;align-content:center!important;
}
.service-copy-full{width:min(920px,100%)!important;max-width:100%!important;min-width:0!important}
.service-position{display:block!important;width:max-content!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important}
.v9-service-benefits{max-width:100%!important}
.v9-benefit{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important}
.v9-detail-start{width:auto!important;max-width:100%!important;height:auto!important;min-height:48px!important;padding-block:12px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.45!important}
.service-arrow{position:absolute!important;transform:none!important}
.service-arrow.prev{left:max(14px,env(safe-area-inset-left))!important;right:auto!important}
.service-arrow.next{right:max(14px,env(safe-area-inset-right))!important;left:auto!important}
.service-dots{bottom:10px!important}
.service-dots button{
  position:relative!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
}
.service-dots button::after{
  content:"";position:absolute;inset:50% 5px auto;display:block;height:3px;border-radius:999px;
  transform:translateY(-50%);background:rgba(215,182,91,.24);transition:background .35s ease,box-shadow .35s ease,transform .35s ease;
}
.service-dots button.on::after{
  background:var(--gold2);box-shadow:0 0 12px var(--gold);transform:translateY(-50%) scaleX(1.08);
}
.v113-backtop{
  position:fixed!important;inset:auto max(16px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) auto!important;
  transform:translateY(12px)!important;
}
.v113-backtop.visible{transform:none!important}
.v113-notifications{
  right:max(10px,env(safe-area-inset-right))!important;
  width:min(400px,calc(100vw - 20px))!important;max-width:calc(100vw - 20px)!important;
  box-sizing:border-box!important;
}
.v113-account-chip{
  box-sizing:border-box!important;width:fit-content!important;max-width:100%!important;
  white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.35!important;
}
.v7-avatar-trigger{height:auto!important;max-width:min(340px,34vw)!important}
#v7AvatarName{max-width:14ch!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;line-height:1.25!important}
.v7-avatar-trigger .v102-account-badge{
  flex:0 0 auto!important;max-width:20ch!important;margin-left:2px!important;
  white-space:nowrap!important;overflow-wrap:normal!important;line-height:1.2!important;text-align:center!important;
}
html[lang="en"] .v9-service-gateway .v9-tier-card h3,
html[lang="fr"] .v9-service-gateway .v9-tier-card h3,
html[lang="de"] .v9-service-gateway .v9-tier-card h3{overflow-wrap:normal!important;word-break:normal!important}
html[lang="de"] .v9-service-gateway .v9-tier-card h3{font-size:clamp(21px,1.67vw,27px)!important}
body:not(.v13-account) #v7MenuLogout{display:none!important}
body.v13-account #v7MenuLogout{display:flex!important}
body.v13-account #v7MenuLogin{display:none!important}
body:not(.v13-account) #v7MenuLogin{display:flex!important}

@media(max-width:980px){
  .topbar{max-inline-size:100vw!important}
  .nav-links{max-inline-size:100%!important}
  .v9-service-gateway .v9-tier-card{padding-top:60px!important}
  .v9-service-gateway .v9-tier-card h3,html[lang] .v9-service-gateway .v9-tier-card h3{font-size:clamp(23px,4vw,31px)!important}
  .v7-avatar-trigger .v102-account-badge{display:none!important}
  body:not(.v13-account) #loginBtn{
    display:grid!important;place-items:center!important;width:42px!important;height:42px!important;min-width:42px!important;
    padding:0!important;border-radius:13px!important;font-size:0!important;line-height:0!important;
  }
  body:not(.v13-account) #loginBtn .ui-icon{display:block!important;width:18px!important;height:18px!important}
}
@media(max-width:620px){
  .v9-breadcrumb button,.service-home,.v9-footer button,.v9-footer a{
    box-sizing:border-box!important;min-width:44px!important;min-height:44px!important;padding-block:10px!important;
    display:inline-flex!important;align-items:center!important;
  }
  .v9-service-gateway .v9-tier-card{
    grid-template-rows:minmax(30px,auto) minmax(50px,auto) auto minmax(82px,auto) auto!important;
    padding:58px 22px 24px!important;
  }
  .v9-service-gateway .v9-tier-card h3,html[lang] .v9-service-gateway .v9-tier-card h3{
    min-height:50px!important;font-size:clamp(23px,7.4vw,29px)!important;
  }
  .v9-service-gateway .v9-tier-card>small{min-height:30px!important;font-size:10px!important}
  .v9-service-gateway .v9-recommend{top:13px!important;left:14px!important;max-width:calc(100% - 76px)!important}
  .v9-tier-card .v14-price-pair>span{font-size:clamp(40px,12.2vw,48px)!important}
  .modal-wrap{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
  .inline-field{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important}
  .inline-field>.ghost-btn{grid-column:1/-1!important;width:100%!important}
  .modal-actions{display:grid!important;grid-template-columns:1fr!important}
  #view-services{min-height:calc(100svh - 70px)!important}
  .service-atlas,.service-slide{min-height:calc(100svh - 70px)!important}
  .service-slide{padding:74px 24px 118px!important;overflow:visible!important}
  .service-copy-full{width:100%!important}
  .service-copy-full :is(h1,p){max-width:100%!important}
  .service-position{width:100%!important;margin-top:24px!important;padding-inline:10px!important}
  .v9-service-benefits{grid-template-columns:1fr!important;gap:8px!important;margin-block:20px!important}
  .v9-benefit{padding:12px 14px!important;text-align:left!important}
  .v9-service-price{justify-content:center!important;max-width:100%!important;flex-wrap:wrap!important}
  .v9-detail-start{width:100%!important}
  .service-arrow{top:auto!important;bottom:62px!important}
  .service-arrow.prev{left:16px!important}
  .service-arrow.next{right:16px!important}
  .service-dots{bottom:60px!important}
  .service-home{bottom:24px!important}
}
@media(max-width:380px){
  .nav-tools{gap:4px!important}
  .nav-tools [data-select-for="langSelect"]{min-width:46px!important;max-width:48px!important}
  .v7-coin-pill{padding-inline:8px!important}
  .v9-service-gateway .v9-tier-card{padding-inline:18px!important}
  .display-title{font-size:clamp(33px,10.7vw,42px)!important;letter-spacing:-.025em!important}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Member sanctum: every locale must stay inside the viewport and form controls
   must retain a readable label even when translated strings become longer. */
.v7-shell,.v7-layout,.v7-side,.v7-main,.v7-card,.v7-grid,.v7-field{min-inline-size:0!important;max-inline-size:100%}
.v7-card{height:auto!important;min-height:0!important;overflow:visible!important}
.v7-top strong{min-inline-size:0;overflow-wrap:anywhere;text-wrap:balance;line-height:1.35;font-size:13px!important}
.v7-top strong::after{content:none!important;display:none!important}
.v7-close{flex:0 0 42px!important;width:42px!important;height:42px!important}
.v7-field :is(label,.v7-field-label){display:block;color:#d8c9df;font-size:13px;line-height:1.45}
.v7-field :is(input,select){box-sizing:border-box;width:100%;min-width:0;min-height:46px}
.v7-table-wrap{max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.v7-table{min-width:560px}.v7-table :is(th,td){overflow-wrap:anywhere;vertical-align:top}
.v7-btn,.v7-tag,.v7-nav{height:auto;min-height:44px;white-space:normal;overflow:visible;line-height:1.35}
.v7-balance{overflow-wrap:anywhere;max-width:100%}
.v11-country-code.hidden{display:none!important}
@media(max-width:760px){
  .v7-top{padding-inline:14px}.v7-top strong{font-size:12px!important;letter-spacing:.1em}
  .v7-side{max-width:100vw;scrollbar-width:none}.v7-side::-webkit-scrollbar{display:none}
  .v7-main{width:100%;margin:0;padding-bottom:calc(34px + env(safe-area-inset-bottom))!important}
  .v7-card{padding:17px!important}.v7-calendar{min-width:0}.v7-day{min-width:0;padding:6px 3px!important;overflow:hidden;text-align:center}
  .v7-weekday{text-align:center;font-size:11px;overflow:hidden;text-overflow:ellipsis}
  .v113-mobile-nav button{line-height:1.35!important}
  .v113-mobile-nav button>span{
    display:block!important;min-height:1.4em!important;line-height:1.4!important;
    overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;
  }
}

/* Provider return is intentionally sparse: no payment credential or provider
   token is rendered or persisted while the browser returns to the order page. */
.payment-return-page{min-height:100dvh;margin:0;display:grid;place-items:center;background:#090610 radial-gradient(circle at 50% 45%,rgba(160,105,255,.16),transparent 38%);color:#eadcae}
.payment-return-page .loading-inline{width:46px;height:46px;padding:0;border:1px solid rgba(225,190,94,.48);border-radius:50%;animation:v15-return-spin 1.1s linear infinite}
.payment-return-page .loading-inline::after{content:"";display:block;width:8px;height:8px;margin:4px auto;border-radius:50%;background:#e1be5e;box-shadow:0 0 18px #e1be5e}
@keyframes v15-return-spin{to{transform:rotate(360deg)}}
