:root {
  --ivory: #f7f3ea;
  --ink: #241f1a;
  --teal: #1f5c5a;
  --gold: #b08948;
  --muted: #6d655c;
  --line: #e4dccb;
  --site-accent: var(--teal);
  --display: "Playfair Display", Georgia, serif;
  --body: "DM Sans", "Segoe UI", sans-serif;
  --script: "Great Vibes", cursive;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--body); font-size: 1.05rem; line-height: 1.6; }
a { color: inherit; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem; z-index: 5; }
.wrap { width: min(1120px, calc(100% - 2.5rem)); margin: 0 auto; }
.site-header { border-bottom: 1px solid var(--line); background: rgba(247, 243, 234, .94); position: sticky; top: 0; z-index: 2; }
.bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; }
.brand { font-family: var(--display); font-weight: 500; letter-spacing: .04em; text-decoration: none; }
.logo { height: 2.4rem; width: auto; display: block; }
.nav { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.nav a, .group summary { text-decoration: none; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.group { position: relative; }
.group summary { list-style: none; }
.group summary::-webkit-details-marker { display: none; }
.sub { display: none; position: absolute; top: 100%; left: 0; min-width: 13rem; background: #fff; border: 1px solid var(--line); padding: .7rem; z-index: 4; }
.group[open] .sub { display: grid; gap: .45rem; }
.book { background: var(--site-accent); color: #fff; text-decoration: none; padding: .75rem 1.1rem; letter-spacing: .14em; text-transform: uppercase; font-size: .75rem; }
body:not(.tlv) .menu { display: none; }
.hero { min-height: 70vh; display: grid; place-items: end start; color: #fff; background: #1c3332 center/cover no-repeat; }
.hero .wrap { padding: 4rem 0 3rem; }
.script { font-family: var(--script); font-size: clamp(3.2rem, 8vw, 6.5rem); line-height: 1; margin: 0; font-weight: 400; }
.eyebrow { letter-spacing: .28em; text-transform: uppercase; font-size: .72rem; color: var(--teal); }
h1, h2 { font-family: var(--display); font-weight: 400; line-height: 1.15; }
.panel { padding: 4rem 0; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.card { border: 1px solid var(--line); background: #fff; padding: 1.25rem; }
.card a { text-decoration: none; }
.photo { width: 100%; height: 14rem; object-fit: cover; display: block; background: #e7e1d6; }
.banner { height: 22rem; margin-bottom: 1.5rem; }
.strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.strip .photo { height: 9rem; }
.logo.light { height: 3.2rem; }
.facts { color: var(--muted); }
.rule { width: 3rem; height: 1px; background: var(--gold); border: 0; }
.note { color: var(--muted); }
form { display: grid; gap: .8rem; max-width: 36rem; }
label { display: grid; gap: .3rem; font-size: .85rem; }
input, select { border: 1px solid var(--line); background: #fff; color: var(--ink); padding: .75rem; font: inherit; width: 100%; }
button { background: var(--site-accent); color: #fff; border: 0; padding: .9rem 1rem; width: 100%; font: inherit; letter-spacing: .08em; text-transform: uppercase; }
.status { border-left: 2px solid var(--gold); padding-left: 1rem; }
.site-footer { background: #1b1916; color: #f3ecdf; padding: 3rem 0; }
.site-footer a { color: #f3ecdf; }
.tlv { background: oklch(0.975 0.010 78); color: oklch(0.16 0.012 60); }
.tlv .site-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; height: 6rem; padding-right: 2rem; }
.tlv .site-nav.is-overlay:not(.is-solid) { background: transparent; }
.tlv .site-nav.is-solid { background: oklch(0.99 0.005 78 / 0.96); border-bottom: 1px solid oklch(0.88 0.022 75 / 0.6); box-shadow: 0 1px 20px rgba(0,0,0,.06); }
.tlv .mark-link { display: flex; align-self: stretch; }
.tlv .mark { height: 6rem; width: auto; object-fit: contain; }
.tlv .site-nav.is-overlay:not(.is-solid) .mark.dark, .tlv .site-nav.is-solid .mark.light, .tlv:not(.home) .mark.light { display: none; }
.tlv .desk { display: flex; align-items: center; gap: 1.4rem; }
.tlv .nav-link { font-size: .65rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; background: none; border: 0; color: inherit; cursor: pointer; }
.tlv .site-nav.is-overlay:not(.is-solid) .nav-link { color: rgba(255,255,255,.88); }
.tlv .menu { position: relative; }
.tlv .menu summary { list-style: none; }
.tlv .menu summary::-webkit-details-marker { display: none; }
.tlv .menu .panel { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 1rem; min-width: 16rem; background: oklch(0.99 0.005 78); border: 1px solid oklch(0.88 0.022 75); box-shadow: 0 8px 40px rgba(0,0,0,.12); z-index: 50; }
.tlv .menu.wide .panel { width: 34rem; display: none; }
.tlv .menu[open] .panel, .tlv .menu.wide[open] .panel { display: grid; }
.tlv .menu.wide[open] .panel { grid-template-columns: 1fr 1fr; }
.tlv .menu .panel a { display: flex; flex-direction: column; gap: .15rem; padding: .75rem 1.1rem; text-decoration: none; border-bottom: 1px solid oklch(0.93 0.015 75); }
.tlv .menu .panel strong { font-weight: 500; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.tlv .menu .panel span { color: oklch(0.58 0.010 60); font-size: .65rem; }
.tlv .menu-toggle, .tlv .mobile { display: none; }
.tlv .container { width: min(1360px, calc(100% - 6rem)); margin: 0 auto; }
.tlv .narrow { width: min(760px, calc(100% - 3rem)); }
.tlv .center { text-align: center; }
.tlv h1, .tlv h2, .tlv h3 { font-weight: 300; letter-spacing: -.01em; }
.tlv .hero-stage { position: relative; min-height: 100svh; height: 100svh; display: grid; place-items: center; color: #fff; text-align: center; background: #123 58% 35% / cover no-repeat; }
.tlv .hero-stage::before { content: ""; position: absolute; inset: 0; background: inherit; filter: brightness(1.06) saturate(1.22) contrast(1.08); }
.tlv .veil, .tlv .veil-bottom, .tlv .veil-top { position: absolute; inset: 0; }
.tlv .veil { background: rgba(0,0,0,.28); }
.tlv .veil-bottom { background: linear-gradient(to top, rgba(0,0,0,.68), rgba(0,0,0,.42) 40%, rgba(0,0,0,.18) 70%, transparent); }
.tlv .veil-top { background: linear-gradient(to bottom, rgba(0,0,0,.22), transparent 30%); }
.tlv .hero-copy { position: relative; z-index: 1; width: min(980px, calc(100% - 2rem)); }
.tlv .hero-stage h1 { font-family: "Great Vibes", cursive; font-size: clamp(3.5rem, 8vw, 8rem); font-weight: 400; line-height: 1.05; color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.55); margin: 0 0 .4rem; }
.tlv .kicker, .tlv .eyebrow { font-size: .72rem; letter-spacing: .32em; text-transform: uppercase; }
.tlv .hero-stage .kicker { color: rgba(255,255,255,.88); text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.tlv .hero-stage .italic { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-size: clamp(1.1rem, 2vw, 1.5rem); color: rgba(255,255,255,.92); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.tlv .hero-actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; }
.tlv .btn, .tlv .review-nav button { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 3rem; padding: .9rem 2rem; font-size: .7rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; cursor: pointer; background: transparent; }
.tlv .btn.teal { background: oklch(0.38 0.075 188); color: oklch(0.975 0.005 78); }
.tlv .btn.ghost { color: #fff; border-color: rgba(255,255,255,.6); }
.tlv .btn.whats { background: oklch(0.32 0.09 155); color: #fff; }
.tlv .btn.gold { background: oklch(0.68 0.085 72); color: oklch(0.16 0.012 60); }
.tlv .btn.line { color: oklch(0.38 0.075 188); border-color: oklch(0.38 0.075 188); }
.tlv .trust { margin-top: 1.6rem; font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: rgba(255,255,255,.95); text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.tlv .stars, .tlv .diamond { color: oklch(0.68 0.085 72); letter-spacing: .15em; }
.tlv .down { position: absolute; bottom: 1.6rem; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.7); z-index: 1; text-decoration: none; font-size: 1.4rem; }
.tlv .sunset { position: relative; height: 85vh; min-height: 560px; display: flex; align-items: center; justify-content: center; overflow: hidden; text-align: center; color: #fff; background-color: #222; background-position: 50% 42%; background-size: cover; background-repeat: no-repeat; }
.tlv .sunset::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 55%, rgba(0,0,0,.08) 0%, rgba(0,0,0,.32) 100%); }
.tlv .sunset-copy { position: relative; z-index: 1; padding: 0 1.5rem; }
.tlv .sunset-copy .kicker { margin: 0 0 1.25rem; text-shadow: 0 1px 6px rgba(0,0,0,.4); }
.tlv .sunset-copy h2 { margin: 0; max-width: 820px; line-height: 1.15; text-shadow: 0 2px 24px rgba(0,0,0,.3); }
.tlv .sunset h2, .tlv .ink h2 { color: #fff; font-size: clamp(2.4rem, 6vw, 5rem); }
.tlv .sunset .kicker { color: rgba(255,255,255,.75); letter-spacing: .3em; }
 .tlv .stats, .tlv .urgency { background: oklch(0.18 0.01 65); color: rgba(255,255,255,.75); }
.tlv .stats { padding: 2rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.tlv .stat-row { display: grid; grid-template-columns: repeat(5, 1fr); text-align: center; }
.tlv .stat-row > div { padding: .5rem 1.5rem; }
.tlv .stat-row > div + div { border-left: 1px solid rgba(255,255,255,.1); }
.tlv .stat-row p { margin: 0; }
.tlv .stat-num { font-family: "Playfair Display", Georgia, serif; font-size: 2.25rem; font-weight: 300; line-height: 1.1; color: oklch(0.55 0.07 70); margin-bottom: .25rem !important; }
.tlv .stat-num span { font-family: "DM Sans", sans-serif; font-size: .875rem; color: oklch(0.55 0.07 70 / .8); }
.tlv .stat-name { font-family: "DM Sans", sans-serif; font-size: .75rem; font-weight: 600; letter-spacing: .025em; color: rgba(255,255,255,.8); margin-bottom: .25rem !important; }
.tlv .stat-row > div > p:last-child { font-size: .65rem; line-height: 1.6; color: rgba(255,255,255,.4); }
.tlv .stat-more { width: min(1360px, calc(100% - 6rem)); margin: 1.25rem auto 0; padding: 1.25rem 0 0; border-top: 1px solid rgba(255,255,255,.1); text-align: center; }
.tlv .stat-more a { font-size: .75rem; color: rgba(255,255,255,.6); text-decoration: none; }
.tlv .stat-more a::after { content: " →"; }
.tlv .urgency { padding: .75rem 0; text-align: center; border-bottom: 1px solid oklch(0.55 0.07 70 / .2); }
.tlv .urgency .container { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; }
.tlv .urgency .container::before { content: ""; width: .375rem; height: .375rem; border-radius: 50%; background: oklch(0.72 0.07 70); opacity: .8; }
.tlv .urgency span, .tlv .urgency a { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; }
.tlv .urgency span { color: rgba(255,255,255,.5); }
.tlv .urgency a { color: oklch(0.72 0.07 70); text-decoration: none; }
.tlv .urgency a::before { content: "·"; color: rgba(255,255,255,.2); margin-right: 1rem; }
.tlv .band { padding: 6rem 0; }
.tlv .band.soft { background: oklch(0.97 0.005 80); }
.tlv .eyebrow { color: oklch(0.38 0.075 188); letter-spacing: .28em; }
.tlv .eyebrow.gold, .tlv .ink .eyebrow { color: oklch(0.68 0.085 72); }
.tlv .band h2 { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.tlv .rule { display: block; width: 3rem; height: 1px; background: oklch(0.68 0.085 72); margin: 1.2rem 0; }
.tlv .center-rule { margin-left: auto; margin-right: auto; }
.tlv .lede { max-width: 42rem; margin: 1rem auto 0; color: oklch(0.45 0.01 65); line-height: 1.85; }
.tlv .villas { display: grid; gap: 4rem; margin-top: 4rem; }
.tlv .villa { display: grid; grid-template-columns: 1fr 1fr; min-height: 28rem; background: oklch(0.985 0.003 80); box-shadow: 0 18px 50px rgba(0,0,0,.12); }
.tlv .villa.flip .villa-photo { order: 2; }
.tlv .villa-photo { min-height: 26rem; background: #ddd center/cover no-repeat; }
.tlv .villa-copy { padding: 3rem; display: flex; flex-direction: column; justify-content: center; }
.tlv .facts { letter-spacing: .18em; text-transform: uppercase; color: oklch(0.55 0.07 70); font-size: .68rem; }
.tlv .clamp { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.85; color: oklch(0.38 0.01 65); }
.tlv .chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.tlv .chips span { border: 1px solid oklch(0.68 0.085 72 / .35); color: oklch(0.45 0.07 70); font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; padding: .35rem .6rem; }
.tlv .villa-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.tlv .quote, .tlv form { display: grid; gap: .8rem; text-align: left; margin-top: 1.5rem; }
.tlv input, .tlv select, .tlv textarea { width: 100%; border: 1px solid oklch(0.875 0.022 75); background: #fff; padding: .85rem 1rem; font: inherit; color: inherit; }
.tlv .ink { background: oklch(0.18 0.01 65); color: rgba(255,255,255,.75); padding: 5rem 0; }
.tlv .ink h2 em, .tlv h2 em { font-style: italic; }
.tlv .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.1); margin: 2rem 0; text-align: center; }
.tlv .steps div { background: oklch(0.18 0.01 65); padding: 2rem 1rem; }
.tlv .steps p:first-child { color: oklch(0.55 0.07 70); letter-spacing: .3em; }
.tlv .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: oklch(0.90 0.004 80); }
.tlv .cards article { background: #fff; }
.tlv .cards img { width: 100%; height: 11rem; object-fit: cover; display: block; }
.tlv .cards div { padding: 1.6rem; }
.tlv .cards a { color: oklch(0.38 0.075 188); letter-spacing: .16em; text-transform: uppercase; font-size: .7rem; }
.tlv .split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.tlv .event-photo { min-height: 30rem; background: #222 center/cover no-repeat; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; }
.tlv .event-list { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; padding: 0; list-style: none; }
.tlv .event-list li { background: oklch(0.97 0.005 80); border: 1px solid oklch(0.92 0.004 80); padding: .9rem; }
.tlv .faq details { background: #fff; border-bottom: 1px solid oklch(0.92 0.004 80); text-align: left; }
.tlv .faq summary { cursor: pointer; padding: 1rem 0; font-weight: 500; }
.tlv .faq p { color: oklch(0.42 0.01 65); }
.tlv .reasons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; text-align: left; margin: 2rem 0; }
.tlv .reasons article { background: #fff; border: 1px solid oklch(0.92 0.004 80); padding: 1.4rem; }
.tlv .filters { display: flex; gap: .5rem; justify-content: center; margin: 1.5rem 0; }
.tlv .filters button, .tlv [data-more] { background: transparent; color: inherit; border: 1px solid oklch(0.88 0.022 75); letter-spacing: .14em; text-transform: uppercase; font-size: .68rem; padding: .6rem .8rem; width: auto; }
.tlv .filters .is-on { background: oklch(0.38 0.075 188); color: #fff; }
.tlv .mosaic { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.tlv .mosaic img { width: 100%; height: 14rem; object-fit: cover; display: block; }
.tlv .feature { position: relative; display: block; max-width: 1360px; margin: 0 auto 1rem; }
.tlv .feature img { width: 100%; max-height: 32rem; object-fit: cover; display: block; }
.tlv .feature span { position: absolute; left: 1.5rem; bottom: 1.5rem; color: #fff; font-family: "Playfair Display", Georgia, serif; font-size: 2rem; }
.tlv .feature small { display: block; font-family: "DM Sans", sans-serif; letter-spacing: .22em; text-transform: uppercase; font-size: .68rem; }
.tlv blockquote { font-family: "Playfair Display", Georgia, serif; font-size: 1.35rem; font-style: italic; }
.tlv .review-nav { display: flex; gap: .4rem; justify-content: center; align-items: center; }
.tlv .review-nav button[data-dot] { width: .5rem; height: .5rem; border-radius: 99px; padding: 0; background: oklch(0.82 0.004 80); }
.tlv .review-nav button.is-on { width: 1.4rem; background: oklch(0.42 0.09 185); }
.tlv .fine, .tlv .contact-row { color: oklch(0.5 0.01 60); font-size: .85rem; }
.tlv .ink .contact-row, .tlv .ink .contact-row a { color: rgba(255,255,255,.55); }
.tlv .contact-row { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.tlv .site-foot { background: oklch(0.12 0.010 60); color: rgba(255,255,255,.45); padding-bottom: 2rem; }
.tlv .gold-line { height: 1px; background: linear-gradient(to right, transparent, oklch(0.68 0.085 72 / .5), transparent); }
.tlv .foot-grid { display: grid; grid-template-columns: 1.4fr .9fr .7fr 1fr; gap: 2rem; padding: 4rem 0 2rem; }
.tlv .foot-mark { height: 5rem; width: auto; }
.tlv .site-foot h2 { color: oklch(0.68 0.085 72); font-family: "DM Sans", sans-serif; font-size: .65rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; }
.tlv .site-foot a { color: rgba(255,255,255,.45); text-decoration: none; }
.tlv .site-foot li { margin: .45rem 0; }
.tlv .social { display: flex; gap: 1rem; }
.tlv .wa-link { display: inline-block; margin-top: 1rem; border: 1px solid oklch(0.68 0.085 72 / .4); color: oklch(0.68 0.085 72); padding: .6rem .8rem; letter-spacing: .16em; text-transform: uppercase; font-size: .65rem; }
.tlv .foot-ready, .tlv .foot-base { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-top: 1px solid rgba(255,255,255,.08); padding: 1.5rem 0; }
.tlv .script-line { font-family: "Playfair Display", Georgia, serif; font-style: italic; color: rgba(255,255,255,.85); font-size: 1.6rem; }
.tlv .wa-fab { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 45; background: oklch(0.16 0.012 60); color: #fff; border: 1px solid oklch(0.68 0.085 72 / .45); padding: .85rem 1.1rem; letter-spacing: .16em; text-transform: uppercase; font-size: .65rem; text-decoration: none; box-shadow: 0 4px 20px rgba(0,0,0,.35); }
.tlv .page { padding: 7rem 0 4rem; }
.tlv .page h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); text-align: center; }
.tlv .page-hero { width: 100%; height: 52vh; object-fit: cover; display: block; margin-top: 6rem; }
.tlv .page .strip { grid-template-columns: repeat(3, 1fr); }
.tlv .page .photo { height: 16rem; }
@media (max-width: 800px) {
  body:not(.tlv) .nav { display: none; }
  body:not(.tlv) .menu { display: block; }
  body:not(.tlv) .menu[open] .nav, body:not(.tlv) .menu .nav { display: grid; gap: .8rem; padding: .5rem 0 1rem; }
  body:not(.tlv) .sub { position: static; border: 0; padding: .2rem 0 .2rem .6rem; }
  .grid, .strip { grid-template-columns: 1fr; }
  .banner { height: 14rem; }
  body:not(.tlv) .bar { align-items: flex-start; padding: .8rem 0; }
}
@media (max-width: 1024px) {
  .tlv .desk { display: none; }
  .tlv .menu-toggle { display: inline-flex; background: transparent; color: inherit; width: auto; border: 0; letter-spacing: .16em; }
  .tlv .site-nav.is-overlay:not(.is-solid) .menu-toggle { color: #fff; }
  .tlv .mobile { display: grid; position: fixed; top: 6rem; left: 0; right: 0; bottom: 0; overflow: auto; background: oklch(0.99 0.005 78); z-index: 39; padding: 1rem 1.25rem 5rem; }
  .tlv .mobile[hidden] { display: none; }
  .tlv .mobile a { padding: .8rem 0; border-bottom: 1px solid oklch(0.93 0.015 75); letter-spacing: .16em; text-transform: uppercase; font-size: .72rem; text-decoration: none; }
  .tlv .villa, .tlv .split, .tlv .steps, .tlv .cards, .tlv .reasons, .tlv .stat-row, .tlv .foot-grid, .tlv .mosaic { grid-template-columns: 1fr; }
  .tlv .villa.flip .villa-photo { order: 0; }
  .tlv .container { width: min(1360px, calc(100% - 2rem)); }
  .tlv .foot-ready, .tlv .foot-base { flex-direction: column; align-items: flex-start; }
  .tlv .hero-stage h1 { font-size: clamp(3.2rem, 14vw, 5rem); }
}

@media (max-width: 1024px) { .tlv .stat-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 639px) { .tlv .stat-row { grid-template-columns: repeat(2, 1fr); gap: 1.5rem 0; } .tlv .stat-row > div { border: 0 !important; } .tlv .stat-more { width: calc(100% - 2rem); } }

.tlv .villa-showcase { padding-top: 9rem; }
.tlv .villa-showcase > .center > h2 { font-size: 3rem; line-height: 1; margin: 1rem 0 0; }
.tlv .villa-showcase > .center > .eyebrow { display: inline-block; border-top: 1px solid currentColor; margin: 0; padding-top: .1rem; }
@media (max-width: 767px) { .tlv .villa-showcase { padding-top: 7rem; } .tlv .villa-showcase > .center > h2 { font-size: 2.25rem; } }
.tlv .rates-intro,.tlv .calendar-section { background: oklch(0.97 0.005 80); }
.tlv .rates-intro { padding: 5rem 0; }
.tlv .rates-intro h2 { font-size: clamp(2.25rem,4vw,3rem); margin: .75rem 0 1.25rem; }
.tlv .rates-intro .container > p:not(.eyebrow),.tlv .calendar-intro { max-width: 36rem; margin: 0 auto; font-size: .875rem; line-height: 1.6; color: oklch(.45 .01 65); }
.tlv .rates-intro .btn { margin-top: 2rem; }
.tlv .calendar-section { padding: 4rem 0; }
.tlv .calendar-section h2 { font-size: clamp(2rem,3vw,2.25rem); margin: .75rem 0 1rem; }
.tlv .calendar-card { width: min(512px,calc(100% - 2rem)); margin: 2.5rem auto 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd5ce; border-radius: 1rem; box-shadow: 0 3px 15px rgba(0,0,0,.04); text-align: left; }
.tlv .calendar-card h3 { font-size: 1.5rem; line-height: 1.2; margin: 1rem 0 .5rem; }
.tlv .calendar-card h4 { font-family: var(--display); font-weight: 400; font-size: 1.25rem; margin: 0 0 .75rem; }
.tlv .calendar-card p { font-size: .75rem; line-height: 1.65; margin: 0; color: #524d48; }
.tlv .calendar-card .calendar-overline { font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; }
.tlv .calendar-card .availability-form { margin-top: 1.25rem; gap: 1.2rem; }
.tlv .calendar-box { border: 1px solid #e8e3df; padding: .75rem; }
.tlv .calendar-selection,.tlv .calendar-weekdays,.tlv .calendar-days { display: grid; gap: .25rem; }
.tlv .calendar-selection { grid-template-columns: repeat(2,1fr); gap: .5rem; }
.tlv .calendar-selection button,.tlv .calendar-month button,.tlv .calendar-clear { background: white; color: #171513; border: 1px solid #ddd1c7; border-radius: 3px; padding: .6rem; font: inherit; font-size: .8rem; cursor: pointer; }
.tlv .calendar-selection button.is-active { border-color: #006e69; background: #effaf7; }
.tlv .calendar-month { display: flex; justify-content: space-between; align-items: center; margin: 1rem 0 .5rem; }
.tlv .calendar-month button { width: 2rem; }
.tlv .calendar-weekdays,.tlv .calendar-days { grid-template-columns: repeat(7,1fr); text-align: center; }
.tlv .calendar-weekdays { font-size: .7rem; padding: .5rem 0; }
.tlv .calendar-days button { min-width: 0; height: 2.5rem; padding: 0; border: 1px solid #d8ece5; border-radius: 3px; background: #e8f8f3; color: #00695f; cursor: pointer; font-size: .8rem; }
.tlv .calendar-days button:disabled { background: #f1f1f1; border-color: #f1f1f1; color: #999; text-decoration: line-through; cursor: not-allowed; }
.tlv .calendar-days button.is-selected { background: #006e69; color: white; }
.tlv .calendar-box [data-calendar-status] { margin-top: .75rem; color: #171513; font-size: .8rem; }
.tlv .calendar-box .calendar-help { margin-top: .5rem; }
.tlv .calendar-clear { margin-top: .75rem; }
.tlv .calendar-guests { font-size: .7rem; text-transform: uppercase; letter-spacing: .15em; }
.tlv .calendar-guests input { margin-top: .5rem; }
.tlv .calendar-submit { width: 100%; }
.tlv .calendar-submit:disabled { opacity: .5; cursor: not-allowed; }
.tlv .calendar-ask { text-align: center; color: #087a6d; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; }
.tlv .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.tlv .calendar-selection button,.tlv .calendar-month button,.tlv .calendar-clear { text-transform: none; letter-spacing: normal; font-weight: 400; }
.tlv .calendar-clear { width: auto; }
.tlv .booking-width { width: min(896px,calc(100% - 3rem)); margin: 0 auto; }
.tlv .booking-hero { background: oklch(.18 .01 65); color: white; padding: 8rem 0 3.5rem; }
.tlv .booking-hero h1 { font-family: var(--display); font-size: clamp(2.25rem,4vw,3rem); line-height: 1.1; color: #fff; margin: 1rem 0 1.25rem; }
.tlv .booking-hero p:first-child { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.tlv .booking-hero p:last-child { max-width: 42rem; color: rgba(255,255,255,.75); line-height: 1.5; margin: 0; }
.tlv .booking-wrap { padding: 3rem 0; background: oklch(.98 .008 80); }
.tlv .booking-card { border: 1px solid #e4dbd2; padding: 2rem; background: rgba(255,255,255,.45); }
.tlv .booking-card h2 { font-size: 1.875rem; margin: .8rem 0; }
.tlv .booking-card > p { font-size: .875rem; line-height: 1.7; }
.tlv .booking-card .booking-overline { color: #2e817b; font-size: .75rem; text-transform: uppercase; letter-spacing: .18em; }
.tlv .booking-form { margin-top: 2rem; gap: 1.25rem; }
.tlv .booking-form label { font-size: .7rem; text-transform: uppercase; color: #696562; }
.tlv .booking-form label select,.tlv .booking-form label input { display: block; margin-top: .5rem; font-size: .875rem; color: #252321; text-transform: none; }
.tlv .booking-form [data-choose-villa] { font-size: .875rem; margin: 0; }
.tlv .booking-form .calendar-box h4 { font-family: var(--display); font-size: 1.25rem; font-weight: 400; margin: 0 0 .75rem; }
.tlv .booking-form .calendar-box p { font-size: .75rem; line-height: 1.6; }
.tlv .booking-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.tlv .booking-submit { width: 100%; justify-content: flex-start; }
.tlv .booking-submit:disabled { opacity: .6; cursor: not-allowed; }
.tlv .booking-card .booking-help { color: #77716b; font-size: .75rem; margin-top: 1.5rem; }
.tlv .booking-events { padding: 4rem 1.5rem 5rem; background: oklch(.97 .005 80); }
.tlv .booking-event-card { max-width: 1024px; margin: auto; padding: 2.5rem; border: 1px solid #e4d8cc; border-radius: 1rem; background: #fff; }
.tlv .booking-event-card h2 { font-size: clamp(1.875rem,3vw,2.25rem); }
.tlv .booking-event-card p { color: #68615b; font-size: .875rem; line-height: 1.6; }
.tlv .booking-event-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2rem; }
.tlv .booking-event-grid div { border: 1px solid #ece3db; border-radius: .75rem; padding: 1.25rem; background: #fdfbf9; }
.tlv .booking-event-grid h3 { font-family: var(--body); font-size: .9rem; font-weight: 600; }
.tlv .booking-event-grid p,.tlv .booking-event-note { font-size: .75rem; }
.tlv .booking-event-note { background: #f6f1ea; border-radius: .75rem; padding: 1rem; margin-top: 1.5rem; }
@media(max-width:640px) { .tlv .booking-card { padding: 1.25rem; } .tlv .booking-fields,.tlv .booking-event-grid { grid-template-columns: 1fr; } .tlv .booking-event-card { padding: 1.5rem; } }
.tlv .booking-width { width: min(800px,calc(100% - 3rem)); }
.tlv .booking-card .booking-form { max-width: none; }
.tlv .booking-quote { margin-top: .25rem; padding: 1.25rem; border: 1px solid #8de8d3; border-radius: 4px; background: #fff; }
.tlv .booking-quote[hidden] { display: none; }
.tlv .booking-quote h3 { font-family: var(--display); font-size: 1.5rem; font-weight: 400; margin: 0 0 .75rem; }
.tlv .booking-quote p { margin: 0; font-size: .875rem; line-height: 1.6; }
.tlv .quote-items { margin-top: 1.25rem; }
.tlv .quote-row,.tlv .quote-total { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; font-size: .875rem; }
.tlv .quote-row { border-bottom: 1px solid #ded5ce; }
.tlv .quote-row span:last-child,.tlv .quote-total strong:last-child { white-space: nowrap; text-align: right; }
.tlv .quote-total { font-size: 1rem; padding: 1.25rem 0 .8rem; }
.tlv .booking-quote .quote-note { font-size: .75rem; margin: .4rem 0 1rem; }
.tlv .booking-quote .quote-refresh { padding: 0; width: auto; background: none; color: inherit; text-decoration: underline; text-transform: none; letter-spacing: normal; font-size: .875rem; cursor: pointer; margin-bottom: 1rem; }
.tlv .quote-payments { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.tlv .quote-payments button { background: #00534d; opacity: .5; cursor: not-allowed; font-size: .7rem; font-weight: 600; }
.tlv .calendar-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .5rem; }
.tlv .calendar-links button { width: auto; padding: 0; margin: 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: .75rem; letter-spacing: normal; text-transform: none; text-decoration: underline; cursor: pointer; }
.tlv .calendar-links button:focus-visible { outline: 2px solid #006e69; outline-offset: 3px; }
.tlv .property-hero { position: relative; min-height: 65vh; display: flex; align-items: flex-end; background: #292524; padding: 8rem 0 4rem; color: white; overflow: hidden; }
.tlv .property-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tlv .property-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.25) 60%,rgba(0,0,0,.1)); }
.tlv .property-hero-copy { position: relative; }
.tlv .property-hero-copy p { color: rgba(255,255,255,.8); font-size: .75rem; letter-spacing: .25em; text-transform: uppercase; }
.tlv .property-hero h1 { font-family: var(--display); color: white; font-size: clamp(2.25rem,5vw,3.75rem); margin: 1.25rem 0 2rem; }
.tlv .property-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 3.5rem; padding-top: 4rem; padding-bottom: 4rem; }
.tlv .property-main > section { margin-top: 2.5rem; }
.tlv .property-main h2 { font-size: 1.875rem; margin: 0 0 1.25rem; }
.tlv .property-main h3 { font-size: 1.5rem; margin: 2rem 0 .75rem; }
.tlv .property-main p { line-height: 2; color: #44403c; }
.tlv .property-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; padding: 1.5rem 0; border-top: 1px solid #ddd6ce; border-bottom: 1px solid #ddd6ce; }
.tlv .property-facts p { color: #075b55; font-family: var(--display); font-size: 1.875rem; line-height: 1.2; margin: 0 0 .25rem; }
.tlv .property-facts span,.tlv .property-details dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; }
.tlv .property-amenities { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.tlv .property-amenities li { border-bottom: 1px solid #e1dcd7; padding: .5rem 0; font-size: .875rem; }
.tlv .property-images { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.tlv .property-images a[hidden] { display: none; }
.tlv .property-images img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 2px; }
.tlv .property-more { width: auto; margin-top: 1.5rem; border: 1px solid #00675d; background: transparent; color: #00675d; cursor: pointer; font-size: .7rem; }
.tlv .property-details { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.25rem; }
.tlv .property-details dd { margin: .5rem 0 0; }
.tlv .property-aside .calendar-section { background: transparent; padding: 0; }
.tlv .property-aside .calendar-section > .container { display: none; }
.tlv .property-aside .calendar-card { width: 100%; margin: 0; }
.tlv .property-aside .calendar-card .availability-form { max-width: none; }
.tlv .property-aside .calendar-selection { grid-template-columns: 1fr 1fr; }
.tlv .property-more-space { margin-top: 2rem; border-top: 1px solid #ddd6ce; padding-top: 1.5rem; }
.tlv .property-more-space h2 { font-size: 1.5rem; }
.tlv .property-more-space p { font-size: .875rem; line-height: 1.75; }
@media(max-width:1024px) { .tlv .property-layout { grid-template-columns: 1fr; } .tlv .property-aside { max-width: 512px; } }
@media(max-width:640px) { .tlv .property-facts { grid-template-columns: repeat(2,1fr); } .tlv .property-amenities,.tlv .property-images { grid-template-columns: repeat(2,1fr); } }
.tlv .property-hero-copy,.tlv .property-layout { width: min(1440px,calc(100% - 6rem)); }
.tlv .property-aside select[data-villa] { display: none; }
.tlv .property-aside .calendar-card h3 { font-family: var(--display); }
@media(max-width:640px) { .tlv .property-hero-copy,.tlv .property-layout { width: calc(100% - 2rem); } }
.tlv .wa-fab { display: inline-flex; align-items: center; gap: .55rem; right: 1.5rem; bottom: 1.5rem; padding: .8rem 1.1rem; border: 0; border-radius: 999px; background: #008477; color: white; font-family: var(--body); font-size: .875rem; font-weight: 600; letter-spacing: normal; text-transform: none; box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.tlv .wa-fab svg { width: 16px; height: 16px; flex: none; }
.tlv .wa-fab:hover { background: #006f65; }
.tlv .booking-quote .quote-checkout { display: flex; width: 100%; margin: 1rem 0; }
/* Shared public design, with Eagles' Base branding and its Hostaway hero. */
.eb .eb-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 20px;min-width:165px;font:italic 21px 'Playfair Display',serif;line-height:1.1;color:#145b59;text-align:center;text-decoration:none}.eb .eb-brand span{font:9px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.2em;margin-top:6px}.eb .is-overlay .eb-brand{color:#fff;text-shadow:0 1px 6px #000}.eb .eb-hero{background-position:center}.eb .eb-hero .hero-copy{text-shadow:0 2px 8px rgba(0,0,0,.8)}.eb .eb-hero h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,6vw,6rem)}.eb-stays,.eb-events{text-align:center}.eb-stays .grid{text-align:left;margin-top:3rem}.eb-stays .grid .photo{width:100%;height:260px;object-fit:cover}.eb-stays .card{background:#fff;padding-bottom:1.5rem}.eb-stays .card h2,.eb-stays .card p{margin-left:1.2rem;margin-right:1.2rem}
.sp .eb-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 20px;min-width:190px;font:italic 20px 'Playfair Display',serif;line-height:1.1;color:#145b59;text-align:center;text-decoration:none}.sp .eb-brand span{font:9px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.2em;margin-top:6px}.sp .is-overlay .eb-brand{color:#fff;text-shadow:0 1px 6px #000}.sp .sp-hero{background-position:center}.sp .sp-hero .hero-copy{text-shadow:0 2px 8px rgba(0,0,0,.8)}.sp .sp-hero h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,6vw,6rem)}.sp-intro{text-align:center}.sp-intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;text-align:left;margin:3rem auto;max-width:1100px}@media(max-width:700px){.sp-intro-grid{grid-template-columns:1fr}}
/* Shared attraction entries managed in ProcessWire. */
.attraction-list{display:grid;gap:2rem;margin:3rem auto}.attraction-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;box-shadow:0 8px 30px rgba(30,25,20,.08);overflow:hidden}.attraction-card:has(.attraction-copy:only-child){display:block}.attraction-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));min-height:260px;gap:2px}.attraction-photos img{width:100%;height:100%;max-height:440px;object-fit:cover}.attraction-copy{padding:clamp(1.5rem,4vw,3.5rem);align-self:center}.attraction-copy h2{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,2.6vw,2.5rem);margin:0 0 1rem}.attraction-copy p{line-height:1.8;margin:0}@media(max-width:700px){.attraction-card{grid-template-columns:1fr}.attraction-photos{min-height:210px}.attraction-photos img{max-height:300px}}
@media(max-width:900px){.tlv .mobile .menu summary{display:block;padding:.8rem 0;cursor:pointer;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;border-bottom:1px solid #e8e4dd}.tlv .mobile .menu .panel,.tlv .mobile .menu.wide .panel{position:static;transform:none;margin:0;min-width:0;width:auto;box-shadow:none;background:transparent;padding:0 0 0 1rem}.tlv .mobile .menu[open] .panel,.tlv .mobile .menu.wide[open] .panel{display:grid;grid-template-columns:1fr}.tlv .mobile .menu .panel a{padding:.7rem 0}.tlv .mobile .menu .panel span{display:none}}
.attraction-contact{margin-top:1.4rem;padding-top:1rem;border-top:1px solid #e9dfd5}.attraction-contact h3{font-size:.85rem;letter-spacing:.04em;margin:0 0 .4rem}.attraction-contact p{font-size:.9rem;overflow-wrap:anywhere}.attraction-contact a{color:#075d58}
.pv .eb-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 20px;min-width:190px;font:italic 21px 'Playfair Display',serif;line-height:1.1;color:#145b59;text-align:center;text-decoration:none}.pv .eb-brand span{font:9px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.2em;margin-top:6px}.pv .is-overlay .eb-brand{color:#fff;text-shadow:0 1px 6px #000}.pv .pv-hero{background-position:center}.pv .pv-hero .hero-copy{text-shadow:0 2px 8px rgba(0,0,0,.8)}.pv .pv-hero h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,6vw,6rem)}
.tlv .desk .menu.wide .panel{max-height:calc(100vh - 9rem);overflow-y:auto}.festival-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.4rem;margin:2.5rem 0}.festival-card{background:#fff;padding:2rem;box-shadow:0 8px 30px rgba(30,25,20,.07)}.festival-card h2{font-family:'Playfair Display',serif;font-size:1.7rem;margin:0 0 1rem}.festival-card p{line-height:1.7}.festival-sources{margin-top:3rem}.festival-sources a{color:#075d58}
.attraction-card{scroll-margin-top:7rem}.festival-upcoming{margin:2rem 0;padding:1.4rem 1.8rem;background:#e7f3ee;border-left:4px solid #006f67}.festival-upcoming h2{font-size:1.4rem;margin:0 0 .5rem}.festival-upcoming p{margin:0}.festival-upcoming a{color:#075d58}
.beach-map-section{margin:2.5rem 0 3.5rem}.beach-map-section h2{font-family:'Playfair Display',serif;font-size:2.2rem;margin:0 0 .5rem}.beach-map-section>p{line-height:1.6}.beach-map-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(210px,1fr);background:#fff;border:1px solid #e5dbcf}.beach-map{height:480px;min-height:300px;background:#e4ebe7;z-index:0}.beach-map-list{padding:1.3rem 1.5rem}.beach-map-list h3{font-size:1rem;margin:.2rem 0 1rem}.beach-map-list ul{list-style:none;padding:0;margin:0}.beach-map-list li{border-top:1px solid #eee6dc}.beach-map-list a{display:block;padding:.6rem 0;color:#075d58;text-decoration:none}.beach-map-list a:hover{text-decoration:underline}.beach-map .leaflet-popup-content a{color:#075d58}@media(max-width:760px){.beach-map-layout{grid-template-columns:1fr}.beach-map{height:360px}.beach-map-list ul{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}}
/* Two-level, keyboard-accessible attraction navigation. */
.tlv .desk .attraction-menu .attraction-menu-panel{display:none;min-width:18rem;max-height:calc(100vh - 9rem);overflow:auto;padding:.45rem;background:#fff}.tlv .desk .attraction-menu[open] .attraction-menu-panel{display:block}.tlv .attraction-group>summary{cursor:pointer;list-style:none;padding:.85rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#1b3835;border-bottom:1px solid #e9e3dd}.tlv .attraction-group>summary::-webkit-details-marker{display:none}.tlv .attraction-group>summary::after{content:'+';float:right}.tlv .attraction-group[open]>summary::after{content:'−'}.tlv .attraction-menu .attraction-submenu{padding:.25rem .5rem .5rem}.tlv .attraction-menu .attraction-submenu a{display:block;padding:.55rem .7rem;font-size:.78rem;letter-spacing:.02em;text-transform:none;border:0;color:#145b59}.tlv .attraction-menu .attraction-submenu a:hover{text-decoration:underline}@media(max-width:900px){.tlv .mobile .attraction-menu[open] .attraction-menu-panel{display:block}.tlv .mobile .attraction-menu .attraction-menu-panel{padding:0 0 0 .5rem}.tlv .mobile .attraction-group>summary{padding:.8rem .5rem}.tlv .mobile .attraction-menu .attraction-submenu a{padding:.65rem 1rem}}

/* Consistent appearance for the primary navigation dropdowns. */
.tlv .desk .menu > .panel{min-width:18rem;padding:.45rem;background:#fff;border:1px solid #e9e3dd;box-shadow:0 8px 40px rgba(0,0,0,.12)}
.tlv .desk .menu:not(.attraction-menu) > .panel a{display:flex;min-height:2.7rem;justify-content:center;padding:.85rem 1rem;border-bottom:1px solid #e9e3dd;color:#1b3835}
.tlv .desk .menu:not(.attraction-menu) > .panel a strong{font-size:.72rem;letter-spacing:.12em;font-weight:400}
@media(max-width:900px){.tlv .mobile .menu:not(.attraction-menu) > .panel a{padding:.8rem .5rem;color:#1b3835;border-bottom:1px solid #e9e3dd}.tlv .mobile .menu:not(.attraction-menu) > .panel a strong{font-size:.72rem;letter-spacing:.12em;font-weight:400}}

.tlv .foot-grid.foot-simple{grid-template-columns:1.35fr 1fr 1fr;gap:3rem}
.tlv .foot-simple .btn.gold{display:inline-block;color:#15110d}
@media(max-width:900px){.tlv .foot-grid.foot-simple{grid-template-columns:1fr;gap:1.5rem}}

.tlv .villa-home-hero{min-height:100svh}
.tlv .villa-home-hero .btn + .btn{margin-left:.75rem}
#villa-details{scroll-margin-top:6rem}

.tlv .attraction-menu .attraction-menu-panel > a.attraction-direct{display:block;padding:.85rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#1b3835;border-bottom:1px solid #e9e3dd}
.attraction-card{scroll-margin-top:7rem}

.tlv .activity-cards img{height:auto;aspect-ratio:16/10;object-fit:cover}
.tlv .activity-cards .activity-image{display:block;padding:0;line-height:0}

.attraction-photos figure{margin:0}.photo-credit{display:block;font-size:.7rem;line-height:1.45;padding:.4rem .5rem;color:#555}.photo-credit a{font-size:inherit!important;letter-spacing:normal!important;text-transform:none!important;color:inherit!important;text-decoration:underline}

/* Brighter daylight hero on the Tobago Luxury Villas home page. */
.tlv.home:not(.eb):not(.sp):not(.pv) .hero-stage .veil{background:rgba(0,0,0,.17)}
.tlv.home:not(.eb):not(.sp):not(.pv) .hero-stage .veil-bottom{background:linear-gradient(to top,rgba(0,0,0,.48),rgba(0,0,0,.24) 40%,rgba(0,0,0,.08) 70%,transparent)}
