/* Surfaces & editorial: card, service card, stat, accordion, tabs, dialog, notice, tooltip, sticker, headline, quote, method step, logo */
.lab-card{box-sizing:border-box;padding:var(--pad-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-body);box-shadow:var(--shadow-card);transition:box-shadow var(--dur-base) var(--ease-editorial),transform var(--dur-base) var(--ease-editorial),background-color var(--dur-base) var(--ease-editorial)}
.lab-card--flat{box-shadow:none}
.lab-card--square{border-radius:var(--radius-0)}
.lab-card--pale{background:var(--blue-pale);border-color:transparent;box-shadow:none}
.lab-card--cream{background:var(--cream);border-color:transparent;box-shadow:none}
.lab-card--deep{background:var(--blue-deep);border-color:transparent;color:var(--text-on-deep-muted);box-shadow:none}
.lab-card--accent{background:var(--blue-bright);border-color:transparent;color:rgba(255,255,255,.82);box-shadow:none}
.lab-card--outline{background:none;border-color:var(--border-hairline);box-shadow:none}
.lab-card--lg{padding:var(--pad-card-lg)}
.lab-card--interactive{cursor:pointer}
.lab-card--interactive:hover{box-shadow:var(--shadow-card-hover);transform:translateY(var(--lift-hover))}

.lab-service{display:flex;flex-direction:column;gap:var(--space-6);box-sizing:border-box;padding:var(--pad-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:var(--surface-card);transition:box-shadow var(--dur-base) var(--ease-editorial),transform var(--dur-base) var(--ease-editorial)}
.lab-service:hover{box-shadow:var(--shadow-card-hover);transform:translateY(var(--lift-hover))}
.lab-service--featured{background:var(--blue-deep);border-color:transparent;color:var(--text-on-deep-muted)}
.lab-service__name{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-display-s);line-height:1;letter-spacing:var(--ls-display);color:var(--blue-deep)}
.lab-service--featured .lab-service__name{color:var(--cream)}
.lab-service__claim{font-family:var(--font-display);font-style:italic;font-size:var(--fs-heading-m);line-height:var(--lh-quote);color:var(--blue-bright)}
.lab-service--featured .lab-service__claim{color:var(--blue-light)}
.lab-service__list{display:flex;flex-direction:column;gap:var(--space-4);margin:0;padding:0;list-style:none;font:var(--type-body-s)}
.lab-service__item{display:flex;gap:var(--space-4);align-items:flex-start}
.lab-service__item .lab-icon{margin-top:.15em;color:var(--blue-bright)}
.lab-service--featured .lab-service__item .lab-icon{color:var(--blue-light)}
.lab-service__price{font-family:var(--font-sans);font-size:var(--fs-heading-s);font-weight:var(--fw-medium);color:var(--blue-deep)}
.lab-service--featured .lab-service__price{color:var(--cream)}
.lab-service__foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-5)}

.lab-stat{display:flex;flex-direction:column;gap:var(--space-3)}
.lab-stat__figure{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-display-m);line-height:.9;letter-spacing:var(--ls-display-tight);color:var(--blue-deep)}
.lab-stat--accent .lab-stat__figure{color:var(--blue-bright)}
.lab-stat--on-deep .lab-stat__figure{color:var(--cream)}
.lab-stat__label{font-family:var(--font-sans);font-size:var(--fs-body-s);line-height:var(--lh-body-tight);color:var(--text-muted);max-width:26ch}
.lab-stat--on-deep .lab-stat__label{color:var(--text-on-deep-muted)}

.lab-acc{border-top:1px solid var(--border-hairline)}
.lab-acc__row{border-bottom:1px solid var(--border-hairline)}
.lab-acc__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);width:100%;padding:var(--space-6) 0;background:none;border:0;text-align:left;cursor:pointer;font-family:var(--font-display);font-size:var(--fs-heading-m);font-weight:var(--fw-bold);letter-spacing:var(--ls-heading);color:var(--blue-deep);transition:color var(--dur-fast) var(--ease-editorial)}
.lab-acc__head:hover{color:var(--blue-bright)}
.lab-acc__mark{flex:none;font-size:18px;color:var(--blue-bright);transition:transform var(--dur-base) var(--ease-editorial)}
.lab-acc__row[data-open=true] .lab-acc__mark{transform:rotate(45deg)}
.lab-acc__body{overflow:hidden;max-height:0;transition:max-height var(--dur-base) var(--ease-editorial),opacity var(--dur-base) var(--ease-editorial);opacity:0}
.lab-acc__row[data-open=true] .lab-acc__body{max-height:520px;opacity:1}
.lab-acc__inner{padding:0 0 var(--space-7);font:var(--type-body);color:var(--text-body);max-width:62ch}

.lab-tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border-hairline)}
.lab-tabs__tab{position:relative;padding:var(--space-4) var(--space-5);background:none;border:0;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:var(--fw-medium);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);transition:color var(--dur-fast) var(--ease-editorial)}
.lab-tabs__tab:hover{color:var(--blue-deep)}
.lab-tabs__tab[aria-selected=true]{color:var(--blue-deep)}
.lab-tabs__tab[aria-selected=true]::after{content:"";position:absolute;left:var(--space-5);right:var(--space-5);bottom:-1px;height:var(--rule-weight-strong);background:var(--blue-bright)}

.lab-notice{display:flex;gap:var(--space-4);box-sizing:border-box;padding:var(--space-5) var(--space-6);border-radius:var(--radius-sm);font:var(--type-body-s)}
.lab-notice__icon{font-size:18px;margin-top:.05em}
.lab-notice--info{background:var(--blue-pale);color:var(--blue-deep)}
.lab-notice--error{background:var(--feedback-error-soft);color:var(--feedback-error)}
.lab-notice--success{background:var(--feedback-success-soft);color:var(--feedback-success)}
.lab-notice--neutral{background:var(--cream);color:var(--blue-deep)}
.lab-notice__title{font-weight:var(--fw-medium);display:block;margin-bottom:2px}

.lab-dialog__scrim{position:fixed;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:var(--space-6);background:rgba(3,55,142,.34);backdrop-filter:blur(3px);animation:fourA-rise var(--dur-fast) var(--ease-editorial)}
.lab-dialog{position:relative;box-sizing:border-box;width:min(520px,100%);padding:var(--pad-card-lg);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-overlay);animation:fourA-place var(--dur-base) var(--ease-place)}
.lab-dialog__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-heading-l);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);color:var(--blue-deep);margin:0 0 var(--space-4)}
.lab-dialog__body{font:var(--type-body);color:var(--text-body)}
.lab-dialog__foot{display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-8)}
.lab-dialog__close{position:absolute;top:var(--space-5);right:var(--space-5)}

.lab-tip{position:relative;display:inline-flex}
.lab-tip__bubble{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px);opacity:0;pointer-events:none;white-space:nowrap;padding:8px 12px;border-radius:var(--radius-sm);background:var(--blue-deep);color:var(--cream);font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:var(--ls-micro);box-shadow:var(--shadow-card);transition:opacity var(--dur-fast) var(--ease-editorial),transform var(--dur-fast) var(--ease-editorial);z-index:var(--z-overlay)}
.lab-tip:hover .lab-tip__bubble,.lab-tip:focus-within .lab-tip__bubble{opacity:1;transform:translate(-50%,0)}

.lab-sticker{position:relative;display:inline-block;line-height:0;filter:drop-shadow(var(--shadow-sticker));transform:rotate(var(--tilt,0deg));transition:transform var(--dur-base) var(--ease-editorial),filter var(--dur-base) var(--ease-editorial);will-change:transform}
.lab-sticker>img{display:block;width:100%;height:auto}
.lab-sticker--hover:hover{transform:rotate(var(--tilt-hover)) translateY(var(--lift-hover)) scale(1.015);filter:drop-shadow(var(--shadow-sticker-lifted))}
.lab-sticker--float{animation:fourA-drift var(--dur-drift) var(--ease-float) infinite}
.lab-sticker--bob{animation:fourA-float var(--dur-float) var(--ease-float) infinite}
.lab-sticker[data-enter=pending]{opacity:0}
.lab-sticker[data-enter=in]{animation:fourA-place var(--dur-place) var(--ease-place) both}
.lab-sticker--cut{filter:drop-shadow(0 0 0 var(--sticker-cut)) drop-shadow(var(--shadow-sticker))}

.lab-head{margin:0;font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-display);line-height:var(--lh-display);color:var(--blue-deep);text-wrap:balance}
.lab-head--xl{font-size:var(--fs-display-xl)}
.lab-head--l{font-size:var(--fs-display-l)}
.lab-head--m{font-size:var(--fs-display-m);line-height:var(--lh-display-loose)}
.lab-head--s{font-size:var(--fs-display-s);line-height:var(--lh-display-loose)}
.lab-head__line{display:block}
.lab-head__w{}
.lab-head__w--soft{color:var(--blue-light)}
.lab-head__w--accent{color:var(--blue-bright)}
.lab-head__w--peri{color:var(--blue-peri)}
.lab-head__w--italic{font-style:italic;font-weight:var(--fw-regular)}
.lab-head__w--cream{color:var(--cream)}
.lab-head--on-deep{color:var(--cream)}
.lab-head--offset .lab-head__w--soft{text-shadow:var(--shadow-display-offset)}
.lab-head--upper{text-transform:uppercase;letter-spacing:var(--ls-display-tight)}

.lab-quote{display:flex;flex-direction:column;gap:var(--space-6);margin:0}
.lab-quote__text{font:var(--type-quote);color:var(--blue-deep);margin:0;max-width:34ch}
.lab-quote--lg .lab-quote__text{font-size:var(--fs-display-s);line-height:var(--lh-display-loose)}
.lab-quote--on-deep .lab-quote__text{color:var(--cream)}
.lab-quote__attr{font-family:var(--font-sans);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.lab-quote--on-deep .lab-quote__attr{color:var(--text-on-deep-muted)}

.lab-step{display:flex;gap:var(--space-6);align-items:flex-start}
.lab-step__key{flex:none;display:grid;place-items:center;width:60px;height:60px;border-radius:var(--radius-circle);border:1px solid var(--blue-deep);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:22px;color:var(--blue-deep)}
.lab-step--filled .lab-step__key{background:var(--blue-deep);color:var(--cream);border-color:transparent}
.lab-step--on-deep .lab-step__key{border-color:var(--border-on-deep);color:var(--cream)}
.lab-step__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-heading-l);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);color:var(--blue-deep);margin:0 0 var(--space-3)}
.lab-step--on-deep .lab-step__title{color:var(--cream)}
.lab-step__text{font:var(--type-body-s);color:var(--text-body);max-width:44ch}
.lab-step--on-deep .lab-step__text{color:var(--text-on-deep-muted)}
.lab-step__out{display:inline-flex;margin-top:var(--space-4)}

.lab-logo{display:inline-flex;align-items:center;gap:var(--space-4)}
.lab-logo>img{display:block;height:auto}
.lab-logo--badge>img{border-radius:var(--radius-circle)}
/* PORT: badge-sticker.png is already die-cut (transparent PNG) and its peeled corner sits
   outside the inscribed circle, so the circular clip above would crop it. */
.lab-logo--diecut>img{border-radius:var(--radius-0)}
