@font-face { font-family:Manrope; src:url('assets/manrope.woff2') format('woff2'); font-style:normal; font-weight:200 800; font-display:swap; }

:root { --pine:#17291d; --olive:#60794d; --sage:#97aa70; --cream:#f4f1e5; --paper:#fbfaf5; --ink:#1b2a1f; --muted:#657065; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button,summary,a { -webkit-tap-highlight-color:transparent; }
.site-header { position:absolute; z-index:20; inset:0 0 auto; width:min(100% - 80px,1240px); height:104px; margin:auto; display:flex; align-items:center; justify-content:space-between; color:#f8f6ec; }
.brand { width:130px; }
.brand img { width:100%; }
.site-header nav { display:flex; align-items:center; gap:34px; font-size:13px; font-weight:700; }
.site-header nav a { opacity:.74; transition:opacity .2s ease; }
.site-header nav a:hover { opacity:1; }
.header-actions { display:flex; align-items:center; gap:9px; }
.button { min-height:54px; padding:0 24px; border:1px solid transparent; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:18px; font-size:13px; font-weight:800; letter-spacing:-.01em; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgb(9 28 15 / 18%); }
.button--small { min-height:43px; padding:0 19px; border-color:rgb(244 241 229 / 25%); }
.button--small:hover { background:rgb(255 255 255 / 8%); }
.button--light { background:var(--sage); color:var(--pine); }
.button--marketplace { padding-inline:17px; background:var(--olive); color:white; border-color:rgb(255 255 255 / 18%); gap:10px; }
.button--marketplace:hover { background:#6f8959; box-shadow:0 12px 30px rgb(0 0 0 / 22%); }
.button--marketplace img { width:34px; height:25px; object-fit:contain; }
.button--marketplace-main { min-width:250px; }
.button--contact { color:white; border-color:rgb(244 241 229 / 25%); gap:9px; }
.button--contact:hover { background:rgb(255 255 255 / 8%); }
.button--contact img { width:18px; height:18px; object-fit:contain; filter:brightness(0) invert(1); }
.marketplace-icon-button { width:43px; height:43px; flex:0 0 43px; display:grid; place-items:center; border:1px solid rgb(255 255 255 / 16%); border-radius:50%; background:var(--olive); box-shadow:0 8px 20px rgb(0 0 0 / 12%); transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.marketplace-icon-button:hover { transform:translateY(-2px); background:#6f8959; box-shadow:0 12px 26px rgb(0 0 0 / 20%); }
.marketplace-icon-button img { width:29px; height:23px; object-fit:contain; }
.button--full { width:100%; }
.hero { min-height:780px; padding:175px max(40px,calc((100vw - 1240px)/2)) 85px; display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:50px; position:relative; overflow:hidden; background:var(--pine); color:#f7f5eb; }
.hero::before { content:''; position:absolute; inset:0 0 auto; height:12px; background:var(--olive); }
.hero-glow { position:absolute; width:620px; height:620px; right:-170px; top:90px; border-radius:50%; background:radial-gradient(circle,rgb(151 170 112 / 15%),transparent 67%); }
.hero-copy { position:relative; z-index:2; }
.eyebrow { margin:0 0 28px; color:var(--sage); font-size:12px; font-weight:800; letter-spacing:.13em; }
h1,h2,h3,p { margin-top:0; }
.hero h1 { margin-bottom:30px; font-size:clamp(58px,6.4vw,92px); line-height:.98; letter-spacing:-.065em; font-weight:800; }
.hero h1 span { color:var(--sage); }
.hero-text { max-width:630px; margin-bottom:36px; color:rgb(247 245 235 / 68%); font-size:18px; line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.text-link { color:rgb(247 245 235 / 76%); font-size:13px; font-weight:700; }
.text-link span { margin-left:8px; color:var(--sage); }
.hero-proof { margin-top:76px; display:flex; align-items:center; gap:14px; color:rgb(247 245 235 / 58%); font-size:12px; }
.hero-proof b { color:var(--sage); }
.hero-product { min-height:480px; display:grid; place-items:center; position:relative; z-index:2; }
.orbit { position:absolute; border:1px solid rgb(151 170 112 / 18%); border-radius:50%; }
.orbit--one { width:470px; height:470px; }
.orbit--two { width:340px; height:340px; }
.tapss-card { width:min(100%,480px); aspect-ratio:1.58/1; padding:32px; position:relative; overflow:hidden; border:1px solid rgb(255 255 255 / 14%); border-radius:22px; background:radial-gradient(circle at 86% 16%,rgb(255 255 255 / 12%),transparent 24%),linear-gradient(145deg,#718861,#536f48); box-shadow:0 44px 70px rgb(4 15 8 / 40%); transform:rotate(-8deg); animation:float 5s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:rotate(-8deg) translateY(0)} 50%{transform:rotate(-6deg) translateY(-12px)} }
.tapss-card::after { content:''; position:absolute; inset:0; background:linear-gradient(118deg,transparent 35%,rgb(255 255 255 / 8%) 50%,transparent 65%); transform:translateX(-100%); animation:shine 6s ease-in-out infinite; }
@keyframes shine { 0%,55%{transform:translateX(-110%)} 75%,100%{transform:translateX(110%)} }
.tapss-card>img { width:126px; filter:brightness(1.38) saturate(.75); }
.card-copy { position:absolute; left:36px; bottom:31px; }
.card-copy strong { display:block; color:white; font-family:Georgia,serif; font-size:36px; font-weight:500; line-height:.94; }
.card-copy span { display:block; margin-top:16px; color:rgb(255 255 255 / 82%); font-size:10px; letter-spacing:.25em; }
.card-chip { position:absolute; right:34px; bottom:34px; width:41px; height:31px; border:1px solid rgb(255 255 255 / 45%); border-radius:6px; }
.card-signal { position:absolute; right:32px; top:28px; display:flex; align-items:center; gap:5px; }
.card-signal i { display:block; width:5px; border:2px solid rgb(255 255 255 / 54%); border-left:0; border-top:0; border-bottom:0; border-radius:50%; }
.card-signal i:nth-child(1){height:10px}.card-signal i:nth-child(2){height:20px}.card-signal i:nth-child(3){height:30px}
.tap-pill { position:absolute; right:6%; bottom:8%; padding:12px 16px; display:flex; align-items:center; gap:9px; border:1px solid rgb(255 255 255 / 9%); border-radius:999px; background:rgb(28 47 33 / 72%); box-shadow:0 15px 40px rgb(0 0 0 / 20%); color:rgb(255 255 255 / 70%); font-size:11px; backdrop-filter:blur(8px); }
.tap-dot { width:7px; height:7px; border-radius:50%; background:#b9d48d; box-shadow:0 0 0 5px rgb(185 212 141 / 12%); }
.section { padding:120px max(40px,calc((100vw - 1200px)/2)); }
.section h2,.final-cta h2 { margin-bottom:30px; font-size:clamp(42px,5vw,68px); line-height:1.08; letter-spacing:-.055em; }
.proof-section { display:grid; grid-template-columns:.72fr 1.28fr; align-items:center; gap:90px; background:var(--paper); }
.proof-section .eyebrow,.video-section .eyebrow { color:var(--olive); }
.proof-heading>p:not(.eyebrow) { max-width:390px; color:var(--muted); font-size:14px; line-height:1.75; }
.customer-review { min-width:0; overflow:hidden; display:grid; grid-template-columns:minmax(220px,.76fr) 1.24fr; align-items:stretch; border:1px solid #e1e2db; border-radius:24px; background:white; box-shadow:0 28px 70px rgb(24 41 29 / 8%); }
.customer-review-image { width:100%; height:100%; min-height:360px; object-fit:cover; object-position:center 58%; }
.customer-review-content { min-width:0; padding:38px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.customer-review-meta { display:flex; align-items:center; justify-content:space-between; gap:20px; color:#8b938b; font-size:11px; }
.customer-review-meta strong { color:var(--olive); font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.customer-review-stars { margin:22px 0 15px; color:#3483fa; font-size:19px; letter-spacing:3px; }
.customer-review blockquote { margin:0; color:#27332a; font-size:clamp(21px,2vw,29px); font-weight:700; line-height:1.46; letter-spacing:-.03em; }
.customer-review-link { margin-top:30px; display:inline-flex; align-items:center; gap:9px; color:var(--olive); font-size:12px; font-weight:800; }
.customer-review-link span { transition:transform .2s ease; }
.customer-review-link:hover span { transform:translate(2px,-2px); }
.video-section { background:var(--cream); }
.possibilities-heading { margin-bottom:52px; text-align:center; }
.possibilities-heading .eyebrow { margin-bottom:18px; }
.possibilities-heading h2 { margin-bottom:0; }
.video-showcase { width:min(100%,840px); margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.video-card { min-width:0; padding:18px; border:1px solid #d9ddd4; border-radius:22px; background:var(--cream); box-shadow:0 22px 52px rgb(24 41 29 / 8%); }
.video-card h3 { margin:3px 2px 16px; color:var(--ink); font-size:16px; letter-spacing:-.02em; text-align:center; }
.video-frame { overflow:hidden; border:1px solid #d5dbd1; border-radius:14px; background:#edf0e9; }
.video-frame video { width:100%; aspect-ratio:9/16; display:block; background:#edf0e9; object-fit:cover; }
.capabilities { width:min(100%,960px); margin:58px auto 0; padding-top:34px; border-top:1px solid #dde1d9; }
.capabilities>p { margin-bottom:24px; color:var(--muted); font-size:14px; text-align:center; }
.capabilities ul { margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; list-style:none; }
.capabilities li { min-height:62px; padding:8px 18px; display:flex; align-items:center; gap:13px; border:1px solid #dfe2db; border-radius:12px; background:white; color:#344138; font-size:12px; font-weight:800; }
.capabilities li img { width:30px; height:30px; flex:0 0 30px; object-fit:contain; }
.capabilities li img.capability-icon--wide { width:42px; height:28px; flex-basis:42px; }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:100px; background:var(--cream); }
.intro .eyebrow,.uses .eyebrow,.brand-process .eyebrow,.faq .eyebrow { color:var(--olive); }
.lead { max-width:600px; color:#334137; font-size:19px; line-height:1.7; }
.benefit-list { margin:38px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; }
.benefit-list li { padding-left:24px; position:relative; font-size:13px; font-weight:700; }
.benefit-list li::before { content:''; position:absolute; left:0; top:.45em; width:9px; height:9px; border-radius:50%; background:var(--olive); }
.section--dark { background:var(--pine); color:#f7f5eb; }
.section-heading { margin-bottom:60px; }
.how .section-heading { text-align:center; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgb(255 255 255 / 12%); }
.step { min-height:330px; padding:34px 38px 20px; position:relative; border-right:1px solid rgb(255 255 255 / 12%); }
.step:last-child { border-right:0; }
.step-number { color:var(--sage); font-size:11px; font-weight:800; }
.step-icon { width:66px; height:66px; margin:45px 0 27px; display:grid; place-items:center; border:1px solid rgb(151 170 112 / 35%); border-radius:50%; }
.step-icon span { width:24px; height:32px; border:2px solid var(--sage); border-radius:5px; transform:rotate(-8deg); }
.step h3 { margin-bottom:12px; font-size:23px; }
.step p { max-width:270px; color:rgb(247 245 235 / 57%); font-size:13px; line-height:1.7; }
.section-heading--row { display:flex; align-items:end; justify-content:space-between; gap:50px; }
.section-heading--row>p { max-width:390px; color:var(--muted); font-size:14px; line-height:1.7; }
.use-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.use-card { min-height:280px; padding:34px; border:1px solid #e4e3db; border-radius:16px; background:white; box-shadow:0 8px 28px rgb(24 41 29 / 5%); transition:transform .25s ease,border-color .25s ease; }
.use-card:hover { transform:translateY(-5px); border-color:#bcc8ae; }
.use-card-head { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.use-card-head>span { color:var(--olive); font-size:12px; font-weight:800; }
.use-card-icons { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.use-card-icons img { width:42px; height:42px; object-fit:contain; }
.use-card-icons .use-card-icon--wide { width:58px; }
.use-card h3 { margin:35px 0 14px; font-size:24px; letter-spacing:-.03em; }
.use-card p { max-width:470px; color:#485349; font-size:13px; line-height:1.7; }
.use-card em { display:block; margin-top:35px; color:#788078; font-size:11px; }
.brand-process { display:grid; grid-template-columns:.95fr 1.05fr; align-items:center; gap:110px; background:var(--cream); }
.process-visual { min-height:500px; position:relative; }
.mini-card { position:absolute; width:390px; aspect-ratio:1.58; border-radius:20px; }
.mini-card--back { left:0; top:45px; display:grid; place-items:center; background:#d9d6c6; color:#818678; transform:rotate(-11deg); }
.mini-card--back span { font-family:Georgia,serif; font-size:40px; line-height:.9; }
.mini-card--front { right:0; bottom:20px; transform:rotate(8deg); }
.tapss-card--compact { width:100%; height:100%; padding:25px; animation:none; transform:none; }
.tapss-card--compact>img { width:105px; }
.tapss-card--compact .card-copy { left:28px; bottom:25px; }
.tapss-card--compact .card-copy strong { font-size:30px; }
.process-copy>p:not(.eyebrow) { max-width:590px; color:#4d594e; font-size:15px; line-height:1.8; }
.process-list { margin:40px 0 0; padding:0; list-style:none; }
.process-list li { padding:20px 0; display:flex; align-items:center; gap:22px; border-bottom:1px solid #d8d7cd; font-size:13px; font-weight:800; }
.process-list li span { color:var(--olive); font-size:11px; }
.shop { overflow:hidden; background:var(--pine); }
.shop-heading { margin-bottom:64px; display:flex; align-items:end; justify-content:space-between; gap:60px; }
.shop-heading h2 { margin-bottom:0; }
.shop-heading>p { max-width:470px; margin-bottom:8px; color:rgb(247 245 235 / 60%); font-size:15px; line-height:1.8; }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.product-card { min-width:0; overflow:hidden; border:1px solid rgb(255 255 255 / 10%); border-radius:22px; background:linear-gradient(160deg,rgb(255 255 255 / 7%),rgb(255 255 255 / 2%)); box-shadow:0 28px 65px rgb(3 13 7 / 20%); }
.product-image-wrap { height:330px; padding:25px 20px 18px; display:grid; place-items:center; position:relative; overflow:hidden; background:radial-gradient(circle at 50% 53%,rgb(151 170 112 / 18%),transparent 63%); }
.product-image-wrap::after { content:''; width:66%; height:24px; position:absolute; left:17%; bottom:24px; border-radius:50%; background:rgb(0 0 0 / 22%); filter:blur(17px); }
.product-image { width:92%; height:92%; position:relative; z-index:1; object-fit:contain; object-position:center; filter:drop-shadow(0 20px 24px rgb(0 0 0 / 20%)); animation:product-float 5.5s ease-in-out infinite; }
.product-image--2 { animation:none; transform:none; }
.product-image--3 { animation-delay:-3.6s; }
.product-image--4 { animation-delay:-5.4s; }
@keyframes product-float { 0%,100%{transform:translateY(2px) rotate(-1deg)} 50%{transform:translateY(-10px) rotate(1deg)} }
.product-content { padding:30px; border-top:1px solid rgb(255 255 255 / 8%); }
.product-meta { min-height:28px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.product-quantity { display:inline-flex; min-height:28px; padding:0 12px; align-items:center; border:1px solid rgb(151 170 112 / 35%); border-radius:999px; color:var(--sage); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.product-discount { min-height:28px; padding:0 11px; display:inline-flex; align-items:center; border-radius:999px; background:#d7e4b6; color:var(--pine); font-size:10px; font-weight:900; letter-spacing:.08em; white-space:nowrap; }
.product-content h3 { min-height:58px; margin:22px 0 12px; font-size:24px; line-height:1.18; letter-spacing:-.035em; }
.product-price-block { min-height:58px; margin:-2px 0 16px; }
.product-price { display:block; color:#f7f5eb; font-size:28px; line-height:1; letter-spacing:-.045em; }
.product-price-secondary { margin-top:7px; display:flex; align-items:center; gap:9px; }
.product-original-price { color:rgb(247 245 235 / 38%); font-size:12px; font-weight:700; text-decoration-thickness:1px; }
.product-offer-deadline { color:var(--sage); font-size:9px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.product-content p { min-height:70px; margin-bottom:26px; color:rgb(247 245 235 / 58%); font-size:13px; line-height:1.75; }
.product-button { min-height:52px; padding-inline:18px; gap:10px; font-size:12px; }
.faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:110px; }
.faq-heading>p:last-child { max-width:350px; color:var(--muted); font-size:14px; line-height:1.7; }
.faq-list { border-top:1px solid #dcddd7; }
details { border-bottom:1px solid #dcddd7; }
summary { padding:27px 0; display:flex; align-items:center; justify-content:space-between; cursor:pointer; list-style:none; font-size:16px; font-weight:800; }
summary::-webkit-details-marker { display:none; }
summary span { width:30px; height:30px; display:grid; place-items:center; border:1px solid #c8ccc4; border-radius:50%; color:var(--olive); transition:transform .2s ease; }
details[open] summary span { transform:rotate(45deg); }
details p { max-width:620px; padding:0 45px 28px 0; color:var(--muted); font-size:13px; line-height:1.75; }
.final-cta { padding:115px max(40px,calc((100vw - 1200px)/2)); position:relative; overflow:hidden; background:var(--olive); color:#f8f6ed; text-align:center; }
.final-cta::before,.final-cta::after { content:''; position:absolute; width:360px; height:360px; border:1px solid rgb(255 255 255 / 11%); border-radius:50%; }
.final-cta::before { left:-140px; top:-190px; }.final-cta::after { right:-160px; bottom:-220px; }
.final-cta .eyebrow { color:#d7e4b6; }
.final-cta>p:not(.eyebrow) { margin-bottom:35px; color:rgb(255 255 255 / 66%); font-size:15px; }
.final-cta .button { position:relative; z-index:2; background:var(--pine); color:#f8f6ed; }
footer { padding:32px max(40px,calc((100vw - 1200px)/2)); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; background:var(--pine); color:rgb(255 255 255 / 48%); font-size:11px; }
.brand--footer { width:110px; filter:brightness(1.35) saturate(.75); }
footer p { margin:0; } footer p:last-child { justify-self:end; }
.whatsapp-float { position:fixed; right:24px; bottom:24px; z-index:30; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:var(--sage); color:var(--pine); box-shadow:0 12px 30px rgb(14 35 20 / 30%); font-size:20px; font-weight:900; transition:transform .2s ease; }
.whatsapp-float:hover { transform:translateY(-4px) scale(1.04); }
@media(max-width:900px){
  .site-header{width:min(100% - 40px,1240px)}.site-header nav{display:none}.hero{min-height:auto;padding:150px 24px 80px;grid-template-columns:1fr}.hero h1{font-size:clamp(58px,14vw,78px)}.hero-product{min-height:430px}.hero-proof{margin-top:50px}.section{padding:88px 24px}.proof-section,.intro,.brand-process,.faq{grid-template-columns:1fr;gap:58px}.customer-review{max-width:none}.video-showcase{max-width:650px}.capabilities ul{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr}.step{min-height:260px;border-right:0;border-bottom:1px solid rgb(255 255 255 / 12%)}.section-heading--row,.shop-heading{align-items:start;flex-direction:column}.process-visual{width:min(100%,620px);margin:0 auto}.product-grid{grid-template-columns:1fr}.product-card{display:grid;grid-template-columns:.9fr 1.1fr}.product-image-wrap{height:310px}.product-content h3,.product-content p{min-height:0}
}
@media(max-width:1100px) and (min-width:901px){
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .site-header{height:88px}.brand{width:105px}.button--small{min-height:39px;padding:0 9px;font-size:9px;gap:6px}.button--contact img{width:15px;height:15px}.header-actions{gap:6px}.marketplace-icon-button{width:39px;height:39px;flex-basis:39px}.marketplace-icon-button img{width:26px;height:20px}.hero{padding-top:125px}.hero-text{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-proof{gap:8px;flex-wrap:wrap}.hero-product{min-height:330px}.tapss-card{width:92%;padding:24px;border-radius:16px}.tapss-card>img{width:90px}.card-copy{left:26px;bottom:23px}.card-copy strong{font-size:27px}.card-copy span{margin-top:10px;font-size:7px}.orbit--one{width:330px;height:330px}.orbit--two{width:240px;height:240px}.tap-pill{bottom:2%;right:2%}.section h2,.final-cta h2{font-size:42px}.customer-review{grid-template-columns:1fr}.customer-review-image{height:250px;min-height:0}.customer-review-content{padding:26px 24px}.customer-review-meta span{display:none}.customer-review-stars{margin:15px 0 11px;font-size:15px}.customer-review blockquote{font-size:19px}.customer-review-link{margin-top:20px}.possibilities-heading{margin-bottom:32px}.video-showcase{gap:10px}.video-card{padding:10px;border-radius:15px}.video-card h3{min-height:31px;margin:0 1px 8px;display:grid;place-items:center;font-size:12px;text-align:center}.video-frame{border-radius:9px}.capabilities{margin-top:40px;padding-top:28px}.capabilities ul{grid-template-columns:1fr}.capabilities li{min-height:50px}.benefit-list,.use-grid{grid-template-columns:1fr}.use-card{min-height:245px}.process-visual{min-height:390px}.mini-card{width:82%}.mini-card--front{right:-5px}.mini-card--back{left:-8px}.tapss-card--compact{width:100%}.shop-heading{margin-bottom:44px}.product-card{display:block}.product-image-wrap{height:310px;padding:22px 14px 24px}.product-image{width:84%;height:84%}.product-content{padding:28px 24px}.faq{gap:20px}.final-cta{padding:90px 24px}footer{grid-template-columns:1fr;text-align:center}footer .brand{margin:0 auto}footer p:last-child{justify-self:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.product-image--totem { width:250px; height:250px; max-width:82%; max-height:82%; object-fit:contain; animation:none; transform:none; }
.contact-section { padding:115px max(40px,calc((100vw - 1200px)/2)); display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:90px; background:var(--olive); color:#f8f6ed; }
.contact-copy .eyebrow { color:#d7e4b6; }
.contact-copy h2 { margin-bottom:30px; font-size:clamp(42px,5vw,68px); line-height:1.08; letter-spacing:-.055em; }
.contact-copy>p:last-child { max-width:470px; color:rgb(255 255 255 / 70%); font-size:15px; line-height:1.75; }
.contact-form { padding:34px; border-radius:24px; background:#fbfaf5; color:var(--ink); box-shadow:0 28px 70px rgb(20 37 24 / 18%); }
.contact-form label { display:block; margin-bottom:18px; color:#536057; font-size:12px; font-weight:800; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; margin-top:8px; padding:14px 15px; border:1px solid #d9ddd8; border-radius:12px; background:white; color:var(--ink); font:inherit; outline:none; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--olive); box-shadow:0 0 0 3px rgb(96 121 77 / 13%); }
.contact-form textarea { resize:vertical; }
.contact-form .button { border:0; cursor:pointer; }
.form-note { margin:12px 0 0; color:#7a837c; text-align:center; font-size:11px; }

@media(max-width:900px){.contact-section{grid-template-columns:1fr;gap:48px;padding:88px 24px}}
@media(max-width:620px){.contact-section{padding:80px 24px}.contact-form{padding:24px}}

/* =========================================
   ESTILOS DO PAINEL DO CLIENTE E TRANSIÇÃO
   (Isolados para não conflitar com a landing page)
   ========================================= */

/* Apenas quando o body tiver a classe do painel ou splash */
body.painel-body, body.splash-body { min-height: 100vh; display: flex; flex-direction: column; background: var(--cream); font-family: 'Manrope', Arial, sans-serif; margin: 0; }
.painel-body #dashboard-section { display: flex; flex-direction: column; flex: 1; min-height: 100vh; }

/* Topbar isolada */
.topbar { background-color: var(--pine); color: white; display: flex; justify-content: space-between; align-items: center; padding: 16px 32px; }
.topbar-logo { height: 28px; filter: brightness(0) invert(1); }
.topbar-user { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 700; }
.btn-sair { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.3); color: white; padding: 6px 16px; border-radius: 6px; cursor: pointer; font-weight: bold; }
.btn-sair:hover { background: rgba(255,255,255,0.2); }

/* Layout e Sidebar */
.dashboard-layout { display: flex; gap: 32px; padding: 40px 32px; max-width: 1400px; margin: 0 auto; width: 100%; box-sizing: border-box; flex: 1; }
.main-content { flex: 1; }
.sidebar { width: 300px; background: white; border-radius: 12px; padding: 24px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); height: fit-content; }
.page-title { font-size: 28px; font-weight: 700; margin-top: 0; margin-bottom: 24px; color: var(--pine); }

/* Grid e Cartão Individual */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); align-items:start; gap: 24px; }
.card-item { background: white; border-radius: 16px; padding: 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); display: flex; flex-direction: column; color: var(--ink); }

.nfc-card-visual { background: var(--sage); border-radius: 12px; height: 180px; position: relative; overflow: hidden; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; color: white; box-shadow: 0 8px 16px rgba(151, 170, 112, 0.3); margin-bottom: 16px; }
.nfc-card-visual::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, transparent, rgba(255,255,255,0.12), transparent); transform: skewX(-20deg); animation: flash 8s infinite; }
@keyframes flash { 0% { left: -100%; } 20% { left: 200%; } 100% { left: 200%; } }

.card-visual-top { display: flex; justify-content: space-between; align-items: flex-start; z-index: 2; position: relative; }
.card-visual-logo { height: 24px; opacity: 0.9; }
.card-visual-nfc { height: 24px; opacity: 0.7; transform:rotate(90deg); transform-origin:center; }
.card-visual-bottom { z-index: 2; position: relative; }
.card-visual-title { font-size: 22px; font-weight: 800; line-height: 1.1; margin-bottom: 8px; text-transform: uppercase; }
.card-visual-subtitle { font-size: 9px; font-weight: 700; letter-spacing: 1px; opacity: 0.8; }

.footer-links a { color: white; text-decoration: none; margin: 0 6px; }
.footer-links a:hover { text-decoration: underline; }

.card-status { font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.status-dot { width: 10px; height: 10px; border-radius: 50%; }
.card-link-display { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 16px; }

.card-actions { display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; border-top: 1px solid #e7e4d8; padding-top: 16px; }
.action-btn { background: none; border: none; cursor: pointer; padding: 0; font-weight: bold; font-family: inherit; }
.action-btn:hover { text-decoration: underline; }

/* Formulário de Edição (Painel) */
.edit-form { background: var(--paper); padding: 16px; border-radius: 8px; margin-top: 16px; border: 1px solid #e7e4d8; display: none; }
.edit-form.active { display: block; animation: fadeIn 0.3s ease; }
.form-group { margin-bottom: 12px; text-align: left; }
.form-group label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 4px; color: var(--ink); }
.form-group input, .form-group select { width: 100%; padding: 10px; border: 1px solid #d9ddd8; border-radius: 6px; font-size: 13px; box-sizing: border-box; background: white; color: var(--ink); }
.btn-main { width: 100%; padding: 12px; background: var(--pine); color: white; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; }
.btn-main:hover { background: #132217; }

/* Caixas de Autenticação */
.auth-wrapper { min-height: 100vh; display: flex; align-items: center; justify-content: center; width: 100%; }
.auth-box { background: white; padding: 40px; border-radius: 20px; box-shadow: 0 16px 40px rgba(23,41,29,0.08); width: 100%; max-width: 400px; text-align: center; }
.auth-box img { width: 120px; margin-bottom: 24px; filter: brightness(0.2); }

/* Prévia desfocada do painel atrás do login */
#auth-section.auth-wrapper {
  position:relative;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  overflow:hidden;
  isolation:isolate;
}
#auth-section,
#auth-section button,
#auth-section input,
#auth-section a {
  font-family:'Manrope',Arial,sans-serif !important;
}
.auth-login-content {
  width:100%;
  min-height:0;
  padding:32px 20px;
  position:relative;
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.auth-login-content::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(230,233,216,.48);
}
.auth-login-topbar,
.auth-login-footer {
  position:relative;
  z-index:3;
  flex:0 0 auto;
}
.auth-login-topbar>a:first-child {
  display:block;
}
.auth-back-link {
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.auth-login-footer {
  margin-top:0 !important;
}
.auth-login-footer img {
  height:20px;
  filter:brightness(0) invert(1);
}
.auth-box {
  position:relative;
  z-index:2;
  box-shadow:0 24px 70px rgba(23,41,29,.18);
}
.auth-dashboard-preview {
  position:absolute;
  inset:-28px;
  z-index:0;
  overflow:hidden;
  background:#e6e9d8;
  filter:blur(7px);
  opacity:.7;
  transform:scale(1.025);
  pointer-events:none;
  user-select:none;
}
.auth-preview-topbar {
  height:78px;
  padding:0 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--pine);
}
.auth-preview-topbar>img {
  width:126px;
  filter:brightness(0) invert(1);
}
.auth-preview-user {
  display:flex;
  align-items:center;
  gap:18px;
}
.auth-preview-user span {
  width:155px;
  height:13px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
}
.auth-preview-user i {
  width:64px;
  height:30px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:7px;
}
.auth-preview-layout {
  width:min(1450px,calc(100% - 72px));
  margin:0 auto;
  padding:54px 0 80px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 285px;
  gap:34px;
}
.auth-preview-main {
  min-width:0;
}
.auth-preview-title {
  width:390px;
  max-width:60%;
  height:32px;
  margin-bottom:30px;
  border-radius:8px;
  background:#24402d;
}
.auth-preview-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(230px,1fr));
  gap:24px;
}
.auth-preview-card {
  min-width:0;
  padding:18px;
  border-radius:17px;
  background:white;
  box-shadow:0 10px 28px rgba(23,41,29,.1);
}
.auth-preview-nfc {
  height:165px;
  padding:19px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  border-radius:12px;
  color:white;
}
.auth-preview-nfc>img {
  width:88px;
  margin:0 0 auto;
  filter:brightness(0) invert(1);
}
.auth-preview-nfc b {
  font-family:Georgia,serif;
  font-size:21px;
}
.auth-preview-nfc small {
  margin-top:7px;
  font-size:7px;
  font-weight:800;
  letter-spacing:.18em;
}
.auth-preview-nfc--sage { background:#789065; }
.auth-preview-nfc--purple { background:#a96fa3; }
.auth-preview-nfc--blue { background:#607f91; }
.auth-preview-nfc--terracotta { background:#a66f5d; }
.auth-preview-nfc--pine { background:#31533c; }
.auth-preview-nfc--sand { background:#a58f68; }
.auth-preview-card>span,
.auth-preview-card>em {
  display:block;
  border-radius:999px;
  background:#aeb8ae;
}
.auth-preview-card>span {
  width:36%;
  height:11px;
  margin:18px 0 12px;
}
.auth-preview-card>em {
  width:78%;
  height:9px;
  margin-bottom:7px;
  opacity:.7;
}
.auth-preview-sidebar {
  padding:26px;
  border-radius:14px;
  background:white;
  box-shadow:0 10px 28px rgba(23,41,29,.1);
}
.auth-preview-sidebar-title {
  width:65%;
  height:17px;
  margin-bottom:24px;
  border-radius:999px;
  background:#31533c;
}
.auth-preview-sidebar-title--second {
  width:52%;
  margin-top:38px;
}
.auth-preview-stat {
  height:34px;
  border-bottom:1px solid #d6dcd2;
}
.auth-preview-event {
  width:90%;
  height:11px;
  margin:16px 0;
  border-radius:999px;
  background:#bac2b8;
}
@media(max-width:900px) {
  .auth-preview-layout { width:calc(100% - 40px); grid-template-columns:1fr; }
  .auth-preview-sidebar { display:none; }
  .auth-preview-grid { grid-template-columns:repeat(2,minmax(210px,1fr)); }
  .auth-login-content::after { background:rgba(230,233,216,.56); }
}
@media(max-width:560px) {
  .auth-box { width:calc(100% - 32px); padding:32px 24px; }
  .auth-login-content { padding:24px 0; }
  .auth-login-topbar { padding:14px 20px; }
  .auth-login-footer { padding:20px; gap:12px; }
  .auth-preview-grid { grid-template-columns:1fr 1fr; gap:16px; }
  .auth-preview-layout { padding-top:38px; }
}

/* Estatísticas */
.stat-item { display: flex; justify-content: space-between; margin-bottom: 12px; font-size: 14px; font-weight: 600; color: var(--muted); border-bottom: 1px solid #eee; padding-bottom: 8px; }
.stat-value { color: var(--pine); font-weight: 800; }
.sidebar-title { font-size: 16px; color: var(--pine); margin-top: 0; margin-bottom: 16px; }

/* Rodapé Específico do Painel */
.footer-painel { background: var(--pine); color: white; padding: 24px 32px; text-align: center; font-size: 12px; display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.hidden { display: none !important; }

/* Tela Splash (r.html) */
body.splash-body { background: var(--pine); color: #f7f5eb; justify-content: center; align-items: center; text-align: center; padding: 24px; overflow: hidden; display: flex; }
.splash-container { display: flex; flex-direction: column; align-items: center; animation: fadeIn 0.4s ease-out; }
.brand-glow { position: relative; width: 140px; height: 140px; display: grid; place-items: center; margin-bottom: 24px; }
.nfc-wave { position: absolute; inset: 0; border: 2px solid rgba(151, 170, 112, 0.4); border-radius: 50%; animation: pulse-splash 1.8s ease-out infinite; }
.nfc-wave:nth-child(2) { animation-delay: 0.6s; }
.splash-logo { width: 95px; z-index: 2; filter: brightness(1.2); }
.splash-status-text { font-size: 15px; font-weight: 700; color: #f7f5eb; margin-bottom: 6px; letter-spacing: -0.01em; }
.splash-sub-status { font-size: 12px; color: rgba(247, 245, 235, 0.6); margin-bottom: 24px; }
.progress-bar-wrap { width: 180px; height: 4px; background: rgba(255, 255, 255, 0.12); border-radius: 999px; overflow: hidden; }
.progress-bar { height: 100%; width: 0%; background: var(--sage); border-radius: 999px; transition: width 1.5s linear; }
.btn-manual { display: none; margin-top: 20px; font-size: 12px; color: var(--sage); text-decoration: underline; }

@keyframes pulse-splash { 0% { transform: scale(0.6); opacity: 0.8; } 100% { transform: scale(1.4); opacity: 0; } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* =========================================
   CORREÇÕES FORÇADAS: RODAPÉ E FONTE
   ========================================= */

/* Força a fonte oficial do site para os títulos do painel */
.painel-body .page-title, 
.painel-body .card-visual-title,
.painel-body .sidebar-title { 
  font-family: 'Manrope', Arial, sans-serif !important; 
}

/* Faz a área do layout crescer e empurrar o rodapé */
.painel-body #dashboard-section { 
  display: flex !important; 
  flex-direction: column !important; 
  min-height: 100vh !important; 
}

.painel-body .dashboard-layout { 
  flex: 1; /* Esta é a regra mágica que empurra o rodapé para baixo */
}

/* Garante que o rodapé ocupe a largura total e fique no final */
.footer-painel { 
  width: 100%; 
  box-sizing: border-box; 
  margin-top: auto !important; 
}

/* =========================================
   RESOLUÇÃO DEFINITIVA: FONTE E RODAPÉ DO PAINEL
   ========================================= */

/* 1. Força a fonte Manrope em absolutamente tudo dentro do painel */
#dashboard-section, 
#dashboard-section h1, 
#dashboard-section div, 
#dashboard-section input, 
#dashboard-section select,
#dashboard-section button {
    font-family: 'Manrope', Arial, sans-serif !important;
}

/* 2. Transforma o painel em uma tela inteira (100% da altura do monitor) */
#dashboard-section {
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
}

/* 3. Obriga a área dos cartões a esticar e preencher o buraco vazio da tela */
.dashboard-layout {
    flex: 1 !important;
}

/* 4. O empurrão final: joga o rodapé para o limite inferior */
.footer-painel {
    margin-top: auto !important;
    width: 100% !important;
}

/* =========================================
   ESTILO IDÊNTICO AO CARTÃO DA PÁGINA INICIAL
   ========================================= */

/* Título principal do cartão (SUA MARCA AQUI) */
#dashboard-section .card-visual-title {
    font-family: Georgia, serif !important;
    font-weight: 500 !important; /* Peso original do seu arquivo */
    line-height: 0.94 !important; /* Altura original do seu arquivo */
    text-transform: uppercase !important;
}

/* Subtítulo do cartão (APROXIME O CELULAR) */
#dashboard-section .card-visual-subtitle {
    font-family: 'Manrope', Arial, sans-serif !important;
    letter-spacing: 0.25em !important; /* Espaçamento premium original */
    opacity: 0.82 !important;
    font-size: 8px !important;
}

/* Cartão para vincular uma nova Tapss */
.add-card-item {
  height:330px;
  justify-content:flex-start;
}
.add-card-visual {
  height:180px;
  margin-bottom:16px;
  position:relative;
  overflow:hidden;
  border:2px dashed #b9bdb8;
  border-radius:12px;
  background:#d9dcda;
  color:#606762;
}
.add-card-prompt {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:transform .22s ease,opacity .22s ease;
}
.add-card-visual.ready .add-card-prompt {
  transform:translateY(-25px);
}
.add-card-plus {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border:2px solid #858b87;
  border-radius:50%;
  font-size:38px;
  font-weight:300;
  line-height:1;
}
.add-card-visual strong {
  font-size:17px;
  letter-spacing:-.02em;
}
.add-card-form {
  padding:0;
}
.add-card-form .form-group {
  margin-bottom:8px;
}
.add-card-form .form-group:last-of-type {
  margin-bottom:0;
}
.add-card-form .form-group input {
  width:100%;
  height:40px;
  padding:0 13px;
  border:1px solid #d4d8ce;
  border-radius:6px;
  background:white;
  color:var(--ink);
  font:inherit;
  font-size:13px;
}
.add-card-form .form-group input:focus {
  border-color:var(--olive);
  box-shadow:0 0 0 3px rgb(96 121 77 / 13%);
  outline:none;
}
.add-card-save {
  min-width:145px;
  min-height:42px;
  padding:0 20px;
  position:absolute;
  left:50%;
  bottom:18px;
  z-index:2;
  border:0;
  border-radius:999px;
  background:var(--pine);
  color:white;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:800;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,10px);
  transition:opacity .22s ease,transform .22s ease,background .2s ease;
}
.add-card-save.visible {
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.add-card-save:hover {
  background:#25402e;
}
.add-card-save:disabled {
  cursor:wait;
  opacity:.65;
}
.add-card-message {
  min-height:17px;
  margin:9px 0 0;
  color:#c62828;
  font-size:11px;
  line-height:1.45;
  text-align:center;
}
.add-card-message:empty {
  display:none;
}
.add-card-message.success {
  color:#2e7d32;
}

.animation-setting { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:4px 0 16px; padding:13px; border:1px solid #dfe3d8; border-radius:9px; background:#fff; cursor:pointer; }
.animation-setting span { display:grid; gap:3px; }
.animation-setting strong { font-size:12px; color:#17291d; }
.animation-setting small { color:#768077; font-size:10px; line-height:1.35; }
.animation-setting input { position:absolute; width:1px; height:1px; opacity:0; }
.animation-setting i { position:relative; width:42px; height:24px; flex:0 0 42px; border-radius:99px; background:#c9cec7; transition:background .2s ease; }
.animation-setting i::after { content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.2); transition:transform .2s ease; }
.animation-setting input:checked + i { background:#718653; }
.animation-setting input:checked + i::after { transform:translateX(18px); }
.animation-setting input:focus-visible + i { outline:3px solid rgba(151,170,112,.35); outline-offset:2px; }
