/* Final containment rules. Keep real padding rather than hiding overflowing text. */
.js .header .mobile-nav.open,html:not(.js) .header .mobile-nav{box-sizing:border-box;padding:16px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.header .mobile-nav a{box-sizing:border-box;min-width:0;max-width:100%;width:100%;height:auto;white-space:normal;overflow-wrap:anywhere;padding:14px;line-height:1.45}
.button,.tabs button,.connect-dock a{box-sizing:border-box;min-width:0;max-width:100%;height:auto;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.button:hover{transform:none}
.actions{flex-wrap:wrap;min-width:0}
.actions>*{min-width:0;max-width:100%}
.header-actions{max-width:100%}
.header-actions .menu-toggle{flex-shrink:0}
#help .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,38rem);min-width:0;gap:4px}
#help .tabs button{min-width:0;padding:12px 4px;min-height:48px;font-size:clamp(.75rem,3vw,.9375rem);overflow-wrap:anywhere;word-break:normal;line-height:1.35}
#help .guide-intro>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.dock-connect{flex-wrap:wrap;column-gap:8px;row-gap:4px;padding:10px 12px}
.dock-connect span{margin-left:0;flex-shrink:0}
#root button,#root a.inline-flex,#root a.flex{box-sizing:border-box;min-width:0;max-width:100%;height:auto;white-space:normal;overflow-wrap:anywhere;line-height:1.5;transform:none!important;scale:none!important}
#root button>span,#root a>span{min-width:0;white-space:normal;overflow-wrap:anywhere}
#root button>svg,#root a>svg{flex-shrink:0;max-width:24px;max-height:24px}
#root #steps .access-step-panel .flex:not(.flex-col){flex-wrap:wrap}
#root .nosok-copy{max-width:100%;flex:0 1 auto}
#root .nosok-copy>button{justify-content:center;padding:12px 16px;min-height:48px}
#root .bridge-cinema.cinema-ready{height:auto;min-height:370px}
#root .bridge-objects{height:auto;min-height:370px;align-items:start;padding:24px 0 52px}
#root .bridge-object{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:140px auto auto;align-content:start;justify-items:center;gap:8px;min-height:0;padding:14px 10px 20px}
#root .bridge-sculpture-frame{display:grid;place-items:center;align-self:stretch;width:100%;height:140px;overflow:hidden;border-radius:12px;contain:paint;pointer-events:none}
#root .bridge-sculpture{margin:0;scale:1;transform-origin:50% 50%}
#root .bridge-object>strong,#root .bridge-object-detail{position:relative;z-index:1;max-width:100%;overflow-wrap:anywhere}
@media(max-width:640px){
 .js .header .mobile-nav.open,html:not(.js) .header .mobile-nav{padding:12px;gap:10px}
 .header .mobile-nav a{padding:12px;font-size:.9rem}
 #root #steps .access-step-panel a.inline-flex,#root #steps .nosok-copy{width:100%;justify-content:center}
 #root .bridge-cinema.cinema-ready,#root .bridge-objects{min-height:268px}
 #root .bridge-objects{padding:34px 0;gap:7px;align-items:center;transform:none}
 #root .bridge-object,#root .bridge-object-key{transform:none}
 #root .bridge-object{grid-template-rows:96px auto auto;gap:7px;padding:8px 5px 12px}
 #root .bridge-sculpture-frame{height:96px}
 #root .bridge-sculpture{scale:.64;margin:0}
 #root .bridge-object strong{font-size:.76rem;line-height:1.4}
 #root .bridge-object-detail{font-size:.65rem;line-height:1.45}
}
/* Step markers hug their contents; the number and icon share a single row. */
#root #steps .access-step>div.flex.gap-6.items-start>.access-step-badge{display:inline-flex;flex-direction:row;width:fit-content;height:auto;min-height:48px;padding:12px;gap:8px;align-items:center;justify-content:center;align-self:flex-start;background:#f4eaf0;border:1px solid #d9c3d1;border-radius:14px;flex:0 0 auto}
#root #steps .access-step>div.flex.gap-6.items-start>.access-step-badge>svg{width:24px;height:24px;color:#683c57}
#root #steps .access-step>div.flex.gap-6.items-start>.access-step-badge>span{position:static;display:grid;place-items:center;width:26px;height:26px;min-height:26px;padding:0;flex:0 0 26px;color:#48233b!important;background:#ffdab8!important;border:1px solid #c79a77;border-radius:7px;line-height:1;font-size:15px;font-weight:800;opacity:1;box-shadow:none;-webkit-text-fill-color:#48233b}
#root .access-step-badge>span::before{content:none}
/* Prices stay still while visitors compare them. Only the edge responds. */
.location-section{border-top:1px solid #e7dbe2}
.location-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px)}
.location-layout>div{min-width:0}
.location-layout h3{font-size:1.3rem;letter-spacing:-.02em;margin-bottom:20px}
.location-modes,.location-list{margin:0}
.location-modes>div{padding:16px 0;border-bottom:1px solid #e7dbe2}
.location-modes>div:first-child{padding-top:0}
.location-modes dt,.location-list dt{font-weight:700;color:#48233b}
.location-modes dd{margin:6px 0 0;color:#6d5d67;line-height:1.55}
.location-list{border:1px solid #d9c3d1;border-radius:18px;padding:4px 20px;background:#fff}
.location-list>div{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 14px;padding:11px 0;border-bottom:1px solid #eee4ea}
.location-list>div:last-child{border-bottom:0}
.location-list dd{margin:0;color:#6d5d67;font-size:.9rem;font-variant-numeric:tabular-nums}
.location-note{font-size:.875rem;line-height:1.65;margin-top:16px;color:#6d5d67}
.location-footer{margin:24px 0 0;line-height:1.7}
@media(max-width:700px){.location-layout{grid-template-columns:minmax(0,1fr);gap:28px}}
#pricing .plan,#pricing .plan:hover,#pricing .plan:focus-within{transform:none;translate:none;rotate:none;scale:none;animation:none;transition:border-color .24s ease,box-shadow .24s ease,background-color .24s ease}
#pricing .plan:hover,#pricing .plan:focus-within{border-color:#986c87;box-shadow:0 4px 16px #683c5710}
#pricing .plan h3{animation:none;transform:none;translate:none}
#pricing .plan .button{box-shadow:none}
#pricing .plan h3{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
#pricing .plan-title{overflow-wrap:normal;word-break:normal;text-wrap:balance}
@media(max-width:600px){
 #pricing .plans{grid-template-columns:minmax(0,1fr);gap:16px}
 #pricing .plan,#pricing .plan:nth-child(2){padding:20px}
 #pricing .plan h3{font-size:2.8rem;margin-bottom:12px}
 #pricing .plan-title{font-size:1.125rem;min-height:0;margin-bottom:12px;text-wrap:pretty}
 #pricing .plan>p:not(.plan-title){font-size:1rem;margin-bottom:18px}
}
@media(prefers-reduced-motion:reduce){#pricing .plan{transition:none}}
@media(max-width:360px){
 .js .header .mobile-nav.open,html:not(.js) .header .mobile-nav{grid-template-columns:minmax(0,1fr)}
 .header .brand{font-size:1.08rem}
 .header-actions{flex-wrap:wrap;justify-content:flex-end}
 #root .bridge-objects{gap:5px;width:94%}
}

/* Revision 18: only the import substeps and bridge subscription controls. */
#root #steps .access-step[data-step="3"] .access-step-panel .space-y-4>.flex.gap-4.items-start{flex-direction:column;align-items:flex-start;gap:12px}
#root #steps .bridge-subscription-layout{display:flex;flex-direction:column;align-items:stretch;gap:20px}
#root #steps .bridge-subscription-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;min-width:0}
#root #steps .bridge-subscription-actions>a,#root #steps .bridge-subscription-actions>.nosok-copy{width:100%;min-width:0;align-self:start}
#root #steps .bridge-subscription-actions>a,#root #steps .bridge-subscription-actions .nosok-copy>button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:12px 16px}
@media(max-width:640px){#root #steps .bridge-subscription-actions{grid-template-columns:minmax(0,1fr)}}
