{"id":34803,"date":"2026-04-19T16:20:54","date_gmt":"2026-04-19T15:20:54","guid":{"rendered":"https:\/\/handson.pt\/?page_id=34803"},"modified":"2026-04-20T12:32:08","modified_gmt":"2026-04-20T11:32:08","slug":"private-and-group-workhops","status":"publish","type":"page","link":"https:\/\/handson.pt\/pt\/private-and-group-workhops\/","title":{"rendered":"Workshops privados e de grupo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"34803\" class=\"elementor elementor-34803\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f6617dc e-flex e-con-boxed e-con e-parent\" data-id=\"f6617dc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f724566 e-flex e-con-boxed e-con e-parent\" data-id=\"f724566\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ce9025 elementor-widget elementor-widget-html\" data-id=\"7ce9025\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Private Workshops - Hands On<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Afacad:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400&display=swap\" rel=\"stylesheet\">\n<style>\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nimg { display: block; max-width: 100%; }\na { text-decoration: none; }\n\n:root {\n  --o: #F25F34; --od: #DC4E37; --beige: #FDFCF4; --white: #FFFFFF;\n  --dark: #1F1F1F; --mid: #4A4A4A; --muted: #777777; --pink: #F9C8B8;\n  --border: #DDD6C8; --card-bg: #F5F1E8; --radius: 14px; --radius-lg: 20px;\n  --font: 'Afacad', sans-serif;\n  --teal: #2E8B8B; --green: #5A8A3C;\n}\n\nhtml { scroll-behavior: smooth; }\nbody { font-family: var(--font); background: var(--beige); color: var(--dark); line-height: 1.6; overflow-x: hidden; font-size: 16px; }\n.inner { max-width: 1160px; margin: 0 auto; padding: 0 20px; }\n\n.full-bleed-orange { box-shadow: 0 0 0 100vmax var(--o); clip-path: inset(0 -100vmax); }\n.full-bleed-white { box-shadow: 0 0 0 100vmax var(--white); clip-path: inset(0 -100vmax); }\n.full-bleed-beige { box-shadow: 0 0 0 100vmax var(--beige); clip-path: inset(0 -100vmax); }\n\n.tag {\n  display: inline-block; background: var(--pink); color: var(--od);\n  font-size: 12px; font-weight: 800; letter-spacing: 0.12em;\n  text-transform: uppercase; padding: 5px 14px; border-radius: 100px; margin-bottom: 14px;\n}\nh2.title { font-size: clamp(28px, 5vw, 42px); font-weight: 900; letter-spacing: -0.03em; line-height: 1.1; color: var(--dark); margin-bottom: 12px; }\n.sub { font-size: 17px; color: var(--mid); line-height: 1.75; }\n.sub strong { color: var(--dark); font-weight: 700; }\n\n.btn {\n  display: inline-flex; align-items: center; gap: 6px;\n  font-family: var(--font); font-weight: 700; font-size: 16px;\n  border-radius: 100px; padding: 13px 24px; border: none; cursor: pointer;\n  transition: background 0.18s, transform 0.14s, box-shadow 0.18s; text-decoration: none;\n}\n.btn-orange { background: var(--o); color: #fff; box-shadow: 0 4px 20px rgba(242,95,52,0.3); }\n.btn-orange:hover { background: var(--od); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(242,95,52,0.38); color: #fff; }\n.btn-outline { background: transparent; color: var(--dark); border: 1.5px solid var(--border); }\n.btn-outline:hover { border-color: var(--dark); background: rgba(26,18,8,0.04); }\n.btn-white-on-orange { background: var(--white); color: var(--o); box-shadow: 0 4px 16px rgba(0,0,0,0.1); }\n.btn-white-on-orange:hover, .btn-white-on-orange:active, .btn-white-on-orange:visited { background: #f5f5f5; transform: translateY(-2px); color: var(--o) !important; }\n.btn-ghost-white { background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,0.4); }\n.btn-ghost-white:hover, .btn-ghost-white:active, .btn-ghost-white:visited { border-color: var(--white); background: rgba(255,255,255,0.1); color: var(--white); }\n.section-cta { text-align: center; margin-top: 40px; }\n\n\/* ============================================\n   HERO - private page's split hero (left text, right 2x2 image grid)\n   ============================================ *\/\n.hero { display: grid; grid-template-columns: 1.1fr 0.9fr; min-height: 88vh; max-width: 1160px; margin: 0 auto; padding: 60px 48px 60px; gap: 48px; align-items: center; }\n.hero-left h1 { font-size: clamp(44px, 5vw, 60px); font-weight: 700; line-height: 1.08; letter-spacing: -0.03em; color: var(--dark); margin-bottom: 20px; }\n.hero-left h1 .accent { color: var(--o); position: relative; display: inline-block; }\n.hero-left h1 .accent::after { content: ''; position: absolute; bottom: -4px; left: -4px; right: -4px; height: 10px; background: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 200 12' fill='none'%3E%3Cpath d='M2 8 C 40 2, 100 2, 198 8' stroke='%23F25F34' stroke-width='3' stroke-linecap='round' fill='none'\/%3E%3C\/svg%3E\") no-repeat center\/100% 100%; }\n.hero-sub { font-size: 18px; color: var(--mid); line-height: 1.7; max-width: 480px; margin-bottom: 32px; }\n.hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }\n\n.hero-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; height: 100%; min-height: 480px; }\n.hero-img { position: relative; overflow: hidden; border-radius: var(--radius-lg); background: var(--card-bg); }\n.hero-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }\n.hero-img:hover img { transform: scale(1.05); }\n.hero-img-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(31,31,31,0.75), transparent); padding: 20px 16px 14px; }\n.hero-img-label { font-family: var(--font); font-weight: 700; font-size: 14px; color: var(--white); }\n\n\/* ============================================\n   TRUSTED BY (logo strip) - uses tag\/proof style\n   ============================================ *\/\n.trusted { padding: 52px 0; background: var(--beige); }\n.trusted-inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; text-align: center; }\n.trusted-label { font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); margin-bottom: 24px; }\n.trusted-logos { display: flex; flex-wrap: wrap; gap: 40px; justify-content: center; align-items: center; }\n.trusted-logo { height: 36px; max-width: 90px; opacity: 0.65; transition: opacity 0.18s; display: flex; align-items: center; justify-content: center; }\n.trusted-logo:hover { opacity: 1; }\n.trusted-logo img { height: 100%; width: auto; max-width: 100%; display: block; object-fit: contain; }\n\n\/* ============================================\n   REVIEWS (3-card row) - uses testimonial style from teach page\n   ============================================ *\/\n.reviews { background: var(--white); width: 100%; padding: 96px 0; }\n.reviews > .inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.reviews-intro { margin-bottom: 40px; }\n.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.review-card { border: 1.5px solid var(--border); border-radius: var(--radius-lg); padding: 28px; background: var(--white); position: relative; transition: transform 0.2s, box-shadow 0.2s; }\n.review-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.06); }\n.review-stars { display: flex; gap: 3px; margin-bottom: 16px; }\n.review-text { font-size: 16px; color: var(--dark); line-height: 1.7; font-style: italic; margin-bottom: 20px; }\n.review-author { display: flex; align-items: center; gap: 12px; }\n.review-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--card-bg); border: 1.5px solid var(--border); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; color: var(--mid); flex-shrink: 0; }\n.review-name { font-size: 16px; font-weight: 800; color: var(--dark); }\n.review-role { font-size: 13px; color: var(--muted); margin-top: 1px; }\n\n\/* ============================================\n   VALUE PROP - private page's 2-col layout (image left, numbered points right)\n   ============================================ *\/\n.value { background: var(--beige); padding: 96px 0; }\n.value-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.value-visual { position: relative; }\n.value-img-main { width: 100%; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4\/5; background: var(--card-bg); }\n.value-img-main img { width: 100%; height: 100%; object-fit: cover; }\n.value-img-float { position: absolute; bottom: -28px; right: -28px; width: 54%; border-radius: var(--radius); overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.16); border: 5px solid var(--white); aspect-ratio: 1; background: var(--card-bg); }\n.value-img-float img { width: 100%; height: 100%; object-fit: cover; }\n.value-pillbox { position: absolute; top: 32px; left: -28px; background: var(--o); color: var(--white); font-family: var(--font); font-weight: 800; font-size: 12px; padding: 14px 16px; border-radius: var(--radius); box-shadow: 0 8px 24px rgba(242,95,52,0.3); writing-mode: vertical-lr; transform: rotate(180deg); letter-spacing: 0.18em; text-transform: uppercase; }\n.value-points { margin-top: 36px; display: flex; flex-direction: column; gap: 24px; }\n.value-point { display: flex; gap: 16px; align-items: flex-start; }\n.vp-num { width: 40px; height: 40px; border-radius: 10px; background: var(--pink); color: var(--od); font-family: var(--font); font-weight: 800; font-size: 15px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.vp-body h4 { font-family: var(--font); font-weight: 700; font-size: 17px; color: var(--dark); margin-top: 0; margin-bottom: 4px; }\n.vp-body p { font-size: 15px; line-height: 1.65; color: var(--mid); }\n\n\/* ============================================\n   OCCASIONS - private page's 4-col card grid (with image placeholders)\n   ============================================ *\/\n.occasions { background: var(--o); width: 100%; padding: 96px 0; }\n.occasions > .inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.occ-header { margin-bottom: 48px; }\n.occasions .tag { background: rgba(255,255,255,0.22); color: var(--white); }\n.occasions h2.title { color: var(--white); margin-bottom: 8px; }\n.occasions .sub { color: rgba(255,255,255,0.72); }\n.occ-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }\n.occ-card { border-radius: var(--radius); overflow: hidden; background: var(--white); border: 1.5px solid rgba(255,255,255,0.22); text-decoration: none; color: var(--dark); display: block; transition: transform 0.25s, box-shadow 0.25s; }\n.occ-card:hover { transform: translateY(-5px); box-shadow: 0 16px 48px rgba(0,0,0,0.15); }\n.occ-img-ph { width: 100%; aspect-ratio: 4\/3; background: var(--card-bg); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }\n.occ-img-ph svg { opacity: 0.25; width: 48px; height: 48px; stroke: var(--dark); fill: none; }\n.occ-img-ph::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(-45deg, rgba(31,31,31,0.025) 0, rgba(31,31,31,0.025) 1px, transparent 1px, transparent 12px); }\n.occ-content { padding: 16px 18px 18px; }\n.occ-label { font-family: var(--font); font-weight: 700; font-size: 16px; color: var(--dark); margin-bottom: 4px; }\n.occ-desc { font-size: 14px; color: var(--mid); line-height: 1.55; }\n.occ-arrow { display: flex; align-items: center; justify-content: flex-end; margin-top: 10px; }\n.occ-arrow span { width: 28px; height: 28px; border-radius: 50%; background: var(--card-bg); display: flex; align-items: center; justify-content: center; transition: background 0.2s; }\n.occ-card:hover .occ-arrow span { background: var(--o); }\n.occ-card:hover .occ-arrow svg path { stroke: var(--white); }\n\n\/* ============================================\n   BROWSE BY CATEGORY - private page's 4-col link cards\n   ============================================ *\/\n.browse { background: var(--beige); padding: 96px 0; }\n.browse > .inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.browse-header { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; margin-bottom: 40px; }\n.browse-header-left { flex: 1; min-width: 280px; }\n.browse-all-link { font-family: var(--font); font-weight: 700; font-size: 15px; color: var(--o); display: inline-flex; align-items: center; gap: 6px; border-bottom: 2px solid var(--o); padding-bottom: 2px; transition: opacity 0.2s; }\n.browse-all-link:hover { opacity: 0.75; color: var(--o); }\n.cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }\n.cat-card { background: var(--white); border-radius: var(--radius); padding: 22px 20px; text-decoration: none; color: inherit; border: 1.5px solid var(--border); transition: all 0.25s; display: flex; flex-direction: column; gap: 9px; position: relative; overflow: hidden; }\n.cat-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--o); transform: scaleX(0); transform-origin: left; transition: transform 0.3s; }\n.cat-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,0.08); border-color: transparent; }\n.cat-card:hover::after { transform: scaleX(1); }\n.cat-icon { width: 40px; height: 40px; border-radius: 10px; background: var(--pink); display: flex; align-items: center; justify-content: center; }\n.cat-icon svg { width: 20px; height: 20px; stroke: var(--o); fill: none; }\n.cat-name { font-family: var(--font); font-weight: 700; font-size: 16px; color: var(--dark); }\n.cat-desc { font-size: 13px; color: var(--muted); line-height: 1.5; }\n.cat-arr { margin-top: auto; display: flex; align-items: center; gap: 4px; font-family: var(--font); font-weight: 700; font-size: 13px; color: var(--muted); transition: color 0.2s; }\n.cat-card:hover .cat-arr { color: var(--o); }\n\n\/* ============================================\n   FAQ - same as teach page (sticky left, list right)\n   ============================================ *\/\n.faq { background: var(--white); width: 100%; padding: 96px 0; }\n.faq > .inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.faq-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 60px; margin-top: 36px; align-items: start; }\n.faq-sticky { position: sticky; top: 88px; }\n.faq-sticky p { font-size: 16px; color: var(--mid); line-height: 1.7; margin-bottom: 20px; }\n.faq-cta-link { display: inline-flex; align-items: center; gap: 6px; background: var(--o); color: #fff; font-family: var(--font); font-size: 15px; font-weight: 700; padding: 12px 22px; border-radius: 100px; transition: background 0.18s, transform 0.14s; box-shadow: 0 4px 16px rgba(242,95,52,0.25); }\n.faq-cta-link:hover, .faq-cta-link:active, .faq-cta-link:visited { background: var(--od); transform: translateY(-2px); color: #fff; }\n.faq-list { display: flex; flex-direction: column; gap: 8px; }\n.faq-item { background: var(--card-bg); border: 1.5px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: box-shadow 0.2s; }\n.faq-item:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.04); }\n.faq-q { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; cursor: pointer; background: none; border: none; width: 100%; text-align: left; font-family: var(--font); font-size: 16px; font-weight: 600; color: var(--dark); transition: color 0.18s; gap: 16px; }\n.faq-q:hover { color: var(--o); }\n.faq-q-text { flex: 1; }\n.faq-q-plus { width: 32px; height: 32px; border-radius: 50%; background: var(--pink); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: transform 0.25s, background 0.2s; }\n.faq-q-plus svg { width: 16px; height: 16px; stroke: var(--o); }\n.faq-item.open .faq-q-plus { transform: rotate(45deg); background: var(--o); }\n.faq-item.open .faq-q-plus svg { stroke: var(--white); }\n.faq-a { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.25s; padding: 0 22px; }\n.faq-item.open .faq-a { max-height: 500px; padding: 0 22px 18px; }\n.faq-a-inner { font-size: 16px; color: var(--mid); line-height: 1.7; }\n.faq-a-inner p { margin-bottom: 10px; }\n.faq-a-inner p:last-child { margin-bottom: 0; }\n.faq-a-inner strong { color: var(--dark); }\n\n\/* ============================================\n   ENQUIRY - private page's 2-col (info left, form right) - orange section\n   ============================================ *\/\n.enquiry { background: var(--o); width: 100%; padding: 96px 0; }\n.enquiry > .inner { max-width: 1160px; margin: 0 auto; padding: 0 48px; }\n.enquiry-grid {\n  display: grid;\n  grid-template-columns: 1fr 1.4fr;\n  grid-template-areas:\n    \"left form\"\n    \"contacts form\";\n  gap: 60px 60px;\n  align-items: start;\n}\n.enquiry-grid .enquiry-left { grid-area: left; }\n.enquiry-grid .form-card { grid-area: form; }\n.enquiry-grid .enquiry-contacts { grid-area: contacts; align-self: start; margin-top: -32px; }\n.enquiry-left .tag { background: rgba(255,255,255,0.22); color: var(--white); }\n.enquiry-left h2 { font-size: clamp(32px, 4vw, 44px); font-weight: 900; color: var(--white); letter-spacing: -0.03em; margin-bottom: 16px; line-height: 1.1; }\n.enquiry-left p { font-size: 17px; color: rgba(255,255,255,0.85); line-height: 1.7; margin-bottom: 28px; }\n.enquiry-contacts { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.25); }\n.ec-intro { font-size: 14px; color: rgba(255,255,255,0.6); margin-bottom: 4px; font-weight: 500; }\n.ec-row { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,0.9); font-size: 15px; font-weight: 500; }\n.ec-row a { color: rgba(255,255,255,0.9); text-decoration: none; transition: color 0.18s; }\n.ec-row a:hover { color: var(--white); }\n.ec-icon { width: 36px; height: 36px; border-radius: 10px; background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.ec-icon svg { width: 16px; height: 16px; stroke: var(--white); fill: none; }\n\n.form-card { background: var(--white); border-radius: var(--radius-lg); padding: 28px 32px; box-shadow: 0 20px 60px rgba(0,0,0,0.18); }\n\n\/* Step progress *\/\n.step-progress { display: flex; align-items: center; gap: 0; margin-bottom: 20px; }\n.step-dot {\n  width: 28px; height: 28px; border-radius: 50%;\n  border: 2px solid var(--border); background: var(--beige);\n  display: flex; align-items: center; justify-content: center;\n  font-family: var(--font); font-size: 13px; font-weight: 700; line-height: 1;\n  color: var(--muted); transition: all 0.25s; flex-shrink: 0;\n}\n.step-dot p, .step-dot br { margin: 0 !important; padding: 0 !important; line-height: 1 !important; display: inline; }\n.step-dot > p { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }\n.step-dot.active { border-color: var(--o); background: var(--o); color: var(--white); }\n.step-dot.done { border-color: var(--o); background: var(--pink); color: var(--o); }\n.step-line { flex: 1; height: 2px; background: var(--border); transition: background 0.25s; }\n.step-line.done { background: var(--o); }\n\n\/* Steps *\/\n.form-step { display: none; }\n.form-step.active { display: flex; flex-direction: column; gap: 10px; }\nform { display: flex; flex-direction: column; gap: 0; }\n\n.form-section-label { font-family: var(--font); font-weight: 800; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); padding-bottom: 8px; border-bottom: 1px solid var(--border); margin-top: 6px; margin-bottom: 2px; }\n.form-section-label:first-child { margin-top: 0; }\n.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n.form-group { display: flex; flex-direction: column; gap: 2px; }\n.form-group label { font-family: var(--font); font-weight: 600; font-size: 14px; color: var(--dark); }\n.form-group input, .form-group select, .form-group textarea {\n  background: var(--beige); border: 1.5px solid var(--border); border-radius: 10px;\n  padding: 10px 14px; font-family: var(--font); font-size: 15px; line-height: 1.4; color: var(--dark);\n  outline: none; transition: border-color 0.2s, background 0.2s; -webkit-appearance: none; width: 100%;\n  box-sizing: border-box; height: 46px; min-height: 46px;\n}\n.form-group textarea { height: auto; min-height: 110px; line-height: 1.5; }\n.form-group select { text-align: center; text-align-last: center; background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23666' d='M6 8L0 0h12z'\/><\/svg>\"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }\n.form-group select option { text-align: center; }\n.form-group input::placeholder, .form-group select::placeholder, .form-group textarea::placeholder { color: var(--muted); font-family: var(--font); }\n.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--o); background: var(--white); }\n.form-group textarea { resize: none; height: 70px; font-family: var(--font); }\n\n\/* Category chips \u2014 CF7 renders .wpcf7-list-item > label > input + span *\/\n.chips-label { font-family: var(--font); font-weight: 600; font-size: 14px; color: var(--dark); margin-bottom: 6px; display: block; }\n.wpcf7-chips { display: block; }\n.wpcf7-chips .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 6px; }\n.wpcf7-chips .wpcf7-list-item { margin: 0; }\n.wpcf7-chips .wpcf7-list-item label {\n  display: inline-flex; align-items: center;\n  padding: 6px 13px; border-radius: 100px; cursor: pointer;\n  font-family: var(--font); font-weight: 600; font-size: 14px;\n  background: var(--beige); border: 1.5px solid var(--border); color: var(--mid);\n  transition: all 0.18s; user-select: none; gap: 6px;\n}\n.wpcf7-chips .wpcf7-list-item label:hover { border-color: var(--o); color: var(--o); }\n.wpcf7-chips .wpcf7-list-item input[type=\"checkbox\"] { display: none; }\n.wpcf7-chips .wpcf7-list-item input[type=\"checkbox\"]:checked + .wpcf7-list-item-label,\n.wpcf7-chips .wpcf7-list-item:has(input:checked) label { background: var(--pink); border-color: var(--o); color: var(--od); }\n\n\/* Step nav *\/\n.step-nav { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); flex-wrap: wrap; }\n.step-nav p { margin: 0 !important; padding: 0 !important; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; width: 100%; justify-content: flex-end; }\n.step-nav br { display: none; }\n.step-nav span:empty { display: none; }\n.step-nav .step-back ~ .step-next, .step-nav p:has(.step-back) { justify-content: space-between; }\n.step-back { background: none; border: 1.5px solid var(--border); color: var(--mid); font-family: var(--font); font-weight: 700; font-size: 14px; padding: 10px 20px; border-radius: 100px; cursor: pointer; transition: all 0.2s; }\n.step-back:hover { border-color: var(--o); color: var(--o); }\n.step-next { background: var(--o); color: var(--white); font-family: var(--font); font-weight: 700; font-size: 14px; padding: 10px 22px; border-radius: 100px; border: none; cursor: pointer; transition: all 0.2s; box-shadow: 0 4px 16px rgba(242,95,52,0.25); }\n.step-next:hover { background: var(--od); transform: translateY(-1px); }\n.form-submit { background: var(--o); color: var(--white); font-family: var(--font); font-weight: 700; font-size: 15px; padding: 12px 24px; border-radius: 100px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 9px; transition: all 0.2s; box-shadow: 0 4px 20px rgba(242,95,52,0.3); }\n.form-submit:hover { background: var(--od); transform: translateY(-2px); }\n\n\/* ============================================\n   FLOATING CTA\n   ============================================ *\/\n.float-cta { position: fixed; bottom: 32px; right: 32px; z-index: 999; animation: floatBob 3s ease-in-out infinite; }\n.float-cta a { display: inline-flex; align-items: center; gap: 8px; background: var(--o); color: #fff !important; font-family: var(--font); font-size: 16px; font-weight: 700; border-radius: 100px; padding: 14px 28px; text-decoration: none; box-shadow: 0 8px 32px rgba(242,95,52,0.45); transition: background 0.3s, color 0.3s, box-shadow 0.3s, transform 0.14s; white-space: nowrap; }\n.float-cta a:hover { transform: translateY(-2px); }\n.float-cta.on-orange a { background: var(--white); color: var(--o) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.15); }\n.float-cta.on-orange a:hover { background: #f5f5f5; color: var(--o) !important; }\n@keyframes floatBob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }\n\n\/* ============================================\n   CAROUSEL\n   ============================================ *\/\n.carousel-wrapper { display: none; }\n.carousel-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 12px; padding-bottom: 4px; }\n.carousel-track::-webkit-scrollbar { display: none; }\n.carousel-track > * { scroll-snap-align: start; flex: 0 0 80vw; max-width: 300px; }\n.carousel-dots { display: flex; justify-content: center; gap: 6px; margin-top: 18px; }\n.carousel-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(0,0,0,0.18); border: none; padding: 0; cursor: pointer; transition: background 0.2s, transform 0.2s; }\n.carousel-dot.active { background: var(--o); transform: scale(1.3); }\n.carousel-dots.on-orange .carousel-dot { background: rgba(255,255,255,0.35); }\n.carousel-dots.on-orange .carousel-dot.active { background: var(--white); }\n\n\/* ============================================\n   RESPONSIVE - tablet\n   ============================================ *\/\n@media (max-width: 960px) {\n  .hero { grid-template-columns: 1fr; padding: 50px 24px 60px; gap: 32px; min-height: auto; }\n  .hero-grid { min-height: 380px; }\n  .trusted-inner { padding: 0 24px; }\n  .trusted-logos {\n    gap: 14px;\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    -webkit-overflow-scrolling: touch;\n    scrollbar-width: none;\n    justify-content: flex-start;\n    padding: 4px 4px 8px;\n    margin: 0 -24px;\n    padding-left: 24px;\n    padding-right: 24px;\n  }\n  .trusted-logos::-webkit-scrollbar { display: none; }\n  .trusted-logo {\n    flex: 0 0 auto;\n    scroll-snap-align: start;\n    padding: 0 22px;\n  }\n  .reviews { padding: 64px 0; }\n  .reviews > .inner { padding: 0 24px; }\n  .reviews-grid { grid-template-columns: 1fr; }\n  .value { padding: 64px 0; }\n  .value-layout { grid-template-columns: 1fr; gap: 60px; padding: 0 24px; }\n  .value-visual { display: none; }\n  .occasions { padding: 64px 0; }\n  .occasions > .inner { padding: 0 24px; }\n  .occ-grid { grid-template-columns: repeat(2, 1fr); }\n  .browse { padding: 64px 0; }\n  .browse > .inner { padding: 0 24px; }\n  .cat-grid { grid-template-columns: repeat(2, 1fr); }\n  .faq { padding: 64px 0; }\n  .faq > .inner { padding: 0 24px; }\n  .faq-layout { grid-template-columns: 1fr; gap: 36px; }\n  .faq-sticky { position: static; }\n  .enquiry { padding: 64px 0; }\n  .enquiry > .inner { padding: 0 24px; }\n  .enquiry-grid {\n    grid-template-columns: 1fr;\n    grid-template-areas:\n      \"left\"\n      \"form\"\n      \"contacts\";\n    gap: 32px;\n  }\n  .enquiry-grid .enquiry-contacts { margin-top: 0; }\n\n\n  \/* Form responsive - tablet\/laptop *\/\n  .form-card { padding: 24px 20px !important; }\n  .step-progress { gap: 8px; }\n  .form-step.active { gap: 8px; }\n  .step-nav { flex-wrap: wrap; gap: 10px; }\n  .step-nav p { justify-content: flex-end; gap: 10px; }\n  .step-back, .step-next { padding: 10px 18px; font-size: 13px; }\n}\n\n\/* ============================================\n   RESPONSIVE - mobile (\u2264600px) - carousels for card sections\n   ============================================ *\/\n@media (max-width: 600px) {\n  .hero { padding: 40px 20px 48px; }\n  .hero-grid { min-height: 320px; gap: 8px; }\n  .hero-img-label { font-size: 12px; }\n\n  .trusted-inner { padding: 0 20px; }\n  .trusted-logos { margin: 0 -20px; padding-left: 20px; padding-right: 20px; }\n\n  .reviews > .inner { padding: 0 20px; }\n  .reviews-grid { display: none !important; }\n  .reviews .carousel-wrapper { display: block; }\n  .reviews .carousel-track > * { flex: 0 0 82vw; max-width: 320px; }\n\n  .value-layout { padding: 0 20px; }\n\n  .occasions > .inner { padding: 0 20px; }\n  .occ-grid { display: none !important; }\n  .occasions .carousel-wrapper { display: block; }\n  .occasions .carousel-track > * { flex: 0 0 70vw; max-width: 260px; }\n\n  .browse > .inner { padding: 0 20px; }\n  .browse-header { flex-direction: column; align-items: flex-start; }\n  .cat-grid { display: none !important; }\n  .browse .carousel-wrapper { display: block; }\n  .browse .carousel-track > * { flex: 0 0 65vw; max-width: 220px; }\n\n  .faq-a-inner { padding-left: 0; }\n\n  .enquiry > .inner { padding: 0 20px; }\n  .form-card { padding: 24px 20px; }\n  .form-row { grid-template-columns: 1fr; }\n\n  .float-cta { bottom: 20px; right: 16px; left: 16px; }\n  .float-cta a { width: 100%; justify-content: center; }\n\n\n  \/* Form responsive - mobile *\/\n  .form-card { padding: 20px 16px !important; border-radius: 14px !important; }\n  .step-progress { gap: 6px; margin-bottom: 14px; }\n  .step-dot { width: 26px; height: 26px; font-size: 12px; }\n  .form-step.active { gap: 8px; }\n  .form-group input, .form-group select, .form-group textarea { font-size: 16px; height: 42px; padding: 8px 12px; }\n  .form-group textarea { min-height: 100px; height: auto; }\n  .form-group select { padding-right: 32px; background-position: right 10px center; }\n  .form-group label { font-size: 13px; }\n  .step-nav { flex-direction: row; gap: 10px; padding-top: 10px; margin-top: 10px; }\n  .step-nav p { justify-content: space-between; gap: 10px; width: 100%; }\n  .step-back, .step-next { flex: 1; padding: 10px 14px; font-size: 13px; text-align: center; min-width: 0; }\n  .wpcf7-chips .wpcf7-list-item label { padding: 7px 12px; font-size: 12px; }\n}\n\n\/* WIDESCREEN *\/\n@media (min-width: 1700px) {\n  .float-cta { right: calc(50% - 560px); }\n  .hero, .reviews > .inner, .value-layout, .occasions > .inner, .browse > .inner, .faq > .inner, .enquiry > .inner, .trusted-inner { max-width: 1400px; }\n  .reviews > .inner, .occasions > .inner, .browse > .inner, .faq > .inner, .enquiry > .inner { padding: 0 80px; }\n}\n\n\n\/* === MOBILE FORM COMPACT OVERRIDES (added by assistant) === *\/\n@media (max-width: 640px) {\n  .form-card { padding: 20px 18px !important; border-radius: 18px !important; }\n  .step-progress { margin-bottom: 14px !important; }\n  .form-section-label { margin: 10px 0 8px !important; padding-bottom: 8px !important; }\n  .form-section-label:first-child { margin-top: 0 !important; }\n  .form-group { margin-bottom: 12px !important; }\n  .form-group label { margin-bottom: 4px !important; display: block; }\n  .form-group input,\n  .form-group select,\n  .form-group textarea { padding: 10px 12px !important; }\n  .form-row { gap: 8px !important; margin-bottom: 0 !important; }\n  .step-nav { margin-top: 12px !important; padding-top: 12px !important; gap: 10px !important; }\n  form br { display: none !important; }\n}\n\n<\/style>\n<\/head>\n<body>\n\n<!-- ========== HERO ========== -->\n<div style=\"background: var(--beige);\">\n  <div class=\"hero\">\n    <div class=\"hero-left\">\n      <h1>Bring Your Group Together With <span class=\"accent\">Hands-On<\/span><\/h1>\n      <p class=\"hero-sub\">From corporate team building to weddings, agency offsite to family gatherings - we help you create the perfect hands-on workshop experience anywhere in Portugal.<\/p>\n      <div class=\"hero-btns\">\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"btn btn-orange\" target=\"_blank\">Explore our workshops \u2192<\/a>\n        <a href=\"#enquiry\" class=\"btn btn-outline\">Request a quote<\/a>\n      <\/div>\n    <\/div>\n    <div class=\"hero-grid\">\n      <div class=\"hero-img\">\n        <img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/IMG_4368.jpeg\" alt=\"Family workshop\" loading=\"lazy\">\n        <div class=\"hero-img-overlay\"><div class=\"hero-img-label\">Family &amp; Friends<\/div><\/div>\n      <\/div>\n      <div class=\"hero-img\">\n        <img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/342109038_5805182852925077_85304936676493308_n-650x650-1.jpg\" alt=\"Hen party workshop\" loading=\"lazy\">\n        <div class=\"hero-img-overlay\"><div class=\"hero-img-label\">Hen &amp; Stag Parties<\/div><\/div>\n      <\/div>\n      <div class=\"hero-img\">\n        <img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/12\/20250925_Manu-50.jpg\" alt=\"Team workshop\" loading=\"lazy\">\n        <div class=\"hero-img-overlay\"><div class=\"hero-img-label\">Team Building<\/div><\/div>\n      <\/div>\n      <div class=\"hero-img\">\n        <img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/premium_photo-1686920244658-f3db03fe22e3.jpg\" alt=\"School group\" loading=\"lazy\">\n        <div class=\"hero-img-overlay\"><div class=\"hero-img-label\">Schools &amp; Camps<\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== TRUSTED BY ========== -->\n<div class=\"trusted\">\n  <div class=\"trusted-inner\">\n    <div class=\"trusted-label\">Trusted by<\/div>\n    <div class=\"trusted-logos\">\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/bosch-logo-39982-e1776611036436.png\" alt=\"Bosch\"><\/span>\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/09\/Fidelidade-DL-1-1.svg\" alt=\"Fidelidade\"><\/span>\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/Critical_TechWorks_Logo.png\" alt=\"Critical\"><\/span>\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/HiBob-e1773931437880.png\" alt=\"HiBob\"><\/span>\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/IHG-Logo.png\" alt=\"IHG\"><\/span>\n      <span class=\"trusted-logo\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/uber.png\" alt=\"Uber\"><\/span>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<!-- ========== REVIEWS ========== -->\n<div class=\"reviews full-bleed-white\">\n  <div class=\"inner\">\n    <div class=\"reviews-intro\">\n      <div class=\"tag\">What groups say<\/div>\n      <h2 class=\"title\">Loved by groups of every shape<\/h2>\n    <\/div>\n\n    <!-- Desktop grid -->\n    <div class=\"reviews-grid\">\n      <div class=\"review-card\">\n        <div class=\"review-stars\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n        <\/div>\n        <p class=\"review-text\">\"The team loved the activity and it will definitely be considered for future team buildings. Thank you so much for the help and availability.\"<\/p>\n        <div class=\"review-author\">\n          <div class=\"review-avatar\">BM<\/div>\n          <div><div class=\"review-name\">Beatriz Mata<\/div><div class=\"review-role\">Arquiconsult - Team Building<\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"review-card\">\n        <div class=\"review-stars\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n        <\/div>\n        <p class=\"review-text\">\"The team absolutely loved the workshop and the teacher! It was fantastic that we managed to make more than one tile. We received great feedback. Thank you for everything, HandsOn!\"<\/p>\n        <div class=\"review-author\">\n          <div class=\"review-avatar\">CF<\/div>\n          <div><div class=\"review-name\">Cl\u00e1udia Ferreira<\/div><div class=\"review-role\">Uber - Team Building<\/div><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"review-card\">\n        <div class=\"review-stars\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"#F25F34\"><polygon points=\"7,0 8.6,5 14,5 9.7,8.1 11.3,13.4 7,10.2 2.7,13.4 4.3,8.1 0,5 5.4,5\"\/><\/svg>\n        <\/div>\n        <p class=\"review-text\">\"Our teacher was the best - kind, knowledgeable and funny! My mom and I both had a great experience and were so happy to take our own bottles home. We will be sure to come back on our next trip.\"<\/p>\n        <div class=\"review-author\">\n          <div class=\"review-avatar\">TP<\/div>\n          <div><div class=\"review-name\">Tara Potter<\/div><div class=\"review-role\">Private Family Activity<\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Mobile carousel -->\n    <div class=\"carousel-wrapper\">\n      <div class=\"carousel-track\" id=\"reviews-track\">\n        <div class=\"review-card\">\n          <p class=\"review-text\">\"The team loved the activity and it will definitely be considered for future team buildings. Thank you so much for the help and availability.\"<\/p>\n          <div class=\"review-author\">\n            <div class=\"review-avatar\">BM<\/div>\n            <div><div class=\"review-name\">Beatriz Mata<\/div><div class=\"review-role\">Arquiconsult - Team Building<\/div><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"review-card\">\n          <p class=\"review-text\">\"The team absolutely loved the workshop and the teacher! It was fantastic that we managed to make more than one tile. We received great feedback. Thank you for everything, HandsOn!\"<\/p>\n          <div class=\"review-author\">\n            <div class=\"review-avatar\">CF<\/div>\n            <div><div class=\"review-name\">Cl\u00e1udia Ferreira<\/div><div class=\"review-role\">Uber - Team Building<\/div><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"review-card\">\n          <p class=\"review-text\">\"Our teacher was the best - kind, knowledgeable and funny! My mom and I both had a great experience and were so happy to take our own bottles home. We will be sure to come back on our next trip.\"<\/p>\n          <div class=\"review-author\">\n            <div class=\"review-avatar\">TP<\/div>\n            <div><div class=\"review-name\">Tara Potter<\/div><div class=\"review-role\">Private Family Activity<\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"carousel-dots\" id=\"reviews-dots\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== VALUE PROP ========== -->\n<div class=\"value\">\n  <div class=\"value-layout\">\n    <div class=\"value-visual\">\n      <div class=\"value-img-main\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Cooking-Community-Workshop-Portugal.jpg\" alt=\"Private workshop\" loading=\"lazy\"><\/div>\n      <div class=\"value-img-float\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/cooking-pastel-nata-workshop-hands-on-portugal.jpeg\" alt=\"Workshop detail\" loading=\"lazy\"><\/div>\n      <div class=\"value-pillbox\">Exclusive Experience<\/div>\n    <\/div>\n    <div>\n      <div class=\"tag\">Why go private<\/div>\n      <h2 class=\"title\">An experience shaped entirely around your group<\/h2>\n      <p class=\"sub\">When you book a private workshop, the whole experience is yours. The space, the pace, the people - everything shaped around what works for your group.<\/p>\n      <div class=\"value-points\">\n        <div class=\"value-point\">\n          <div class=\"vp-num\">01<\/div>\n          <div class=\"vp-body\"><h4>Complete exclusivity<\/h4><p>The space, teacher and session are entirely yours. No strangers, no sharing, no compromises.<\/p><\/div>\n        <\/div>\n        <div class=\"value-point\">\n          <div class=\"vp-num\">02<\/div>\n          <div class=\"vp-body\"><h4>Personalised to the detail<\/h4><p>Choose the theme, adapt the level, add extras like food, photo or video. We make it fit exactly what you have in mind.<\/p><\/div>\n        <\/div>\n        <div class=\"value-point\">\n          <div class=\"vp-num\">03<\/div>\n          <div class=\"vp-body\"><h4>Zero coordination stress<\/h4><p>Our team handles everything - from teacher briefing to logistics confirmation. You show up, we take care of the rest.<\/p><\/div>\n        <\/div>\n        <div class=\"value-point\">\n          <div class=\"vp-num\">04<\/div>\n          <div class=\"vp-body\"><h4>Any group size<\/h4><p>From intimate gatherings of 4 to company events of 100+, we have formats that scale.<\/p><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== OCCASIONS ========== -->\n<div class=\"occasions full-bleed-orange\" id=\"occasions\">\n  <div class=\"inner\">\n    <div class=\"occ-header\">\n      <div class=\"tag\">For every occasion<\/div>\n      <h2 class=\"title\">Whatever the occasion, we have a workshop for it<\/h2>\n      <p class=\"sub\">Every occasion deserves a different experience. Browse by group type below.<\/p>\n    <\/div>\n\n    <!-- Desktop grid -->\n    <div class=\"occ-grid\">\n      <a href=\"https:\/\/handson.pt\/workshops\/?q=team+building\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/3-1-1-e1776611843981.jpg\" alt=\"Team Building\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Team Building &amp; Corporate<\/div><div class=\"occ-desc\">Give your team something they'll remember. Hands-on, collaborative, and genuinely fun.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/Art-Classes-in-Lisbon-pintura-acrilica-meet-art-studioCurso-de-Pintura-acrilica-em-Lisboa.jpg\" alt=\"Bachelorette\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Bachelorette &amp; Bachelor<\/div><div class=\"occ-desc\">Celebrate in style. Creative, fun and genuinely memorable.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/2_BG_NEW.jpg\" alt=\"Tourism\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Tourism &amp; Hotels<\/div><div class=\"occ-desc\">Authentic local experiences for tourist groups. Available in foreign languages.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/640286458_18573255316041211_2465171113711316702_n.jpg\" alt=\"Events\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Events &amp; Marketing<\/div><div class=\"occ-desc\">Brand activations and corporate events with workshops as the centrepiece.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/2021-04-25-12.19.54-scaled.jpg\" alt=\"Weddings\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Weddings &amp; Planners<\/div><div class=\"occ-desc\">Pre-wedding fun, guest activities or wedding day moments - we create the right experience.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/?q=kid\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Captura-de-ecra-2024-09-17-as-17.02.20.jpg\" alt=\"Summer Camps\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Schools &amp; Summer Camps<\/div><div class=\"occ-desc\">Creative and educational programmes for children and young people.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/Wavy-surf-camp2-1-e1776611631407.jpg\" alt=\"Family\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Family &amp; Friends<\/div><div class=\"occ-desc\">Celebrate together with a shared experience everyone will talk about long after.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\">\n        <div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/IMG_0106-2-scaled.jpg\" alt=\"Birthdays\"><\/div>\n        <div class=\"occ-content\"><div class=\"occ-label\">Birthdays &amp; Celebrations<\/div><div class=\"occ-desc\">Celebrate with friends or family in an experience everyone will remember.<\/div><div class=\"occ-arrow\"><span><svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><path d=\"M2 6.5h9M7 2.5l4 4-4 4\" stroke=\"#1F1F1F\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/div><\/div>\n      <\/a>\n    <\/div>\n\n    <!-- Mobile carousel -->\n    <div class=\"carousel-wrapper\">\n      <div class=\"carousel-track\" id=\"occ-track\">\n        <a href=\"https:\/\/handson.pt\/workshops\/?q=team+building\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/3-1-1-e1776611843981.jpg\" alt=\"Team Building\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><rect x=\"6\" y=\"12\" width=\"36\" height=\"30\" rx=\"2\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Team Building &amp; Corporate<\/div><div class=\"occ-desc\">Hands-on, collaborative, genuinely fun.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/03\/Art-Classes-in-Lisbon-pintura-acrilica-meet-art-studioCurso-de-Pintura-acrilica-em-Lisboa.jpg\" alt=\"Bachelorette\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><path d=\"M24 38s-16-9.6-16-20a8 8 0 0 1 16 0 8 8 0 0 1 16 0c0 10.4-16 20-16 20Z\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Bachelorette &amp; Bachelor<\/div><div class=\"occ-desc\">Creative, fun and genuinely memorable.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/2_BG_NEW.jpg\" alt=\"Tourism\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><circle cx=\"24\" cy=\"24\" r=\"18\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Tourism &amp; Hotels<\/div><div class=\"occ-desc\">Authentic local experiences. Foreign languages available.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/640286458_18573255316041211_2465171113711316702_n.jpg\" alt=\"Events\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><path d=\"M10 18v12h8l14 8V10L18 18H10Z\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Events &amp; Marketing<\/div><div class=\"occ-desc\">Brand activations with workshops as the centrepiece.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/2021-04-25-12.19.54-scaled.jpg\" alt=\"Weddings\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><circle cx=\"16\" cy=\"24\" r=\"10\" stroke=\"#1F1F1F\"\/><circle cx=\"32\" cy=\"24\" r=\"10\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Weddings &amp; Planners<\/div><div class=\"occ-desc\">Pre-wedding fun, guest activities or wedding day moments.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/?q=kid\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Captura-de-ecra-2024-09-17-as-17.02.20.jpg\" alt=\"Summer Camps\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><path d=\"M24 10L44 20L24 30L4 20Z\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Schools &amp; Summer Camps<\/div><div class=\"occ-desc\">Programmes for children and young people.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2026\/04\/Wavy-surf-camp2-1-e1776611631407.jpg\" alt=\"Family\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"8\" stroke=\"#1F1F1F\"\/><circle cx=\"32\" cy=\"20\" r=\"8\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Family &amp; Friends<\/div><div class=\"occ-desc\">A shared experience everyone will talk about long after.<\/div><\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"occ-card\" target=\"_blank\"><div class=\"occ-img-ph\"><img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/IMG_0106-2-scaled.jpg\" alt=\"Birthdays\"><svg viewBox=\"0 0 48 48\" stroke-width=\"2\" fill=\"none\"><rect x=\"6\" y=\"22\" width=\"36\" height=\"20\" rx=\"2\" stroke=\"#1F1F1F\"\/><\/svg><\/div><div class=\"occ-content\"><div class=\"occ-label\">Birthdays &amp; Celebrations<\/div><div class=\"occ-desc\">An experience everyone will remember.<\/div><\/div><\/a>\n      <\/div>\n      <div class=\"carousel-dots on-orange\" id=\"occ-dots\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== BROWSE BY CATEGORY ========== -->\n<div class=\"browse\" id=\"browse\">\n  <div class=\"inner\">\n    <div class=\"browse-header\">\n      <div class=\"browse-header-left\">\n        <div class=\"tag\">Browse the offer<\/div>\n        <h2 class=\"title\">Find a workshop your group will love<\/h2>\n      <\/div>\n      <a href=\"https:\/\/handson.pt\/workshops\/\" class=\"browse-all-link\" target=\"_blank\">View all workshops \u2192<\/a>\n    <\/div>\n\n    <!-- Desktop grid -->\n    <div class=\"cat-grid\">\n      <a href=\"https:\/\/handson.pt\/workshops\/arts-crafts\/\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" stroke-linejoin=\"round\" fill=\"none\"><path d=\"M11 3l2.5 5 5.5.8-4 3.9.9 5.5L11 15.5 6.1 18.2l.9-5.5L3 8.8l5.5-.8L11 3Z\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Arts &amp; Crafts<\/div>\n        <div class=\"cat-desc\">Ceramics, painting, illustration, textile &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/fauna-flora\/?category=Fauna+%26+Flora\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M11 19V8\" stroke-linecap=\"round\"\/><path d=\"M11 12s-4-3-4-7c0 0 5 1 4 7Z\"\/><path d=\"M11 10s4-3 4-7c0 0-5 1-4 7Z\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Fauna &amp; Flora<\/div>\n        <div class=\"cat-desc\">Gardening, terrariums, floral design &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/foods-drinks\/?category=Food+%26+Drinks\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" stroke-linecap=\"round\" fill=\"none\"><path d=\"M8 3v5a3 3 0 0 0 6 0V3\"\/><path d=\"M11 11v8\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Food &amp; Drinks<\/div>\n        <div class=\"cat-desc\">Cooking, baking, wine, cocktails &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/home-diy\/?category=Home+%26+DIY\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" stroke-linejoin=\"round\" fill=\"none\"><path d=\"M3 9.5L11 3l8 6.5V19a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.5Z\"\/><path d=\"M8 20v-7h6v7\" stroke-linecap=\"round\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Home &amp; DIY<\/div>\n        <div class=\"cat-desc\">Woodwork, candles, restoration &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/mind-soul\/?category=Mind+%26+Soul\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"M11 7v4l3 2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Mind &amp; Soul<\/div>\n        <div class=\"cat-desc\">Yoga, meditation, breathwork &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/photo-video\/?category=Photo+%26+Video\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><rect x=\"2\" y=\"6\" width=\"18\" height=\"13\" rx=\"2\"\/><circle cx=\"11\" cy=\"12\" r=\"3\"\/><path d=\"M7 6l1.5-3h5L15 6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Photo &amp; Video<\/div>\n        <div class=\"cat-desc\">Photography, film, editing &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/sports-fitness\/?category=Sports+%26+Fitness\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"M11 3s2 4 2 8-2 8-2 8\"\/><path d=\"M3 11h16\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Sports &amp; Fitness<\/div>\n        <div class=\"cat-desc\">Climbing, surf, padel, dance &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n      <a href=\"https:\/\/handson.pt\/workshops\/music-performance\/?category=Music+%26+Performance\" class=\"cat-card\" target=\"_blank\">\n        <div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M9 17V5l11-2v12\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><circle cx=\"6\" cy=\"17\" r=\"3\"\/><circle cx=\"17\" cy=\"15\" r=\"3\"\/><\/svg><\/div>\n        <div class=\"cat-name\">Music &amp; Performance<\/div>\n        <div class=\"cat-desc\">Instruments, voice, theatre &amp; more<\/div>\n        <div class=\"cat-arr\">Explore <svg width=\"11\" height=\"11\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 6h8M6 2l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n      <\/a>\n    <\/div>\n\n    <!-- Mobile carousel -->\n    <div class=\"carousel-wrapper\">\n      <div class=\"carousel-track\" id=\"cat-track\">\n        <a href=\"https:\/\/handson.pt\/workshops\/arts-crafts\/\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M11 3l2.5 5 5.5.8-4 3.9.9 5.5L11 15.5 6.1 18.2l.9-5.5L3 8.8l5.5-.8L11 3Z\"\/><\/svg><\/div><div class=\"cat-name\">Arts &amp; Crafts<\/div><div class=\"cat-desc\">Ceramics, painting &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/fauna-flora\/?category=Fauna+%26+Flora\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M11 19V8\"\/><\/svg><\/div><div class=\"cat-name\">Fauna &amp; Flora<\/div><div class=\"cat-desc\">Gardening, terrariums &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/foods-drinks\/?category=Food+%26+Drinks\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M8 3v5a3 3 0 0 0 6 0V3\"\/><\/svg><\/div><div class=\"cat-name\">Food &amp; Drinks<\/div><div class=\"cat-desc\">Cooking, wine &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/home-diy\/?category=Home+%26+DIY\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M3 9.5L11 3l8 6.5V19a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.5Z\"\/><\/svg><\/div><div class=\"cat-name\">Home &amp; DIY<\/div><div class=\"cat-desc\">Woodwork, candles &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/mind-soul\/?category=Mind+%26+Soul\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><\/svg><\/div><div class=\"cat-name\">Mind &amp; Soul<\/div><div class=\"cat-desc\">Yoga, meditation &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/photo-video\/?category=Photo+%26+Video\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><rect x=\"2\" y=\"6\" width=\"18\" height=\"13\" rx=\"2\"\/><\/svg><\/div><div class=\"cat-name\">Photo &amp; Video<\/div><div class=\"cat-desc\">Photography, film &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/sports-fitness\/?category=Sports+%26+Fitness\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><\/svg><\/div><div class=\"cat-name\">Sports &amp; Fitness<\/div><div class=\"cat-desc\">Surf, padel, dance &amp; more<\/div><\/a>\n        <a href=\"https:\/\/handson.pt\/workshops\/music-performance\/?category=Music+%26+Performance\" class=\"cat-card\" target=\"_blank\"><div class=\"cat-icon\"><svg viewBox=\"0 0 22 22\" stroke-width=\"1.6\" fill=\"none\"><path d=\"M9 17V5l11-2v12\"\/><\/svg><\/div><div class=\"cat-name\">Music &amp; Performance<\/div><div class=\"cat-desc\">Instruments, voice &amp; more<\/div><\/a>\n      <\/div>\n      <div class=\"carousel-dots\" id=\"cat-dots\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== FAQ ========== -->\n<div class=\"faq full-bleed-white\" id=\"faq\">\n  <div class=\"inner\">\n    <div class=\"faq-layout\">\n      <div class=\"faq-sticky\">\n        <div class=\"tag\">FAQs<\/div>\n        <h2 class=\"title\" style=\"text-align:left;\">Common Questions<\/h2>\n        <p>Everything you need to know before you reach out.<\/p>\n        <a href=\"#enquiry\" class=\"faq-cta-link\">Request a quote \u2192<\/a>\n      <\/div>\n      <div class=\"faq-list\">\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">How many people do I need for a private workshop?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>We can organise workshops for a single person up to large groups of 100+. Just let us know how many you're expecting and we'll tailor the experience to fit your group perfectly, from intimate gatherings to full company events.<\/p><\/div><\/div><\/div>\n\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">How much does a private group workshop cost?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>Pricing depends on the workshop type, group size, location, and duration. Fill out the form below and we'll put together a custom quote tailored to your group.<\/p><\/div><\/div><\/div>\n\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">Can the workshop be held at our location - office, home, or venue?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>Absolutely. Many of our workshops can be hosted at your preferred location anywhere in Portugal. Just mention it in the form and we'll confirm whether your chosen workshop is suitable for an external venue.<\/p><\/div><\/div><\/div>\n\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">What types of groups are your workshops designed for?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>All kinds. We run experiences for corporate teams, tourism organisations, school groups, families, marketing agencies, weddings and municipalities. If you have a group, we have a workshop for it.<\/p><\/div><\/div><\/div>\n\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">How far in advance should I book?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>We recommend booking at least 2 weeks in advance, especially for weekends, large groups (20+ people), or specific dates. That said, we'll always do our best to accommodate last-minute requests when possible.<\/p><\/div><\/div><\/div>\n\n\n        <div class=\"faq-item\"><button class=\"faq-q\" onclick=\"toggleFaq(this)\"><span class=\"faq-q-text\">What makes HandsOn different from other event or team building providers?<\/span><span class=\"faq-q-plus\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 4v16m8-8H4\"\/><\/svg><\/span><\/button><div class=\"faq-a\"><div class=\"faq-a-inner\"><p>We're a marketplace, which means you get access to a wide range of skilled facilitators and workshop types - all in one place. We match your group with the right experience and handle the logistics, so all you have to do is show up and enjoy it.<\/p><\/div><\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ========== ENQUIRY ========== -->\n<div class=\"enquiry full-bleed-orange\" id=\"enquiry\">\n  <div class=\"inner\">\n    <div class=\"enquiry-grid\">\n      <div class=\"enquiry-left\">\n        <div class=\"tag\">Request a quote<\/div>\n        <h2>Let's plan something special<\/h2>\n        <p>Share a few details about your group and what you have in mind. We'll take it from there and put together a proposal that works for you.<\/p>\n      <\/div>\n\n      <div class=\"form-card\">\n        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33128-o1\" lang=\"en-GB\" dir=\"ltr\" data-wpcf7-id=\"33128\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/pt\/wp-json\/wp\/v2\/pages\/34803#wpcf7-f33128-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33128\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.3\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_GB\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33128-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7dtx_version\" value=\"5.0.5\" \/>\n<\/fieldset>\n<div class=\"step-progress\">\n\t<div class=\"step-dot active\" data-step=\"1\">\n\t\t<p>1\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"step-line\" data-after=\"1\">\n\t<\/div>\n\t<div class=\"step-dot\" data-step=\"2\">\n\t\t<p>2\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"step-line\" data-after=\"2\">\n\t<\/div>\n\t<div class=\"step-dot\" data-step=\"3\">\n\t\t<p>3\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-step active\" data-step=\"1\">\n\t<div class=\"form-section-label\">\n\t\t<p>About you\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Name *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Your name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Email *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"you@company.com\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Organisation *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-organisation\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company, school, or group\" value=\"\" type=\"text\" name=\"your-organisation\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Phone *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-phone\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"+351 9XX XXX XXX\" value=\"\" type=\"tel\" name=\"your-phone\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-section-label\">\n\t\t<p>About your group\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Occasion type *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"occasion-type\"><select class=\"wpcf7-form-control wpcf7-select wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" name=\"occasion-type\"><option value=\"\">Select...<\/option><option value=\"Team Building \/ Corporate\">Team Building \/ Corporate<\/option><option value=\"Bachelorette \/ Bachelor\">Bachelorette \/ Bachelor<\/option><option value=\"Tourism \/ Hotel\">Tourism \/ Hotel<\/option><option value=\"Event \/ Marketing\">Event \/ Marketing<\/option><option value=\"Wedding\">Wedding<\/option><option value=\"School \/ Summer Camp\">School \/ Summer Camp<\/option><option value=\"Family &amp; Friends\">Family &amp; Friends<\/option><option value=\"Birthday \/ Celebration\">Birthday \/ Celebration<\/option><option value=\"Municipality\">Municipality<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Number of participants *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"participants\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. 15 people, 30-40...\" value=\"\" type=\"text\" name=\"participants\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"step-nav\">\n\t\t<p><span><\/span><br \/>\n<button type=\"button\" class=\"step-next\">Next step \u2192<\/button>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-step\" data-step=\"2\">\n\t<div class=\"form-section-label\">\n\t\t<p>About the workshop\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-group\">\n\t\t<p><span class=\"chips-label\">What sounds exciting? (select all that apply) *<\/span>\n\t\t<\/p>\n\t\t<div class=\"wpcf7-chips\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"workshop-cats\"><span class=\"wpcf7-form-control wpcf7-checkbox wpcf7-validates-as-required\"><span class=\"wpcf7-list-item first\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Arts &amp; Crafts\" \/><span class=\"wpcf7-list-item-label\">Arts &amp; Crafts<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Home &amp; DIY\" \/><span class=\"wpcf7-list-item-label\">Home &amp; DIY<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Photo &amp; Video\" \/><span class=\"wpcf7-list-item-label\">Photo &amp; Video<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Fauna &amp; Flora\" \/><span class=\"wpcf7-list-item-label\">Fauna &amp; Flora<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Mind &amp; Soul\" \/><span class=\"wpcf7-list-item-label\">Mind &amp; Soul<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Sports &amp; Fitness\" \/><span class=\"wpcf7-list-item-label\">Sports &amp; Fitness<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Food &amp; Drink\" \/><span class=\"wpcf7-list-item-label\">Food &amp; Drink<\/span><\/label><\/span><span class=\"wpcf7-list-item last\"><label><input type=\"checkbox\" name=\"workshop-cats[]\" value=\"Music &amp; Performance\" \/><span class=\"wpcf7-list-item-label\">Music &amp; Performance<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-group\">\n\t\t<p><label>Any specific workshop or skill in mind? *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-specific-workshop\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. ceramics, sushi making, photography walk, cocktail class...\" value=\"\" type=\"text\" name=\"your-specific-workshop\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Workshop language *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"workshop-language\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. Portuguese, English...\" value=\"\" type=\"text\" name=\"workshop-language\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Budget per person *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"budget-per-person\"><select class=\"wpcf7-form-control wpcf7-select wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" name=\"budget-per-person\"><option value=\"\">Select...<\/option><option value=\"Under \u20ac25\">Under \u20ac25<\/option><option value=\"\u20ac25 \u2013 \u20ac50\">\u20ac25 \u2013 \u20ac50<\/option><option value=\"\u20ac50 \u2013 \u20ac75\">\u20ac50 \u2013 \u20ac75<\/option><option value=\"Over \u20ac75\">Over \u20ac75<\/option><option value=\"Not sure yet\">Not sure yet<\/option><\/select><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"step-nav\">\n\t\t<p><button type=\"button\" class=\"step-back\">\u2190 Back<\/button><br \/>\n<button type=\"button\" class=\"step-next\">Next step \u2192<\/button>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-step\" data-step=\"3\">\n\t<div class=\"form-section-label\">\n\t\t<p>Date & logistics\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Preferred date(s) *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"preferred-dates\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. 14 March, week of 20 April...\" value=\"\" type=\"text\" name=\"preferred-dates\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Preferred time *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"preferred-time\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. morning, afternoon\" value=\"\" type=\"text\" name=\"preferred-time\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Preferred duration *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"preferred-duration\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. 2 hours, half day\" value=\"\" type=\"text\" name=\"preferred-duration\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Workshop location *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"workshop-location\"><select class=\"wpcf7-form-control wpcf7-select wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" name=\"workshop-location\"><option value=\"\">Select...<\/option><option value=\"Teacher&#039;s studio\">Teacher&#039;s studio<\/option><option value=\"Our space (teacher comes to us)\">Our space (teacher comes to us)<\/option><option value=\"No preference\">No preference<\/option><\/select><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>City *<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-city\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"e.g. Lisbon, Porto...\" value=\"\" type=\"text\" name=\"your-city\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"form-group\">\n\t\t\t<p><label>Anything else?<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" placeholder=\"Special requirements, theme ideas...\" name=\"your-message\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"step-nav\">\n\t\t<p><button type=\"button\" class=\"step-back\">\u2190 Back<\/button><br \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner form-submit\" type=\"submit\" value=\"Send my enquiry \u2192\" \/>\n\t\t<\/p>\n\t<\/div>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n      <\/div>\n\n      <div class=\"enquiry-contacts\">\n        <p class=\"ec-intro\">We're also available at<\/p>\n        <div class=\"ec-row\">\n          <div class=\"ec-icon\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\/><\/svg><\/div>\n          <a href=\"mailto:hello@handson.pt\">hello@handson.pt<\/a>\n        <\/div>\n        <div class=\"ec-row\">\n          <div class=\"ec-icon\"><svg viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.13.87.36 1.72.7 2.54a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.82.34 1.67.57 2.54.7A2 2 0 0122 16.92z\"\/><\/svg><\/div>\n          <a href=\"https:\/\/wa.me\/351923525048\" target=\"_blank\" rel=\"noopener\">+351 923 525 048<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"float-cta\"><a href=\"#enquiry\">Request a quote \u2192<\/a><\/div>\n\n<script>\n\/\/ FAQ toggle\nfunction toggleFaq(btn) {\n  const i = btn.closest('.faq-item');\n  const o = i.classList.contains('open');\n  document.querySelectorAll('.faq-item').forEach(x => x.classList.remove('open'));\n  if (!o) i.classList.add('open');\n}\n\n\/\/ Floating CTA orange detection\n(function() {\n  const b = document.querySelector('.float-cta');\n  if (!b) return;\n  const orangeIds = ['occasions', 'enquiry'];\n  function isOverOrange() {\n    const r = b.getBoundingClientRect();\n    const midY = r.top + r.height \/ 2;\n    for (const id of orangeIds) {\n      const el = document.getElementById(id);\n      if (!el) continue;\n      const er = el.getBoundingClientRect();\n      if (midY >= er.top && midY <= er.bottom) return true;\n    }\n    return false;\n  }\n  function c() { b.classList.toggle('on-orange', isOverOrange()); }\n  window.addEventListener('scroll', c, { passive: true });\n  window.addEventListener('resize', c, { passive: true });\n  c();\n})();\n\n\/\/ Carousel system\nfunction initCarousel(trackId, dotsId) {\n  const track = document.getElementById(trackId);\n  const dotsEl = document.getElementById(dotsId);\n  if (!track || !dotsEl) return;\n  const cards = Array.from(track.children);\n  dotsEl.innerHTML = '';\n  const dots = cards.map((_, i) => {\n    const d = document.createElement('button');\n    d.className = 'carousel-dot' + (i === 0 ? ' active' : '');\n    d.setAttribute('aria-label', 'Go to slide ' + (i + 1));\n    d.addEventListener('click', () => {\n      cards[i].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\n    });\n    dotsEl.appendChild(d);\n    return d;\n  });\n  let ticking = false;\n  track.addEventListener('scroll', () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(() => {\n      const trackLeft = track.getBoundingClientRect().left;\n      let closest = 0;\n      let minDist = Infinity;\n      cards.forEach((card, i) => {\n        const dist = Math.abs(card.getBoundingClientRect().left - trackLeft);\n        if (dist < minDist) { minDist = dist; closest = i; }\n      });\n      dots.forEach((d, i) => d.classList.toggle('active', i === closest));\n      ticking = false;\n    });\n  }, { passive: true });\n}\n\ninitCarousel('reviews-track', 'reviews-dots');\ninitCarousel('occ-track', 'occ-dots');\ninitCarousel('cat-track', 'cat-dots');\n\n\n\n\/\/ Multi-step form navigation\n(function() {\n  var formCard = document.querySelector('.form-card');\n  if (!formCard) return;\n\n  function getActiveStep(form) {\n    return form.querySelector('.form-step.active');\n  }\n\n  function getTotalSteps(form) {\n    return form.querySelectorAll('.form-step').length;\n  }\n\n  function updateProgress(form, current) {\n    form.querySelectorAll('.step-dot').forEach(function(d) {\n      var s = +d.dataset.step;\n      d.className = 'step-dot' + (s < current ? ' done' : s === current ? ' active' : '');\n    });\n    form.querySelectorAll('.step-line').forEach(function(l) {\n      l.className = 'step-line' + (+l.dataset.after < current ? ' done' : '');\n    });\n  }\n\n  function showStep(form, n) {\n    form.querySelectorAll('.form-step').forEach(function(s) { s.classList.remove('active'); });\n    var target = form.querySelector('.form-step[data-step=\"' + n + '\"]');\n    if (target) target.classList.add('active');\n    updateProgress(form, n);\n    formCard.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  }\n\n  formCard.addEventListener('click', function(e) {\n    var tgt = e.target;\n    var form = formCard.querySelector('form');\n    if (!form) return;\n    var totalSteps = getTotalSteps(form);\n\n    if (tgt.classList.contains('step-next')) {\n      var current = getActiveStep(form);\n      if (!current) return;\n      var n = +current.dataset.step;\n      if (n < totalSteps) showStep(form, n + 1);\n    }\n    if (tgt.classList.contains('step-back')) {\n      var current = getActiveStep(form);\n      if (!current) return;\n      var n = +current.dataset.step;\n      if (n > 1) showStep(form, n - 1);\n    }\n  });\n})();\n\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>&nbsp; Bring Your Group Together With Hands-On From corporate team building to weddings, agency offsite to family gatherings &#8211; we help you create the perfect hands-on workshop experience anywhere in Portugal. Explore our workshops \u2192 Request a quote Family &amp; Friends Hen &amp; Stag Parties Team Building Schools &amp; Camps Trusted by What groups say [&hellip;]<\/p>\n","protected":false},"author":138,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-34803","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/34803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/comments?post=34803"}],"version-history":[{"count":63,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/34803\/revisions"}],"predecessor-version":[{"id":35111,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/34803\/revisions\/35111"}],"wp:attachment":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/media?parent=34803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}