:root { --te-ink:#172b38; --te-cream:#fbf6ed; --te-gold:#b89b65; --te-green:#173f34; --te-line:rgba(23,43,56,.2); }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { overflow-x:clip; }
* { box-sizing:border-box; }
button,input,select,textarea { font:inherit; }
a,button,input,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--te-gold); outline-offset:5px; }
.te-skip { position:fixed; top:12px; left:12px; z-index:5000; padding:12px 20px; background:var(--te-cream); color:var(--te-ink); transform:translateY(-160%); }
.te-skip:focus { transform:none; }
.te-brand { display:inline-flex !important; align-items:center; gap:10px; text-decoration:none; line-height:1; width:auto !important; }
.te-shield { display:block; width:64px; height:72px; flex:0 0 64px; overflow:hidden; }
.te-shield img { width:96px !important; max-width:none !important; height:96px !important; margin:-12px -16px; filter:none !important; object-fit:contain; }
.te-wordmark { font:30px/1.05 Georgia,serif; letter-spacing:-1px; white-space:nowrap; }
#global-navbar .header__logo { width:auto; max-width:none; flex:0 0 auto; }
#global-navbar .te-brand { color:var(--te-cream); }
#global-navbar.scroll .te-brand,body[data-local-detail] #global-navbar .te-brand,body[data-local-search] #global-navbar .te-brand { color:var(--te-ink); }
#global-navbar .header { padding-inline:clamp(22px,4vw,72px); }
#global-navbar { transform:translateY(0); transition:transform .24s ease; }
#global-navbar.te-header-hidden { transform:translateY(-100%); }
#global-navbar:not(.scroll) .header .navigation__link { color:var(--te-cream) !important; }
body[data-local-detail] #global-navbar:not(.scroll) .header .navigation__link,body[data-local-search] #global-navbar:not(.scroll) .header .navigation__link { color:var(--te-ink) !important; }
body[data-local-search] #global-navbar .header { background:var(--te-cream) !important; }
.header__right > .navigation { align-items:center; gap:24px; }
.header__right > .navigation > .navigation__item { margin:0 !important; }
.header__right .navigation__link { font-size:12px; letter-spacing:.1em; }
#global-navbar .sub-nav { min-width:210px; }
#global-navbar .sub-nav__link { white-space:nowrap; }
.sidemenu__nav { overflow-y:auto; max-height:100dvh; padding-block:70px !important; }
.sidemenu .navigation__link { font-size:clamp(23px,3.2vw,42px) !important; }
.sidemenu .sub-nav__link { font-size:18px !important; }
.sidemenu .navigation__item { margin-bottom:12px; }
.sidemenu__toggle { z-index:5; }
body[data-site-page=home] .video-section { position:relative; min-height:min(860px,100svh); height:100svh; max-height:1100px; }
body[data-site-page=home] .video-section .video-wrapper,body[data-site-page=home] .full-screen-video-component { display:block !important;position:absolute !important;inset:0;width:100% !important;height:100% !important; }
body[data-site-page=home] .video-section video { object-fit:cover; width:100%; height:100%; opacity:1 !important;transition:none !important; }
body[data-site-page=home] .video-section .overlay-component { opacity:.15; }
body[data-site-page=home] .opening-title::after { display:none !important; }
.te-home-intro { text-align:center; max-width:700px; margin:24px auto 48px; font-size:18px; line-height:1.65; }
.featured-properties .collection.te-catalogue-grid {display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;overflow:visible;}
.te-catalogue-grid .properties-grid__item {min-width:0;display:flex;}
.te-catalogue-grid .listing-card {margin:0;}
.te-catalogue-grid .listing-card__price {font-size:22px;font-weight:300;letter-spacing:0;}
.te-catalogue-grid .listing-card__address,.te-catalogue-grid .listing-card__attributes {font-family:CompassSans,sans-serif;font-size:14px;line-height:1.5;letter-spacing:normal;}
.te-catalogue-grid .listing-card__status {font-family:CompassSans,sans-serif;font-size:11px;line-height:1.4;letter-spacing:normal;}
.te-catalogue-grid .listing-card__attributes,body[data-local-search] .listing-card__attributes {padding-right:0 !important;}
@media(max-width:1199px){.featured-properties .collection.te-catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767px){
  .featured-properties .collection.te-catalogue-grid{grid-template-columns:1fr;gap:24px;}
  body[data-site-page=home] .featured-properties>.lp-container{padding-inline:24px;}
  #global-navbar .header__container{padding-inline:0;}
  #global-navbar .te-brand{height:auto !important;min-height:60px;}
  #global-navbar .header__hamburger{min-width:44px;min-height:44px;}
  #global-sidemenu .sidemenu__toggle{min-width:44px;min-height:44px;}
}
#section-be747590-1078-4da7-9d54-c5ce8a56f2bc,#section-aff60bf5-44f3-4a0d-aaec-fb1a183171a5,#section-d44ec3c8-03a6-4214-b009-92ee304ac9c3,#section-e4f505e8-ee04-441a-b1a8-8ff34b10bab6,#section-4b63e26f-8963-4dfe-bb1c-0ad0069bac65 {background-image:none !important;background-color:var(--te-cream) !important;}
body[data-local-detail] #section-488981f3-ff05-4cba-a3f2-a08f0c0865ce,body[data-local-detail] #section-101f4bc8-27fe-42c0-9b76-4ee0e415dbe2 {background-image:none !important;background-color:var(--te-cream) !important;}
.te-eyebrow { text-transform:uppercase; letter-spacing:.17em; font-size:12px !important; font-weight:500; line-height:1.6; margin:0 0 20px; }
.te-button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:52px; padding:16px 24px; border:1px solid var(--te-ink); background:var(--te-ink); color:var(--te-cream); font-size:13px; line-height:1.4; text-decoration:none; cursor:pointer; border-radius:0; transition:background .2s,color .2s; text-align:left; }
.te-button:hover { background:var(--te-green); color:white; }
.te-button:disabled { opacity:.65; cursor:wait; }
.te-button-light { border-color:var(--te-cream); background:transparent; color:var(--te-cream); }
.te-button-light:hover { background:var(--te-cream); color:var(--te-ink); }
.te-text-link { display:inline-block; margin-top:30px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:14px; }
.te-reasons { background:#eee7da; display:grid; grid-template-columns:1fr 1.1fr; gap:8vw; padding:clamp(70px,9vw,140px) clamp(24px,8vw,150px); color:var(--te-ink); }
.te-reasons h2 { font:clamp(30px,3.4vw,53px)/1.15 "Albra Sans",sans-serif; letter-spacing:-.025em; margin:0; }
.te-reasons h3 { font:clamp(25px,2.6vw,40px)/1.2 "Albra Sans",sans-serif; letter-spacing:-.02em; margin:0 0 24px; }
.te-reasons-rail { display:flex; flex-direction:column; justify-content:space-between; min-height:335px; }
.te-reasons-rail article>p:last-child { font-size:17px; line-height:1.8; max-width:580px; }
.te-reasons-rail [hidden] { display:none !important; }
.te-reasons-controls { display:flex; align-items:center; gap:16px; margin-top:30px; }
.te-reasons-controls>span { margin-right:auto; font-size:13px; font-variant-numeric:tabular-nums; letter-spacing:.13em; }
.te-reasons-controls button { min-width:44px; min-height:44px; background:transparent; border:1px solid var(--te-line); cursor:pointer; color:inherit; }
.te-reasons-controls [data-reason-pause] { border:0; font-size:12px; text-decoration:underline; }
.te-newsletter { padding:clamp(70px,10vw,150px) 24px; text-align:center; background:var(--te-cream); color:var(--te-ink); }
.te-newsletter h2 { font:clamp(32px,4.8vw,70px)/1.1 "Albra Sans",sans-serif; letter-spacing:-.03em; margin:0 0 24px; }
.te-newsletter>p:not(.te-eyebrow) { max-width:640px; margin:0 auto; font-size:18px; line-height:1.8; }
.te-newsletter-form { max-width:800px; margin:40px auto 0; text-align:left; }
.te-newsletter-row { display:grid; grid-template-columns:1fr auto; align-items:end; gap:22px; }
.te-consent { display:flex; gap:12px; align-items:flex-start; font-size:12px; line-height:1.7; margin-top:20px; }
.te-consent input { flex:0 0 18px; width:18px; height:18px; margin-top:2px; accent-color:var(--te-green); }
.te-consent a,.te-form-note a { text-decoration:underline; }
.te-benagil { min-height:660px; height:80svh; max-height:1000px; position:relative; display:flex; align-items:center; padding:80px clamp(24px,8vw,150px); overflow:hidden; color:var(--te-cream); }
.te-benagil-media { position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none; }
.te-benagil-media img { display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%; }
.te-benagil.is-scroll-reveal .te-benagil-media { will-change:transform; }
.te-benagil::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.57),rgba(0,0,0,.2)); z-index:1; }
.te-benagil-content { position:relative; z-index:2; max-width:900px; }
.te-benagil h2 { font:clamp(38px,6vw,88px)/1.05 "Albra Sans",sans-serif; letter-spacing:-.035em; margin:0 0 36px; color:inherit; }
.te-footer { background:var(--te-ink); color:var(--te-cream); padding:70px clamp(24px,6vw,110px) 36px; }
.te-footer a { color:inherit; text-decoration:none; }
.te-footer a:hover { color:var(--te-gold); }
.te-footer-top { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-bottom:45px; border-bottom:1px solid rgba(255,255,255,.2); }
.te-footer-top>p { font:24px/1.4 "Albra Sans",sans-serif; margin:0; }
.te-footer .te-wordmark { font-size:38px; }
.te-footer-grid { display:grid; grid-template-columns:1fr 1fr 1.6fr 1.4fr; gap:40px; margin:50px 0; }
.te-footer-grid h2 { font-size:12px; font-family:inherit; text-transform:uppercase; letter-spacing:.14em; margin:0 0 24px; color:var(--te-gold); }
.te-footer-grid a { display:block; font-size:14px; line-height:1.5; margin:0 0 14px; }
.te-footer-grid p { font-size:14px; line-height:1.8; margin:0 0 20px; max-width:330px; }
.te-footer-bottom { border-top:1px solid rgba(255,255,255,.2); padding-top:28px; display:flex; justify-content:space-between; gap:30px; font-size:12px; line-height:1.8; }
.te-footer-bottom p { margin:0; }
.te-footer-bottom small { font-size:11px; opacity:.72; }
.te-footer-bottom>div { display:flex; flex-wrap:wrap; align-content:flex-start; gap:12px 25px; }
.te-floating { position:fixed; right:24px; bottom:24px; z-index:900; background:var(--te-cream); color:var(--te-ink); box-shadow:none; display:flex; gap:24px; align-items:center; padding:16px 24px; border:1px solid rgba(23,43,56,.15); border-radius:40px; text-decoration:none; font-size:13px; }
.te-contact-panel { position:relative; background:var(--te-cream); color:var(--te-ink); padding:clamp(28px,4vw,60px); width:min(700px,calc(100vw - 32px)); border:0; }
#modal-global-contact-us .modal-content.te-contact-panel { display:block; max-width:700px; min-height:0; }
.te-contact-panel h2 { font:clamp(32px,4vw,48px)/1.1 "Albra Sans",sans-serif; letter-spacing:-.03em; margin:0 0 24px; }
.te-contact-panel>p { font-size:16px; line-height:1.6; }
.te-close { position:absolute !important; right:16px !important; top:12px !important; left:auto !important; bottom:auto !important; color:var(--te-ink) !important; background:none; border:0; width:44px; height:44px; font:32px/1 Arial,sans-serif; cursor:pointer; }
.te-enquiry { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px; }
.te-field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.te-field label { font-size:13px; line-height:1.4; }
.te-field label span { opacity:.65; }
.te-field input { border:0; border-bottom:1px solid #718078; border-radius:0; padding:12px 0; background:transparent; color:var(--te-ink); min-height:48px; width:100%; min-width:0; font-size:16px; }
.te-field input:focus { outline:0; border-bottom:2px solid var(--te-green); padding-bottom:11px; }
.te-enquiry .te-field:first-of-type { grid-column:1/-1; }
.te-interests { border:0; padding:0; margin:4px 0 0; display:flex; flex-wrap:wrap; gap:10px; grid-column:1/-1; }
.te-interests legend { font-size:13px; margin-bottom:12px; }
.te-interests label { position:relative; cursor:pointer; }
.te-interests input { position:absolute; inset:0; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.te-interests span { display:block; border:1px solid var(--te-line); padding:13px 16px; font-size:13px; line-height:1.4; }
.te-interests input:checked+span { background:var(--te-green); color:white; border-color:var(--te-green); }
.te-interests input:focus-visible+span { outline:2px solid var(--te-gold); outline-offset:3px; }
.te-form-note { font-size:12px; line-height:1.7; margin:0; grid-column:1/-1; }
.te-enquiry>.te-button,.te-form-status { grid-column:1/-1; }
.te-form-status { min-height:0; margin:0; font-size:14px; line-height:1.6; }
.te-form-status:empty { display:none; }
.te-form-status[data-error=true] { color:#952d28; }
.te-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.te-direct { margin:26px 0 0; font-size:13px !important; }
.te-direct a { text-decoration:underline; }
.te-main { background:var(--te-cream); color:var(--te-ink); padding-top:130px; }
.te-main h1,.te-main h2,.te-main h3 { font-family:"Albra Sans",sans-serif; font-weight:300; text-transform:uppercase; }
.te-page-header { max-width:1400px; margin:auto; padding:clamp(50px,7vw,110px) clamp(24px,6vw,90px) clamp(50px,7vw,100px); border-bottom:1px solid var(--te-line); }
.te-page-header h1 { font-size:clamp(38px,5.4vw,78px); line-height:1.08; letter-spacing:-.035em; max-width:1100px; margin:0 0 30px; }
.te-lead { font-size:clamp(18px,1.6vw,23px); line-height:1.7; max-width:850px; margin:0; }
.te-page-header>.te-button,.te-page-actions { margin-top:34px; }
.te-page-actions { display:flex; flex-wrap:wrap; gap:12px; }
.te-guide-layout { max-width:1400px; margin:auto; padding:70px clamp(24px,6vw,90px); display:grid; grid-template-columns:270px minmax(0,1fr); gap:70px; }
.te-guide-nav { position:sticky; top:130px; align-self:start; }
.te-guide-nav>a { display:block; border-bottom:1px solid var(--te-line); padding:16px 0; font-size:14px; line-height:1.5; text-decoration:none; }
.te-article { font-size:17px; line-height:1.85; max-width:790px; }
.te-article h2 { font-size:clamp(27px,2.8vw,39px); line-height:1.2; letter-spacing:-.02em; margin:0 0 24px; }
.te-article p { margin:0 0 24px; }
.te-article>section { margin:0 0 52px; scroll-margin-top:125px; }
.te-article a { text-decoration:underline; text-underline-offset:4px; }
.te-legal { margin:auto; padding:70px 24px 100px; }
.te-faq { max-width:1120px; margin:70px auto; padding:0 24px; }
.te-faq h2 { font-size:clamp(28px,3.5vw,46px); line-height:1.2; margin-bottom:32px; }
.te-article .te-faq { padding:0; margin:60px 0; }
.te-faq details { border-top:1px solid var(--te-line); }
.te-faq details:last-child { border-bottom:1px solid var(--te-line); }
.te-faq summary { padding:22px 28px 22px 0; cursor:pointer; font-size:17px; line-height:1.5; }
.te-faq details>p { font-size:16px; line-height:1.8; margin:0 0 28px; max-width:820px; }
.te-sources { padding-top:35px; border-top:1px solid var(--te-line); }
.te-sources h2 { font-size:24px; }
.te-sources p,.te-sources a { font-size:13px; }
.te-sources a { display:block; margin-bottom:12px; }
.te-page-cta { background:#ece4d7; text-align:center; padding:clamp(65px,8vw,120px) 24px; }
.te-page-cta h2 { font-size:clamp(32px,4vw,57px); line-height:1.15; letter-spacing:-.025em; max-width:850px; margin:0 auto 24px; }
.te-page-cta>p:not(.te-eyebrow) { font-size:18px; line-height:1.7; max-width:670px; margin:0 auto 30px; }
.te-related { display:flex; justify-content:center; flex-wrap:wrap; gap:30px; padding:55px 24px; }
.te-related>.te-eyebrow { flex-basis:100%; text-align:center; margin:0; }
.te-related>a { font-size:16px; border-bottom:1px solid var(--te-line); padding:8px 0; }
.te-editorial-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:6vw; max-width:1400px; margin:auto; padding:80px clamp(24px,6vw,90px); }
.te-editorial-split img { width:100%; height:630px; object-fit:cover; }
.te-editorial-split h2 { font-size:clamp(32px,3.8vw,54px); line-height:1.15; margin:0 0 30px; }
.te-editorial-split p { font-size:17px; line-height:1.8; margin-bottom:24px; }
.te-process { max-width:1120px; margin:0 auto; padding:70px 24px 85px; }
.te-process>h2 { font-size:clamp(32px,4vw,56px); line-height:1.15; margin:0 0 45px; }
.te-process>article { border-top:1px solid var(--te-line); padding:34px 0; display:grid; grid-template-columns:70px 1fr; gap:20px; }
.te-process>article>span { font-size:13px; letter-spacing:.1em; padding-top:10px; color:#766345; }
.te-process h3 { font-size:28px; line-height:1.3; margin:0 0 14px; }
.te-process article p { font-size:17px; line-height:1.8; margin:0; max-width:780px; }
.te-private { background:var(--te-green); color:var(--te-cream); padding:90px max(24px,calc((100vw - 1072px)/2)); }
.te-private h2 { font-size:clamp(35px,4.5vw,65px); line-height:1.1; margin:0 0 30px; }
.te-private>p:not(.te-eyebrow) { max-width:700px; font-size:18px; line-height:1.8; margin-bottom:32px; }
.te-inline-enquiry { max-width:1400px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:85px clamp(24px,6vw,90px) 110px; }
.te-inline-enquiry h2 { font-size:clamp(30px,3.6vw,49px); line-height:1.15; margin:0 0 24px; }
.te-inline-enquiry>div>p { font-size:17px; line-height:1.8; }
.te-inline-enquiry form { margin:0; }
.te-development-list { max-width:1150px; margin:auto; padding:70px 24px 90px; }
.te-development-card { display:block; border-block:1px solid var(--te-line); padding:35px 0; margin:25px 0; text-decoration:none; }
.te-development-card h2 { font-size:clamp(28px,4vw,46px); margin:20px 0; line-height:1.2; }
.te-development-card>span { font-size:13px; letter-spacing:.06em; }
body[data-local-detail] .work-with-us .lp-h2::after { display:none !important; }
body[data-local-detail] .work-with-us .lp-h2 { font-size:clamp(36px,5vw,70px) !important; }
/* Keep the search introduction and area guides visually rooted in the Algarve. */
body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6.te-search-hero { padding:160px 0 0; background:linear-gradient(rgba(13,32,38,.28),rgba(13,32,38,.43)),url("company/algarve-hero.webp") center 60% / cover no-repeat; color:var(--te-cream); }
body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6.te-search-hero > .custom-content { display:flex; align-items:center; min-height:500px; padding:85px 24px !important; text-align:center; }
body[data-local-search] .te-search-hero .lp-container { width:100%; max-width:1100px; margin-inline:auto; padding:0; }
body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6 h1 { max-width:19ch; margin:0 auto 26px; font:clamp(40px,4.6vw,76px)/1.08 "Albra Sans",sans-serif; letter-spacing:-.025em; text-transform:none; text-align:center; color:inherit; text-wrap:balance; }
body[data-local-search] .te-search-hero p { max-width:610px; margin:0 auto; font-size:17px; line-height:1.7; text-wrap:balance; }
#section-53df6ab6-8a53-4588-9f09-18b89a236741.te-search-places { padding:100px clamp(24px,6vw,100px); background:var(--te-cream); color:var(--te-ink); }
.te-search-places-inner { max-width:1320px; margin-inline:auto; }
.te-search-places-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:end; margin-bottom:48px; }
.te-search-places-heading .te-eyebrow { margin-bottom:14px; color:#76613e; }
.te-search-places h2 { margin:0; font:clamp(34px,3.8vw,56px)/1.12 "Albra Sans",sans-serif; letter-spacing:-.025em; text-transform:none; }
.te-search-places-heading > p { max-width:450px; margin:0 0 3px auto; font-size:17px; line-height:1.75; }
.te-search-places-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; }
.te-search-place { display:flex; flex-direction:column; min-width:0; text-decoration:none; color:inherit; }
.te-search-place:hover { color:inherit; }
.te-search-place-image { aspect-ratio:4/3; overflow:hidden; background:#d6d0c3; margin-bottom:27px; }
.te-search-place-image img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .65s ease; }
.te-search-place:hover img,.te-search-place:focus-visible img { transform:scale(1.035); }
.te-search-place .te-eyebrow { margin:0 0 9px; font-size:10px !important; letter-spacing:.14em; }
.te-search-place h3 { font:clamp(29px,2.6vw,37px)/1.15 "Albra Sans",sans-serif; letter-spacing:-.02em; text-transform:none; margin:0 0 15px; }
.te-search-place-description { margin:0 0 24px; font-size:15px; line-height:1.7; max-width:340px; }
.te-search-place-link { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:auto; padding:17px 0; border-block:1px solid var(--te-line); font-size:13px; }
.te-search-place-link > span { font-size:20px; }
.te-search-places-all { display:table; color:inherit; text-decoration:none; margin:42px auto 0; padding:10px 0; border-bottom:1px solid var(--te-ink); font-size:13px; }
.te-search-places-all:hover { color:#76613e; }
@media(max-width:1023px) {
  .te-search-places-heading { grid-template-columns:1fr; gap:22px; }
  .te-search-places-heading > p { max-width:580px; margin:0; }
  .te-search-places-grid { gap:24px; }
}
@media(max-width:767px) {
  body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6.te-search-hero { padding-top:90px; background-position:66% center; }
  body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6.te-search-hero > .custom-content { min-height:440px; padding:65px 24px !important; }
  body[data-local-search] .te-search-hero p { font-size:15px; }
  #section-53df6ab6-8a53-4588-9f09-18b89a236741.te-search-places { padding:64px 24px; }
  .te-search-places-heading { gap:20px; margin-bottom:34px; }
  .te-search-places-heading > p { font-size:16px; }
  .te-search-places-grid { grid-template-columns:1fr; gap:40px; }
  .te-search-place-image { aspect-ratio:3/2; margin-bottom:22px; }
  .te-search-place-description { max-width:none; margin-bottom:18px; }
}
body[data-local-detail] .te-main ~ .te-footer .te-brand { color:var(--te-cream); }
[hidden] { display:none !important; }
@media(min-width:1200px) { .header__right > .navigation { display:flex !important; } }
@media(max-width:1199px) { .header__right>.navigation { display:none !important; }.te-guide-layout { grid-template-columns:220px minmax(0,1fr);gap:40px; }.te-footer-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:767px) {
  .te-wordmark { font-size:25px; }.te-shield { width:46px;height:60px;flex-basis:46px; }.te-shield img { width:78px !important;height:78px !important;margin:-9px -16px; }
  #global-navbar .header { padding:15px 20px; }.header__hamburger { margin-left:20px !important; }
  .te-reasons { grid-template-columns:1fr; gap:42px; }.te-reasons-rail { min-height:340px; }
  .te-newsletter-row { grid-template-columns:1fr;gap:18px; }.te-newsletter-row button { justify-content:center; }
  .te-benagil { min-height:560px;height:75svh; }.te-benagil-media img { object-position:50% 42%; }
  .te-footer { padding-bottom:105px; }.te-footer-top { align-items:flex-start; flex-direction:column; }.te-footer-top>p { font-size:22px; }.te-footer .te-wordmark { font-size:30px; }
  .te-footer-grid { gap:32px 22px; }.te-footer-grid>div:nth-child(3) { grid-column:1/-1; }.te-footer-bottom { flex-direction:column; }.te-footer-grid a { font-size:13px; }
  .te-contact-panel { width:100%;padding:50px 24px 30px; }.te-contact-modal { padding:0 12px; }.te-enquiry { gap:20px 16px; }.te-enquiry>.te-field { grid-column:1/-1; }
  .te-main { padding-top:100px; }.te-page-header { padding-top:42px; }.te-page-header h1 { font-size:clamp(35px,8.5vw,55px); }
  .te-guide-layout { grid-template-columns:1fr;padding-top:35px;gap:45px; }.te-guide-nav { position:static; }.te-guide-nav>a { padding:12px 0; }
  .te-editorial-split { grid-template-columns:1fr; gap:40px; padding-block:50px; }.te-editorial-split img { height:400px; }
  .te-process>article { grid-template-columns:40px 1fr;gap:12px; }.te-inline-enquiry { grid-template-columns:1fr;gap:40px; }
  .te-floating { right:18px;bottom:18px;padding:14px 21px;font-size:12px; }
  .sidemenu__img { display:none !important; }.sidemenu__nav { width:100% !important; }.sidemenu .sub-nav__link { font-size:17px !important; }
  .te-page-actions { flex-direction:column;align-items:flex-start; }.te-home-intro { font-size:16px;padding-inline:12px; }
  #section-be747590-1078-4da7-9d54-c5ce8a56f2bc h1 { font-size:clamp(30px,8vw,46px);line-height:1.15; }
  body[data-local-search] .filters__wrapper { max-width:100vw; }.properties-grid__container { min-width:0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { animation-duration:.01ms !important;transition-duration:.01ms !important; }.local-reveal { opacity:1;transform:none; } }
/* Keep the primary navigation on one line; let the menu take over on tablets. */
#global-navbar .header__right > .navigation { flex-wrap:nowrap; gap:24px; }
#global-navbar .header__right > .navigation > .navigation__item { padding:0 !important; }
#global-navbar .header__right .navigation__link { font-size:12px !important; white-space:nowrap; }
.te-main h1,.te-main h2,.te-main h3,.te-reasons h2,.te-reasons h3,.te-newsletter h2,.te-benagil h2,.te-contact-panel h2 { text-transform:none; }
#global-footer.te-footer { background:var(--te-ink) !important; background-image:none !important; color:var(--te-cream) !important; }
#global-footer.te-footer::before,#global-footer.te-footer::after { display:none !important; }
#section-d51a88e6-748e-4b63-9a1a-fdfe0b6f2ded.te-reasons { background:#eee7da !important; color:var(--te-ink) !important; }
#section-d51a88e6-748e-4b63-9a1a-fdfe0b6f2ded.te-reasons::before,#section-d51a88e6-748e-4b63-9a1a-fdfe0b6f2ded.te-reasons::after { display:none !important; }
.te-text-link,.te-form-note a,.te-consent a { color:inherit; }
#global-navbar .sub-nav-container > a::after { display:none; }
body.local-menu-open .te-floating,body.local-contact-open .te-floating,body.local-search-filters-open .te-floating { display:none; }
body[data-local-search] .filters__close {min-width:44px;min-height:44px;}
@media(max-width:767px) {
  #global-sidemenu .sidemenu__nav { position:absolute;top:95px;bottom:120px;height:auto;max-height:none;padding:0 !important; }
  #global-sidemenu .navigation__link { padding:14px 24px !important;min-height:60px;line-height:1.4;font-size:21px !important; }
  #global-sidemenu .sub-nav { padding-left:24px !important; }
  #global-sidemenu .sub-nav__link { min-height:44px;display:flex;align-items:center; }
}
/* The imported template fixes all nav elements; area-guide navigation is in flow. */
nav.te-related { position:static !important; inset:auto !important; width:auto; z-index:auto; }
.te-main a:not(.te-button) { color:inherit; }
.te-main a:not(.te-button):hover { color:#706043; }
@media(max-width:767px) {
 body[data-local-detail] #section-a496514c-352a-4549-81e7-3aef0720094a { padding-top:110px !important; }
 body[data-local-detail] #section-488981f3-ff05-4cba-a3f2-a08f0c0865ce .info { padding-top:45px !important; }
}
@media(prefers-reduced-motion:reduce) { .te-benagil-media { height:100% !important; transform:none !important; will-change:auto !important; } }

/* The supplied homepage is the visual authority for every editorial route. */
:root { --te-display:"Albra Sans",sans-serif; --te-body:CompassSans,sans-serif; }
.te-main h1,.te-main h2,.te-main h3,.te-reasons h2,.te-reasons h3,.te-newsletter h2,.te-benagil h2,.te-contact-panel h2,.te-search-places h2,.te-search-places h3 {
  font-family:var(--te-display); font-weight:300; letter-spacing:4px; text-transform:uppercase; line-height:1.18; text-wrap:balance;
}
body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6 h1 { font-family:var(--te-display); font-weight:300; letter-spacing:4px; text-transform:uppercase; max-width:23ch; font-size:clamp(36px,4.5vw,64px); line-height:1.18; }
.te-button { font-family:var(--te-body); font-size:14px; font-weight:500; letter-spacing:2px; text-transform:uppercase; border:1px solid currentColor; background:transparent; color:var(--te-ink); border-radius:0; padding:14px 22px; min-height:50px; line-height:1.4; }
.te-button:hover { background:var(--te-ink); color:var(--te-cream); }
.te-button-light { color:var(--te-cream); }
.te-button-light:hover { background:var(--te-cream); color:var(--te-ink); }
.te-enquiry > .te-button,.te-newsletter-form .te-button { background:var(--te-ink); color:var(--te-cream); }
.te-enquiry > .te-button:hover,.te-newsletter-form .te-button:hover { background:#304854; }
.te-field input:focus { border-bottom-color:var(--te-ink); }
.te-interests input:checked+span { background:var(--te-ink); border-color:var(--te-ink); }
.te-main { padding-top:0; background:white; font-family:var(--te-body); }
body[data-brand-layout] #global-navbar:not(.scroll) .header { background:transparent !important; }
body[data-brand-layout] #global-navbar:not(.scroll) .te-brand { color:var(--te-cream); }
body[data-brand-layout] #global-navbar.scroll .header { background:var(--te-cream) !important; }
#global-navbar .header__right { margin-left:auto; }
#global-navbar .header__right > .navigation { display:none !important; }
#global-sidemenu .sidemenu__img::after { content:none !important; display:none !important; }
#global-sidemenu .sub-nav-container::after,#global-sidemenu .sub-nav-container > a::after { content:none !important; display:none !important; }
#global-sidemenu .navigation__link .arrow { width:24px; height:24px; flex:0 0 24px; margin-left:20px; }
#global-sidemenu .navigation__link[aria-expanded=true] .arrow { transform:rotate(180deg); }
.te-image-hero { position:relative; isolation:isolate; min-height:640px; height:88svh; max-height:980px; padding:180px 24px 85px; display:flex; align-items:center; justify-content:center; color:var(--te-cream); text-align:center; overflow:hidden; }
.te-image-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,.58) 35%,rgba(0,0,0,.58) 75%,rgba(0,0,0,.3)); }
.te-image-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; }
.te-image-hero-copy { max-width:1060px; width:100%; }
.te-image-hero h1 { font-size:clamp(36px,5vw,72px); color:inherit; margin:0 0 28px; }
.te-image-hero p { font-size:18px; line-height:1.666; max-width:650px; margin:0 auto; text-wrap:balance; }
.te-image-hero .te-page-actions { justify-content:center; align-items:center; margin-top:38px; }
.te-page-intro { max-width:1020px; padding:96px 24px; margin:auto; text-align:center; }
.te-page-intro h2 { font-size:clamp(30px,4vw,56px); margin:0 0 32px; }
.te-page-intro p { font-size:18px; line-height:1.75; max-width:76ch; margin:0 auto; }
.te-story { padding:0 0 96px; }
.te-story-inner { display:flex; align-items:stretch; gap:clamp(48px,7vw,120px); }
.te-story-reverse .te-story-inner { flex-direction:row-reverse; }
.te-story-photo { position:relative; flex:1 1 50%; min-width:0; min-height:620px; overflow:hidden; }
.te-story-photo > img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.te-story-copy { flex:1 1 50%; min-width:0; padding:48px 0; align-self:center; }
.te-story-copy h2 { font-size:clamp(28px,3vw,40px); margin:0 0 28px; }
.te-story-copy p { font-size:16px; line-height:1.666; margin:0 0 24px; max-width:72ch; }
.te-story-copy .te-button { margin-top:12px; }
.te-story-detail { margin-bottom:40px; height:clamp(180px,18vw,290px); overflow:hidden; }
.te-story-detail img { display:block; width:100%; height:100%; object-fit:cover; }
.te-image-banner { justify-content:center; text-align:center; padding:100px 24px; min-height:620px; height:78svh; max-height:880px; margin-bottom:96px; }
.te-image-banner::before { background:rgba(0,0,0,.58); }
.te-image-banner h2 { font-size:clamp(32px,4.5vw,64px); margin:0 auto 32px; }
.te-image-banner .te-benagil-content { max-width:1000px; }
.te-image-banner p { max-width:710px; margin:0 auto 32px; font-size:18px; line-height:1.75; text-wrap:pretty; }
.te-main > .te-image-banner:last-child { margin-bottom:0; }
.te-guide-prose { max-width:900px; margin:0 auto; padding:0 24px 96px; }
.te-guide-prose h2 { font-size:clamp(28px,3vw,40px); margin:0 0 30px; }
.te-guide-prose p { font-size:17px; line-height:1.75; margin:0 0 24px; }
.te-guide-sources { max-width:1072px; margin:0 auto 96px; padding:0 24px; font-size:14px; }
.te-guide-sources summary { cursor:pointer; padding:20px 0; }
.te-guide-sources a { display:block; padding:8px 0; }
.te-area-related { padding:0 0 96px; }
.te-area-related > h2 { font-size:clamp(30px,4vw,56px); text-align:center; margin:0 24px 48px; }
.te-area-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.te-area-tiles a { position:relative; aspect-ratio:4/3; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:30px; color:white !important; text-decoration:none; overflow:hidden; isolation:isolate; }
.te-area-tiles a::before { content:""; position:absolute; inset:0; background:rgba(12,24,29,.3); z-index:-1; transition:background .4s; }
.te-area-tiles img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; z-index:-2; transition:transform .7s; }
.te-area-tiles a:hover img { transform:scale(1.035); }
.te-area-tiles a:hover::before { background:rgba(12,24,29,.46); }
.te-area-tiles h3 { font-size:clamp(25px,2.5vw,40px); margin:0 0 20px; text-align:center; }
.te-area-tiles span { font-size:12px; text-transform:uppercase; letter-spacing:2px; border-bottom:1px solid currentColor; padding-bottom:6px; }
.te-development-note { max-width:900px; padding:0 24px 80px; margin:0 auto; font-size:14px; line-height:1.666; }
.te-inline-enquiry { padding-top:0; padding-bottom:96px; scroll-margin-top:70px; }
.te-inline-enquiry h2 { font-size:clamp(30px,3vw,40px); }
body[data-site-page=contact] .te-inline-enquiry { padding-top:96px; }
body[data-site-page=privacy-policy] .te-image-hero { min-height:430px; height:55svh; }
.te-legal h2 { font-size:clamp(25px,3vw,36px); letter-spacing:2px; }
.te-footer-grid .te-socials { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px; padding:0; margin:0; list-style:none; }
.te-socials li { padding:0; margin:0; }
.te-footer-grid .te-socials a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid currentColor; border-radius:50%; margin:0; font-size:16px; line-height:1; }
.te-footer-grid .te-socials a:hover { color:var(--te-gold); }
#global-footer .te-socials a { color:var(--te-cream) !important; background:transparent !important; }
#global-footer .te-socials a:hover { color:var(--te-gold) !important; }
#global-sidemenu .te-socials { display:flex; flex-wrap:wrap; gap:12px; }
#global-sidemenu .te-socials li { margin:0; }
#global-sidemenu .te-socials a { min-width:44px; min-height:44px; }
.te-footer-bottom { padding-bottom:16px; }
@media(max-width:1023px) {
  .te-story-inner { gap:40px; }
  .te-story-photo { min-height:520px; }
  .te-story-copy { padding-block:24px; }
}
@media(max-width:767px) {
  .te-main h1,.te-main h2,.te-main h3,.te-reasons h2,.te-reasons h3,.te-newsletter h2,.te-benagil h2,.te-contact-panel h2,.te-search-places h2,.te-search-places h3 { letter-spacing:2px; }
  body[data-local-search] #section-694de476-3aff-444e-914d-0a4b36fc09b6 h1 { letter-spacing:2px; font-size:34px; }
  .te-image-hero { min-height:620px; height:86svh; padding:150px 24px 75px; }
  .te-image-hero p { font-size:16px; }
  .te-image-hero .te-page-actions { margin-top:30px; }
  .te-page-intro { padding:64px 24px; }
  .te-page-intro p { font-size:16px; line-height:1.666; }
  .te-story { padding-bottom:64px; }
  .te-story-inner,.te-story-reverse .te-story-inner { flex-direction:column; gap:30px; }
  .te-story-photo { flex-basis:auto; min-height:0; height:420px; }
  .te-story-copy { flex-basis:auto; width:100%; padding:0; }
  .te-story-detail { display:none; }
  .te-story-copy h2 { font-size:30px; }
  .te-image-banner { min-height:580px; height:auto; margin-bottom:64px; padding:90px 24px; }
  .te-image-banner h2 { font-size:34px; }
  .te-image-banner p { font-size:16px; line-height:1.666; }
  .te-guide-prose { padding-bottom:64px; }
  .te-guide-prose p { font-size:16px; }
  .te-guide-sources { margin-bottom:64px; }
  .te-area-related { padding-bottom:64px; }
  .te-area-tiles { grid-template-columns:1fr; }
  .te-area-tiles a { aspect-ratio:3/2; }
  .te-area-tiles h3 { font-size:32px; }
  .te-inline-enquiry { padding:0 24px 64px; scroll-margin-top:40px; }
  body[data-site-page=contact] .te-inline-enquiry { padding-top:64px; }
  .te-button { font-size:12px; letter-spacing:1.5px; max-width:100%; }
  .te-footer-grid { grid-template-columns:1fr 1fr; }
  .te-footer-grid > div:last-child { grid-column:1/-1; }
}

/* Language choices share the original menu's typography and circular trigger row. */
#global-navbar .header__right {display:flex;align-items:center;gap:24px;}
.te-language {position:static;inset:auto;z-index:auto;width:auto;transition:none;display:flex;align-items:center;gap:4px;flex-shrink:0;}
#global-navbar .te-language {color:var(--te-cream);}
#global-navbar.scroll .te-language,body[data-local-detail] #global-navbar .te-language,body[data-local-search] #global-navbar .te-language {color:var(--te-ink);}
body[data-brand-layout] #global-navbar:not(.scroll) .te-language {color:var(--te-cream);}
#global-navbar:has(.te-language) .header__hamburger {margin-left:0 !important;}
.te-language a {display:flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:8px 4px;color:inherit;font:500 12px/1.2 CompassSans,sans-serif;letter-spacing:1px;text-decoration:none;}
.te-language a[aria-current="true"] {text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;}
.te-language a:focus-visible {outline:2px solid currentColor;outline-offset:2px;}
@media(max-width:600px){#global-navbar:has(.te-language) .header__container{padding-inline:0;}#global-navbar .header__right{gap:8px;}.te-language{gap:0;}.te-language a{min-width:28px;font-size:11px;letter-spacing:.5px;}#global-navbar:has(.te-language) .te-brand{gap:7px;}#global-navbar:has(.te-language) .te-wordmark{font-size:clamp(16px,4.6vw,22px);}}
