{"id":279949,"date":"2026-04-28T10:32:51","date_gmt":"2026-04-28T09:32:51","guid":{"rendered":"https:\/\/www.carvemag.com\/?page_id=279949"},"modified":"2026-04-28T10:49:48","modified_gmt":"2026-04-28T09:49:48","slug":"euro-road-trips-portugal","status":"publish","type":"page","link":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/","title":{"rendered":"Euro Road Trips: Portugal"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_text_align_left-phone et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&family=Playfair+Display:ital,wght@0,700;1,400&family=DM+Sans:wght@300;400;500&display=swap');\n \n* { box-sizing: border-box; margin: 0; padding: 0; }\n \n\/* \u2500\u2500 HERO \u2500\u2500 *\/\n.cv-hero {\n  position: relative;\n  min-height: 70vh;\n  background-color: #0a0a0a;\n  background-image: url('https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg');\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  overflow: hidden;\n}\n\n\/* 80% black overlay on top of the photo *\/\n.cv-hero::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: rgba(0, 0, 0, 0.8);\n  z-index: 1;\n}\n\n\/* push all hero content above the overlay *\/\n.cv-hero > * {\n  position: relative;\n  z-index: 2;\n}\n\n\/* gradient orbs *\/\n.cv-orb {\n  position: absolute;\n  border-radius: 50%;\n  filter: blur(80px);\n  pointer-events: none;\n}\n.cv-orb-1 {\n  width: 650px; height: 650px;\n  background: radial-gradient(circle, rgba(196,99,58,0.68) 0%, transparent 70%);\n  top: -180px; left: -180px;\n}\n.cv-orb-2 {\n  width: 550px; height: 550px;\n  background: radial-gradient(circle, rgba(26,74,92,0.72) 0%, transparent 70%);\n  bottom: -120px; right: -120px;\n}\n.cv-orb-3 {\n  width: 320px; height: 320px;\n  background: radial-gradient(circle, rgba(212,160,67,0.2) 0%, transparent 70%);\n  top: 45%; left: 58%;\n}\n \n\/* label above title *\/\n.cv-hero-label {\n  position: relative;\n  z-index: 10;\n  font-family: 'DM Sans', sans-serif;\n  font-size: px;\n  font-weight: 500;\n  letter-spacing: 0.45em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 28px;\n  animation: cvUp 1s ease 0.15s both;\n}\n \n\/* big title *\/\n.cv-hero-title {\n  position: relative;\n  z-index: 10;\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(80px, 14vw, 190px);\n  line-height: 0.88;\n  color: #f5f0eb;\n  text-align: center;\n  letter-spacing: -0.01em;\n  animation: cvUp 1s ease 0.35s both;\n}\n \n\/* outlined \"Portugal\" line *\/\n.cv-hero-title .outline {\n  display: block;\n  -webkit-text-stroke: 2px #c4633a;\n  color: transparent;\n}\n \n\/* italic subtitle *\/\n.cv-hero-sub {\n  position: relative;\n  z-index: 10;\n  font-family: 'Playfair Display', serif;\n  font-style: italic;\n  font-size: clamp(15px, 2vw, 20px);\n  color: #e8dcc8;\n  opacity: 0.75;\n  text-align: center;\n  max-width: 580px;\n  margin-top: 30px;\n  line-height: 1.65;\n  animation: cvUp 1s ease 0.55s both;\n}\n \n\/* byline *\/\n.cv-hero-byline {\n  position: relative;\n  z-index: 10;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.38em;\n  text-transform: uppercase;\n  color: #f5f0eb;\n  opacity: 0.28;\n  margin-top: 36px;\n  animation: cvUp 1s ease 0.75s both;\n}\n \n\/* scroll indicator \u2014 anchored to bottom of hero *\/\n.cv-scroll {\n  position: absolute;\n  bottom: 32px;\n  left: 50%;\n  transform: translateX(-50%);\n  z-index: 10;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 10px;\n  animation: cvUp 1s ease 1.1s both;\n}\n\n\/* \u2500\u2500 TICKER \u2500\u2500 *\/\n.cv-ticker-wrap {\n  background: #c4633a;\n  padding: 13px 0;\n  overflow: hidden;\n  white-space: nowrap;\n  width: 100%;\n}\n.cv-ticker-track {\n  display: inline-block;\n  \/* two identical copies side-by-side so it loops seamlessly *\/\n  animation: cvTicker 24s linear infinite;\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 17px;\n  letter-spacing: 0.18em;\n  color: #f5f0eb;\n  will-change: transform;\n}\n.cv-ticker-track .sep {\n  display: inline-block;\n  margin: 0 18px;\n  opacity: 0.4;\n}\n \n\/* \u2500\u2500 KEYFRAMES \u2500\u2500 *\/\n@keyframes cvUp {\n  from { opacity: 0; transform: translateY(28px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n@keyframes cvPulse {\n  0%, 100% { opacity: 0.3; transform: scaleY(0.9); }\n  50%       { opacity: 1;   transform: scaleY(1.1); }\n}\n@keyframes cvTicker {\n  from { transform: translateX(0); }\n  to   { transform: translateX(-50%); }\n}\n \n\/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n@media (max-width: 768px) {\n  .cv-hero { padding: 60px 20px 100px; }\n  .cv-orb-1 { width: 340px; height: 340px; }\n  .cv-orb-2 { width: 300px; height: 300px; }\n  .cv-orb-3 { display: none; }\n}\n  @media (max-width: 768px) {\n  .cv-hero {\n    min-height: 40vh;\n    align-items: center;\n    text-align: center;\n  }\n  .cv-hero-label,\n  .cv-hero-title,\n  .cv-hero-sub,\n  .cv-hero-byline {\n    text-align: center;\n    width: 100%;\n  }\n}\n<\/style>\n \n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"cv-hero\">\n \n  <!-- background orbs -->\n  <div class=\"cv-orb cv-orb-1\"><\/div>\n  <div class=\"cv-orb cv-orb-2\"><\/div>\n  <div class=\"cv-orb cv-orb-3\"><\/div>\n \n  <!-- content -->\n  <div class=\"cv-hero-label\">Carve Travel &nbsp;\/&nbsp; Euro Road Trips<\/div>\n \n  <div class=\"cv-hero-title\">\n    Euro Road\n    <span class=\"outline\">Portugal<\/span>\n  <\/div>\n \n  <p class=\"cv-hero-sub\">Rugged Atlantic coastline, white-washed villages, and design-led surf stays \u2014 from the Algarve to the Minho.<\/p>\n \n  \n \n  <!-- scroll indicator -->\n  \n  <\/div>\n \n<\/div>\n \n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 TICKER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"cv-ticker-wrap\">\n  <!--\n    The track contains TWO identical sets of destinations back-to-back.\n    The animation moves it left by exactly 50% (one set width),\n    then snaps back \u2014 creating a seamless infinite scroll.\n  -->\n  <div class=\"cv-ticker-track\">\n    Sagres <span class=\"sep\">\u25c6<\/span>\n    Lagos <span class=\"sep\">\u25c6<\/span>\n    Zavial <span class=\"sep\">\u25c6<\/span>\n    Arrifana <span class=\"sep\">\u25c6<\/span>\n    Aljezur <span class=\"sep\">\u25c6<\/span>\n    Lisbon <span class=\"sep\">\u25c6<\/span>\n    Carcavelos <span class=\"sep\">\u25c6<\/span>\n    Ericeira <span class=\"sep\">\u25c6<\/span>\n    Peniche <span class=\"sep\">\u25c6<\/span>\n    Supertubos <span class=\"sep\">\u25c6<\/span>\n    Nazar\u00e9 <span class=\"sep\">\u25c6<\/span>\n    Aveiro <span class=\"sep\">\u25c6<\/span>\n    Porto <span class=\"sep\">\u25c6<\/span>\n    Viana do Castelo <span class=\"sep\">\u25c6<\/span>\n    Moledo &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n    Sagres <span class=\"sep\">\u25c6<\/span>\n    Lagos <span class=\"sep\">\u25c6<\/span>\n    Zavial <span class=\"sep\">\u25c6<\/span>\n    Arrifana <span class=\"sep\">\u25c6<\/span>\n    Aljezur <span class=\"sep\">\u25c6<\/span>\n    Lisbon <span class=\"sep\">\u25c6<\/span>\n    Carcavelos <span class=\"sep\">\u25c6<\/span>\n    Ericeira <span class=\"sep\">\u25c6<\/span>\n    Peniche <span class=\"sep\">\u25c6<\/span>\n    Supertubos <span class=\"sep\">\u25c6<\/span>\n    Nazar\u00e9 <span class=\"sep\">\u25c6<\/span>\n    Aveiro <span class=\"sep\">\u25c6<\/span>\n    Porto <span class=\"sep\">\u25c6<\/span>\n    Viana do Castelo <span class=\"sep\">\u25c6<\/span>\n    Moledo &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n  <\/div>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n.cv-intro {\n  background: #f2ebe0;\n  padding: 100px 60px;\n  margin: 0 0px;\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 80px;\n  align-items: center;\n}\n.cv-intro-tag {\n  display: block;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.45em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 20px;\n}\n.cv-intro-heading {\n  font-family: 'Playfair Display', serif;\n  font-size: clamp(32px, 3.5vw, 50px);\n  line-height: 1.15;\n  color: #0a0a0a;\n  margin-bottom: 28px;\n  font-weight: 700;\n}\n.cv-intro-body {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 16px;\n  line-height: 1.85;\n  color: #3a3530;\n}\n.cv-intro-body p {\n  margin-bottom: 1.3em;\n}\n.cv-intro-body p:last-child {\n  margin-bottom: 0;\n}\n.cv-stat-stack {\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n}\n.cv-stat {\n  background: #0a0a0a;\n  padding: 22px 28px;\n  display: flex;\n  gap: 22px;\n  align-items: center;\n  border-left: 3px solid #c4633a;\n}\n.cv-stat-number {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 54px;\n  line-height: 1;\n  color: #c4633a;\n  min-width: 80px;\n}\n.cv-stat-number sup {\n  font-size: 24px;\n  vertical-align: super;\n}\n.cv-stat-label {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 12px;\n  line-height: 1.55;\n  color: #f5f0eb;\n  opacity: 0.65;\n  text-transform: uppercase;\n  letter-spacing: 0.1em;\n}\n@media (max-width: 768px) {\n  .cv-intro {\n    grid-template-columns: 1fr;\n    gap: 48px;\n    padding: 64px 24px;\n    margin: 0px;\n  }\n}\n<\/style>\n\n<div class=\"cv-intro\">\n  <div>\n    <span class=\"cv-intro-tag\">The Road Awaits<\/span>\n    <h2 class=\"cv-intro-heading\">Dawn sessions &amp; endless Atlantic swell<\/h2>\n    <div class=\"cv-intro-body\">\n      <p>Dawn sessions fuelled by strong coffee and custard tarts, a string of beach and reef breaks stitched together by smooth highways and bumpy coastal roads, and lineups that beckon swell from every direction. For surf road trips, Portugal delivers.<\/p>\n      <p>When the westerly swells hammer the open beaches, seek shelter in the coves of the Algarve. For sunset sessions, take your pick from the most southwesterly breaks to Santa Cruz. And when the crowds roll in, escape north to the quieter waves of Moledo.<\/p>\n      <p>From Sagres to Arrifana, Peniche to Porto, here's where to hit the road for endless waves and cool surfside stays.<\/p>\n    <\/div>\n  <\/div>\n\n  <div class=\"cv-stat-stack\">\n    <div class=\"cv-stat\">\n      <div class=\"cv-stat-number\">3<\/div>\n      <div class=\"cv-stat-label\">Epic route chapters<br>South to North<\/div>\n    <\/div>\n    <div class=\"cv-stat\">\n      <div class=\"cv-stat-number\">5<sup>+<\/sup><\/div>\n      <div class=\"cv-stat-label\">Design-led surf stays<br>hand-picked by Carve<\/div>\n    <\/div>\n    <div class=\"cv-stat\">\n      <div class=\"cv-stat-number\">800<span style=\"font-size:26px;vertical-align:middle\">km<\/span><\/div>\n      <div class=\"cv-stat-label\">Of Atlantic-battered<br>coastline to explore<\/div>\n    <\/div>\n  <\/div>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_2 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_2 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n.cv-map13 {\n  background: #f2ebe0;\n  padding: 80px 60px;\n  margin: 0;\n}\n.cv-map13-inner {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 64px;\n  align-items: start;\n}\n\n\/* \u2500\u2500 LEFT COLUMN: label + heading + map \u2500\u2500 *\/\n.cv-map13-left {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  justify-content: flex-start;\n}\n.cv-map13-label {\n  display: block;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.48em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 12px;\n}\n.cv-map13-heading {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(48px, 7vw, 88px);\n  color: #0a0a0a;\n  line-height: 1;\n  margin-bottom: 8px;\n}\n.cv-map13-subheading {\n  font-family: 'Playfair Display', serif;\n  font-style: italic;\n  font-size: 16px;\n  color: #3a3530;\n  opacity: 0.75;\n  margin-bottom: 36px;\n  line-height: 1.5;\n}\n.cv-map13-img-wrap {\n  width: 100%;\n}\n.cv-map13-img {\n  width: 100%;\n  height: auto;\n  display: block;\n  filter: drop-shadow(0 8px 32px rgba(196,99,58,0.15));\n}\n\n\/* \u2500\u2500 RIGHT COLUMN: stops list \u2500\u2500 *\/\n.cv-map13-stops {\n  display: flex;\n  flex-direction: column;\n}\n.cv-map13-route-label {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.42em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 24px;\n}\n.cv-map13-stop {\n  display: grid;\n  grid-template-columns: 20px 1fr auto;\n  gap: 16px;\n  align-items: center;\n  padding: 14px 0;\n  border-bottom: 1px solid rgba(10,10,10,0.08);\n}\n.cv-map13-dot {\n  width: 12px;\n  height: 12px;\n  border-radius: 50%;\n  background: #c4633a;\n  flex-shrink: 0;\n}\n.cv-map13-dot.final {\n  background: #d4a043;\n  box-shadow: 0 0 0 3px rgba(212,160,67,0.25);\n}\n.cv-map13-stop-info {\n  display: flex;\n  flex-direction: column;\n  gap: 3px;\n}\n.cv-map13-stop-name {\n  font-family: 'Playfair Display', serif;\n  font-size: 17px;\n  font-weight: 700;\n  color: #0a0a0a;\n  line-height: 1.2;\n}\n.cv-map13-stop-detail {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  color: #3a3530;\n  opacity: 0.6;\n  letter-spacing: 0.05em;\n}\n.cv-map13-stop-km {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 22px;\n  color: #c4633a;\n  white-space: nowrap;\n  text-align: right;\n}\n.cv-map13-stop-km.final { color: #d4a043; }\n\n\/* \u2500\u2500 BOTTOM STRIP \u2500\u2500 *\/\n.cv-map13-body {\n  margin-top: 48px;\n  padding-top: 40px;\n  border-top: 1px solid rgba(10,10,10,0.1);\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 40px;\n  align-items: end;\n}\n.cv-map13-body p {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 15px;\n  line-height: 1.8;\n  color: #3a3530;\n}\n.cv-map13-body-cta { display: flex; align-items: flex-end; }\n.cv-map13-cta-btn {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  background: #c4633a;\n  color: #f5f0eb;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 0.28em;\n  text-transform: uppercase;\n  padding: 15px 28px;\n  text-decoration: none;\n  transition: background 0.3s;\n  white-space: nowrap;\n}\n.cv-map13-cta-btn:hover { background: #0a0a0a; color: #f5f0eb; }\n\n\/* \u2500\u2500 MOBILE \u2500\u2500 *\/\n@media (max-width: 768px) {\n  .cv-map13 { padding: 64px 24px; }\n  .cv-map13-inner { grid-template-columns: 1fr; gap: 40px; }\n  .cv-map13-img.desktop { display: none; }\n  .cv-map13-img.mobile  { display: block; }\n  .cv-map13-body { grid-template-columns: 1fr; gap: 24px; }\n  .cv-map13-body-cta { align-items: flex-start; }\n}\n@media (min-width: 769px) {\n  .cv-map13-img.mobile  { display: none; }\n  .cv-map13-img.desktop { display: block; }\n}\n<\/style>\n\n<div class=\"cv-map13\">\n  <div class=\"cv-map13-inner\">\n\n    <!-- LEFT: heading + map -->\n    <div class=\"cv-map13-left\">\n      <span class=\"cv-map13-label\">Follow the Swell<\/span>\n      <div class=\"cv-map13-heading\">The Route<\/div>\n      <div class=\"cv-map13-subheading\">South to North \u2014 ~800km of Atlantic coastline<\/div>\n      <div class=\"cv-map13-img-wrap\">\n        <img decoding=\"async\" class=\"cv-map13-img desktop\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/CV231_Portugal.jpg\"   alt=\"Portugal surf road trip map\">\n        <img decoding=\"async\" class=\"cv-map13-img mobile\"  src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/2-CV231_Portugal.jpg\" alt=\"Portugal surf road trip map\">\n      <\/div>\n    <\/div>\n\n    <!-- RIGHT: stops list -->\n    <div class=\"cv-map13-stops\">\n      <div class=\"cv-map13-route-label\">Start \u203a Sagres &nbsp;\u2192&nbsp; Finish \u203a Moledo<\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Sagres &amp; Lagos<\/div>\n          <div class=\"cv-map13-stop-detail\">Mareta \u00b7 Tonel \u00b7 Beliche \u00b7 Zavial<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">0 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Arrifana &amp; Aljezur<\/div>\n          <div class=\"cv-map13-stop-detail\">Birds of Paradise Lodge<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~80 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Lisbon<\/div>\n          <div class=\"cv-map13-stop-detail\">Carcavelos \u00b7 Costa da Caparica<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~280 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Ericeira<\/div>\n          <div class=\"cv-map13-stop-detail\">World Surfing Reserve<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~340 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Peniche<\/div>\n          <div class=\"cv-map13-stop-detail\">Supertubos \u00b7 Baleal<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~370 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Nazar\u00e9<\/div>\n          <div class=\"cv-map13-stop-detail\">Giant waves \u00b7 Praia do Norte<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~440 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Porto<\/div>\n          <div class=\"cv-map13-stop-detail\">Matosinhos \u00b7 city break<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~600 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\">Viana do Castelo<\/div>\n          <div class=\"cv-map13-stop-detail\">FeelViana Sport Hotel<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km\">~720 km<\/div>\n      <\/div>\n\n      <div class=\"cv-map13-stop\">\n        <div class=\"cv-map13-dot final\"><\/div>\n        <div class=\"cv-map13-stop-info\">\n          <div class=\"cv-map13-stop-name\" style=\"color:#d4a043\">Moledo<\/div>\n          <div class=\"cv-map13-stop-detail\">Journey's end \u00b7 Spanish border<\/div>\n        <\/div>\n        <div class=\"cv-map13-stop-km final\">~800 km<\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  \n\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_3 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_3 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n.cv-routes {\n  background: #f2ebe0;\n  padding: 100px 60px;\n  margin: 0;\n}\n.cv-routes-label {\n  display: block;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.48em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 12px;\n}\n.cv-routes-heading {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(48px, 7vw, 88px);\n  color: #0a0a0a;\n  line-height: 1;\n  margin-bottom: 80px;\n}\n\n\/* \u2500\u2500 individual route block \u2500\u2500 *\/\n.cv-route-block {\n  display: block;\n  margin-bottom: 80px;\n  padding-bottom: 80px;\n  border-bottom: 1px solid rgba(10,10,10,0.1);\n}\n.cv-route-block:last-child {\n  margin-bottom: 0;\n  padding-bottom: 0;\n  border-bottom: none;\n}\n\n\/* \u2500\u2500 image \u2500\u2500 *\/\n.cv-route-img-wrap {\n  position: relative;\n  overflow: hidden;\n  background: #0a0a0a;\n  width: 100%;\n  height: 520px;\n  margin-bottom: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.cv-route-img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: 50% 50%;\n  display: block;\n  filter: none;\n  mix-blend-mode: normal;\n  transition: transform 0.7s ease;\n}\n.cv-route-img-wrap:hover .cv-route-img {\n  transform: scale(1.03);\n}\n.cv-route-photo-credit {\n  position: absolute;\n  bottom: 10px;\n  right: 12px;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.15em;\n  text-transform: uppercase;\n  color: rgba(245,240,235,0.6);\n  background: rgba(10,10,10,0.45);\n  padding: 3px 8px;\n  backdrop-filter: blur(4px);\n  -webkit-backdrop-filter: blur(4px);\n}\n.cv-route-chapter-num {\n  position: absolute;\n  top: 16px;\n  left: 16px;\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 13px;\n  letter-spacing: 0.3em;\n  color: #f5f0eb;\n  background: #c4633a;\n  padding: 5px 12px;\n  z-index: 2;\n}\n\n\/* \u2500\u2500 text \u2500\u2500 *\/\n.cv-route-text {\n  max-width: 760px;\n}\n.cv-route-tag {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.42em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 14px;\n  display: block;\n}\n.cv-route-title {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(36px, 5vw, 64px);\n  color: #0a0a0a;\n  line-height: 1;\n  margin-bottom: 20px;\n}\n.cv-route-divider {\n  width: 40px;\n  height: 2px;\n  background: #c4633a;\n  margin-bottom: 24px;\n}\n.cv-route-body {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 15px;\n  line-height: 1.85;\n  color: #3a3530;\n}\n.cv-route-body p {\n  margin-bottom: 1.2em;\n}\n.cv-route-body p:last-child {\n  margin-bottom: 0;\n}\n.cv-route-highlights {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 28px;\n}\n.cv-route-highlight {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.18em;\n  text-transform: uppercase;\n  background: #e8dcc8;\n  color: #0a0a0a;\n  padding: 5px 12px;\n}\n\n\/* \u2500\u2500 route 03 accent panel (no image) \u2500\u2500 *\/\n.cv-route-accent-panel {\n  background: #0a0a0a;\n  padding: 48px 40px;\n  margin-bottom: 40px;\n  position: relative;\n  overflow: hidden;\n}\n.cv-route-accent-panel::before {\n  content: '03';\n  position: absolute;\n  bottom: -20px;\n  right: -10px;\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 200px;\n  color: rgba(196,99,58,0.1);\n  line-height: 1;\n  pointer-events: none;\n  user-select: none;\n}\n.cv-route-accent-quote {\n  font-family: 'Playfair Display', serif;\n  font-size: clamp(22px, 3vw, 36px);\n  font-style: italic;\n  color: #f5f0eb;\n  line-height: 1.4;\n  margin-bottom: 36px;\n  position: relative;\n  z-index: 2;\n  max-width: 680px;\n}\n.cv-route-accent-stops {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0;\n  position: relative;\n  z-index: 2;\n}\n.cv-route-accent-stop {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 10px 24px 10px 0;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n  color: #e8dcc8;\n  opacity: 0.65;\n  margin-right: 24px;\n  border-bottom: 1px solid rgba(245,240,235,0.08);\n  width: 100%;\n}\n.cv-route-accent-stop-dot {\n  width: 6px;\n  height: 6px;\n  border-radius: 50%;\n  background: #c4633a;\n  flex-shrink: 0;\n}\n\n@media (max-width: 768px) {\n  .cv-routes { padding: 64px 24px; }\n  .cv-routes-heading { margin-bottom: 48px; }\n  .cv-route-block { margin-bottom: 56px; padding-bottom: 56px; }\n  .cv-route-img-wrap { height: 300px; }\n  .cv-route-accent-panel { padding: 32px 24px; }\n}\n<\/style>\n\n<div class=\"cv-routes\">\n\n  <span class=\"cv-routes-label\">Three Chapters<\/span>\n  <div class=\"cv-routes-heading\">The Road<\/div>\n\n  <!-- \u2500\u2500 ROUTE 01: Southern Algarve to Arrifana \u2500\u2500 -->\n  <div class=\"cv-route-block\">\n    <div class=\"cv-route-img-wrap\">\n      <img decoding=\"async\"\n        class=\"cv-route-img\"\n        src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/evert-van-duijn-J6Z9IifdDD0-unsplash.jpg\"\n        alt=\"Surfing Portugal \u2014 Southern Algarve\"\n      >\n      <div class=\"cv-route-chapter-num\">Route 01<\/div>\n      <div class=\"cv-route-photo-credit\">\u00a9 Evert van Duijn \/ Unsplash<\/div>\n    <\/div>\n    <div class=\"cv-route-text\">\n      <span class=\"cv-route-tag\">Southern Algarve &nbsp;\u203a&nbsp; Arrifana &nbsp;\u00b7&nbsp; ~180km<\/span>\n      <div class=\"cv-route-title\">Algarve to Arrifana<\/div>\n      <div class=\"cv-route-divider\"><\/div>\n      <div class=\"cv-route-body\">\n        <p>From sheltered nooks along the south coast to the swell magnets and dramatic cliffs of the west coast, the Algarve is made for shoulder-season scoring with the freedom to flow with the wind and tides.<\/p>\n        <p>Start in the laid-back village of Praia da Luz, where mellow beach breaks and glassy mornings set the tone before heading west. Along the way check out Zavial \u2014 which delivers a world-class right reeling off the cliffs on its day.<\/p>\n        <p>Pause at Sagres and make memmo Baleeira your base for a few days or Lemontree Eco Surf House, to make the most of sheltered Mareta, the wedges of Tonel and the barrels of Beliche \u2014 as well as a scattering of breaks along the bumpy road from Cabo de S\u00e3o Vicente.<\/p>\n        <p>Then follow the Atlantic-battered headlands from Amado to Arrifana's picture-perfect bay, clocking every flamingo-pink sunset until you reach Birds of Paradise and wind down your road trip in Aljezur.<\/p>\n      <\/div>\n      <div class=\"cv-route-highlights\">\n        <span class=\"cv-route-highlight\">Praia da Luz<\/span>\n        <span class=\"cv-route-highlight\">Zavial<\/span>\n        <span class=\"cv-route-highlight\">Sagres<\/span>\n        <span class=\"cv-route-highlight\">Tonel<\/span>\n        <span class=\"cv-route-highlight\">Beliche<\/span>\n        <span class=\"cv-route-highlight\">Arrifana<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2500\u2500 ROUTE 02: Lisbon to Peniche \u2500\u2500 -->\n  <div class=\"cv-route-block\">\n    <div class=\"cv-route-img-wrap\">\n      <img decoding=\"async\"\n        class=\"cv-route-img\"\n        src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/diego-garcia-CVZ0y7APRtU-unsplash.jpg\"\n        alt=\"Surfing Portugal \u2014 Lisbon to Peniche\"\n      >\n      <div class=\"cv-route-chapter-num\">Route 02<\/div>\n      <div class=\"cv-route-photo-credit\">\u00a9 Diego Garcia \/ Unsplash<\/div>\n    <\/div>\n    <div class=\"cv-route-text\">\n      <span class=\"cv-route-tag\">Lisbon &nbsp;\u203a&nbsp; Peniche &nbsp;\u00b7&nbsp; ~90km<\/span>\n      <div class=\"cv-route-title\">Lisbon to Peniche<\/div>\n      <div class=\"cv-route-divider\"><\/div>\n      <div class=\"cv-route-body\">\n        <p>From Lisbon's Carcavelos beach breaks to Ericeira's reef setups and Peniche's all-angle consistency, this stretch is where urban energy meets serious surf pedigree.<\/p>\n        <p>Kick things off just outside the capital with a punchy session at Carcavelos before heading north along the coastal road. The fishing village turned surf town of Ericeira edges a World Surfing Reserve \u2014 think classic reef breaks, cobbled streets, and sunset drinks overlooking Ribeira d'Ilhas.<\/p>\n        <p>Continue to Peniche, the wave-magnet peninsula where swell wraps in from every direction, lighting up everything from the mellow beach break of Baleal to hollow Supertubos barrels.<\/p>\n        <p>Between surfs, expect seafood spots, surf shops, and a steady buzz of travelling surfers chasing the next pulse of Atlantic swell.<\/p>\n      <\/div>\n      <div class=\"cv-route-highlights\">\n        <span class=\"cv-route-highlight\">Carcavelos<\/span>\n        <span class=\"cv-route-highlight\">Ericeira<\/span>\n        <span class=\"cv-route-highlight\">Ribeira d'Ilhas<\/span>\n        <span class=\"cv-route-highlight\">Baleal<\/span>\n        <span class=\"cv-route-highlight\">Supertubos<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2500\u2500 ROUTE 03: Nazar\u00e9 to Moledo \u2500\u2500 -->\n  <div class=\"cv-route-block\">\n    <div class=\"cv-route-accent-panel\">\n      <div class=\"cv-route-accent-quote\">\"Less crowded and more elemental \u2014 northern Portugal rewards those who make it this far.\"<\/div>\n      <div class=\"cv-route-accent-stops\">\n        <div class=\"cv-route-accent-stop\"><div class=\"cv-route-accent-stop-dot\"><\/div>Nazar\u00e9 \u00b7 Giant waves<\/div>\n        <div class=\"cv-route-accent-stop\"><div class=\"cv-route-accent-stop-dot\"><\/div>Aveiro \u00b7 Pine coast<\/div>\n        <div class=\"cv-route-accent-stop\"><div class=\"cv-route-accent-stop-dot\"><\/div>Praia da Tocha \u00b7 Sea Natives Camp<\/div>\n        <div class=\"cv-route-accent-stop\"><div class=\"cv-route-accent-stop-dot\"><\/div>Porto \u00b7 City break<\/div>\n        <div class=\"cv-route-accent-stop\"><div class=\"cv-route-accent-stop-dot\"><\/div>Viana do Castelo \u00b7 FeelViana Hotel<\/div>\n        <div class=\"cv-route-accent-stop\" style=\"border-bottom:none;color:#d4a043;opacity:1;\">\n          <div class=\"cv-route-accent-stop-dot\" style=\"background:#d4a043;\"><\/div>Moledo \u00b7 Journey's end\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cv-route-text\">\n      <span class=\"cv-route-tag\">Nazar\u00e9 &nbsp;\u203a&nbsp; Moledo &nbsp;\u00b7&nbsp; ~230km<\/span>\n      <div class=\"cv-route-title\">Nazar\u00e9 to Moledo<\/div>\n      <div class=\"cv-route-divider\"><\/div>\n      <div class=\"cv-route-body\">\n        <p>Less crowded and more elemental, northern Portugal rewards wave seekers with powerful beach breaks, river mouths, and a slower pace \u2014 ideal for spring swells and open-road freedom.<\/p>\n        <p>Kick off from Nazar\u00e9 \u2014 if you're lucky you'll get to witness its giant waves \u2014 before heading up Portugal's wilder and less-travelled northern coast. Think pine forests and long empty beaches toward Aveiro, then the uncrowded peaks of Praia da Tocha, where the Sea Natives camp sits behind the shifting sands. Further on, Porto adds a shot of city life before the coastline opens again.<\/p>\n        <p>Stop at sustainable hotel FeelViana to enjoy its Nordic architecture, the area's natural beauty, and consistent conditions at Praia do Cabedelo, before ending your journey at Moledo on the Spanish border.<\/p>\n      <\/div>\n      <div class=\"cv-route-highlights\">\n        <span class=\"cv-route-highlight\">Nazar\u00e9<\/span>\n        <span class=\"cv-route-highlight\">Praia da Tocha<\/span>\n        <span class=\"cv-route-highlight\">Porto<\/span>\n        <span class=\"cv-route-highlight\">FeelViana<\/span>\n        <span class=\"cv-route-highlight\">Moledo<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_4 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_4 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n.cv-stay-cover, .cvs-modal-imgs img {\n  filter: none !important;\n  mix-blend-mode: normal !important;\n  isolation: isolate;\n}\n<\/style>\n<style>\n.cv-stays {\n  background: #f2ebe0;\n  padding: 100px 60px;\n  margin: 0;\n}\n.cv-stays-label {\n  display: block;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.48em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 12px;\n}\n.cv-stays-heading {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(48px, 7vw, 88px);\n  color: #0a0a0a;\n  line-height: 1;\n  margin-bottom: 64px;\n}\n.cv-stays-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 28px;\n}\n.cv-stay {\n  background: #fff;\n  overflow: hidden;\n  box-shadow: 0 2px 24px rgba(10,10,10,0.07);\n  transition: transform 0.3s ease, box-shadow 0.3s ease;\n  display: flex;\n  flex-direction: column;\n}\n.cv-stay:hover {\n  transform: translateY(-5px);\n  box-shadow: 0 10px 48px rgba(10,10,10,0.13);\n}\n.cv-stay-imgwrap {\n  height: 240px;\n  overflow: hidden;\n  position: relative;\n  flex-shrink: 0;\n}\n.cv-stay-cover {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  display: block;\n  transition: transform 0.6s ease;\n}\n.cv-stay:hover .cv-stay-cover { transform: scale(1.04); }\n.cv-stay-badge {\n  position: absolute;\n  top: 14px;\n  right: 14px;\n  background: #c4633a;\n  color: #f5f0eb;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.28em;\n  text-transform: uppercase;\n  padding: 5px 12px;\n  z-index: 2;\n}\n.cv-stay-body {\n  padding: 28px 32px 32px;\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n}\n.cv-stay-loc {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.35em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 8px;\n}\n.cv-stay-name {\n  font-family: 'Playfair Display', serif;\n  font-size: 22px;\n  font-weight: 700;\n  color: #0a0a0a;\n  line-height: 1.2;\n  margin-bottom: 14px;\n}\n.cv-stay-desc {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 14px;\n  line-height: 1.75;\n  color: #4a4540;\n  flex: 1;\n  margin-bottom: 22px;\n}\n.cv-stay-footer {\n  border-top: 1px solid rgba(10,10,10,0.08);\n  padding-top: 18px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n.cv-stay-tags { display: flex; gap: 7px; flex-wrap: wrap; }\n.cv-stay-tag {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  background: #e8dcc8;\n  color: #0a0a0a;\n  padding: 4px 10px;\n}\n.cv-stay-footer-right {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n}\n.cv-stay-link {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 0.2em;\n  text-transform: uppercase;\n  color: #c4633a;\n  text-decoration: none;\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  white-space: nowrap;\n  transition: gap 0.3s;\n}\n.cv-stay-link:hover { gap: 10px; }\n.cv-stay-readmore {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 0.2em;\n  text-transform: uppercase;\n  color: #0a0a0a;\n  background: none;\n  border: 1px solid rgba(10,10,10,0.2);\n  padding: 7px 14px;\n  cursor: pointer;\n  white-space: nowrap;\n  transition: background 0.2s, color 0.2s;\n}\n.cv-stay-readmore:hover { background: #0a0a0a; color: #f5f0eb; }\n\n\/* wide Lemontree card *\/\n.cv-stay-wide { grid-column: 1 \/ -1; }\n.cv-stay-wide .cv-stay-inner {\n  display: grid;\n  grid-template-columns: 300px 1fr;\n}\n.cv-stay-wide .cv-stay-imgwrap {\n  height: 100%;\n  min-height: 280px;\n}\n\n\/* \u2500\u2500 MODALS \u2500\u2500 *\/\n.cvs-modal-backdrop {\n  display: none;\n  position: fixed;\n  inset: 0;\n  background: rgba(10,10,10,0.88);\n  z-index: 99999;\n  align-items: center;\n  justify-content: center;\n  padding: 20px;\n  backdrop-filter: blur(6px);\n  -webkit-backdrop-filter: blur(6px);\n}\n.cvs-modal-backdrop.open {\n  display: flex;\n  animation: cvsModalFade 0.3s ease both;\n}\n.cvs-modal-box {\n  background: #f2ebe0;\n  max-width: 720px;\n  width: 100%;\n  max-height: 90vh;\n  overflow-y: auto;\n  position: relative;\n  animation: cvsModalSlide 0.35s ease both;\n}\n.cvs-modal-close {\n  position: absolute;\n  top: 16px; right: 16px;\n  width: 38px; height: 38px;\n  background: rgba(10,10,10,0.65);\n  border: none;\n  color: #f5f0eb;\n  font-size: 18px;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: background 0.2s;\n  z-index: 10;\n}\n.cvs-modal-close:hover { background: #c4633a; }\n.cvs-modal-header {\n  padding: 40px 40px 0;\n}\n.cvs-modal-tag {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.4em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 8px;\n}\n.cvs-modal-title {\n  font-family: 'Playfair Display', serif;\n  font-size: 34px;\n  font-weight: 700;\n  color: #0a0a0a;\n  line-height: 1.1;\n  margin-bottom: 28px;\n}\n.cvs-modal-imgs {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 3px;\n  margin-bottom: 0;\n}\n.cvs-modal-imgs img {\n  width: 100%;\n  height: 220px;\n  object-fit: cover;\n  display: block;\n}\n.cvs-modal-feature-bar {\n  background: #0a0a0a;\n  padding: 18px 40px;\n  display: flex;\n  gap: 10px;\n  flex-wrap: wrap;\n  margin-bottom: 0;\n}\n.cvs-modal-pill {\n  background: #c4633a;\n  color: #f5f0eb;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 9px;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  padding: 5px 13px;\n}\n.cvs-modal-body {\n  padding: 32px 40px 40px;\n}\n.cvs-modal-body p {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 15px;\n  line-height: 1.8;\n  color: #3a3530;\n  margin-bottom: 1.2em;\n}\n.cvs-modal-cta {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  background: #c4633a;\n  color: #f5f0eb;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 0.28em;\n  text-transform: uppercase;\n  padding: 15px 28px;\n  text-decoration: none;\n  transition: background 0.3s;\n  margin-top: 8px;\n}\n.cvs-modal-cta:hover { background: #1a4a5c; color: #f5f0eb; }\n\n@keyframes cvsModalFade  { from{opacity:0} to{opacity:1} }\n@keyframes cvsModalSlide { from{transform:translateY(36px);opacity:0} to{transform:translateY(0);opacity:1} }\n\n@media (max-width: 768px) {\n  .cv-stays { padding: 64px 24px; }\n  .cv-stays-grid { grid-template-columns: 1fr; }\n  .cv-stay-wide .cv-stay-inner { grid-template-columns: 1fr; }\n  .cv-stay-wide .cv-stay-imgwrap { height: 240px; }\n  .cv-stay:hover { transform: none; }\n  .cvs-modal-imgs { grid-template-columns: 1fr; }\n  .cvs-modal-imgs img { height: 180px; }\n  .cvs-modal-header, .cvs-modal-body, .cvs-modal-feature-bar { padding-left: 24px; padding-right: 24px; }\n}\n<\/style>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 WHERE TO STAY \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"cv-stays\">\n\n  <span class=\"cv-stays-label\">Hand-Picked by Carve<\/span>\n  <div class=\"cv-stays-heading\">Where to Stay<\/div>\n\n  <div class=\"cv-stays-grid\">\n\n    <!-- \u2500\u2500 Birds of Paradise \u2500\u2500 -->\n    <div class=\"cv-stay\">\n      <div class=\"cv-stay-imgwrap\">\n        <img decoding=\"async\" class=\"cv-stay-cover\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/SON07308.jpg\" alt=\"Birds of Paradise Lodge, Aljezur\">\n        <div class=\"cv-stay-badge\">Aljezur<\/div>\n      <\/div>\n      <div class=\"cv-stay-body\">\n        <div class=\"cv-stay-loc\">Aljezur \u00b7 Vale da Telha<\/div>\n        <div class=\"cv-stay-name\">Birds of Paradise Lodge<\/div>\n        <p class=\"cv-stay-desc\">A surfers' retreat set within a nature reserve by the Atlantic. Six individually designed bedrooms, rooftop yoga, a solar-heated saltwater pool, and world-class surf just around the corner.<\/p>\n        <div class=\"cv-stay-footer\">\n          <div class=\"cv-stay-tags\">\n            <span class=\"cv-stay-tag\">Surf Lodge<\/span>\n            <span class=\"cv-stay-tag\">Yoga<\/span>\n            <span class=\"cv-stay-tag\">Co-living<\/span>\n          <\/div>\n          <div class=\"cv-stay-footer-right\">\n            <button class=\"cv-stay-readmore\" onclick=\"cvsOpen('birds')\">Read More<\/button>\n            <a href=\"https:\/\/www.birdsofparadiselodge.com\" target=\"_blank\" class=\"cv-stay-link\">Visit \u2192<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 Memmo Baleeira \u2500\u2500 -->\n    <div class=\"cv-stay\">\n      <div class=\"cv-stay-imgwrap\">\n        <img decoding=\"async\" class=\"cv-stay-cover\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/002_MemmoBaleeira_OutdoorPool.jpg\" alt=\"Memmo Baleeira, Sagres\">\n        <div class=\"cv-stay-badge\">Sagres<\/div>\n      <\/div>\n      <div class=\"cv-stay-body\">\n        <div class=\"cv-stay-loc\">Sagres \u00b7 Atlantic Views<\/div>\n        <div class=\"cv-stay-name\">Memmo Baleeira<\/div>\n        <p class=\"cv-stay-desc\">A Design Hotels member overlooking the Atlantic. Expert surf coaching, daily yoga, underwater breath-hold training, and minimalist contemporary design \u2014 Sagres at its finest.<\/p>\n        <div class=\"cv-stay-footer\">\n          <div class=\"cv-stay-tags\">\n            <span class=\"cv-stay-tag\">Design Hotel<\/span>\n            <span class=\"cv-stay-tag\">Coaching<\/span>\n            <span class=\"cv-stay-tag\">Wellness<\/span>\n          <\/div>\n          <div class=\"cv-stay-footer-right\">\n            <button class=\"cv-stay-readmore\" onclick=\"cvsOpen('memmo')\">Read More<\/button>\n            <a href=\"https:\/\/memmohotels.com\/baleeira\" target=\"_blank\" class=\"cv-stay-link\">Visit \u2192<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 Sea Natives \u2500\u2500 -->\n    <div class=\"cv-stay\">\n      <div class=\"cv-stay-imgwrap\">\n        <img decoding=\"async\" class=\"cv-stay-cover\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/Luckybeanz_20250713__99C5236.jpg\" alt=\"Sea Natives Surf Camp, Praia da Tocha\">\n        <div class=\"cv-stay-badge\">Praia da Tocha<\/div>\n      <\/div>\n      <div class=\"cv-stay-body\">\n        <div class=\"cv-stay-loc\">Praia da Tocha \u00b7 Pine Forest<\/div>\n        <div class=\"cv-stay-name\">Sea Natives Surf Camp<\/div>\n        <p class=\"cv-stay-desc\">Skip the summer crowds. Tipi accommodation in a pine forest, quality coaching for all levels, yoga, kids animation, and sunset bonfires. Classic or Family camps available.<\/p>\n        <div class=\"cv-stay-footer\">\n          <div class=\"cv-stay-tags\">\n            <span class=\"cv-stay-tag\">Surf Camp<\/span>\n            <span class=\"cv-stay-tag\">Family<\/span>\n            <span class=\"cv-stay-tag\">Tipi<\/span>\n          <\/div>\n          <div class=\"cv-stay-footer-right\">\n            <button class=\"cv-stay-readmore\" onclick=\"cvsOpen('seanatives')\">Read More<\/button>\n            <a href=\"https:\/\/sea-natives.com\" target=\"_blank\" class=\"cv-stay-link\">Visit \u2192<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 FeelViana \u2500\u2500 -->\n    <div class=\"cv-stay\">\n      <div class=\"cv-stay-imgwrap\">\n        <img decoding=\"async\" class=\"cv-stay-cover\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/feel-vida.jpg\" alt=\"FeelViana Sport Hotel\">\n        <div class=\"cv-stay-badge\">Viana do Castelo<\/div>\n      <\/div>\n      <div class=\"cv-stay-body\">\n        <div class=\"cv-stay-loc\">Praia do Cabedelo \u00b7 North Portugal<\/div>\n        <div class=\"cv-stay-name\">FeelViana Sport Hotel<\/div>\n        <p class=\"cv-stay-desc\">A sustainable four-star hotel clad entirely in wood, 200 metres from the Atlantic. Surf sessions, longboard coaching, spa, pools, yoga, and stylish rooms designed for a seamless connection to nature.<\/p>\n        <div class=\"cv-stay-footer\">\n          <div class=\"cv-stay-tags\">\n            <span class=\"cv-stay-tag\">Sustainable<\/span>\n            <span class=\"cv-stay-tag\">4-Star<\/span>\n            <span class=\"cv-stay-tag\">Longboard<\/span>\n          <\/div>\n          <div class=\"cv-stay-footer-right\">\n            <button class=\"cv-stay-readmore\" onclick=\"cvsOpen('feelviana')\">Read More<\/button>\n            <a href=\"https:\/\/feelviana.com\" target=\"_blank\" class=\"cv-stay-link\">Visit \u2192<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 Lemontree \u2014 wide featured card \u2500\u2500 -->\n    <div class=\"cv-stay cv-stay-wide\">\n      <div class=\"cv-stay-inner\">\n        <div class=\"cv-stay-imgwrap\">\n          <img decoding=\"async\" class=\"cv-stay-cover\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/20230505-A7409127-26889-2.jpg\" alt=\"Lemontree Eco Surfhouse, Sagres\">\n          <div class=\"cv-stay-badge\">Sagres<\/div>\n        <\/div>\n        <div class=\"cv-stay-body\">\n          <div class=\"cv-stay-loc\">Sagres \u00b7 Boutique<\/div>\n          <div class=\"cv-stay-name\">Lemontree Eco Surfhouse<\/div>\n          <p class=\"cv-stay-desc\">A sanctuary for travellers who've outgrown the classic surf camp. Right in the heart of Sagres, just across from the ocean \u2014 personalised coaching, organic breakfasts, sunset yoga, and the laidback rhythm of the Algarve right outside your door.<\/p>\n          <div class=\"cv-stay-footer\">\n            <div class=\"cv-stay-tags\">\n              <span class=\"cv-stay-tag\">Eco<\/span>\n              <span class=\"cv-stay-tag\">Boutique<\/span>\n              <span class=\"cv-stay-tag\">Coaching<\/span>\n              <span class=\"cv-stay-tag\">Yoga<\/span>\n            <\/div>\n            <div class=\"cv-stay-footer-right\">\n              <button class=\"cv-stay-readmore\" onclick=\"cvsOpen('lemontree')\">Read More<\/button>\n              <a href=\"https:\/\/lemontreesurfhouse.com\" target=\"_blank\" class=\"cv-stay-link\">Visit \u2192<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 MODALS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n\n<!-- MODAL: Birds of Paradise -->\n<div class=\"cvs-modal-backdrop\" id=\"cvs-modal-birds\" onclick=\"if(event.target===this)cvsClose('birds')\">\n  <div class=\"cvs-modal-box\">\n    <button class=\"cvs-modal-close\" onclick=\"cvsClose('birds')\">&#x2715;<\/button>\n    <div class=\"cvs-modal-header\">\n      <div class=\"cvs-modal-tag\">Aljezur \u00b7 Vale da Telha<\/div>\n      <div class=\"cvs-modal-title\">Birds of Paradise Lodge<\/div>\n    <\/div>\n    <div class=\"cvs-modal-imgs\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/4K3A0680.jpg\" alt=\"Birds of Paradise Lodge interior\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/SON08166.jpg\" alt=\"Birds of Paradise Lodge exterior\">\n    <\/div>\n    <div class=\"cvs-modal-feature-bar\">\n      <span class=\"cvs-modal-pill\">Surf Lodge<\/span>\n      <span class=\"cvs-modal-pill\">Rooftop Yoga<\/span>\n      <span class=\"cvs-modal-pill\">Saltwater Pool<\/span>\n      <span class=\"cvs-modal-pill\">Co-living<\/span>\n      <span class=\"cvs-modal-pill\">Nature Reserve<\/span>\n    <\/div>\n    <div class=\"cvs-modal-body\">\n      <p>In Aljezur's Vale da Telha, within a nature reserve by the Atlantic, lies Birds of Paradise \u2014 a surfers' retreat in southwest Portugal. Renovated in 2021 with respect for its natural surroundings, this boutique surf lodge offers a relaxed space to reconnect with nature, learn to surf, and embrace a slower, ocean-focused lifestyle.<\/p>\n      <p>Expect healthy breakfasts, surf-filled days, rooftop yoga, and a solar-heated saltwater pool from mid-April. The six individually designed bedrooms are bright and unique, each with an ensuite bathroom, large comfy bed, and private terrace or balcony.<\/p>\n      <p>From mid-November to mid-April, it becomes a co-living hub for remote workers and digital nomads \u2014 flexible stays, fast Wi-Fi, a shared kitchen, daily cleaning, and world-class surf just around the corner.<\/p>\n      <a href=\"https:\/\/www.birdsofparadiselodge.com\" target=\"_blank\" class=\"cvs-modal-cta\">Book Now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- MODAL: Memmo Baleeira -->\n<div class=\"cvs-modal-backdrop\" id=\"cvs-modal-memmo\" onclick=\"if(event.target===this)cvsClose('memmo')\">\n  <div class=\"cvs-modal-box\">\n    <button class=\"cvs-modal-close\" onclick=\"cvsClose('memmo')\">&#x2715;<\/button>\n    <div class=\"cvs-modal-header\">\n      <div class=\"cvs-modal-tag\">Sagres \u00b7 Atlantic Views<\/div>\n      <div class=\"cvs-modal-title\">Memmo Baleeira<\/div>\n    <\/div>\n    <div class=\"cvs-modal-imgs\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/0R2A7079.jpg\" alt=\"Memmo Baleeira hotel\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/0V7A0377.jpg\" alt=\"Memmo Baleeira surf\">\n    <\/div>\n    <div class=\"cvs-modal-feature-bar\">\n      <span class=\"cvs-modal-pill\">Design Hotel<\/span>\n      <span class=\"cvs-modal-pill\">Surf Coaching<\/span>\n      <span class=\"cvs-modal-pill\">Video Analysis<\/span>\n      <span class=\"cvs-modal-pill\">Yoga & Pilates<\/span>\n      <span class=\"cvs-modal-pill\">Breath-Hold Training<\/span>\n    <\/div>\n    <div class=\"cvs-modal-body\">\n      <p>Overlooking the Atlantic in Sagres, memmo Baleeira transforms a surf road trip through Portugal. With open ocean views and a prime location between two coastlines, it's the perfect place to rest between sessions and set off in search of the country's best waves.<\/p>\n      <p>Surfing is experienced authentically here \u2014 personalised sessions led by expert instructors, optional video analysis, and underwater fitness sessions teaching breath-hold techniques. Wellness is part of the hotel's DNA, with daily movement, yoga, and Pilates classes.<\/p>\n      <p>A member of Design Hotels, memmo Baleeira blends minimalist contemporary design with Sagres' relaxed vibe. Natural light and wide sea-facing windows create a serene retreat where the ocean is never far.<\/p>\n      <a href=\"https:\/\/memmohotels.com\/baleeira\" target=\"_blank\" class=\"cvs-modal-cta\">Book Now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- MODAL: Sea Natives -->\n<div class=\"cvs-modal-backdrop\" id=\"cvs-modal-seanatives\" onclick=\"if(event.target===this)cvsClose('seanatives')\">\n  <div class=\"cvs-modal-box\">\n    <button class=\"cvs-modal-close\" onclick=\"cvsClose('seanatives')\">&#x2715;<\/button>\n    <div class=\"cvs-modal-header\">\n      <div class=\"cvs-modal-tag\">Praia da Tocha \u00b7 Pine Forest<\/div>\n      <div class=\"cvs-modal-title\">Sea Natives Surf Camp<\/div>\n    <\/div>\n    <div class=\"cvs-modal-imgs\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/DSC06654.jpg\" alt=\"Sea Natives camp\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/SeaNatives-aug24-016.jpg\" alt=\"Sea Natives surfing\">\n    <\/div>\n    <div class=\"cvs-modal-feature-bar\">\n      <span class=\"cvs-modal-pill\">Surf Camp<\/span>\n      <span class=\"cvs-modal-pill\">Tipi Accommodation<\/span>\n      <span class=\"cvs-modal-pill\">Family Camp<\/span>\n      <span class=\"cvs-modal-pill\">Yoga<\/span>\n      <span class=\"cvs-modal-pill\">Sunset Bonfires<\/span>\n    <\/div>\n    <div class=\"cvs-modal-body\">\n      <p>Make the most of May, June and September with a slow and cosy getaway at Sea Natives Surf Camp in Praia da Tocha. Skip the summer crowds and enjoy the endless beach and quiet lineups. Nestled in a pine forest by the ocean, Sea Natives blends chilled community vibes with quality surf coaching for all levels.<\/p>\n      <p>Choose between the Classic surf camp or Family camp options \u2014 with comfortable tipi accommodation, healthy meals, yoga and skate sessions, kids animation, and even massage care. With a flexible, tailor-made package you can plan your perfect trip: more surf, more chill time in the hammock, shared dinners and sunset bonfires under clear skies.<\/p>\n      <p>You'll meet fellow ocean lovers from around the world while exploring Portugal's scenic coastline without the summer rush.<\/p>\n      <a href=\"https:\/\/sea-natives.com\" target=\"_blank\" class=\"cvs-modal-cta\">Book Now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- MODAL: FeelViana -->\n<div class=\"cvs-modal-backdrop\" id=\"cvs-modal-feelviana\" onclick=\"if(event.target===this)cvsClose('feelviana')\">\n  <div class=\"cvs-modal-box\">\n    <button class=\"cvs-modal-close\" onclick=\"cvsClose('feelviana')\">&#x2715;<\/button>\n    <div class=\"cvs-modal-header\">\n      <div class=\"cvs-modal-tag\">Praia do Cabedelo \u00b7 North Portugal<\/div>\n      <div class=\"cvs-modal-title\">FeelViana Sport Hotel<\/div>\n    <\/div>\n    <div class=\"cvs-modal-imgs\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/Screenshot-2026-03-17-at-11.38.15.jpg\" alt=\"FeelViana hotel\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/\u2022-Feel-yoga-EXTANTIA-0145.jpg\" alt=\"FeelViana yoga\">\n    <\/div>\n    <div class=\"cvs-modal-feature-bar\">\n      <span class=\"cvs-modal-pill\">Sustainable<\/span>\n      <span class=\"cvs-modal-pill\">4-Star Superior<\/span>\n      <span class=\"cvs-modal-pill\">Longboard Coaching<\/span>\n      <span class=\"cvs-modal-pill\">Spa<\/span>\n      <span class=\"cvs-modal-pill\">Indoor & Outdoor Pools<\/span>\n    <\/div>\n    <div class=\"cvs-modal-body\">\n      <p>Located in the pine forest of Praia do Cabedelo, FeelViana Sport Hotel is a sustainable four-star superior hotel entirely clad in wood and thoughtfully integrated into its natural surroundings. Just 200 metres from the Atlantic, the hotel is centred around sport, wellness and nature.<\/p>\n      <p>Guests can balance surf sessions and outdoor adventure with moments of relaxation at the spa, indoor and outdoor pools, yoga sessions and wellness facilities. FeelViana also offers longboard coaching experiences, with the possibility to include private or group video analysis sessions \u2014 a tailored approach to refine technique and deepen the connection with the ocean.<\/p>\n      <p>Accommodation includes stylish rooms and bungalows designed for comfort, simplicity and a seamless connection to nature \u2014 the ideal final chapter of the road trip.<\/p>\n      <a href=\"https:\/\/feelviana.com\" target=\"_blank\" class=\"cvs-modal-cta\">Book Now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- MODAL: Lemontree -->\n<div class=\"cvs-modal-backdrop\" id=\"cvs-modal-lemontree\" onclick=\"if(event.target===this)cvsClose('lemontree')\">\n  <div class=\"cvs-modal-box\">\n    <button class=\"cvs-modal-close\" onclick=\"cvsClose('lemontree')\">&#x2715;<\/button>\n    <div class=\"cvs-modal-header\">\n      <div class=\"cvs-modal-tag\">Sagres \u00b7 Boutique<\/div>\n      <div class=\"cvs-modal-title\">Lemontree Eco Surfhouse<\/div>\n    <\/div>\n    <div class=\"cvs-modal-imgs\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/carrie-oh-real-estate-lemontree-surfhouse-main-house-07754-2.jpg\" alt=\"Lemontree Eco Surfhouse exterior\">\n      <img decoding=\"async\" src=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/DSC_1446-2.jpg\" alt=\"Lemontree Eco Surfhouse interior\">\n    <\/div>\n    <div class=\"cvs-modal-feature-bar\">\n      <span class=\"cvs-modal-pill\">Eco Boutique<\/span>\n      <span class=\"cvs-modal-pill\">Surf Coaching<\/span>\n      <span class=\"cvs-modal-pill\">Video Analysis<\/span>\n      <span class=\"cvs-modal-pill\">Sunset Yoga<\/span>\n      <span class=\"cvs-modal-pill\">Organic Breakfast<\/span>\n    <\/div>\n    <div class=\"cvs-modal-body\">\n      <p>Lemontree Eco Surfhouse is a small, boutique surf house in the heart of Sagres \u2014 just across the street from the ocean. A sanctuary made for travellers that have outgrown the classic surf camp and want a more personal, flexible experience. With beaches, caf\u00e9s, waves and the friendly charm of the village right outside your door.<\/p>\n      <p>Surfing at Lemontree is highly personalised \u2014 beginner-friendly small-group lessons to build confidence in the water, or intermediate and advanced surf coaching with video analysis and surf-skate training to really take skills to the next level.<\/p>\n      <p>Start your day with a fresh organic breakfast in the garden, surf, cycle, or unwind with sunset yoga classes. It's a boutique surf experience where progression meets relaxation \u2014 giving you the space to switch off, forget about the outside world, and truly recharge.<\/p>\n      <a href=\"https:\/\/lemontreesurfhouse.com\" target=\"_blank\" class=\"cvs-modal-cta\">Book Now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\nfunction cvsOpen(id) {\n  var el = document.getElementById('cvs-modal-' + id);\n  if (el) { el.classList.add('open'); document.body.style.overflow = 'hidden'; }\n}\nfunction cvsClose(id) {\n  var el = document.getElementById('cvs-modal-' + id);\n  if (el) { el.classList.remove('open'); document.body.style.overflow = ''; }\n}\ndocument.addEventListener('keydown', function(e) {\n  if (e.key !== 'Escape') return;\n  document.querySelectorAll('.cvs-modal-backdrop.open').forEach(function(el) {\n    el.classList.remove('open');\n  });\n  document.body.style.overflow = '';\n});\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_5 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_5 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>\n.cv-reasons {\n  background: #0a0a0a;\n  padding: 100px 60px;\n  margin: 0 0px;\n}\n.cv-reasons-inner {\n  display: grid;\n  grid-template-columns: 260px 1fr;\n  gap: 80px;\n  max-width: 1100px;\n  align-items: start;\n}\n.cv-reasons-sticky {\n  position: sticky;\n  top: 80px;\n}\n.cv-reasons-label {\n  display: block;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 10px;\n  letter-spacing: 0.45em;\n  text-transform: uppercase;\n  color: #c4633a;\n  margin-bottom: 14px;\n}\n.cv-reasons-heading {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: clamp(52px, 7vw, 96px);\n  color: #f5f0eb;\n  line-height: 1;\n  margin-bottom: 20px;\n}\n.cv-reasons-heading span { color: #c4633a; }\n.cv-reasons-sub {\n  font-family: 'Playfair Display', serif;\n  font-style: italic;\n  font-size: 15px;\n  color: #e8dcc8;\n  opacity: 0.62;\n  line-height: 1.65;\n}\n.cv-reason {\n  border-bottom: 1px solid rgba(245,240,235,0.08);\n  padding: 26px 0;\n  display: grid;\n  grid-template-columns: 52px 1fr;\n  gap: 22px;\n  align-items: start;\n  transition: background 0.3s;\n  position: relative;\n}\n.cv-reason::before {\n  content: '';\n  position: absolute;\n  left: -60px; right: -60px; top: 0; bottom: 0;\n  background: rgba(196,99,58,0.04);\n  opacity: 0;\n  transition: opacity 0.3s;\n  pointer-events: none;\n}\n.cv-reason:hover::before { opacity: 1; }\n.cv-reason-num {\n  font-family: 'Bebas Neue', sans-serif;\n  font-size: 34px;\n  line-height: 1;\n  color: #c4633a;\n  opacity: 0.55;\n  padding-top: 3px;\n}\n.cv-reason-title {\n  font-family: 'Playfair Display', serif;\n  font-size: 17px;\n  font-weight: 700;\n  color: #f5f0eb;\n  margin-bottom: 7px;\n  line-height: 1.3;\n}\n.cv-reason-body {\n  font-family: 'DM Sans', sans-serif;\n  font-size: 14px;\n  line-height: 1.72;\n  color: #e8dcc8;\n  opacity: 0.58;\n}\n@media (max-width: 768px) {\n  .cv-reasons { padding: 64px 24px; margin: 0 -20px; }\n  .cv-reasons-inner { grid-template-columns: 1fr; gap: 40px; }\n  .cv-reasons-sticky { position: static; }\n  .cv-reason::before { left: -24px; right: -24px; }\n}\n<\/style>\n\n<div class=\"cv-reasons\">\n  <div class=\"cv-reasons-inner\">\n\n    <div class=\"cv-reasons-sticky\">\n      <span class=\"cv-reasons-label\">The Case For It<\/span>\n      <div class=\"cv-reasons-heading\">Why<br><span>Portugal<\/span><\/div>\n      <p class=\"cv-reasons-sub\">Ten reasons this stretch of Atlantic coast belongs on your bucket list \u2014 and your actual list.<\/p>\n    <\/div>\n\n    <div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">01<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Waves for all levels<\/div>\n          <p class=\"cv-reason-body\">From mellow beach breaks to powerful reef and point waves, Portugal's coastline offers something for everyone \u2014 beginners can find forgiving rollers, while advanced surfers can chase world-class swells.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">02<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Consistent Atlantic swell<\/div>\n          <p class=\"cv-reason-body\">Thanks to its exposure to the North Atlantic, Portugal enjoys reliable surf year-round. Autumn and winter bring bigger, more powerful waves, while summer offers clean, manageable surf.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">03<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Short distances, endless options<\/div>\n          <p class=\"cv-reason-body\">If the wind shifts or conditions change, the next break is never far. Portugal's compact coastline makes chasing perfect conditions effortless.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">04<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Affordable adventure<\/div>\n          <p class=\"cv-reason-body\">Compared to other European surf destinations, Portugal remains relatively budget-friendly \u2014 food, fuel, and accommodation included.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">05<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Dramatic coastal scenery<\/div>\n          <p class=\"cv-reason-body\">Rugged cliffs, golden beaches, and wild untouched stretches of coastline \u2014 perfect for sunrise surfs and sunset van hangs.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">06<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Surf culture meets laid-back living<\/div>\n          <p class=\"cv-reason-body\">Portugal blends a deep-rooted surf culture with a relaxed pace of life. Long lunches, strong coffee, and post-surf seafood feasts.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">07<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Year-round mild climate<\/div>\n          <p class=\"cv-reason-body\">Even in winter, temperatures stay relatively mild \u2014 making it a comfortable destination for a road trip in any season.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">08<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Easy logistics<\/div>\n          <p class=\"cv-reason-body\">Well-maintained roads, plentiful campsites, and surf-friendly towns make Portugal ideal for van life or spontaneous travel plans.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">09<\/div>\n        <div>\n          <div class=\"cv-reason-title\">Iconic surf spots<\/div>\n          <p class=\"cv-reason-body\">Tick off legendary breaks like Supertubos, Ribeira d'Ilhas, and Zavial \u2014 and discover hidden gems \u2014 all within a single trip.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"cv-reason\">\n        <div class=\"cv-reason-num\">10<\/div>\n        <div>\n          <div class=\"cv-reason-title\">More than just surfing<\/div>\n          <p class=\"cv-reason-body\">When the ocean rests, explore historic towns, sample local wines and cuisine, or simply soak up the coastal atmosphere unlike anywhere else in Europe.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Rugged Atlantic coastline, white-washed Portuguese villages, and design-led surf stays from the Algarve to the Minho.<\/p>\n","protected":false},"author":205,"featured_media":279981,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-279949","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Euro Road Trips: Portugal - Carvemag.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Euro Road Trips: Portugal - Carvemag.com\" \/>\n<meta property=\"og:description\" content=\"Rugged Atlantic coastline, white-washed Portuguese villages, and design-led surf stays from the Algarve to the Minho.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/\" \/>\n<meta property=\"og:site_name\" content=\"Carvemag.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/carvemag\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-28T09:49:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@carvemag\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/\",\"url\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/\",\"name\":\"Euro Road Trips: Portugal - Carvemag.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.carvemag.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/portugal-tangerine-dream.jpg\",\"datePublished\":\"2026-04-28T09:32:51+00:00\",\"dateModified\":\"2026-04-28T09:49:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.carvemag.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/portugal-tangerine-dream.jpg\",\"contentUrl\":\"https:\\\/\\\/www.carvemag.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/portugal-tangerine-dream.jpg\",\"width\":2400,\"height\":1600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/euro-road-trips-portugal\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.carvemag.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Euro Road Trips: Portugal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#website\",\"url\":\"https:\\\/\\\/www.carvemag.com\\\/\",\"name\":\"Carve Surfing Magazine\",\"description\":\"Carve Surfing Magazine | The World&#039;s Finest Surf Magazine\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#organization\"},\"alternateName\":\"carve mag\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.carvemag.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#organization\",\"name\":\"Carve Surfing Magazine\",\"alternateName\":\"Carve mag\",\"url\":\"https:\\\/\\\/www.carvemag.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Carve Surfing Magazine\"},\"image\":{\"@id\":\"https:\\\/\\\/www.carvemag.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/carvemag\",\"https:\\\/\\\/x.com\\\/carvemag\",\"https:\\\/\\\/www.instagram.com\\\/carvemag\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Euro Road Trips: Portugal - Carvemag.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/","og_locale":"en_US","og_type":"article","og_title":"Euro Road Trips: Portugal - Carvemag.com","og_description":"Rugged Atlantic coastline, white-washed Portuguese villages, and design-led surf stays from the Algarve to the Minho.","og_url":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/","og_site_name":"Carvemag.com","article_publisher":"https:\/\/www.facebook.com\/carvemag","article_modified_time":"2026-04-28T09:49:48+00:00","og_image":[{"width":2400,"height":1600,"url":"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@carvemag","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/","url":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/","name":"Euro Road Trips: Portugal - Carvemag.com","isPartOf":{"@id":"https:\/\/www.carvemag.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/#primaryimage"},"image":{"@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/#primaryimage"},"thumbnailUrl":"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg","datePublished":"2026-04-28T09:32:51+00:00","dateModified":"2026-04-28T09:49:48+00:00","breadcrumb":{"@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.carvemag.com\/euro-road-trips-portugal\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/#primaryimage","url":"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg","contentUrl":"https:\/\/www.carvemag.com\/wp-content\/uploads\/2026\/04\/portugal-tangerine-dream.jpg","width":2400,"height":1600},{"@type":"BreadcrumbList","@id":"https:\/\/www.carvemag.com\/euro-road-trips-portugal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.carvemag.com\/"},{"@type":"ListItem","position":2,"name":"Euro Road Trips: Portugal"}]},{"@type":"WebSite","@id":"https:\/\/www.carvemag.com\/#website","url":"https:\/\/www.carvemag.com\/","name":"Carve Surfing Magazine","description":"Carve Surfing Magazine | The World&#039;s Finest Surf Magazine","publisher":{"@id":"https:\/\/www.carvemag.com\/#organization"},"alternateName":"carve mag","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.carvemag.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.carvemag.com\/#organization","name":"Carve Surfing Magazine","alternateName":"Carve mag","url":"https:\/\/www.carvemag.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.carvemag.com\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"Carve Surfing Magazine"},"image":{"@id":"https:\/\/www.carvemag.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/carvemag","https:\/\/x.com\/carvemag","https:\/\/www.instagram.com\/carvemag\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/pages\/279949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/users\/205"}],"replies":[{"embeddable":true,"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/comments?post=279949"}],"version-history":[{"count":17,"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/pages\/279949\/revisions"}],"predecessor-version":[{"id":280102,"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/pages\/279949\/revisions\/280102"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/media\/279981"}],"wp:attachment":[{"href":"https:\/\/www.carvemag.com\/wp-json\/wp\/v2\/media?parent=279949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}