:root{--ink:#173c36;--gold:#a57d44;--paper:#f6f3eb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}header{max-width:1160px;margin:auto;padding:18px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px}header img{object-fit:contain}main{max-width:1100px;margin:auto;padding:25px 26px 50px}h1{font:clamp(38px,6.5vw,76px)/1.08 Georgia,serif;max-width:800px;margin:16px 0 24px;letter-spacing:-1.5px}h2{font:30px/1.2 Georgia,serif}h3{font:28px/1.2 Georgia,serif;margin:10px 0}a{color:inherit;text-underline-offset:4px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--gold);font-weight:750}.lead{font-size:18px;max-width:700px;color:#52665e}.paths{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}button,select,input{font:inherit}button,.button{cursor:pointer;border:1px solid #c5cdbf;border-radius:8px;padding:13px 18px;background:transparent;color:var(--ink);text-decoration:none;display:inline-block}button:hover,.resources a:hover{background:#e6ebdf}button.active,.button{background:var(--ink);color:white;border-color:var(--ink)}.planner{display:grid;grid-template-columns:2fr 1fr;gap:24px;background:white;border:1px solid #dedfd5;border-radius:14px;padding:24px;margin-bottom:46px}label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}input,select{padding:12px;border:1px solid #c9d0c4;border-radius:6px;color:var(--ink);background:white;max-width:100%;width:100%}header select{width:auto;font-size:14px}small{display:block;font-size:12px;color:#64746a;margin-top:7px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head span,.tag{font-size:12px;color:#68796b}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}article{background:#fff;border:1px solid #dedfd5;border-radius:14px;overflow:hidden}.art{height:200px;background-size:200% 200%;position:relative}.art::after{content:attr(data-label);position:absolute;bottom:12px;inset-inline-start:14px;font-size:10px;background:#fffdf3df;padding:3px 8px;border-radius:4px}.body{padding:23px}.body p{min-height:76px;color:#51665a}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}.number{font-family:Georgia;font-size:21px;color:var(--gold)}.practical,.next,.concierge{margin-top:40px;border-radius:14px;padding:26px;background:#e7ebdf}.concierge{margin:0 0 24px}.resources{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.resources a{background:#fff;padding:16px;border-radius:8px;text-decoration:none}.practical p,.next p{font-size:14px;max-width:800px}.next{background:transparent;border:1px dashed #acb9a5}footer{margin-top:50px;border-top:1px solid #ced4c7;padding-top:26px;display:flex;flex-direction:column;gap:8px;font-size:14px}footer p{font-size:12px;color:#627261}dialog{border:0;border-radius:16px;max-width:720px;width:calc(100% - 28px);padding:32px;color:var(--ink);max-height:90dvh}dialog::backdrop{background:#102d28b8}#close{position:sticky;top:0;float:inline-end;padding:0 10px;font-size:27px;background:white}.route-links{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.route-links a{border:1px solid #c4cdbd;padding:10px;border-radius:7px;text-decoration:none}.detail-note{font-size:13px;background:var(--paper);padding:15px}.detail-source{font-size:13px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}@media(max-width:650px){main{padding:15px 18px 36px}header{padding:14px 18px}.grid,.planner,.resources{grid-template-columns:1fr}.planner{gap:15px;padding:18px}.section-head{display:block}.section-head h2{margin-bottom:6px}.section-head span{display:block;margin-bottom:18px}.art{height:180px}.body p{min-height:0}.paths button{flex:1;min-width:140px;padding:12px}.body{padding:20px}dialog{padding:23px}}

#close{float:none;display:block;width:100%;text-align:start;font-size:15px;font-weight:700;padding:12px 15px;margin-bottom:20px;background:#f6f3eb;border:1px solid #c4cdbd;z-index:2}

#locate{font-size:14px;margin-top:10px;padding:8px 12px}#locate:disabled{opacity:.6;cursor:wait}#location-status:empty{display:none}

.top-tabs{display:flex;gap:10px;margin:24px 0 12px}.top-tabs button{flex:1}.selection-note,.place-meta{font-size:13px;color:#617363}.selection-note{padding:12px;border-inline-start:3px solid #a57d44;background:#f6f3eb}.place-card,.nearby-card{padding:23px;margin:22px 0;background:#faf9f3}.place-intro{font-size:18px}.booking-box{padding:22px;border:1px solid #b7c7aa;background:#eef2e6;border-radius:12px;margin:25px 0}.booking-box h3{font-size:24px}.booking-box .button{width:100%;text-align:center}.place-facts{padding:20px;border-radius:10px;background:#f6f3eb}.place-facts h3{font-size:23px}.place-sources{border-top:1px solid #d5dbcf;margin-top:28px;font-size:12px;padding-top:15px}.place-sources a{display:inline-block;margin-inline-end:16px}.nearby-card h3{font-size:25px}#detail:has(.place-card),#detail:has(.booking-box){max-width:800px}

.body h3 a{text-decoration:none}.body h3 a:hover{text-decoration:underline}
/* Editorial redesign: Lisbon colour, photography and clearer hierarchy. */

:root{--ink:#132844;--gold:#bd713b;--paper:#fffaf3}body{font-family:'DM Sans',system-ui,sans-serif;background:#fffaf3;color:var(--ink)}header{max-width:none;background:#fffdf8;border-bottom:1px solid #e4d9c9;padding:12px max(24px,calc((100vw - 1120px)/2))}header img{width:110px;height:78px}header select{border:0;background:#f0e8da;border-radius:30px;padding:12px 17px}main{max-width:1180px;padding-top:0}main>.eyebrow{margin-top:48px;color:#b66038}h1,h2,h3{font-family:'Playfair Display',Georgia,serif}h1{font-size:clamp(48px,7.5vw,94px);font-weight:500;letter-spacing:-2.5px;max-width:850px}main>.lead{max-width:550px;font-size:19px}main{position:relative}main:before{content:'';display:block;height:330px;margin:26px 0 0;border-radius:6px 60px 6px 6px;background:linear-gradient(90deg,#112d4650,transparent),url('../tesla-costa-conceito.webp') center 54%/cover}main>.eyebrow{font-weight:700;letter-spacing:3px}.paths{gap:12px;margin:32px 0}.paths button{border:0;background:#f0e4d4;border-radius:40px;padding:16px 25px;font-weight:600}.paths button.active{background:#bd5d3e;box-shadow:0 6px 20px #bd5d3e25;color:white}.planner{background:#132844;color:#fff;border:0;border-radius:18px;box-shadow:0 20px 35px #13284412;margin:24px 0 65px;padding:26px 30px}.planner label{color:#f5d2a5;letter-spacing:.4px}.planner input,.planner select{border:0;background:#ffffff12;border-bottom:1px solid #ffffff50;color:#fff;border-radius:0;padding-inline:0}.planner select option{color:#132844;background:white}.planner input::placeholder{color:#c1c9d3}.planner small{color:#d3dbe6}.planner #locate{color:#fff;border-color:#ffffff60;border-radius:30px;font-size:12px;padding:7px 13px}.section-head h2{font-size:clamp(31px,4vw,46px);letter-spacing:-1px}.grid{gap:32px}.grid>article{border:0;background:transparent;border-radius:0;overflow:visible}.art{height:300px;border-radius:8px 38px 8px 8px;transition:transform .25s}.grid>article:hover .art{transform:translateY(-4px)}.body{padding:22px 0 30px}.body h3{font-size:34px;margin:9px 0}.body .tag{font-weight:700;letter-spacing:2px;color:#b55c39;font-size:10px}.body p{font-size:16px;color:#536073;max-width:470px;min-height:76px}.card-foot{justify-content:flex-start;gap:20px}.card-foot button{border:0;border-radius:50px;background:#132844;color:white;font-size:14px;padding:12px 22px}.number{font-size:26px;color:#b55c39}.art::after{font-size:9px;letter-spacing:.5px}.practical{background:#dce9ec;padding:35px;border-radius:8px 40px 8px 8px}.practical h2{font-size:37px}.resources a{background:#ffffffa8;border:0;border-radius:8px;padding:22px;font-weight:600}.resources a:hover{background:white;color:#a65035}.next{border:0;background:#f2e4d1;border-radius:8px;padding:35px}.next h2{font-size:33px}footer{padding:30px 0 10px;border-top-color:#d8cab6}dialog{background:#fffaf3;max-width:850px!important;border-radius:8px 30px 8px 8px;padding:32px 38px}dialog::backdrop{background:#0b213ad9;backdrop-filter:blur(7px)}#close{border:0;background:#efe4d4;border-radius:30px;width:auto;color:#132844;font-size:13px;padding:11px 20px;margin-bottom:30px}#detailBody>h2{font-size:clamp(34px,5vw,54px);font-weight:500;letter-spacing:-1px}#detailBody>h3{font-size:29px;margin-top:32px}.place-intro{font-size:20px;line-height:1.65;color:#5a6472}.booking-box{border:0;border-radius:8px 28px 8px 8px;background:#132844;color:#fff;padding:25px;margin:30px 0}.booking-box .place-meta{color:#cbd5e5}.booking-box .button{background:#e8b278;color:#132844;border:0;border-radius:35px;font-weight:700}.booking-box h3{color:#f4d1a9}.place-facts{background:#eee3d3;border-radius:8px;padding:24px}.nearby-card{border:0;border-radius:8px 30px 8px 8px;background:#deeaec;padding:26px}.nearby-card h3{font-size:33px}.route-links a,.route-links button{border-radius:25px;border:1px solid #bac4cf;background:#fff;font-size:13px;font-weight:600}.route-links a:hover{background:#132844;color:#fff}.place-card{background:#132844;color:white;border:0;padding:30px;border-radius:8px 35px 8px 8px}.place-card h3{font-size:37px}.place-card .place-meta{color:#c1cddd}.place-card .button{background:#e6af76;border:0;border-radius:30px;color:#132844}.top-tabs button{border-radius:30px;background:#f0e4d4;border:0;font-weight:600}.top-tabs button.active{background:#bd5d3e;color:white}.selection-note{background:transparent;border-color:#bd5d3e}.detail-note{background:#e6edf0;border-radius:8px}button,a{transition:background .2s,color .2s,transform .2s}.place-origin input{background:#fff;border-radius:8px;padding:14px}
@media(max-width:650px){main:before{height:230px;margin-top:18px;border-radius:5px 40px 5px 5px}main>.eyebrow{margin-top:30px;font-size:10px}h1{font-size:53px;letter-spacing:-1.8px}.paths{gap:8px}.paths button{min-width:120px;padding:13px 14px;font-size:13px}.planner{padding:23px;margin-bottom:40px}.art{height:250px}.body h3{font-size:32px}.body p{min-height:0}.grid{gap:12px}.practical,.next{padding:24px}.practical h2{font-size:30px}dialog{padding:24px 22px;max-height:94dvh}.place-card{padding:24px}.place-card h3{font-size:31px}header img{height:66px;width:94px}}

.contact-actions{display:flex;flex-wrap:wrap;gap:12px}.contact-actions .whatsapp-contact{background:#216745;color:#fff;border-color:#216745;border-radius:30px}

/* Recognisable, accessible contact actions. */
.icon-contact{display:inline-flex!important;align-items:center;gap:12px;text-decoration:none;line-height:1.35}.contact-symbol{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;flex:0 0 38px;background:#f1e1ca;color:#8d4b24}.contact-symbol svg{width:23px;height:23px}.contact-symbol.instagram{background:linear-gradient(135deg,#6b42bc,#c93876,#e99a3c);color:white}.contact-symbol.whatsapp{background:#24844e;color:white}footer .icon-contact,.tour-contacts .icon-contact{width:fit-content;max-width:100%;padding:8px 17px 8px 8px;border-radius:40px;background:#f2e9dc;color:#132844;overflow-wrap:anywhere;font-size:14px}.icon-contact:hover{transform:translateY(-2px);filter:brightness(1.03)}.contact-actions .icon-contact{border-radius:35px;padding:9px 22px 9px 9px}.contact-actions .whatsapp-contact .contact-symbol{background:#ffffff24;color:white}.booking-box .icon-contact{justify-content:center}.route-links .icon-contact{padding:7px 14px 7px 7px}.route-links .contact-symbol{width:30px;height:30px;flex-basis:30px}.route-links .contact-symbol svg{width:19px;height:19px}@media(max-width:480px){footer .icon-contact,.tour-contacts .icon-contact{font-size:12px;gap:8px}.contact-actions .icon-contact{width:100%}}

.aboard-nav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.aboard-nav a{display:inline-flex;align-items:center;padding:11px 16px;border-radius:30px;background:#132844;color:#fff;text-decoration:none;font-size:13px;font-weight:600}.aboard-nav a:first-child{background:#216745}.aboard-nav a:last-child{background:#eee3d3;color:#132844}

.place-gallery{margin:24px 0 32px}.place-gallery figure{margin:0}.gallery-main{display:block;width:100%;height:380px;object-fit:cover;object-position:center 48%;border-radius:8px 32px 8px 8px;background:#e7ddcd}.place-gallery figcaption{font-family:Georgia,serif;font-style:italic;color:#736047;font-size:15px;margin:10px 0}.gallery-thumbs{display:flex;gap:10px;margin:12px 0}.gallery-thumbs button{padding:3px;border:2px solid transparent;border-radius:10px;overflow:hidden;background:transparent}.gallery-thumbs button[aria-pressed=true]{border-color:#bd713b}.gallery-thumbs img{width:100px;height:70px;object-fit:cover;display:block;border-radius:5px}.photo-credits{font-size:11px;color:#68717a}.photo-credits summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.photo-credits p{margin:7px 0}.photo-credits a{color:inherit}.nearby-photo{width:calc(100% + 52px);max-width:none;margin:-26px -26px 20px;height:220px;object-fit:cover;display:block}.nearby-card{overflow:hidden}.list-place-photo{width:calc(100% + 60px);max-width:none;margin:-30px -30px 25px;height:220px;object-fit:cover;object-position:center 45%;display:block}.place-card{overflow:hidden}@media(max-width:650px){.gallery-main{height:300px}.gallery-thumbs img{width:80px;height:60px}.list-place-photo{width:calc(100% + 48px);margin:-24px -24px 22px}.nearby-photo{height:190px}}

/* Use image elements instead of oversized CSS backgrounds for reliable iOS painting. */
#cards .art{position:relative;overflow:hidden;background-image:none;isolation:isolate;transform:none;transition:none}#cards .art>img{position:absolute;display:block;width:200%;height:200%;max-width:none;object-fit:fill;border-radius:0}#cards .art::after{z-index:1}#cards>article:hover .art{transform:none}

.gallery-thumbs{overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.gallery-thumbs button{flex:0 0 auto;scroll-snap-align:start}.gallery-main{object-fit:contain;background:#e7ddcd}.gallery-thumbs img{object-fit:cover}
.restaurant-feature{margin:48px 0;padding:36px;border:1px solid #dec9af;border-radius:8px 38px 8px 8px;background:#f5ead8}.restaurant-feature h2{font-size:clamp(30px,4vw,46px);max-width:650px;margin:14px 0 24px}.restaurant-feature h3{font-size:29px}.restaurant-feature>p{max-width:760px}.restaurant-selection{font-size:12px;color:#82552e}.restaurant-links{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.restaurant-links a{border-radius:28px;background:#132844;color:white;padding:12px 18px;font-size:13px;text-decoration:none}.restaurant-links a:first-child{background:#a95235}.restaurant-fork{border-top:1px solid #d5c1a7;padding-top:20px}.restaurant-fork>a{font-weight:600}.restaurant-fork p{font-size:13px;color:#5d625e;max-width:760px}@media(max-width:650px){.restaurant-feature{padding:24px}.restaurant-links{flex-direction:column}.restaurant-links a{text-align:center}.restaurant-feature h3{font-size:26px}}

.guide-main-menu{position:sticky;top:8px;z-index:6;display:block;margin:12px auto;padding:12px 20px;border:0;border-radius:28px;color:white;background:#132844;box-shadow:0 3px 12px #13284420;font-size:13px}.detail-navigation{position:sticky;top:-32px;z-index:5;display:flex;gap:10px;flex-wrap:wrap;background:#fffaf3;padding:8px 0 16px;margin-bottom:16px}.detail-navigation #close{position:static;width:auto;margin:0;float:none}.detail-navigation #detail-main-menu{border:0;background:#132844;color:white;border-radius:28px;font-size:13px;padding:11px 18px}@media(max-width:650px){.detail-navigation{top:-24px}.detail-navigation button{flex:1 1 100%;text-align:start}.guide-main-menu{max-width:calc(100% - 36px)}}
.gelato-feature{background:#e6eee3;border-color:#cbd8c5}.gelato-feature .eyebrow{color:#547045}.gelato-feature .restaurant-links a:first-child{background:#466543}.gelato-feature h2{font-size:clamp(40px,5vw,60px)}.gelato-feature h3{max-width:600px;font-size:clamp(25px,3vw,34px);line-height:1.25}
.brunch-feature{background:#f2e4df;border-color:#ddc4bc}.brunch-feature h3{font-size:clamp(25px,3vw,34px);line-height:1.3}.brunch-feature .restaurant-links a:first-child{background:#955343}
.pasteis-feature{background:#e3edf0;border-color:#bed0d5}.pasteis-feature .eyebrow{color:#285c77}.pasteis-feature .restaurant-links a:first-child{background:#285c77}.pasteis-feature h3{font-size:clamp(25px,3vw,34px);line-height:1.3}
.manteigaria-feature{background:#f2e4cc;border-color:#d6bf94}.manteigaria-feature>h3{font-size:clamp(25px,3vw,34px);line-height:1.25}.manteigaria-shops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.manteigaria-shop{background:#fffcf6;border:1px solid #dfd0b4;border-radius:10px;padding:20px}.manteigaria-shop h5{font-size:18px;margin:0 0 8px}.manteigaria-shop p{font-size:14px;margin:0}.manteigaria-shop .route-links{margin:16px 0 0}.manteigaria-shop .route-links a{font-size:12px}.manteigaria-feature .fine{font-size:13px}@media(max-width:650px){.manteigaria-shops{grid-template-columns:1fr}.manteigaria-shop{padding:18px}}

#cards .art>img.destination-photo{width:100%;height:100%;object-fit:cover;object-position:center;left:0!important;top:0!important}.destination-credit{font-size:10px;margin-top:15px;color:#69717a}

[hidden]{display:none!important}.paths{margin-bottom:32px}.section-head{scroll-margin-top:80px}.gallery-thumbs button{min-width:72px}

.transfer-invitation{display:block;width:fit-content;max-width:calc(100% - 36px);margin:12px auto;padding:11px 23px;background:#132844;color:#fff;border-radius:30px;text-align:center;text-decoration:none;font-weight:700}.transfer-invitation:hover{background:#294b70}.transfer-form{max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:25px;background:#f0e4d4;border-radius:18px}.transfer-form textarea{width:100%;min-height:100px;padding:12px;font:inherit;border:1px solid #c9d0c4;border-radius:6px}.transfer-form .route-links,.transfer-form .detail-note{grid-column:1/-1}.transfer-form .button{background:#132844;color:white}@media(max-width:650px){.transfer-form{grid-template-columns:1fr;padding:18px}}

.contact-symbol.imessage{background:#32b951;color:#fff}.messages-contact{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.messages-contact .contact-symbol{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-contact svg{width:23px;height:23px}
