/* TapValet: the existing hospitality palette, made operator-focused. */
body.tapvalet{--paper:#151512;--ink:#f4efe3;--text:#f4efe3;--body:#d4cfc3;--muted:#bbb5a6;--cream:#f4efe3;--gold:#dcc17b;--gold-dark:#dcc17b;background:#151512;color:#f4efe3}
.tapvalet ::selection{background:#dcc17b;color:#151512}
.tapvalet :focus-visible{outline:3px solid #efcf79;outline-offset:5px}
.tapvalet nav,.tapvalet nav.scrolled,.tapvalet nav.on-dark{background:#151512;border-bottom:1px solid #454338;box-shadow:none}
.tapvalet .n-logo{color:#f4efe3;letter-spacing:.015em;font-size:1.12rem;line-height:1.15;text-transform:none}
.tapvalet .n-logo small{display:block;font-family:'DM Sans',sans-serif;font-size:.62rem;letter-spacing:.05em;color:#d4cfc3;margin-top:.3rem}
.tapvalet nav .n-links a:not(.n-cta){color:#e5dfd0}
.tapvalet nav .n-cta,.tapvalet .btn-p,.tapvalet form button[type=submit]{background:#dcc17b;color:#151512;border-color:#dcc17b}
.tapvalet .btn-o{color:#f4efe3;border-color:#857a5b}
.tapvalet .btn-p:hover,.tapvalet form button[type=submit]:hover{background:#efcf79;color:#151512}
.tapvalet .btn-o:hover{background:#29291f;color:#fff}
.tapvalet .n-ham span{background:#dcc17b}
.tapvalet nav .n-cta{color:#151512!important}
.tapvalet .btn-p,.tapvalet .n-cta{box-shadow:none}
.tapvalet .btn-p::before{display:none}
.tapvalet nav{backdrop-filter:none;-webkit-backdrop-filter:none;transition:background-color .2s ease-out}
.tapvalet .consent-bar{background:#202019}
.tapvalet .consent-yes{color:#151512}
.tapvalet .skip-link{color:#151512}
.tapvalet h1,.tapvalet h2,.tapvalet h3:not(.g-head){color:#f4efe3;text-wrap:balance}
.tapvalet h1{font-size:clamp(2.5rem,4.7vw,4.7rem);line-height:1.12;font-weight:400;letter-spacing:-.025em;max-width:20ch}
.tapvalet h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,3.1vw,3.15rem);line-height:1.17;font-weight:400;max-width:24ch;margin:0 0 1.25rem}
.tapvalet h3:not(.g-head){font-family:'Playfair Display',serif;font-size:1.5rem;line-height:1.25;margin:0 0 .85rem}
.tv-shell{max-width:1216px;padding:5rem 2rem;margin:0 auto}
.tv-hero{padding-top:10rem;padding-bottom:5rem;display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}
.tv-hero p{max-width:55ch;font-size:1.05rem;line-height:1.7;margin:1.3rem 0;color:var(--body)}
.tv-hero .tv-tagline{color:#dcc17b;font-size:1.15rem}
.tv-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.7rem 0}
.tv-actions a{min-height:48px;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal}
.tv-hero .scope-note,.tv-note{font-size:.9rem;line-height:1.65;color:#bbb5a6;max-width:72ch}
.tv-hardware{margin:0;position:relative;min-width:0}
.tv-hardware img{width:92%;height:auto;display:block;border-radius:12px;transform:rotate(-5deg);box-shadow:0 24px 48px #0005}
.tv-keychain{display:block;width:42%;height:auto;margin:-1rem 0 0 auto;position:relative;filter:drop-shadow(0 10px 16px #0005)}
.tv-hardware figcaption{font-size:.85rem;line-height:1.6;color:#bbb5a6;margin-top:1rem;text-align:center}
.tv-pain{border-top:1px solid #454338;border-bottom:1px solid #454338;background:#202019}
.tv-pain .tv-shell{padding-top:2rem;padding-bottom:2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}
.tv-pain strong{display:block;color:#f4efe3;margin-bottom:.4rem;font-size:1.05rem}
.tv-pain p,.tv-pillar p,.tv-split p,.tv-intro{font-size:1rem;line-height:1.75;color:var(--body);max-width:65ch}
.tv-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin-top:2.5rem}
.tv-pillar{min-width:0;border-top:1px solid #857a5b;padding-top:1.5rem}
.tv-status{display:inline-block;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;line-height:1.4;border:1px solid #817552;border-radius:3px;padding:.35rem .55rem;color:#e6d294;margin:.2rem 0 1rem}
.tv-status.roadmap{border-color:#6d6b60;color:#d4cfc3}
.tv-pillar .tv-note{font-size:.88rem;margin-top:1rem}
.tv-band{background:#202019;border-block:1px solid #454338}
.tv-split{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.tv-split>div{min-width:0}
.tv-list{list-style:none;padding:0;margin:1.5rem 0}
.tv-list li{padding:.8rem 0;border-bottom:1px solid #454338;font-size:1rem;line-height:1.65;color:#d4cfc3}
.tv-list strong{color:#f4efe3}
.tapvalet .ground-dark{background:#151512;border:0;box-shadow:none}
.tapvalet .beat{min-height:0;padding:4.5rem 2rem}
.tapvalet .beat-inner{max-width:1152px;gap:1.5rem}
.tapvalet .beat-s{color:#f4efe3;font-size:clamp(2rem,3.1vw,3.15rem);max-width:25ch}
.tapvalet .journey-copy h3{font-size:1.2rem}
.tapvalet .journey-number,.tapvalet .journey-copy p,.tapvalet .journey-note{color:#d4cfc3}
.tapvalet .journey-symbol,.tapvalet .journey-role{color:#dcc17b}
.tapvalet .journey-track>li::after{background:#857a5b}
.tapvalet .story-details{border-color:#857a5b}
.tapvalet .story-details summary,.tapvalet .story-details summary::after{color:#f4efe3}
.tapvalet .product-screen figcaption{color:#d4cfc3}
.tv-close{text-align:center;border-top:1px solid #454338}
.tv-close h2,.tv-close p{margin-left:auto;margin-right:auto}
.tv-close .tv-actions{justify-content:center}
.tapvalet .concept-disclosure{border-left:1px solid #dcc17b;color:#f4efe3}
.tapvalet .audience-section{background:#202019;color:#f4efe3}
.tapvalet .audience-grid article{background:transparent;border-color:#454338}
.tapvalet .audience-grid h3,.tapvalet .audience-intro,.tapvalet .audience-note{color:#d4cfc3}
.tapvalet footer{background:#11110f;border-top:1px solid #454338}
.tapvalet footer a,.tapvalet footer p{color:#bbb5a6}
.tv-page-head{padding-top:9rem;padding-bottom:2rem}
.tv-page-head h1{max-width:22ch;margin-bottom:1.5rem}
.tv-page-head p{max-width:65ch;line-height:1.75;font-size:1.05rem;color:#d4cfc3}
.tv-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;padding-top:2rem}
.tv-price{border-top:1px solid #857a5b;padding-top:1.5rem;min-width:0}
.tv-price .tv-amount{font-size:2.9rem;line-height:1.2;font-variant-numeric:tabular-nums;color:#f4efe3;margin:1rem 0 .25rem}
.tv-price .tv-unit{color:#bbb5a6;font-size:.95rem}
.tv-price .btn-o{margin-top:1.25rem;display:inline-flex}
.tv-price p{font-size:1rem;line-height:1.7;color:#d4cfc3}
.tv-kit{display:flex;align-items:start;justify-content:space-between;gap:3rem;border-block:1px solid #454338;padding-top:2rem;padding-bottom:2rem}
.tv-kit p{max-width:62ch;line-height:1.7;color:#d4cfc3}
.tv-calc{display:grid;grid-template-columns:1.15fr 1fr;gap:4rem;margin-top:2rem}
.tv-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.tv-inputs label{display:flex;flex-direction:column;gap:.5rem;font-size:.92rem;line-height:1.5;color:#e5dfd0}
.tv-inputs input,.tv-inputs select{font:inherit;width:100%;min-height:48px;border:1px solid #857a5b;border-radius:3px;padding:.65rem;background:#202019;color:#f4efe3}
.tv-inputs .tv-wide{grid-column:1/-1}
.tv-calc-results{border-top:1px solid #dcc17b;padding-top:1.5rem}
.tv-calc-results dl{margin:1rem 0;font-variant-numeric:tabular-nums}
.tv-calc-results dl div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid #454338}
.tv-calc-results dt{color:#d4cfc3;max-width:30ch;font-size:.95rem}
.tv-calc-results dd{margin:0;font-size:1.15rem;color:#f4efe3}
.tv-calc-error{color:#ffbcac;line-height:1.6}
.tv-timeline{list-style:none;padding:0;margin:2rem 0}
.tv-timeline li{display:grid;grid-template-columns:150px 1fr;gap:2rem;padding:1.75rem 0;border-top:1px solid #454338}
.tv-timeline strong{font-size:1.25rem;color:#dcc17b}
.tv-timeline p{font-size:1rem;line-height:1.7;color:#d4cfc3}
.tapvalet .demo-form{max-width:760px}
.tapvalet .demo-form input,.tapvalet .demo-form select,.tapvalet .demo-form textarea{color:#f4efe3;background:#202019;border-color:#857a5b;caret-color:#dcc17b}
.tapvalet .demo-form input::placeholder,.tapvalet .demo-form textarea::placeholder{color:#bbb5a6;opacity:1}
.tapvalet .form-field>span,.tapvalet .form-note{color:#d4cfc3}
.tapvalet .faq-q,.tapvalet .faq-a-inner{color:#f4efe3}
.tapvalet .faq-a-inner{color:#d4cfc3;line-height:1.75}
.tapvalet .faq-item{border-color:#454338}
.tapvalet .faq-q{font-size:1.1rem}
.tapvalet .faq-group-title{font-size:1.5rem}
.tapvalet .faq-q::after{color:#dcc17b}
.tv-faq-group{margin-bottom:3rem}
.tapvalet .story-list dt{color:#f4efe3}
.tapvalet .story-list>div{border-color:#454338}
.tapvalet .story-details-body p{color:#d4cfc3;line-height:1.7;margin:.8rem 0}
.tapvalet #application>.tv-intro{margin-bottom:2rem}
.tapvalet a:not(.btn-p):not(.n-cta){text-underline-offset:4px}
.tapvalet .tv-text-link{color:#dcc17b;text-decoration:underline}
@media(max-width:900px){.tapvalet .n-links.mob-open{background:#151512}.tv-hero{grid-template-columns:1fr;gap:2rem}.tv-hardware{max-width:440px;margin:1rem auto 0}.tv-pillars,.tv-prices{grid-template-columns:1fr}.tv-split,.tv-calc{grid-template-columns:1fr;gap:2.5rem}.tv-pillar h3{max-width:none}.tv-price{display:block}.tv-price .tv-list{max-width:60ch}}
@media(max-width:600px){.tv-shell{padding:3rem 1.25rem}.tv-hero,.tv-page-head{padding-top:7.5rem}.tv-pain .tv-shell{grid-template-columns:1fr;gap:1.5rem}.tv-actions{flex-direction:column;align-items:stretch}.tv-actions a{width:100%}.tv-kit{flex-direction:column;gap:.5rem}.tv-inputs{grid-template-columns:1fr}.tv-timeline li{grid-template-columns:1fr;gap:.65rem}.tapvalet .beat{padding:3rem 1.25rem}.tapvalet .n-logo{font-size:1rem}.tv-calc-results dl div{align-items:start}.tv-calc-results dd{white-space:nowrap}.tv-hero h1{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){.tapvalet *{scroll-behavior:auto!important}.tv-hardware img{transform:none}}

/* A shorter reading path, within the existing dark-and-gold system. */
.tapvalet .tv-hero{padding-top:8.5rem;padding-bottom:3.5rem;gap:3.5rem}
.tapvalet .tv-hero h1{max-width:15ch}
.tapvalet .tv-hero .scope-note{font-size:.875rem;max-width:48ch}
.tapvalet .tv-hardware{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr);gap:1rem;align-items:center}
.tapvalet .tv-hardware img{width:100%;transform:rotate(-4deg)}
.tapvalet .tv-keychain{width:100%;margin:0;max-width:140px}
.tapvalet .tv-hardware figcaption{grid-column:1/-1;font-size:.8rem;margin-top:.25rem}
.tapvalet #cardbeat{border-top:1px solid #454338;padding-top:3rem;padding-bottom:3rem}
.tapvalet #cardbeat .beat-inner{gap:1.25rem}
.tapvalet .tv-staff-preview{display:grid;grid-template-columns:1fr 300px;gap:5rem;align-items:center;max-width:1050px;padding-top:3.5rem;padding-bottom:3.5rem}
.tv-staff-preview figure{margin:0;text-align:center}
.tv-staff-preview img{width:100%;height:auto;max-width:244px;margin:0 auto;border:1px solid #857a5b;border-radius:8px}
.tv-staff-preview figcaption{font-size:.8rem;line-height:1.6;color:#bbb5a6;margin-top:1rem}
.tv-staff-preview .tv-text-link{display:inline-block;margin-top:1rem}
.tapvalet #tapdemo{padding-top:3.5rem;padding-bottom:3.5rem}
.tapvalet #tapdemo .beat-inner{gap:1.25rem}
.tapvalet #tapdemo .concept-disclosure{max-width:64ch}
.tapvalet #pillars{padding-top:3.5rem;padding-bottom:3.5rem}
.tapvalet #pillars>.tv-text-link{display:inline-block;margin-top:1.5rem}
.tv-setting-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 2rem;list-style:none;padding:0;margin:1.5rem 0;color:#d4cfc3;font-size:1rem;line-height:1.6}
.tv-setting-list li{border-bottom:1px solid #454338;padding:.6rem 0}
.tapvalet .tv-audiences{padding-top:3rem;padding-bottom:3rem}
.tv-page-links{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin-top:1.5rem}
.tv-page-links a{color:#dcc17b;min-height:44px;display:inline-flex;align-items:center}
.tv-vision{max-width:1000px}
.tv-vision>.tv-note{margin:1rem 0 2rem}
.tapvalet .tv-vision .story-details summary{font-family:'Playfair Display',serif;font-size:1.4rem;padding-top:1.4rem;padding-bottom:1.4rem}
.tapvalet .tv-vision .story-details-body{max-width:75ch}
.tapvalet .tv-page-head+.tv-shell{padding-top:2rem}
.tapvalet .tv-price .tv-list{margin-bottom:1rem}
.tapvalet .tv-price .story-details summary{font-size:.95rem}
.tapvalet .tv-calculator-toggle{margin-top:1.5rem}
.tapvalet .tv-calculator-toggle>summary{font-size:1.2rem}
.tapvalet .tv-calc .tv-inputs{min-width:0}
.tapvalet .tv-timeline{margin-bottom:1rem}
.tapvalet .tv-timeline li{padding:1.25rem 0}
.tapvalet #application{padding-top:3.5rem}
.tapvalet .tv-price h2{font-size:2.2rem}
.tapvalet section[id],.tapvalet div[id],.tapvalet details[id]{scroll-margin-top:6rem}
@media(min-width:601px) and (max-width:1000px){.tapvalet .journey-track{grid-template-columns:repeat(3,minmax(0,1fr))}.tapvalet .journey-track>li::after{display:none}}
@media(max-width:900px){.tapvalet .tv-hero{gap:1.5rem}.tapvalet .tv-hardware{width:100%;max-width:380px;margin:.5rem auto 0}.tapvalet .tv-staff-preview{grid-template-columns:minmax(0,1fr) 220px;gap:2rem}}
@media(max-width:600px){
 .tapvalet .tv-hero{padding-top:6.8rem;padding-bottom:2.5rem;gap:.5rem}
 .tapvalet .tv-hero h1{font-size:2.5rem;line-height:1.12;max-width:15ch}
 .tapvalet .tv-hero p{font-size:1rem;line-height:1.6;margin:1rem 0}
 .tapvalet .tv-hero .tv-actions{margin:1.25rem 0;gap:.6rem}
 .tapvalet .tv-hero .scope-note{font-size:.8rem}
 .tapvalet .tv-hardware{max-width:290px;gap:1rem;margin:1rem auto 0}
 .tapvalet .tv-hardware figcaption{font-size:.75rem}
 .tapvalet .journey-track{display:grid;grid-template-columns:1fr;gap:0;margin:1.5rem 0}
 .tapvalet .journey-track>li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid #454338}
 .tapvalet .journey-track>li::after{display:none}
 .tapvalet .journey-top{height:68px;align-items:end}
 .tapvalet .journey-symbol{width:38px;height:38px}
 .tapvalet .journey-role{font-size:.75rem;margin-bottom:.2rem}
 .tapvalet .journey-copy h3{margin-bottom:.35rem;font-size:1.2rem}
 .tapvalet .journey-copy p{max-width:none;line-height:1.5}
 .tapvalet .tv-staff-preview{grid-template-columns:1fr;gap:1.75rem;padding-top:2.5rem;padding-bottom:2.5rem}
 .tv-staff-preview img{max-width:190px}
 .tv-staff-preview figcaption{max-width:26ch;margin:1rem auto 0}
 .tapvalet #cardbeat,.tapvalet #tapdemo,.tapvalet #pillars{padding-top:2.5rem;padding-bottom:2.5rem}
 .tv-setting-list{grid-template-columns:1fr;gap:0}
 .tapvalet .tv-timeline li{grid-template-columns:85px minmax(0,1fr);gap:1rem}
 .tapvalet .tv-timeline strong{font-size:1rem}
 .tapvalet .tv-timeline h3{font-size:1.2rem}
 .tapvalet .tv-timeline p{font-size:.95rem;line-height:1.6}
}

