/* ==========================================================================
   Discovery Pages (Build 35.9.2)
   ONE stylesheet shared by the three new pages:
     /self-storage-software/  /customers/  /tap-cards/
   Reuses Internal Hero System, buttons, faq, cta, trust-bar, blog-card and
   the sp-* primitives from standard-pages.css. platform-services.css was
   NOT copied. No shared component rule is overridden.
   ========================================================================== */

/* ---------- Shared hero motifs ---------- */
.internal-hero--software{
    --internal-hero-bg-image:
        repeating-linear-gradient(90deg, rgba(111,217,224,.08) 0, rgba(111,217,224,.08) 1px, transparent 1px, transparent 50px),
        repeating-linear-gradient(0deg, rgba(111,217,224,.06) 0, rgba(111,217,224,.06) 1px, transparent 1px, transparent 50px),
        linear-gradient(135deg, rgba(19,167,179,.15) 0%, transparent 50%);
}
.internal-hero--customers{
    --internal-hero-bg-image:
        repeating-linear-gradient(45deg, rgba(111,217,224,.07) 0, rgba(111,217,224,.07) 1px, transparent 1px, transparent 56px),
        radial-gradient(circle at 74% 42%, rgba(19,167,179,.17) 0%, transparent 44%);
}
.internal-hero--tapcards{
    --internal-hero-bg-image:
        repeating-linear-gradient(0deg, rgba(111,217,224,.07) 0, rgba(111,217,224,.07) 1px, transparent 1px, transparent 44px),
        radial-gradient(circle at 70% 40%, rgba(245,141,29,.14) 0%, transparent 42%);
}
.internal-hero--software .internal-hero__bg,
.internal-hero--customers .internal-hero__bg,
.internal-hero--tapcards .internal-hero__bg{background-size:auto,100% 100%;background-position:center;}
.internal-hero--software .internal-hero__overlay,
.internal-hero--customers .internal-hero__overlay,
.internal-hero--tapcards .internal-hero__overlay{
    background:
        radial-gradient(circle at 74% 40%,rgba(19,167,179,.10),transparent 36%),
        linear-gradient(90deg,rgba(0,31,49,.93) 0%,rgba(0,31,49,.83) 54%,rgba(0,31,49,.62) 100%);
}

/* Hero object: layered software-stack panel (abstract, aria-hidden, imitates
   no proprietary interface, carries no numbers) */
.dp-stack{max-width:380px;margin-left:auto;display:grid;gap:10px;}
.dp-layer{
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);
    border-radius:11px;padding:12px 15px;backdrop-filter:blur(3px);
    display:flex;align-items:center;gap:11px;box-shadow:0 12px 28px rgba(0,10,18,.24);
}
.dp-layer--accent{background:rgba(19,167,179,.12);border-color:rgba(111,217,224,.32);}
.dp-layer__icon{
    width:30px;height:30px;border-radius:8px;flex-shrink:0;
    background:rgba(19,167,179,.18);border:1px solid rgba(111,217,224,.3);
    display:flex;align-items:center;justify-content:center;color:var(--teal-300);
}
.dp-layer__label{flex:1;min-width:0;color:rgba(255,255,255,.82);font-size:.8rem;font-weight:600;line-height:1.3;}
.dp-layer__label small{display:block;color:rgba(255,255,255,.45);font-size:.7rem;font-weight:400;margin-top:2px;}
.dp-stack__link{width:2px;height:10px;margin:0 auto;justify-self:center;
    background:linear-gradient(180deg,rgba(111,217,224,.45),rgba(111,217,224,.12));}

/* ---------- Software hub: platform cards ---------- */
.sw-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:36px;}
.sw-card{
    background:var(--white);border:1px solid var(--gray-300);border-radius:14px;
    padding:26px 24px;box-shadow:0 6px 18px rgba(0,31,49,.06);
    display:flex;flex-direction:column;scroll-margin-top:130px;
}
.sw-card__head{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.sw-card__logo{height:30px;width:auto;display:block;flex-shrink:0;}
.sw-card__name{color:var(--navy-950);font-size:1.12rem;font-weight:800;line-height:1.25;margin:0;}
.sw-card__name small{display:block;color:var(--gray-700);font-size:.78rem;font-weight:500;margin-top:3px;}
/* Text-based platform treatment where no approved logo asset exists */
.sw-card__wordmark{
    display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
    height:30px;padding:0 12px;border-radius:7px;
    background:var(--navy-950);color:var(--white);
    font-size:.82rem;font-weight:800;letter-spacing:.4px;
}
.sw-card__cat{
    display:inline-block;color:var(--teal-500);font-size:.7rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.7px;margin-bottom:10px;
}
.sw-card p{color:var(--gray-700);font-size:.92rem;line-height:1.6;margin:0 0 12px;}
.sw-card__work{margin:0 0 16px;padding:0;list-style:none;display:grid;gap:7px;}
.sw-card__work li{color:var(--gray-700);font-size:.88rem;line-height:1.5;display:flex;gap:8px;align-items:flex-start;}
.sw-card__work li::before{content:'\2713';color:var(--teal-500);font-weight:700;flex-shrink:0;}
.sw-card__control{
    margin:0 0 16px;padding:11px 14px;background:var(--gray-100);border-radius:8px;
    color:var(--gray-700);font-size:.85rem;line-height:1.5;
}
.sw-card__control strong{color:var(--navy-950);}
.sw-card__actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px;}
.sw-card__actions .btn{padding:11px 18px;font-size:.88rem;}

/* Experience vs Review explainer */
.sw-intent{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px;}
.sw-intent__col{background:var(--white);border:1px solid var(--gray-300);border-radius:14px;padding:26px 24px;}
.sw-intent__col--exp{border-top:4px solid var(--cta-500);}
.sw-intent__col--rev{border-top:4px solid var(--teal-500);}
.sw-intent__col h3{color:var(--navy-950);font-size:1.05rem;font-weight:700;margin-bottom:6px;}
.sw-intent__tag{display:block;color:var(--gray-700);font-size:.8rem;font-style:italic;margin-bottom:14px;}
.sw-intent__col ul{list-style:none;display:grid;gap:9px;margin:0;padding:0;}
.sw-intent__col li{color:var(--gray-700);font-size:.9rem;line-height:1.5;display:flex;gap:8px;align-items:flex-start;}
.sw-intent__col li::before{content:'\2022';color:var(--teal-500);font-weight:700;flex-shrink:0;}

/* Reviews section */
.sw-reviews{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px;}
.sw-review-card{
    display:block;background:var(--white);border:1px solid var(--gray-300);border-radius:14px;
    padding:24px;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.sw-review-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,31,49,.1);border-color:var(--teal-300);}
.sw-review-card__tag{display:inline-block;background:rgba(19,167,179,.12);color:var(--teal-500);
    font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
    padding:4px 10px;border-radius:999px;margin-bottom:12px;}
.sw-review-card h3{color:var(--navy-950);font-size:1.05rem;font-weight:700;margin-bottom:8px;}
.sw-review-card p{color:var(--gray-700);font-size:.9rem;line-height:1.55;margin:0;}

/* ---------- Customers page ---------- */
.cu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px;}
.cu-card{
    background:var(--white);border:1px solid var(--gray-300);border-radius:14px;
    overflow:hidden;box-shadow:0 6px 18px rgba(0,31,49,.06);display:flex;flex-direction:column;
}

.cu-card__body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
/* Build 35.9.4: customer cards are text-only. Image and placeholder panels
   were removed, so the body carries the full card and needs its own top
   padding rhythm. */
.cu-card__badge{
    display:inline-block;align-self:flex-start;
    background:var(--cta-500);color:var(--white);
    font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
    padding:4px 11px;border-radius:999px;margin-bottom:12px;
}
.cu-card__loc{white-space:normal;}
.cu-card__name{color:var(--navy-950);font-size:1.05rem;font-weight:800;margin-bottom:6px;line-height:1.3;}
.cu-card__loc{color:var(--gray-700);font-size:.85rem;margin-bottom:14px;}
.cu-card__meta{display:grid;gap:9px;margin-bottom:16px;}
.cu-card__row{display:flex;gap:8px;align-items:flex-start;font-size:.86rem;line-height:1.45;}
.cu-card__row dt{color:var(--navy-950);font-weight:700;flex-shrink:0;margin:0;}
.cu-card__row dd{color:var(--gray-700);margin:0;}
.cu-card__row dd a{color:var(--teal-500);}
.cu-card__actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px;}
.cu-card__actions .btn{padding:10px 16px;font-size:.85rem;}
.cu-note{
    max-width:820px;margin:32px auto 0;padding:18px 22px;background:var(--gray-100);
    border-left:4px solid var(--teal-500);border-radius:0 10px 10px 0;
    color:var(--gray-700);font-size:.9rem;line-height:1.6;
}
.cu-note strong{color:var(--navy-950);}

/* ---------- Tap Cards page ---------- */
.tc-hero-price{
    display:inline-flex;align-items:baseline;gap:8px;margin:16px 0 20px;
    color:var(--white);
}
.tc-hero-price__amount{font-size:2.6rem;font-weight:800;line-height:1;letter-spacing:-.02em;}
.tc-hero-price__note{color:var(--teal-300);font-size:.92rem;font-weight:600;}
.tc-figure{max-width:760px;margin:32px auto 0;}
.tc-figure img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--gray-300);box-shadow:0 10px 28px rgba(0,31,49,.1);}
.tc-figure figcaption{text-align:center;color:var(--gray-700);font-size:.85rem;margin-top:10px;}
.tc-steps{display:grid;gap:18px;margin-top:32px;max-width:860px;margin-left:auto;margin-right:auto;}
.tc-step{display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;
    background:var(--white);border:1px solid var(--gray-300);border-radius:12px;padding:22px 24px;}
.tc-step__num{width:52px;height:52px;border-radius:50%;background:var(--gray-100);
    border:2px solid var(--teal-500);color:var(--teal-500);font-weight:800;font-size:1.05rem;
    display:flex;align-items:center;justify-content:center;}
.tc-step h3{color:var(--navy-950);font-size:1.02rem;font-weight:700;margin-bottom:8px;}
.tc-step p{color:var(--gray-700);font-size:.93rem;line-height:1.6;margin:0;}
.tc-price-panel{
    max-width:720px;margin:32px auto 0;background:var(--white);border:1px solid var(--gray-300);
    border-radius:16px;padding:32px 30px;box-shadow:0 10px 28px rgba(0,31,49,.08);text-align:center;
}
.tc-price-panel__amount{color:var(--navy-950);font-size:3rem;font-weight:800;line-height:1;letter-spacing:-.02em;}
.tc-price-panel__sub{color:var(--gray-700);font-size:.95rem;margin:8px 0 24px;}
.tc-price-panel h3{color:var(--navy-950);font-size:1rem;font-weight:700;margin:0 0 12px;text-align:left;}
.tc-price-panel ul{list-style:none;display:grid;gap:9px;margin:0 0 24px;padding:0;text-align:left;}
.tc-price-panel li{color:var(--gray-700);font-size:.9rem;line-height:1.5;display:flex;gap:9px;align-items:flex-start;}
.tc-price-panel li::before{content:'\2713';color:var(--teal-500);font-weight:700;flex-shrink:0;}
.tc-volume{background:rgba(19,167,179,.08);border:1px solid rgba(19,167,179,.26);border-radius:10px;padding:16px 18px;margin-bottom:24px;text-align:left;}
.tc-volume strong{display:block;color:var(--navy-950);margin-bottom:8px;font-size:.94rem;}
.tc-volume ul{margin:0;gap:6px;}

/* Comparison table - contained scroll, no columns hidden on mobile */
.tc-table-wrap{max-width:860px;margin:32px auto 0;overflow-x:auto;-webkit-overflow-scrolling:touch;
    border:1px solid var(--gray-300);border-radius:12px;background:var(--white);box-shadow:0 6px 18px rgba(0,31,49,.06);}
.tc-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.9rem;}
.tc-table th,.tc-table td{padding:13px 16px;text-align:center;border-bottom:1px solid var(--gray-300);}
.tc-table thead th{background:var(--navy-950);color:var(--white);font-size:.86rem;font-weight:700;border-bottom:none;}
.tc-table th[scope="row"]{text-align:left;color:var(--navy-950);font-weight:600;background:var(--gray-100);position:sticky;left:0;z-index:1;min-width:150px;}
.tc-table tbody tr:last-child th,.tc-table tbody tr:last-child td{border-bottom:none;}
.tc-table__win{color:var(--teal-500);font-weight:700;}
.tc-table-hint{display:none;text-align:center;color:var(--gray-700);font-size:.83rem;margin-top:10px;}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
    .sw-grid,.sw-intent,.sw-reviews{grid-template-columns:1fr;}
    .cu-grid{grid-template-columns:repeat(2,1fr);}
    .dp-stack{max-width:100%;}
}
@media (max-width:768px){
    .tc-table-hint{display:block;}
    .cu-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
    .sw-card,.sw-intent__col,.sw-review-card{padding:20px 18px;}
    .sw-card__head{flex-wrap:wrap;gap:10px;}
    .sw-card__actions{flex-direction:column;}
    .sw-card__actions .btn{width:100%;text-align:center;justify-content:center;}
    .cu-card__actions{flex-direction:column;}
    .cu-card__actions .btn{width:100%;text-align:center;justify-content:center;}
    .tc-step{grid-template-columns:44px 1fr;gap:14px;padding:18px 16px;}
    .tc-step__num{width:44px;height:44px;font-size:.95rem;}
    .tc-price-panel{padding:24px 18px;}
    .tc-price-panel__amount{font-size:2.4rem;}
    .tc-hero-price__amount{font-size:2.1rem;}
    .tc-table{min-width:520px;font-size:.85rem;}
    .tc-table th,.tc-table td{padding:11px 12px;}
    .tc-table th[scope="row"]{min-width:130px;}
}
