/* CASA BRAVA: dark ochre colour trial. Original logo file is preserved. */
:root{--brand-ochre:#71392F}
h1,h2,h3,main .kicker,main .eyebrow,main strong,main .link,main .text-link{color:var(--brand-ochre)}
header #main-nav,header #main-nav a,header #main-nav button,header .languages,header .languages a,header .menu-toggle{color:var(--brand-ochre)}
header #main-nav a[aria-current=page]{text-decoration-color:var(--brand-ochre)}
.brand:has(.casa-brava-logo){position:relative;display:block}
.brand .casa-brava-logo{opacity:0}
.brand:has(.casa-brava-logo)::after{content:"";position:absolute;inset:0;background:var(--brand-ochre);-webkit-mask:url('/assets/casa-brava-properties-logo.png') center/contain no-repeat;mask:url('/assets/casa-brava-properties-logo.png') center/contain no-repeat;pointer-events:none}
/* Retain readable light type on photo overlays and dark promotional blocks. */
.world-card h2,.world-card h3,.world-card .kicker,.region h2,.region h3,.region .eyebrow{color:inherit}

/* All interface text and dark controls share the terracotta tone. */
body{color:#71392F}.button,.header-booking{background:#71392F;border-color:#71392F;color:#fff}.button:hover,.header-booking:hover{background:#71392F;border-color:#71392F;color:#fff}.button.outline,.button.light{background:transparent;color:#71392F;border-color:#71392F}.button.outline:hover,.button.light:hover{background:#fbf2ef;color:#71392F}
/* Editorial hierarchy and consistent press cards. */
.section h2{font-size:max(17px, clamp(38px,4.4vw,64px));line-height:1.1}
.press-story>a.press-logo-link{height:220px;min-height:220px;box-sizing:border-box;flex-shrink:0}
.press-story .press-logo-link .press-logo.attitude img,.press-detail-heading .press-logo.attitude img{position:static!important;transform:none!important;top:auto!important;width:auto!important;max-width:220px!important;height:85px!important;object-fit:contain}
.press-detail-heading .press-logo{height:120px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.press-detail-heading .press-logo img{max-width:220px;max-height:90px;width:auto;height:auto;object-fit:contain}
@media(min-width:761px){.press-story-copy h3{min-height:2.3em;margin-top:18px;margin-bottom:18px}.press-story-copy{padding-top:8px}}
@media(max-width:600px){.section h2{font-size:max(17px, 38px)}.press-story>a.press-logo-link{height:180px;min-height:180px}}
.press-story .press-logo-link .press-logo.attitude,.press-detail-heading .press-logo.attitude{position:relative!important;width:220px!important;height:85px!important;min-height:85px!important;max-width:100%;overflow:hidden;margin-left:auto;margin-right:auto}
.press-story .press-logo-link .press-logo.attitude img,.press-detail-heading .press-logo.attitude img{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:260px!important;max-width:none!important;height:390px!important;max-height:none!important;object-fit:fill}
.tailor-made-studio{background:#faf5f1;scroll-margin-top:130px}.tailor-made-intro{max-width:850px;line-height:1.8}.tailor-made-part{padding:40px 0;margin-top:30px}.tailor-made-part:nth-of-type(even){background:#fff;padding:40px}.tailor-made-part h3{font-size:max(17px, clamp(30px,3vw,44px));line-height:1.15}.tailor-made-part h4{font-size:max(17px, 25px)}.tailor-made-part img{max-width:100%;height:auto}.tailor-made-part .kicker{margin-bottom:16px}.tailor-made-part p{line-height:1.8}@media(max-width:600px){.tailor-made-part:nth-of-type(even){padding:26px 18px}}
.faq-jump-links{display:flex;gap:10px;flex-wrap:wrap}.faq-jump-links a{padding:13px 18px;background:#f4ede7;color:#71392f}.faq-topic{margin-top:42px}.faq-topic>h3{font-size:max(17px, 32px)}.faq-group{scroll-margin-top:130px}.tailor-made-part{scroll-margin-top:130px}
.tailor-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.tailor-project-grid article{background:#fff;padding:30px}.tailor-project-grid strong{font-weight:500}@media(max-width:700px){.tailor-project-grid{grid-template-columns:1fr}}

/* Keep the transferred portfolio images inside their grid frames. */
.tailor-made-part .gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.tailor-made-part .gallery-grid .gallery-open{display:block;position:relative;width:100%;height:360px;padding:0;border:0;background:#eee8e1;overflow:hidden;cursor:zoom-in}
.tailor-made-part .gallery-grid .gallery-open img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center}
@media(max-width:700px){.tailor-made-part .gallery-grid{gap:12px}.tailor-made-part .gallery-grid .gallery-open{height:260px}}
@media(max-width:480px){.tailor-made-part .gallery-grid{grid-template-columns:1fr}.tailor-made-part .gallery-grid .gallery-open{height:340px}}

.press-logo.vogue{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:10px}.press-logo.vogue img{width:220px!important;height:58px!important;max-width:100%!important;object-fit:contain}.press-edition{display:block;font:17px/1.5 Arial,sans-serif;letter-spacing:.22em;color:#71392f}
.press-logo.reference-wordmark{height:auto;min-height:120px;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;text-align:center;overflow:visible;margin:0 auto 24px}.press-logo.reference-wordmark span{font-family:Georgia,serif;font-size:max(17px, clamp(24px,2.4vw,38px));letter-spacing:-.025em;line-height:1.15;overflow-wrap:anywhere}.press-story .press-logo.reference-wordmark{min-height:0;margin:0}.press-story .reference-wordmark span{font-size:max(17px, 30px)}.reference-date{font:17px/1.6 Arial,sans-serif;letter-spacing:.07em;color:#71392f}.press-story-copy h3{font-size:max(17px, 27px);line-height:1.15}.press-detail-heading .reference-wordmark{max-width:500px}
@media(min-width:761px){.press-story-copy h3{min-height:3.45em}.press-story-copy .reference-date{min-height:20px}}

/* Publisher identities retain their original colours. */
.press-logo,.press-logo img{filter:none!important;mix-blend-mode:normal!important;opacity:1!important}
.press-logo.publisher-logo{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:120px;min-height:0;width:100%;margin:0 auto}
.press-story .press-logo-link .publisher-logo img,.press-detail-heading .publisher-logo img{position:static!important;transform:none!important;width:auto!important;height:auto!important;max-width:220px!important;max-height:85px!important;object-fit:contain!important}
.press-logo.reference-wordmark span{color:#111}

/* One consistent Tailor Made catalogue. */
.tailor-service-catalogue{display:flex;flex-direction:column;gap:0;margin-top:32px}
.tailor-service-row{padding:44px 48px;background:#fff;border:0!important;box-sizing:border-box}
.tailor-service-row:nth-child(odd){background:#fff}.tailor-service-row:nth-child(4n+2){background:#f5f5f5}.tailor-service-row:nth-child(4n){background:#fbf2ef}
.tailor-service-row h4{font-family:'Cormorant Garamond',Cormorant,Georgia,serif;font-size:max(17px, 36px);line-height:1.15;margin:0 0 20px;color:#71392f}
.tailor-service-row p{max-width:900px}.tailor-service-row>strong{display:block;margin:20px 0;font-size:max(17px, 17px);color:#71392f}.tailor-service-row>a{display:inline-block;margin-top:12px}
.al-support-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 42px;margin:32px 0}.al-support-details h5{font:600 17px/1.5 Arial,sans-serif;color:#71392f;margin:0 0 10px}.al-support-details p{margin:0}.tailor-service-scope{font-size:max(17px, 14px);line-height:1.8}
@media(max-width:700px){.tailor-service-row{padding:30px 24px}.tailor-service-row h4{font-size:max(17px, 31px)}.al-support-details{grid-template-columns:1fr;gap:24px}}

footer .livro-reclamacoes-link{display:inline-flex;align-items:center;width:220px;max-width:100%;margin-top:24px;background:#fff;padding:8px;border:0;box-sizing:content-box}footer .livro-reclamacoes-link img{display:block!important;width:220px!important;max-width:100%!important;height:auto!important;object-fit:contain!important;filter:none!important;opacity:1!important}footer .livro-reclamacoes-link:focus-visible{outline:2px solid #fff;outline-offset:5px}

/* Optical logo sizing uses tightly framed original publisher artwork. */
.press-story .press-logo-link .press-logo.normalized-publisher,.press-detail-heading .press-logo.normalized-publisher{position:static!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%!important;height:110px!important;min-height:110px!important;max-width:100%;margin:0 auto!important;padding:0!important;overflow:visible!important;background:transparent!important}
.press-story .press-logo-link .press-logo.normalized-publisher img,.press-detail-heading .press-logo.normalized-publisher img{position:static!important;transform:none!important;width:190px!important;max-width:100%!important;height:76px!important;max-height:76px!important;object-fit:contain!important;filter:none!important}
.press-story .normalized-publisher[data-publisher="portuguese-soul"] img,.press-detail-heading .normalized-publisher[data-publisher="portuguese-soul"] img{height:100px!important;max-height:100px!important}
footer .livro-reclamacoes-link{width:144px!important;padding:0!important;background:transparent!important;margin-top:16px!important;border:0!important;box-shadow:none!important}
footer .livro-reclamacoes-link img{width:144px!important;height:auto!important;border:0!important;background:transparent!important}

/* Compact footer with the official complaints link in the legal navigation. */
footer{padding-top:32px;padding-bottom:22px}
footer .footer-top{gap:30px;align-items:start}
footer .footer-top>div{gap:7px}
footer .footer-top .brand{justify-self:start}
footer .footer-links{margin:22px 0 16px;gap:14px 20px;align-items:center}
footer .footer-links .livro-reclamacoes-link{width:92px!important;flex:0 0 92px;margin:0 6px 0 0!important;padding:0!important;background:transparent!important;line-height:0}
footer .footer-links .livro-reclamacoes-link img{width:92px!important;height:auto!important}
@media(max-width:800px){footer{padding-top:28px;padding-bottom:20px}footer .footer-top{gap:20px}footer .footer-links{margin-top:22px;gap:12px 18px}}

/* Complaints logo aligns with the contact column. */
footer .footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:30px;align-items:center}
footer .footer-legal-nav{grid-column:1/3;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:max(17px, 12px)}
footer .footer-links .livro-reclamacoes-link{grid-column:3;justify-self:start;margin:0!important}
@media(max-width:800px){footer .footer-links{grid-template-columns:minmax(0,1fr) auto;gap:16px}footer .footer-legal-nav{grid-column:1}footer .footer-links .livro-reclamacoes-link{grid-column:2;justify-self:end}}
@media(max-width:480px){footer .footer-links{grid-template-columns:1fr}footer .footer-links .livro-reclamacoes-link{grid-column:1;justify-self:start}}

/* Review platform brand colours, independent of the site palette. */
.platform-mark[data-platform="airbnb"],.platform-mark[data-platform="airbnb"] span{color:#FF385C!important}
.platform-mark[data-platform="booking"],.platform-mark[data-platform="booking"] span{color:#003B95!important}
.platform-mark img{filter:none!important;opacity:1!important;mix-blend-mode:normal!important}
.platform-mark[data-platform="google"] img{width:82px;height:27px;object-fit:contain}
.platform-mark[data-platform="booking"] img{width:126px;height:26px;object-fit:contain}

/* Clear alternating backgrounds around onboarding and additional services. */
.onboarding-section{background:#fff}.tailor-made-studio{background:#fbf2ef}.tailor-made-studio + section{background:#fff}.tailor-made-studio + section + section{background:#f5f5f5}

/* STAYS: shared action rows and gentle alternating section. */
.stay-card{display:flex;flex-direction:column}.stay-card>div{display:flex;flex-direction:column;flex:1}.stay-card .stay-card-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:auto;padding-top:18px}.stay-card .stay-card-actions .button{margin:0!important;width:230px;max-width:100%;min-height:52px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.stay-choice-section{background:#fbf2ef!important}.monte-stay-actions{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap}.monte-stay-actions .button{margin:0;min-height:52px;display:inline-flex;align-items:center;justify-content:center}.stay-card .stay-card-actions>div{padding:0}
