/* GENERIRANO — ne uređivati. Izvori: assets/fluid.css + assets/style.css. */
:root {
--fs-xs:   clamp(0.75rem,  calc(0.727rem + 0.094vw),  0.833rem);
--fs-sm:   clamp(0.833rem, calc(0.798rem + 0.169vw),  0.944rem);
--fs-base: clamp(0.889rem, calc(0.85rem  + 0.188vw),  1rem);
--fs-md:   clamp(0.944rem, calc(0.89rem  + 0.263vw),  1.111rem);
--fs-lg:   clamp(1.056rem, calc(0.978rem + 0.376vw),  1.278rem);
--fs-xl:   clamp(1.333rem, calc(1.216rem + 0.563vw),  1.667rem);
--fs-2xl:  clamp(1.778rem, calc(1.621rem + 0.751vw),  2.222rem);
--fs-3xl:  clamp(2.111rem, calc(1.798rem + 1.502vw),  3rem);
--fs-4xl:  clamp(2.444rem, calc(1.896rem + 2.629vw),  4rem);
--fs-hero: clamp(2.778rem, calc(1.995rem + 3.756vw),  5rem);
--sp-3xs:  clamp(0.222rem, calc(0.213rem + 0.047vw),  0.278rem);
--sp-2xs:  clamp(0.444rem, calc(0.426rem + 0.094vw),  0.556rem);
--sp-xs:   clamp(0.667rem, calc(0.626rem + 0.188vw),  0.889rem);
--sp-sm:   clamp(0.889rem, calc(0.811rem + 0.376vw),  1.333rem);
--sp-md:   clamp(1.333rem, calc(1.176rem + 0.751vw),  2.222rem);
--sp-lg:   clamp(1.778rem, calc(1.464rem + 1.502vw),  3.111rem);
--sp-xl:   clamp(2.222rem, calc(1.674rem + 2.629vw),  4.444rem);
--sp-2xl:  clamp(2.778rem, calc(1.995rem + 3.756vw),  5.556rem);
--sp-3xl:  clamp(3.333rem, calc(2.237rem + 5.258vw),  7.778rem);
--section-py: clamp(3.5rem, calc(3.062rem + 2.113vw), 5.5rem);
--header-h: 0px;
--gutter: var(--sp-sm);
--container-max: 1200px;
--container: min(100% - 2 * var(--gutter), var(--container-max));
--vw: 100vw;
--radius-sm: clamp(0.222rem, calc(0.204rem + 0.094vw), 0.333rem);
--radius-md: clamp(0.444rem, calc(0.387rem + 0.282vw), 0.778rem);
--radius-lg: clamp(0.667rem, calc(0.548rem + 0.573vw), 1.333rem);
--lh-tight: 1.1;
--lh-heading: 1.2;
--lh-body: 1.6;
}
:where(body) {
font-size: var(--fs-base);
line-height: var(--lh-body);
}
:where(h1) { font-size: var(--fs-3xl); line-height: var(--lh-tight); }
:where(h2) { font-size: var(--fs-2xl); line-height: var(--lh-heading); }
:where(h3) { font-size: var(--fs-xl);  line-height: var(--lh-heading); }
:where(h4) { font-size: var(--fs-lg);  line-height: var(--lh-heading); }
:where(h5) { font-size: var(--fs-md);  line-height: var(--lh-heading); }
:where(h6) { font-size: var(--fs-base); line-height: var(--lh-heading); }
.fluid-wrap    { width: var(--container); margin-inline: auto; }
.fluid-section { padding-block: var(--section-py); }
.fluid-section--hero {
padding-top: max(var(--section-py), calc(var(--header-h) + var(--sp-md)));
padding-bottom: var(--section-py);
}
.fluid-section > :first-child { margin-top: 0; }
.fluid-section > :last-child  { margin-bottom: 0; }
.fluid-stack > * + * { margin-top: var(--sp-md); }
.full-bleed {
width: var(--vw);
max-width: var(--vw);
margin-inline: calc(50% - var(--vw) / 2);
}
img, svg, video, canvas, iframe { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6, p, li, a { overflow-wrap: break-word; }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
:root {
--pine:    #173128;
--deep:    #0b1c17;
--sand:    #d8c39d;
--cream:   #f5f1e7;
--paper:   #fbf9f3;
--stone:   #e9e1d2;
--sage:    #6d7a69;
--label:   #5d665e;
--label-2: #5b6660;
--line:    #1731282e;
--bg:          var(--paper);
--fg:          var(--pine);
--fg-muted:    #526058;
--bg-alt:      var(--stone);
--surface:     var(--cream);
--hover-bg:    var(--cream);
--panel:       var(--pine);
--panel-deep:  var(--deep);
--panel-sage:  var(--sage);
--footer-bg:   #071814;
--rule:        var(--line);
--cta-bg:      var(--pine);
--cta-bg-hover:var(--deep);
--cta-fg:      #fff;
--logo-filter: brightness(0) saturate(100%);
--logo-opacity: .82;
color-scheme: light;
--section-py: clamp(5rem, calc(4.2297rem + 3.2864vw), 7.1875rem);
--pad-x: clamp(1.375rem, 7vw, 7.5rem);
--fs-hero:  clamp(3.0625rem, calc(1.5rem    + 6.6667vw), 7.5rem);
--fs-h2-xl: clamp(3.0625rem, calc(2.0282rem + 4.4131vw), 6rem);
--fs-h2-lg: clamp(3.0625rem, calc(2.4903rem + 2.4413vw), 4.6875rem);
--fs-h2:    clamp(3.0625rem, calc(2.5563rem + 2.1596vw), 4.5rem);
--fs-h2-md: clamp(3.0625rem, calc(2.6004rem + 1.9718vw), 4.375rem);
--fs-h2-sm: clamp(3.0625rem, calc(2.6664rem + 1.6901vw), 4.1875rem);
--fs-h2-xs: clamp(3.0625rem, calc(2.6884rem + 1.5962vw), 4.125rem);
--fs-serif:      clamp(1rem,      calc(0.956rem  + 0.1878vw), 1.125rem);
--fs-serif-lead: clamp(1.0625rem, calc(1.0185rem + 0.1878vw), 1.1875rem);
--fs-serif-lg:   clamp(1.0625rem, calc(0.9965rem + 0.2817vw), 1.25rem);
--fs-stat:       clamp(1.875rem,  calc(1.567rem  + 1.3146vw), 2.75rem);
--fs-credit:     clamp(0.9375rem, calc(0.8715rem + 0.2817vw), 1.125rem);
--fs-nav:     13px;
--fs-label:   15px;
--fs-micro:   14px;
--fs-nano:    13px;
--fs-pico:    12px;
--sp-20: clamp(0.875rem, calc(0.743rem  + 0.5634vw), 1.25rem);
--sp-24: clamp(0.875rem, calc(0.655rem  + 0.939vw),  1.5rem);
--sp-30: clamp(1.25rem,  calc(1.03rem   + 0.939vw),  1.875rem);
--sp-32: clamp(1.5rem,   calc(1.324rem  + 0.7512vw), 2rem);
--sp-35: clamp(1.5rem,   calc(1.258rem  + 1.0329vw), 2.1875rem);
--sp-38: clamp(1.5rem,   calc(1.192rem  + 1.3146vw), 2.375rem);
--sp-40: clamp(1.5rem,   calc(1.148rem  + 1.5023vw), 2.5rem);
--sp-42: clamp(1.75rem,  calc(1.442rem  + 1.3146vw), 2.625rem);
--sp-45: clamp(1.75rem,  calc(1.376rem  + 1.5962vw), 2.8125rem);
--sp-50: clamp(2rem,     calc(1.604rem  + 1.6901vw), 3.125rem);
--sp-65: clamp(2.5rem,   calc(1.95rem   + 2.3474vw), 4.0625rem);
--sp-70: clamp(2.75rem,  calc(2.178rem  + 2.4413vw), 4.375rem);
--sp-overline: clamp(1.375rem, calc(1.243rem + 0.5634vw), 1.75rem);
--h-header:      clamp(4.5rem,    calc(4.1919rem + 1.3146vw),  5.375rem);
--h-hero-min:    clamp(33.75rem,  calc(30.669rem + 13.1455vw), 42.5rem);
--h-panorama:    clamp(26.875rem, calc(19.833rem + 30.047vw),  46.875rem);
--h-gallery:     clamp(31.25rem,  calc(29.269rem + 8.4507vw),  36.875rem);
--h-privacy:     clamp(42.5rem,   calc(40.299rem + 9.3897vw),  48.75rem);
--mh-intro:      clamp(23.75rem,  calc(17.808rem + 25.3521vw), 40.625rem);
--mh-golf:       clamp(30rem,     calc(23.838rem + 26.2911vw), 47.5rem);
--mh-contact:    clamp(28.75rem,  calc(22.588rem + 26.2911vw), 46.25rem);
--mh-golf-img:   clamp(21.25rem,  calc(16.849rem + 18.7793vw), 33.75rem);
--mh-loc-img:    clamp(25rem,     calc(20.599rem + 18.7793vw), 37.5rem);
--mh-contact-img:clamp(25rem,     calc(22.359rem + 11.2676vw), 32.5rem);
--btn-w:      clamp(11.25rem, calc(10.37rem + 3.7559vw), 13.75rem);
--btn-radius: clamp(0.25rem,  calc(0.2113rem + 0.1033vw), 0.375rem);
--stat-w:  clamp(13.125rem, calc(11.364rem + 7.5117vw), 18.125rem);
--stat-py: clamp(1.75rem,   calc(1.4859rem + 1.1268vw), 2.5rem);
--stat-px: clamp(1.75rem,   calc(1.3099rem + 1.8779vw), 3rem);
--stat-gap:clamp(0.5rem,    calc(0.4119rem + 0.3756vw), 0.75rem);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
color: var(--fg);
background: var(--bg);
font-family: Arial, Helvetica, sans-serif;
font-size: var(--fs-serif);
overflow-wrap: break-word;
}
a { color: inherit; text-decoration: none; }
h1, h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -0.045em; }
button { font: inherit; }
picture { display: contents; }
source  { display: none; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.skip-link {
position: absolute;
top: 0;
left: 0;
z-index: 100;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
background: var(--cta-bg);
color: var(--cta-fg);
font-size: var(--fs-label);
letter-spacing: 0.14em;
text-transform: uppercase;
}
.skip-link:focus {
width: auto;
height: auto;
padding: 12px 18px;
overflow: visible;
clip-path: none;
}
.media { display: block; overflow: hidden; }
.media--fill { position: absolute; inset: 0; }
.overline {
margin: 0 0 var(--sp-overline);
font-size: var(--fs-micro);
font-weight: 700;
letter-spacing: 0.25em;
}
.overline.dark { color: var(--label-2); }
.number { font-size: var(--fs-nano); letter-spacing: 0.2em; color: var(--label); }
.pale   { color: #b4bdb5; }
.btn {
display: inline-flex;
justify-content: center;
align-items: center;
min-width: var(--btn-w);
padding: 17px 20px;
border: 0;
border-radius: var(--btn-radius);
font-size: var(--fs-micro);
letter-spacing: 0.16em;
text-transform: uppercase;
cursor: pointer;
transition: background-color .35s, color .35s;
}
.light      { background: #f6f1e6; color: var(--pine); }
.light:hover{ background: #fff; }
.line       { border: 1px solid var(--fg); }
.line:hover { background: var(--fg); color: var(--bg); }
.sand       { background: var(--sand); color: var(--deep); }
.sand:hover { background: #e6d5b6; }
header {
position: relative;
z-index: 20;
display: flex;
justify-content: space-between;
align-items: center;
height: var(--h-header);
padding-inline: clamp(1rem, 4.5vw, 4.5rem);
background: var(--bg);
}
.logo { display: block; }
.logo img { object-fit: contain; }
.header-logo {
width: clamp(9.0625rem, calc(8.183rem + 3.7559vw), 11.5625rem);
height: clamp(3.125rem, calc(2.949rem + 0.7512vw), 3.625rem);
}
.header-logo img { filter: var(--logo-filter); opacity: var(--logo-opacity); }
.nav-main { display: flex; gap: clamp(1rem, 2.5vw, 2.5rem); }
.nav-main a {
font-size: var(--fs-nav);
letter-spacing: 0.14em;
text-transform: uppercase;
padding-block: 4px;
border-bottom: 1px solid transparent;
transition: border-color .3s;
}
.nav-main a:hover { border-color: var(--fg); }
.nav-end { display: flex; align-items: center; gap: clamp(0.75rem, 1.4vw, 1.125rem); }
.header-cta {
padding: 14px 18px;
border-radius: var(--btn-radius);
background: var(--cta-bg);
color: var(--cta-fg);
font-size: var(--fs-micro);
letter-spacing: 0.14em;
text-transform: uppercase;
white-space: nowrap;
transition: background-color .35s;
}
.header-cta:hover { background: var(--cta-bg-hover); }
.lang-switch { position: relative; }
.lang-btn {
display: flex;
align-items: center;
gap: 8px;
white-space: nowrap;
padding: 0;
border: 0;
background: none;
color: var(--label);
font-size: var(--fs-label);
letter-spacing: 0.06em;
cursor: pointer;
transition: color .22s ease;
}
.lang-btn:hover { color: var(--fg); }
.lang-btn img { width: 18px; height: 12px; flex: none; border-radius: 2px; object-fit: cover; }
.lang-btn::after {
content: "";
width: 0; height: 0; flex: none;
border: 4px solid transparent;
border-top-color: currentColor;
transform: translateY(2px);
transition: transform .22s ease;
}
.lang-switch.open .lang-btn::after { transform: translateY(-2px) rotate(180deg); }
.lang-menu {
position: absolute;
top: calc(100% + 14px);
right: 0;
z-index: 60;
min-width: 180px;
margin: 0;
padding: 6px;
list-style: none;
background: var(--bg);
border: 1px solid var(--rule);
box-shadow: 0 18px 40px #0b1c1740;
opacity: 0;
visibility: hidden;
transform: translateY(-6px);
transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.lang-switch:hover .lang-menu,
.lang-switch:focus-within .lang-menu,
.lang-switch.open .lang-menu { opacity: 1; visibility: visible; transform: none; }
.lang-menu a {
display: flex;
align-items: center;
gap: 9px;
white-space: nowrap;
padding: 10px 12px;
font-size: var(--fs-label);
letter-spacing: 0.04em;
transition: background-color .18s ease, color .18s ease;
}
.lang-menu a:hover { background: var(--hover-bg); }
.lang-menu img { width: 18px; height: 12px; flex: none; border-radius: 2px; object-fit: cover; }
.burger {
display: none;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 42px;
height: 42px;
padding: 0;
border: 0;
background: none;
cursor: pointer;
}
.burger span {
display: block;
width: 22px;
height: 1.5px;
margin-inline: auto;
background: var(--fg);
transition: transform .3s ease, opacity .2s ease;
}
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.mob-menu {
position: fixed;
inset: var(--h-header) 0 0;
z-index: 30;
display: flex;
flex-direction: column;
justify-content: center;
gap: var(--sp-40);
padding: var(--section-py) var(--pad-x);
background: var(--bg);
overflow-y: auto;
}
.mob-menu[hidden] { display: none; }
body.menu-open { overflow: hidden; }
.mob-nav { display: flex; flex-direction: column; gap: var(--sp-30); }
.mob-nav a {
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-h2-xs);
line-height: 1;
letter-spacing: -0.03em;
}
.mob-cta { align-self: start; border: 1px solid var(--fg); }
.mob-langs { display: flex; flex-wrap: wrap; gap: 10px; }
.mob-langs > a,
.mob-langs > span {
display: flex;
align-items: center;
gap: 7px;
padding: 9px 14px;
border: 1px solid var(--rule);
border-radius: 999px;
font-size: var(--fs-label);
letter-spacing: 0.04em;
}
.mob-langs > span.is-current { background: var(--hover-bg); }
.mob-langs img { width: 18px; height: 12px; flex: none; border-radius: 2px; object-fit: cover; }
.hero {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
min-height: max(var(--h-hero-min), calc(100svh - var(--h-header)));
padding-block: clamp(1.75rem, 3vw, 2.75rem) clamp(1.25rem, 2.5vw, 2.25rem);
color: #fff;
overflow: hidden;
}
.hero-filter {
position: absolute;
inset: 0;
background:
linear-gradient(90deg, #071712a8, #07171214 67%),
linear-gradient(#0000 55%, #07171259);
}
.hero-content {
position: relative;
z-index: 1;
padding-inline: var(--pad-x);
max-width: calc(50rem + 2 * var(--pad-x));
}
.hero h1 { font-size: var(--fs-hero); line-height: .87; }
.lead {
max-width: 550px;
margin: var(--sp-30) 0;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif-lead);
line-height: 1.55;
}
.hero-stats {
position: relative;
z-index: 1;
align-self: flex-end;
display: grid;
margin: var(--sp-30) var(--pad-x) 0;
max-width: calc(100% - 2 * var(--pad-x));
background: #122a2159;
-webkit-backdrop-filter: blur(30px) saturate(160%);
backdrop-filter: blur(30px) saturate(160%);
box-shadow: 0 18px 44px #04100c3d;
}
.hero-stats .stat {
grid-area: 1 / 1;
min-width: var(--stat-w);
padding: var(--stat-py) var(--stat-px);
opacity: 0;
transition: opacity .8s ease;
}
.hero-stats .stat:first-child { opacity: 1; }
.hero-stats.is-cycling .stat { opacity: 0; }
.hero-stats.is-cycling .stat.is-active { opacity: 1; }
.hero-stats b {
display: block;
margin-bottom: 0.35em;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-stat);
font-weight: 400;
line-height: 1;
}
.hero-stats span { font-size: var(--fs-pico); letter-spacing: 0.14em; }
.section { padding: var(--section-py) var(--pad-x); }
.intro {
display: grid;
grid-template-columns: minmax(0, .6fr) minmax(0, 2fr);
min-height: var(--mh-intro);
}
.intro h2 { font-size: var(--fs-h2-xl); line-height: .94; }
.body-copy {
max-width: 560px;
margin: var(--sp-42) 0 0 auto;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif-lead);
line-height: 1.7;
}
.panorama { position: relative; height: var(--h-panorama); }
.architect-credit {
position: absolute;
left: clamp(1.625rem, 4vw, 4rem);
bottom: clamp(1.625rem, 4vw, 4rem);
min-width: 190px;
padding: var(--sp-20) var(--sp-24);
background: #0b1c17e0;
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
color: #fff;
}
.architect-credit span {
display: block;
margin-bottom: 10px;
font-size: var(--fs-nano);
letter-spacing: 0.2em;
color: #bac5bd;
}
.architect-credit strong {
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-credit);
font-weight: 400;
line-height: 1.4;
}
.panorama-copy {
position: absolute;
right: clamp(1.625rem, 4vw, 4rem);
bottom: clamp(1.625rem, 4vw, 4rem);
min-width: 180px;
padding: var(--sp-24) var(--sp-30);
background: var(--surface);
}
.panorama-copy span { font-size: var(--fs-nano); letter-spacing: 0.2em; }
.panorama-copy p {
margin: 12px 0 0;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif-lg);
line-height: 1.4;
}
.heading {
display: grid;
grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr) minmax(0, .7fr);
align-items: end;
gap: var(--sp-50);
margin-bottom: var(--sp-65);
}
.heading h2 { font-size: var(--fs-h2-sm); line-height: .95; }
.heading > p {
color: var(--fg-muted);
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.65;
}
.gallery {
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, .75fr);
gap: 18px;
height: var(--h-gallery);
}
.gallery img { transition: transform .8s; }
.gallery > .media:hover img { transform: scale(1.025); }
.availability {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
align-items: center;
gap: var(--sp-40);
padding: var(--sp-30) 0;
border-bottom: 1px solid var(--rule);
}
.availability > span { font-size: var(--fs-nano); letter-spacing: 0.15em; }
.golf {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
min-height: var(--mh-golf);
background: var(--panel);
color: #fff;
}
.golf-copy { padding: var(--section-py) var(--pad-x); }
.golf-copy .overline { margin-top: var(--sp-65); }
.golf h2 { font-size: var(--fs-h2); line-height: .94; }
.golf-copy > p:not(.overline) {
margin: var(--sp-32) 0;
color: #d0d7d2;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.7;
}
.golf-image { min-height: var(--mh-golf-img); }
.moments { border-top: 1px solid #fff3; }
.moments div {
padding: 18px 0;
border-bottom: 1px solid #fff3;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
}
.moments span {
margin-right: 25px;
color: #aeb8b1;
font-family: Arial, Helvetica, sans-serif;
font-size: var(--fs-nano);
}
.privacy { position: relative; height: var(--h-privacy); color: #fff; }
.privacy-filter {
position: absolute;
inset: 0;
background: linear-gradient(90deg, #071712ab, #0717120a 72%);
}
.privacy-copy {
position: absolute;
top: 50%;
left: var(--pad-x);
transform: translateY(-50%);
max-width: 600px;
}
.privacy h2 { margin: var(--sp-70) 0 var(--sp-32); font-size: var(--fs-h2-lg); line-height: .95; }
.privacy p {
max-width: 450px;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.7;
}
.location {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
gap: clamp(2rem, 8vw, 8rem);
background: var(--bg-alt);
}
.location > div { display: flex; flex-direction: column; justify-content: center; }
.location h2 { margin: var(--sp-70) 0 var(--sp-32); font-size: var(--fs-h2-md); line-height: .95; }
.location > div > p:not(.overline) {
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.7;
}
.location-image { min-height: var(--mh-loc-img); }
.travel {
display: flex;
gap: var(--sp-30);
margin-top: var(--sp-35);
padding-top: var(--sp-24);
border-top: 1px solid var(--rule);
font-size: var(--fs-micro);
letter-spacing: 0.11em;
}
.travel b {
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-stat);
font-weight: 400;
}
.investment {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, .8fr);
gap: clamp(2rem, 12vw, 11rem);
background: var(--panel-deep);
color: #fff;
}
.investment h2 { margin-top: var(--sp-65); font-size: var(--fs-h2-lg); line-height: .94; }
.investment > div:last-child > p {
color: #cdd5d0;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.7;
}
.investment ul { margin: var(--sp-38) 0; padding: 0; list-style: none; }
.investment li {
padding: 18px 0;
border-top: 1px solid #fff3;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
}
.investment li span {
margin-right: 24px;
color: #aab5ae;
font-family: Arial, Helvetica, sans-serif;
font-size: var(--fs-nano);
}
.contact {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
min-height: var(--mh-contact);
}
.contact-copy {
order: 2;
padding: var(--section-py) var(--pad-x);
background: var(--panel-sage);
color: #fff;
}
.contact-image { order: 1; min-height: var(--mh-contact-img); }
.contact h2 { font-size: var(--fs-h2-xs); line-height: .95; }
.contact-copy > p:not(.overline) {
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
line-height: 1.7;
}
.contact-lines { margin-top: var(--sp-40); border-top: 1px solid #ffffff73; }
.contact-lines > div {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 6px var(--sp-24);
padding: 16px 0;
border-bottom: 1px solid #ffffff73;
}
.contact-lines span:first-child {
flex: 0 0 clamp(8.75rem, calc(7.87rem + 3.7559vw), 11.25rem);
font-size: var(--fs-nano);
letter-spacing: 0.16em;
}
.contact-lines a,
.contact-lines em {
font-family: Georgia, "Times New Roman", serif;
font-style: normal;
font-size: var(--fs-serif-lead);
border-bottom: 1px solid #fff0;
transition: border-color .3s;
}
.contact-lines a:hover { border-color: #fff; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: var(--sp-35); }
.dark-btn { background: var(--deep); color: #fff; }
.dark-btn:hover { background: #05100d; }
.line-light { border: 1px solid #ffffffb3; color: #fff; }
.line-light:hover { background: #ffffff26; }
footer {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 0.85fr) auto;
align-items: start;
gap: var(--sp-45);
padding: var(--section-py) var(--pad-x) var(--sp-30);
background: var(--footer-bg);
color: #dce3df;
}
.footer-logo {
width: clamp(11.875rem, calc(11.435rem + 1.8779vw), 13.125rem);
height: 4rem;
}
.footer-logo img { object-position: left center; }
footer > div:not(.logo):not(.footer-langs) {
display: flex;
flex-direction: column;
gap: 8px;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif);
}
footer small {
color: #91a097;
font-family: Arial, Helvetica, sans-serif;
font-size: var(--fs-pico);
letter-spacing: 0.18em;
}
.footer-langs {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 8px;
}
.footer-langs small { margin-bottom: 2px; }
.footer-langs > a,
.footer-langs > span {
display: flex;
align-items: center;
gap: 7px;
padding: 7px 12px;
border: 1px solid #ffffff26;
border-radius: 999px;
color: #dce3df;
font-size: var(--fs-nano);
letter-spacing: 0.1em;
transition: background-color .25s ease;
}
.footer-langs > a:hover { background: #ffffff1a; }
.footer-langs > span.is-current { background: #ffffff1a; color: #fff; }
.footer-langs img { width: 16px; height: 11px; flex: none; border-radius: 2px; object-fit: cover; }
html.dark {
--bg:          #0a1712;
--fg:          #e6ece8;
--fg-muted:    #b6c2ba;
--bg-alt:      #101e18;
--surface:     #16261f;
--hover-bg:    #1b2f27;
--panel:       #16302a;
--panel-deep:  #060f0d;
--panel-sage:  #3f4a3d;
--footer-bg:   #04100c;
--rule:        #e6ece826;
--label:       #9aa79f;
--label-2:     #98a59d;
--cta-bg:      var(--sand);
--cta-bg-hover:#e6d5b6;
--cta-fg:      #0b1c17;
--logo-filter: none;
--logo-opacity: .95;
color-scheme: dark;
}
html.dark .hero > .media--fill { display: none; }
html.dark .hero {
background-image: url("/images/hero-night-1195.webp");
background-position: center;
background-size: cover;
}
@media (max-width: 640px) {
html.dark .hero { background-image: url("/images/hero-night-640.webp"); }
}
@media (min-width: 641px) and (max-width: 1024px) {
html.dark .hero { background-image: url("/images/hero-night-1024.webp"); }
}
.theme-toggle {
display: grid;
place-items: center;
width: 34px;
height: 34px;
padding: 0;
border: 0;
background: none;
color: var(--label);
cursor: pointer;
transition: color .22s ease;
}
.theme-toggle:hover { color: var(--fg); }
.theme-toggle svg { width: 18px; height: 18px; display: block; }
.theme-toggle .i-sun  { display: none; }
html.dark .theme-toggle .i-sun  { display: block; }
html.dark .theme-toggle .i-moon { display: none; }
.mob-theme-row { display: flex; }
.mob-theme {
display: flex;
align-items: center;
gap: 9px;
width: auto;
height: auto;
padding: 9px 14px;
border: 1px solid var(--rule);
border-radius: 999px;
color: var(--fg);
font-size: var(--fs-label);
letter-spacing: 0.04em;
}
.hero-cta { display: none; }
@media (max-width: 1200px) {
.nav-main { display: none; }
.lang-switch { display: none; }
.nav-end > .theme-toggle { display: none; }
.burger { display: flex; }
.header-cta { display: none; }
.hero-cta { display: inline-flex; }
}
@media (max-width: 900px) {
.hero-stats { align-self: stretch; }
.intro { grid-template-columns: minmax(0, 1fr); gap: var(--sp-50); }
.body-copy { margin-left: 0; }
.heading { grid-template-columns: minmax(0, 1fr); }
.gallery { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; height: auto; }
.gallery > .media { height: var(--mh-contact-img); }
.availability { grid-template-columns: minmax(0, 1fr); }
.golf { grid-template-columns: minmax(0, 1fr); }
.location,
.investment,
.contact { grid-template-columns: minmax(0, 1fr); }
.contact-copy { order: 1; }
.contact-image { order: 2; }
footer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
footer .logo { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
.travel { flex-direction: column; }
.footer-langs { align-items: start; }
.panorama-copy { display: none; }
.contact-actions .btn { flex: 1 1 100%; }
footer { grid-template-columns: minmax(0, 1fr); }
}
:root {
--fs-legal-h1: clamp(2.25rem, calc(1.8099rem + 1.8779vw), 3.25rem);
--fs-legal-h2: clamp(1.25rem, calc(1.118rem  + 0.5634vw), 1.625rem);
--measure:     44rem;
}
.legal {
max-width: var(--measure);
margin-inline: auto;
padding: var(--section-py) var(--pad-x);
font-size: var(--fs-serif);
line-height: 1.75;
}
.legal-head { margin-bottom: var(--sp-50); }
.legal-head .number { display: block; margin-bottom: var(--sp-20); }
.legal h1 {
margin: 0;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-legal-h1);
font-weight: 400;
letter-spacing: -0.035em;
line-height: 1.1;
}
.legal section { margin-top: var(--sp-45); }
.legal h2 {
margin: 0 0 var(--sp-20);
font-size: var(--fs-legal-h2);
letter-spacing: -0.02em;
line-height: 1.25;
}
.legal p  { margin: 0 0 var(--sp-20); color: var(--fg-muted); }
.legal ul { margin: 0 0 var(--sp-20); padding-left: 1.25em; color: var(--fg-muted); }
.legal li { margin-bottom: 0.4em; }
.legal strong { color: var(--fg); font-weight: 700; }
.legal code {
padding: 2px 6px;
border-radius: 4px;
background: var(--hover-bg);
color: var(--fg);
font-size: 0.9em;
}
.legal a { color: var(--fg); border-bottom: 1px solid currentColor; transition: opacity .25s; }
.legal a:hover { opacity: .65; }
.legal-back {
margin: var(--sp-50) 0 0;
padding-top: var(--sp-24);
border-top: 1px solid var(--rule);
font-size: var(--fs-nano);
letter-spacing: 0.12em;
text-transform: uppercase;
}
.legal-back a { border-bottom: 0; }
.footer-bottom {
grid-column: 1 / -1;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: baseline;
gap: var(--sp-20) var(--sp-32);
margin-top: var(--sp-30);
padding-top: var(--sp-20);
border-top: 1px solid #fff2;
}
.footer-bottom > p {
margin: 0;
color: #809088;
font-size: var(--fs-nano);
letter-spacing: 0.15em;
}
.footer-legal {
display: flex;
flex-wrap: wrap;
gap: var(--sp-20);
margin-left: auto;
color: #a9b6ae;
font-size: var(--fs-nano);
letter-spacing: 0.1em;
}
.footer-legal a { border-bottom: 1px solid #ffffff26; transition: border-color .25s, color .25s; }
.footer-legal a:hover { border-color: currentColor; color: #fff; }
@media (max-width: 560px) {
.footer-bottom { flex-direction: column; align-items: flex-start; }
.footer-legal { margin-left: 0; }
}
.consent,
.modal {
position: fixed;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
padding: var(--sp-24);
background: #0b1c17a6;
-webkit-backdrop-filter: blur(7px);
backdrop-filter: blur(7px);
opacity: 0;
transition: opacity .4s ease;
}
.consent[hidden],
.modal[hidden] { display: none; }
.consent.show,
.modal.show { opacity: 1; }
.consent-card,
.modal-card {
width: 100%;
max-height: calc(100vh - 2 * var(--sp-24));
overflow-y: auto;
border-radius: clamp(1rem, 1.6vw, 1.375rem);
background: var(--bg);
color: var(--fg);
box-shadow: 0 40px 90px -30px #00000073;
transform: translateY(16px) scale(.97);
transition: transform .45s cubic-bezier(.2, .8, .3, 1);
}
.consent.show .consent-card,
.modal.show .modal-card { transform: none; }
.consent-card {
max-width: 33rem;
padding: var(--sp-45) var(--sp-42) var(--sp-40);
text-align: center;
}
.consent-title {
margin: 0 0 var(--sp-20);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(1.375rem, calc(1.221rem + 0.6573vw), 1.8125rem);
letter-spacing: -0.02em;
}
.consent-text {
margin: 0 0 var(--sp-32);
color: var(--fg-muted);
line-height: 1.7;
}
.consent-text a { color: var(--fg); border-bottom: 1px solid currentColor; transition: opacity .25s; }
.consent-text a:hover { opacity: .65; }
.modal-card {
position: relative;
max-width: 34.375rem;
padding: var(--sp-45) var(--sp-42) var(--sp-42);
}
.modal-close {
position: absolute;
top: var(--sp-20);
right: var(--sp-20);
width: 2.25rem;
height: 2.25rem;
border: 0;
border-radius: 50%;
background: transparent;
color: var(--fg-muted);
font-size: 1.75rem;
line-height: 1;
cursor: pointer;
transition: background-color .25s, color .25s;
}
.modal-close:hover { background: var(--hover-bg); color: var(--fg); }
.modal-card .overline { margin: 0 0 var(--sp-20); }
.modal-title {
margin: 0 0 var(--sp-20);
font-size: clamp(1.75rem, calc(1.442rem + 1.3146vw), 2.625rem);
line-height: 1.1;
}
.modal-text {
margin: 0 0 var(--sp-32);
color: var(--fg-muted);
line-height: 1.7;
}
.bm-form { display: grid; gap: var(--sp-24); }
.bm-form[hidden] { display: none; }
.field { display: grid; gap: 8px; }
.field > span {
font-size: var(--fs-pico);
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--label);
}
.field input {
width: 100%;
padding: 14px 2px;
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--fg) 34%, transparent);
border-radius: 0;
background: transparent;
color: var(--fg);
font: inherit;
transition: border-color .25s;
}
.field input:focus { outline: 0; border-bottom-color: var(--fg); }
.field input:focus-visible { outline: 0; }
.check {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 12px;
align-items: start;
color: var(--fg-muted);
font-size: var(--fs-nano);
line-height: 1.6;
cursor: pointer;
}
.check input {
width: 18px;
height: 18px;
margin: 2px 0 0;
accent-color: var(--fg);
flex: none;
}
.check a { color: var(--fg); border-bottom: 1px solid currentColor; transition: opacity .25s; }
.check a:hover { opacity: .65; }
.hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.form-error {
margin: 0;
color: #b3261e;
font-size: var(--fs-nano);
line-height: 1.5;
}
.form-error[hidden] { display: none; }
.bm-submit { width: 100%; margin-top: var(--sp-20); }
.bm-submit:disabled { opacity: .6; cursor: default; }
.bm-done h3 {
margin: 0 0 var(--sp-20);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(1.375rem, calc(1.221rem + 0.6573vw), 1.8125rem);
font-weight: 400;
letter-spacing: -0.02em;
}
.bm-done p { margin: 0 0 var(--sp-32); color: var(--fg-muted); line-height: 1.7; }
.bm-done[hidden] { display: none; }
@media (max-width: 560px) {
.consent-card,
.modal-card { padding: var(--sp-38) var(--sp-30) var(--sp-32); }
.consent-card .btn,
.bm-done .btn { width: 100%; }
}
html.dark .form-error { color: #ff9d94; }
body.is-docs {
display: flex;
flex-direction: column;
height: 100vh;
height: 100dvh;
overflow: hidden;
}
body.is-gate { min-height: 100vh; }
.docs-header {
flex: none;
gap: var(--sp-24);
border-bottom: 1px solid var(--rule);
}
.doc-tabs {
display: flex;
gap: clamp(0.25rem, 1vw, 0.75rem);
min-width: 0;
overflow-x: auto;
scrollbar-width: none;
}
.doc-tabs::-webkit-scrollbar { display: none; }
.doc-tabs button {
flex: none;
padding: 9px 16px;
border: 1px solid transparent;
border-radius: 999px;
background: transparent;
color: var(--fg-muted);
font-size: var(--fs-nav);
letter-spacing: 0.14em;
text-transform: uppercase;
cursor: pointer;
transition: background-color .25s, color .25s, border-color .25s;
}
.doc-tabs button:hover { color: var(--fg); border-color: var(--rule); }
.doc-tabs button[aria-selected="true"] {
background: var(--cta-bg);
border-color: var(--cta-bg);
color: var(--cta-fg);
}
.docs-main {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-height: 0;
background: var(--bg-alt);
}
.doc { flex: 1 1 auto; min-height: 0; }
.doc[hidden] { display: none; }
.doc-track {
display: flex;
height: 100%;
overflow-x: auto;
overflow-y: hidden;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scrollbar-width: none;
}
.doc-track::-webkit-scrollbar { display: none; }
.doc-track:focus-visible { outline: 2px solid var(--fg); outline-offset: -4px; }
.doc-slide {
flex: 0 0 100%;
scroll-snap-align: center;
display: flex;
align-items: center;
justify-content: center;
padding: clamp(0.75rem, 2.2vw, 2rem);
}
.doc-slide img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
object-fit: contain;
box-shadow: 0 30px 70px -35px #0b1c1780;
cursor: zoom-in;
}
.doc-bar {
flex: none;
display: flex;
align-items: center;
gap: var(--sp-20);
flex-wrap: wrap;
padding: var(--sp-20) var(--pad-x);
border-top: 1px solid var(--rule);
background: var(--bg);
}
.doc-step {
flex: none;
width: 2.5rem;
height: 2.5rem;
border: 1px solid var(--rule);
border-radius: 50%;
background: transparent;
color: var(--fg);
font-size: 1.5rem;
line-height: 1;
cursor: pointer;
transition: background-color .25s, border-color .25s;
}
.doc-step:hover { background: var(--hover-bg); border-color: var(--fg); }
.doc-step:disabled { opacity: .35; cursor: default; }
.doc-count {
flex: none;
min-width: 5.5rem;
color: var(--fg-muted);
font-size: var(--fs-nano);
letter-spacing: 0.15em;
}
.doc-count b { color: var(--fg); font-weight: 700; }
.doc-grid-btn {
padding: 9px 16px;
border: 1px solid var(--rule);
border-radius: 999px;
background: transparent;
color: var(--fg);
font-size: var(--fs-nano);
letter-spacing: 0.12em;
text-transform: uppercase;
cursor: pointer;
transition: background-color .25s, border-color .25s;
}
.doc-grid-btn:hover { background: var(--hover-bg); border-color: var(--fg); }
.doc-note {
margin-left: auto;
color: var(--label);
font-size: var(--fs-pico);
letter-spacing: 0.12em;
}
.doc-thumbs {
flex: none;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
gap: var(--sp-20);
max-height: 60vh;
overflow-y: auto;
padding: var(--sp-30) var(--pad-x);
border-top: 1px solid var(--rule);
background: var(--bg);
}
.doc-thumbs[hidden] { display: none; }
.doc-thumbs button {
display: block;
padding: 0;
border: 1px solid var(--rule);
border-radius: 4px;
background: var(--bg-alt);
cursor: pointer;
overflow: hidden;
transition: border-color .25s, transform .25s;
}
.doc-thumbs button:hover { border-color: var(--fg); transform: translateY(-2px); }
.doc-thumbs button[aria-current="true"] { border-color: var(--fg); border-width: 2px; }
.doc-thumbs img { width: 100%; height: auto; display: block; }
.doc-thumbs span {
display: block;
padding: 5px 0 6px;
color: var(--label);
font-size: var(--fs-pico);
letter-spacing: 0.1em;
}
.doc-zoom {
position: fixed;
inset: 0;
z-index: 1100;
overflow: auto;
padding: clamp(2.5rem, 6vw, 4rem) var(--sp-20) var(--sp-20);
background: #0b1c17f2;
-webkit-overflow-scrolling: touch;
}
.doc-zoom[hidden] { display: none; }
.doc-zoom img {
display: block;
width: auto;
max-width: none;
height: auto;
margin: 0 auto;
cursor: zoom-out;
}
.doc-zoom .modal-close {
position: fixed;
top: var(--sp-20);
right: var(--sp-20);
background: #ffffff1a;
color: #fff;
}
.doc-zoom .modal-close:hover { background: #ffffff33; }
@media (max-width: 1200px) {
.docs-header .lang-switch,
.docs-header .nav-end > .theme-toggle { display: flex; }
}
@media (max-width: 900px) {
.docs-header { flex-wrap: wrap; height: auto; gap: var(--sp-20); padding-block: 12px; }
.doc-tabs { order: 3; width: 100%; }
.doc-note { display: none; }
.docs-header .header-logo { width: 8.75rem; height: 2.75rem; }
.doc-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.doc-bar::-webkit-scrollbar { display: none; }
.doc-grid-btn { flex: none; white-space: nowrap; }
}
@media (max-width: 560px) {
.doc-bar { gap: 10px; padding-inline: var(--sp-20); }
.doc-count { min-width: 0; white-space: nowrap; }
.doc-tabs button { padding: 8px 13px; }
}
.gate {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: var(--sp-32);
background: var(--bg-alt);
}
.gate-card {
width: 100%;
max-width: 26.25rem;
padding: var(--sp-50) var(--sp-42) var(--sp-42);
border-radius: clamp(1rem, 1.6vw, 1.375rem);
background: var(--bg);
box-shadow: 0 40px 90px -35px #0b1c1759;
text-align: center;
}
.gate-logo {
width: 11.5rem;
height: 3.5rem;
margin: 0 auto var(--sp-32);
}
.gate-logo img { object-fit: contain; filter: var(--logo-filter); opacity: var(--logo-opacity); }
.gate-card h1 {
margin: 0 0 var(--sp-20);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(1.5rem, calc(1.324rem + 0.7512vw), 2rem);
font-weight: 400;
letter-spacing: -0.02em;
}
.gate-text { margin: 0 0 var(--sp-32); color: var(--fg-muted); line-height: 1.7; }
.gate-card .btn { width: 100%; }
.gate-langs {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 8px;
margin-top: var(--sp-32);
padding-top: var(--sp-24);
border-top: 1px solid var(--rule);
}
.gate-langs > a,
.gate-langs > span {
display: flex;
align-items: center;
gap: 6px;
padding: 6px 11px;
border: 1px solid var(--rule);
border-radius: 999px;
color: var(--fg-muted);
font-size: var(--fs-pico);
letter-spacing: 0.08em;
transition: background-color .25s, color .25s;
}
.gate-langs > a:hover { background: var(--hover-bg); color: var(--fg); }
.gate-langs > span.is-current { background: var(--hover-bg); color: var(--fg); }
.gate-langs img { width: 16px; height: 11px; flex: none; border-radius: 2px; object-fit: cover; }
.doc--table { overflow-y: auto; }
.price-list {
max-width: 75rem;
margin-inline: auto;
padding: var(--sp-40) var(--pad-x) var(--sp-50);
}
.table-head { margin-bottom: var(--sp-38); }
.table-head .number { margin: 0 0 10px; }
.table-summary {
margin: 0 0 8px;
font-family: Georgia, "Times New Roman", serif;
font-size: var(--fs-serif-lg);
color: var(--fg);
}
.table-note { margin: 0; color: var(--label); font-size: var(--fs-nano); }
.price-list h2 {
margin: var(--sp-40) 0 var(--sp-20);
font-size: clamp(1.25rem, calc(1.118rem + 0.5634vw), 1.625rem);
letter-spacing: -0.02em;
}
.price-list h2:first-of-type { margin-top: var(--sp-24); }
.table-wrap { overflow-x: auto; border: 1px solid var(--rule); border-radius: 8px; }
.price-list table { width: 100%; border-collapse: collapse; font-size: var(--fs-nano); }
.price-list th,
.price-list td {
padding: 11px 14px;
text-align: left;
white-space: nowrap;
border-bottom: 1px solid var(--rule);
}
.price-list thead th {
position: sticky;
top: 0;
z-index: 1;
background: var(--panel);
color: #fff;
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
font-size: var(--fs-pico);
}
.price-list tbody th { font-weight: 700; }
.price-list tbody tr:last-child th,
.price-list tbody tr:last-child td { border-bottom: 0; }
.price-list tbody tr:hover { background: var(--hover-bg); }
.price-list .num { text-align: right; font-variant-numeric: tabular-nums; }
.price-list .price { font-weight: 700; }
.price-list tr.is-sold th,
.price-list tr.is-sold td { color: var(--label); }
.price-list tr.is-sold .price { text-decoration: line-through; }
.tag {
display: inline-block;
padding: 3px 10px;
border-radius: 999px;
font-size: var(--fs-pico);
letter-spacing: 0.08em;
}
.tag.is-free { background: #17312814; color: var(--fg); }
.tag.is-sold { background: #b3261e1f; color: #8c1d18; }
html.dark .tag.is-free { background: #e6ece814; }
html.dark .tag.is-sold { background: #ff9d9426; color: #ff9d94; }
.doc-bar.is-table .doc-step,
.doc-bar.is-table .doc-count,
.doc-bar.is-table .doc-grid-btn { display: none; }
@media (max-width: 560px) {
.price-list th,
.price-list td { padding: 9px 11px; }
}
.doc-tr {
flex: none;
max-height: 60vh;
overflow-y: auto;
padding: var(--sp-30) var(--pad-x) var(--sp-38);
border-top: 1px solid var(--rule);
background: var(--bg);
font-size: var(--fs-serif);
line-height: 1.7;
}
.doc-tr[hidden] { display: none; }
.doc-tr > * { max-width: 48rem; margin-inline: auto; }
.tr-label {
margin: var(--sp-32) auto var(--sp-20);
font-size: var(--fs-nano);
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--label) !important;
}
.tr-label:first-child { margin-top: 0; }
.doc-tr h3 {
margin: 0 auto var(--sp-20);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(1.25rem, calc(1.118rem + 0.5634vw), 1.625rem);
font-weight: 400;
letter-spacing: -0.02em;
line-height: 1.25;
color: var(--fg);
}
.doc-tr p { margin: 0 auto var(--sp-20); color: var(--fg-muted); }
.doc-tr ul { margin: 0 auto var(--sp-20); padding-left: 1.25em; color: var(--fg-muted); }
.doc-tr strong { color: var(--fg); }
.tr-empty { font-style: italic; }
.gloss {
display: grid;
grid-template-columns: minmax(0, auto) minmax(0, 1fr);
gap: 6px var(--sp-24);
margin: 0 auto;
font-size: var(--fs-nano);
}
.gloss dt {
color: var(--fg);
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.gloss dd { margin: 0; color: var(--fg-muted); }
:root {
--map-bg:    var(--deep);
--map-ink:   var(--sand);
--map-label: #f0e9db;
}
html.dark {
--map-bg:    #05100d;
--map-ink:   #c9b48d;
--map-label: #e3dccd;
}
.contact-map { position: relative; background: var(--map-bg); }
.contact-map .map-preview,
.contact-map .map-live { position: absolute; inset: 0; }
.contact-map .map-preview { z-index: 1; }
.contact-map .map-live { z-index: 2; }
.map-preview { transition: opacity .5s ease; }
.map-live { opacity: 0; transition: opacity .6s ease; }
.map-live.is-ready { opacity: 1; }
.map-live.is-ready + .map-preview,
.contact-map:has(.map-live.is-ready) .map-preview { opacity: 0; pointer-events: none; }
.map { display: block; width: 100%; height: 100%; }
:root {
--ml-land:  #e6ddc9;
--ml-water: #16302a;
--ml-green: #d3cbb2;
--ml-ink:   #173128;
--ml-label: #0b1c17;
}
html.dark {
--ml-land:  #14261f;
--ml-water: #050f0c;
--ml-green: #1b3128;
--ml-ink:   #d8c39d;
--ml-label: #f0e9db;
}
.map-live .maplibregl-ctrl-group {
background: #0b1c17cc;
border: 1px solid #d8c39d40;
box-shadow: none;
}
.map-live .maplibregl-ctrl-group button + button { border-top-color: #d8c39d40; }
.map-live .maplibregl-ctrl-group button span { filter: invert(1) opacity(.75); }
.map-live .maplibregl-ctrl-attrib {
background: #0b1c1799;
color: var(--map-label);
font-size: 10px;
}
.map-live .maplibregl-ctrl-attrib a { color: var(--map-ink); }
.map-live .maplibregl-canvas { outline: none; }
.map-pin { display: flex; flex-direction: column; align-items: center; cursor: default; }
.map-pin-label {
order: -1;
margin-bottom: 8px;
padding: 6px 12px;
border-radius: 999px;
background: var(--sand);
color: var(--deep);
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.14em;
white-space: nowrap;
}
.map-pin-dot {
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--sand);
box-shadow: 0 0 0 5px #d8c39d3d, 0 2px 6px #0006;
}
.m-bg    { fill: var(--map-bg); }
.m-coast { fill: none; stroke: var(--map-ink); stroke-width: 2.2; stroke-linejoin: round; }
.m-roads { fill: none; stroke: var(--map-ink); stroke-width: 1; opacity: .28; }
.m-golf  { fill: var(--map-ink); fill-opacity: .14; stroke: var(--map-ink);
stroke-width: 1.4; stroke-opacity: .55; }
.m-dot   { fill: var(--map-label); opacity: .8; }
.m-place {
fill: var(--map-label);
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
letter-spacing: 0.12em;
opacity: .85;
}
.m-water {
fill: var(--map-ink);
font-family: Georgia, "Times New Roman", serif;
font-size: 17px;
font-style: italic;
letter-spacing: 0.3em;
opacity: .55;
}
.m-halo { fill: var(--map-ink); opacity: .16; }
.m-pin  { fill: var(--map-ink); stroke: var(--map-bg); stroke-width: 3; }
.m-here-label {
fill: var(--map-label);
font-family: Arial, Helvetica, sans-serif;
font-size: 17px;
font-weight: 700;
letter-spacing: 0.16em;
}