@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{--pine:#153e34;--pine2:#265847;--rust:#ac5939;--ink:#17312b;--cream:#f8f3eb;--paper:#fffdf7;--line:#e8ded0;--muted:#69766f;--sand:#eee4d6}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.6 'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,.logo,.serif{font-family:'Playfair Display',Georgia,serif;line-height:1.15}h1{font-size:clamp(43px,5.4vw,84px);font-weight:500;margin:20px 0}h2{font-size:clamp(33px,3.8vw,54px);font-weight:500;margin:0 0 15px}h3{font-size:22px;font-weight:600;margin:10px 0}p{color:#58655f;margin:7px 0 18px}.accent{color:var(--rust)}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:700;text-transform:uppercase}header{position:sticky;top:0;z-index:10;background:#fffcf4ed;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.top{max-width:1320px;margin:auto;min-height:75px;padding:12px 28px;display:flex;gap:26px;align-items:center}.logo{font-size:29px;font-weight:600;white-space:nowrap;margin-right:26px}.mark{display:inline-block;font:29px Georgia,serif;color:var(--rust);margin-right:6px}nav{display:flex;gap:7px;flex-wrap:wrap;align-items:center}nav button{border:none;background:transparent;padding:10px 13px;border-radius:10px;color:var(--ink)}nav button:hover,nav button.selected{background:#e9e9dc}.top .right{margin-left:auto}.btn{padding:13px 22px;border:1px solid var(--pine);border-radius:13px;background:transparent;color:var(--pine);font-weight:600}.btn.dark{background:var(--pine);color:white}.btn:hover{filter:brightness(.95)}.btn.mini{padding:9px 14px;font-size:13px}.container{max-width:1320px;margin:0 auto;padding:35px 28px 70px}.hero{display:grid;grid-template-columns:42% 58%;align-items:center;min-height:500px;gap:0}.hero-text{z-index:1;padding:10px 0 45px}.hero-text p{font-size:18px;max-width:500px}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-art{min-height:490px;position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(155deg,#d1e4e8 0%,#f0ebde 51%,#dbbda1 100%);box-shadow:inset 0 0 60px #ffffffa8}.hero-art:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 95%,#6aa3aa88,transparent 40%),radial-gradient(ellipse at 15% 70%,#d0be9d88,transparent 36%)}.map-shape{position:absolute;top:2%;left:23%;height:95%;width:40%;filter:drop-shadow(5px 8px 6px #45584c36)}.map-shape path{fill:#ece2cb;stroke:#bfae8d;stroke-width:3}.map-pins{position:absolute;inset:0}.pin{position:absolute;border:2px solid white;box-shadow:0 3px 14px #0002;display:flex;align-items:center;gap:6px;border-radius:30px;background:#fff9ef;padding:6px 10px;color:var(--pine);font-size:12px;font-weight:700}.pin b{color:var(--rust)}.pin.n{left:43%;top:13%}.pin.c{left:36%;top:37%}.pin.l{left:29%;top:58%}.pin.a{left:43%;top:73%}.pin.s{left:47%;top:88%}.passport-hero{position:absolute;right:3%;top:22%;width:33%;padding:22px;background:var(--pine);color:#fff6de;transform:rotate(5deg);border-radius:13px;box-shadow:0 18px 45px #1a3e3650;text-align:center}.passport-hero strong{font:22px Georgia,serif}.passport-hero .seal{font-size:75px;line-height:1.6}.passport-stat{position:absolute;right:2%;bottom:5%;background:#fffaf2;padding:18px;border-radius:14px;width:36%;box-shadow:0 15px 40px #233b3235}.passport-stat .number{font:36px Georgia,serif}.meter{height:8px;background:#e4ddd1;overflow:hidden;border-radius:99px}.meter i{display:block;height:100%;background:var(--pine);border-radius:99px}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0 40px}.feature{background:#fffcf7;border:1px solid var(--line);border-radius:20px;display:flex;overflow:hidden;min-height:170px}.feature-icon{width:32%;background:linear-gradient(150deg,#d8e7e5,#d5c5a7);display:flex;align-items:center;justify-content:center;font-size:55px}.feature-content{padding:22px;flex:1}.feature h3{font-size:18px}.feature p{font-size:13px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:30px 0 24px}.catalogue{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.product,.place,.panel,.challenge{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 5px 20px #243b2f08}.shirt-wrap{height:230px;border-radius:13px;background:linear-gradient(150deg,#e8e4dc,#f5efe4);display:flex;align-items:center;justify-content:center;overflow:hidden}.shirt{width:150px;height:175px;background:#f9f5ed;clip-path:polygon(27% 0,40% 4%,60% 4%,73% 0,100% 17%,87% 39%,75% 32%,77% 100%,23% 100%,25% 32%,13% 39%,0 17%);box-shadow:inset 0 0 22px #8c8c8c30;display:grid;place-content:center;text-align:center;color:var(--pine)}.shirt.green{background:#17483d;color:#ede2cb}.shirt.rust{background:#aa5838;color:#ffefdb}.shirt.blue{background:#e9eee9;color:#386682}.shirt .scene{font-size:44px;line-height:1.1}.shirt small{font:700 13px Georgia,serif;letter-spacing:2px;color:inherit;margin-top:12px}.product footer{display:flex;justify-content:space-between;align-items:center}.product footer button{width:39px;height:39px;border-radius:50%;border:0;background:var(--sand);font-size:18px}.product h3{font:16px 'DM Sans',sans-serif;margin:12px 0 0}.price{font-weight:700}.page-hero{margin:10px 0 28px}.page-hero p{max-width:700px;font-size:17px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.input{padding:13px;border:1px solid var(--line);background:#fffdf8;border-radius:12px;min-width:185px;color:var(--ink)}.places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.place{padding:0;overflow:hidden}.place-top{min-height:145px;display:flex;align-items:center;justify-content:center;font-size:80px;background:linear-gradient(135deg,#d4e8e7,#d4c3a7)}.place-body{padding:22px}.tag{font-size:11px;color:var(--rust);letter-spacing:2px;text-transform:uppercase;font-weight:bold}.place-actions{display:flex;gap:8px;flex-wrap:wrap}.place-actions button{flex:1}.dashboard{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.panel{padding:26px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin:25px 0}.stats b{font:33px Georgia,serif;display:block}.stamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px}.stamp{border:3px dashed #b9aa94;border-radius:13px;padding:19px 12px;background:#f5eddd;text-align:center;font-size:32px}.stamp small{display:block;font:12px 'DM Sans',sans-serif;margin-top:4px}.challenge{padding:25px}.challenges{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.challenge .icon{font-size:49px}.notice{padding:13px 18px;border-radius:12px;background:#f4e5d1;color:#664c37;margin-bottom:20px;font-size:13px}.page[hidden]{display:none}.toast{position:fixed;bottom:25px;right:25px;background:var(--pine);color:white;padding:13px 20px;border-radius:12px;box-shadow:0 15px 30px #0003;z-index:100}.simple-map{height:320px;background:linear-gradient(130deg,#d7eae6,#e8ddc8);border-radius:16px;position:relative;display:grid;place-items:center;font:100px Georgia,serif}.simple-map span{font:17px 'DM Sans',sans-serif;position:absolute;bottom:15px}.story{border-radius:22px;background:#ede6d7;padding:30px}.foot{border-top:1px solid var(--line);padding:24px 28px;text-align:center;color:var(--muted);font-size:12px}@media(max-width:980px){.hero{grid-template-columns:1fr}.hero-art{min-height:440px}.features,.places,.challenges{grid-template-columns:repeat(2,1fr)}.catalogue{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.top{flex-wrap:wrap}.top .right{margin-left:0}}@media(max-width:580px){.top{padding:12px 16px;gap:4px}.logo{font-size:25px;width:100%}nav{overflow:auto;flex-wrap:nowrap;width:100%}nav button{white-space:nowrap;padding:8px}.top .right{display:none}.container{padding:22px 16px 55px}.hero-art{min-height:360px}.passport-hero{width:40%;padding:9px}.passport-hero .seal{font-size:44px}.passport-stat{width:46%;padding:10px}.pin{font-size:9px}.map-shape{width:55%;left:12%}.features,.places,.challenges{grid-template-columns:1fr}.catalogue{grid-template-columns:repeat(2,1fr)}.shirt-wrap{height:170px}.shirt{transform:scale(.8)}.feature{min-height:150px}.section-heading{align-items:start}.section-heading h2{font-size:31px}.stats b{font-size:26px}}

/* V5.1 — Cartões ilustrados, mapa acionável e detalhe de localidade */
.pin{cursor:pointer;border:2px solid #fffaf0;font:700 12px 'DM Sans',sans-serif;white-space:nowrap;transition:transform .2s,box-shadow .2s}.pin:hover,.pin:focus-visible{transform:translateY(-3px);box-shadow:0 6px 19px #0003;outline:2px solid #ac5939;outline-offset:3px}.shirt-illustration{display:block;width:96px;height:74px;margin:2px auto 8px;overflow:visible}.shirt .scene{font-size:0}.shirt .scene svg{width:96px;height:74px}.shirt small{font-size:11px;margin-top:0}.shirt-wrap{position:relative}.shirt-wrap:after{content:'COLEÇÃO PORTUGAL';position:absolute;bottom:10px;left:0;right:0;text-align:center;letter-spacing:2px;font-size:9px;color:#918574}.place-top{background:linear-gradient(155deg,#d8e8e2,#f0ddc5);position:relative}.place-top svg{width:90%;height:140px}.place-dialog{border:1px solid var(--line);border-radius:22px;box-shadow:0 25px 90px #132e286b;background:var(--paper);color:var(--pine);padding:26px;max-width:580px;width:calc(100vw - 30px)}.place-dialog::backdrop{background:#102e27b3;backdrop-filter:blur(4px)}.dialog-close{float:right;background:var(--sand);border:0;border-radius:50%;width:38px;height:38px;font-size:26px}.dialog-art{background:linear-gradient(135deg,#d9e9e6,#ecddc7);border-radius:15px;padding:12px;text-align:center}.dialog-art svg{width:100%;max-width:390px;height:180px}.dialog-note{font-size:13px;color:var(--muted)}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.stamp{background:repeating-linear-gradient(45deg,#f8f1e4,#f8f1e4 9px,#f4ead9 9px,#f4ead9 12px)}.stamp svg{width:85px;height:65px;display:block;margin:auto}.stamp .stamp-symbol{font-size:0}.brand-waves{stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round}
