:root {
  --ink: #123d4a;
  --muted: #55747c;
  --paper: #f4f5f0;
  --surface: #ffffff;
  --line: #d8e2dc;
  --accent: #d9a84b;
  --accent-dark: #8a5d16;
  --sea: #0d5865;
  --available: #3b8b69;
  --booked: #ad5960;
  --selected: #d66b4d;
  --unknown: #9aa7a8;
  font-family: Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); line-height: 1.55; }
.container { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.site-header { position: relative; z-index: 2; background: rgba(255, 255, 255, .94); border-bottom: 1px solid var(--line); }
.header-content, .site-footer .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; }
.brand { color: var(--ink); font-weight: 800; letter-spacing: .02em; text-decoration: none; }
.site-nav { display: flex; flex-wrap: wrap; gap: 18px; }
.site-nav a { color: var(--muted); font-size: .88rem; text-decoration: none; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--accent-dark); }
.hero { position: relative; display: grid; min-height: min(720px, calc(100vh - 68px)); overflow: hidden; align-items: center; isolation: isolate; color: white; background: #0a4354; }
.hero-atmosphere, .hero-atmosphere::before, .hero-atmosphere::after { position: absolute; inset: -6%; content: ""; pointer-events: none; }
.hero-atmosphere { z-index: -2; background: linear-gradient(105deg, rgba(4, 38, 52, .72) 0%, rgba(4, 38, 52, .38) 48%, rgba(4, 38, 52, .18) 100%), url("images/petrovac-hero-public-domain.jpg") center / cover no-repeat; transform: scale(1.04); animation: living-sea 32s ease-in-out infinite alternate; }
.hero-atmosphere::before { background: linear-gradient(120deg, transparent 16%, rgba(255, 255, 255, .18) 44%, transparent 60%); mix-blend-mode: screen; filter: blur(16px); opacity: .75; animation: sunlight 18s ease-in-out infinite alternate; }
.hero-atmosphere::after { top: 52%; background: repeating-linear-gradient(176deg, rgba(230, 255, 250, .2) 0 1px, transparent 1px 24px); opacity: .45; transform: skewY(-5deg); }
.hero-copy { position: relative; z-index: 1; padding: clamp(72px, 12vw, 148px) 0; }
.eyebrow { margin: 0 0 12px; color: var(--accent-dark); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-eyebrow { color: #ffe5a5; }
h1, h2, h3 { margin: 0; line-height: 1.1; }
h1 { max-width: 770px; font-size: clamp(2.9rem, 8vw, 6.4rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.04em; }
h3 { font-size: 1.25rem; }
.hero-tagline { max-width: 540px; margin: 20px 0 32px; font-size: clamp(1.12rem, 2.3vw, 1.45rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button { display: inline-block; padding: 13px 20px; border: 1px solid transparent; border-radius: 999px; color: #173e46; background: #fff6db; box-shadow: 0 10px 22px rgba(0, 0, 0, .18); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.button-quiet { color: white; border-color: rgba(255, 255, 255, .65); background: rgba(8, 55, 68, .32); }
.button:hover, .button:focus-visible, .booking-button:hover, .booking-button:focus-visible { transform: translateY(-1px); }
.property-overview { position: relative; z-index: 1; margin-top: -42px; }
.overview-grid { display: grid; grid-template-columns: repeat(5, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 20px 52px rgba(24, 43, 53, .12); }
.overview-grid > div { min-width: 0; padding: 20px 18px; border-right: 1px solid var(--line); }
.overview-grid > div:last-child { border-right: 0; }
.overview-grid span { display: block; color: var(--muted); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.overview-grid strong { display: block; margin-top: 5px; font-size: .98rem; line-height: 1.25; }
.section { padding: clamp(64px, 9vw, 112px) 0; }
.apartments-section { padding-bottom: clamp(42px, 6vw, 72px); }
.apartments-layout, .section-heading-wide, .rental-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); gap: 32px; align-items: end; }
.apartments-copy, .section-heading-wide > p, .rental-copy { max-width: 480px; color: var(--muted); font-size: 1.06rem; }
.apartments-copy p, .rental-copy p { margin: 0; }
.apartments-copy p + p, .rental-copy p + p { margin-top: 14px; }
.section-heading { margin-bottom: 28px; }
.gallery-section { padding-top: 36px; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.gallery-card { display: grid; margin: 0; overflow: hidden; border-radius: 20px; background: var(--surface); box-shadow: 0 12px 30px rgba(24, 43, 53, .1); }
.gallery-card-wide { grid-column: 1 / -1; }
.gallery-card img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; }
.gallery-card figcaption { padding: 14px 16px 16px; color: var(--muted); font-size: .92rem; }
.rental-section { padding-top: 36px; background: #f7f3e9; }
.comforts-section { background: #e9f1ee; }
.comfort-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.comfort-card { padding: clamp(28px, 5vw, 46px); border-radius: 22px; color: #f9fbf8; background: #124d5a; }
.comfort-card .eyebrow { color: #ffdb88; }
.comfort-card h2 { font-size: clamp(1.8rem, 3vw, 2.65rem); }
.comfort-card p { margin: 18px 0 0; color: #d9eee9; }
.comfort-card-highlight { color: var(--ink); background: #fffdf7; }
.comfort-card-highlight p { color: var(--muted); }
.calendar-section { background: var(--surface); }
.calendar-layout { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(420px, 1.25fr); gap: clamp(32px, 8vw, 120px); align-items: start; }
.calendar-intro > p:not(.eyebrow) { max-width: 390px; margin: 20px 0 28px; color: var(--muted); }
.legend { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; color: var(--muted); font-size: .95rem; }
.legend li { display: flex; align-items: center; gap: 10px; }
.calendar-booking-link { margin: 24px 0 0 !important; font-weight: 700; }
.calendar-booking-link a, .booking-channels-heading a { color: var(--sea); }
.booking-channels-section { background: #f7f3e9; }
.booking-channels-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); gap: 32px; align-items: end; margin-bottom: 30px; }
.booking-channels-heading > p { max-width: 470px; margin: 0; color: var(--muted); font-size: 1.05rem; }
.channel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.channel-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: clamp(24px, 4vw, 34px); border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 12px 30px rgba(24, 43, 53, .07); }
.channel-card-current { border-color: #d8c38c; background: #fff9e9; }
.channel-kicker { margin: 0 0 12px; color: var(--accent-dark); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.channel-card h3 { font-size: 1.45rem; }
.channel-card > p:not(.channel-kicker) { margin: 16px 0 0; color: var(--muted); }
.channel-card .booking-button { margin-top: 22px; }
.booking-disclosure { max-width: 820px; margin: 24px 0 0; color: var(--muted); font-size: .92rem; }
.booking-button { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; width: fit-content; padding: 11px 16px; border-radius: 10px; color: white; background: #003b95; font-size: .86rem; font-weight: 700; text-decoration: none; }
.booking-wordmark { font-size: 1.02rem; font-weight: 800; letter-spacing: -.02em; }
.status-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; }
.status-dot.available { background: var(--available); }.status-dot.booked { background: var(--booked); }.status-dot.selected { background: var(--selected); box-shadow: 0 0 0 3px #f2d4ca; }.status-dot.unknown { background: var(--unknown); }
.calendar-card { padding: clamp(18px, 4vw, 32px); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 18px 45px rgba(24, 43, 53, .08); }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.icon-button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: transparent; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.icon-button:hover, .icon-button:focus-visible { border-color: var(--accent); color: var(--accent-dark); }
.calendar { width: 100%; border-collapse: collapse; table-layout: fixed; }.calendar th { padding: 8px 4px; color: var(--muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; }.calendar td { padding: 4px; text-align: center; }
.day { width: 100%; aspect-ratio: 1; min-height: 40px; border: 1px solid transparent; border-radius: 6px; color: var(--ink); background: transparent; font: inherit; cursor: pointer; }.day:hover, .day:focus-visible { border-color: var(--accent); }.day.available { background: #e2f0e9; }.day.booked { color: white; background: var(--booked); cursor: not-allowed; }.day.selected { color: white; background: var(--selected); box-shadow: inset 0 0 0 3px #f9b19d; }.day.unknown { color: var(--muted); cursor: not-allowed; }.muted { color: #aab5b5; }
.demo-note { margin: 20px 0 0; color: var(--muted); font-size: .8rem; }
.calendar-selection-notice { margin: 16px 0 0; color: var(--accent-dark); font-size: .86rem; font-weight: 700; }
.voice-section { color: white; background: linear-gradient(135deg, #0c4c5c, #16354f); }
.voice-section .eyebrow { color: #ffda89; }
.voice-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); gap: clamp(32px, 8vw, 96px); align-items: center; }
.voice-layout > div:first-child > p:not(.eyebrow) { max-width: 540px; margin: 20px 0 0; color: #d7eeee; }
.voice-disclaimer { font-size: .9rem; }
.voice-card { padding: clamp(24px, 4vw, 38px); border: 1px solid rgba(255, 255, 255, .22); border-radius: 22px; background: rgba(255, 255, 255, .1); box-shadow: 0 20px 50px rgba(0, 0, 0, .18); }
.voice-controls { display: flex; flex-wrap: wrap; gap: 12px; }
.voice-start, .voice-stop { padding: 13px 20px; border: 1px solid transparent; border-radius: 999px; font: inherit; font-weight: 800; cursor: pointer; }
.voice-start { color: #173e46; background: #ffe4a2; }
.voice-stop { color: white; border-color: rgba(255, 255, 255, .5); background: transparent; }
.voice-start:disabled, .voice-stop:disabled { cursor: not-allowed; opacity: .48; }
.voice-status { min-height: 1.6em; margin: 24px 0 0; font-weight: 800; }
.voice-status[data-state="listening"] { color: #9ff4d0; }
.voice-status[data-state="speaking"] { color: #ffe3a0; }
.voice-status[data-state="error"] { color: #ffc1c1; }
.voice-transcript { min-height: 3.2em; margin: 12px 0 0; color: #e1f3f3; }
.voice-privacy { margin: 18px 0 0; color: #bcd7dc; font-size: .78rem; }
.travel-section { color: white; background: #0f3d4b; }
.travel-section .eyebrow, .kairos-section .eyebrow { color: #e9bd60; }
.travel-layout, .kairos-layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr); gap: clamp(32px, 8vw, 96px); align-items: center; }
.travel-copy-block p:not(.eyebrow) { margin: 20px 0 0; color: #d5ecea; font-size: 1.05rem; }
.travel-photo, .kairos-photo { overflow: hidden; margin: 0; border: 1px solid rgba(208, 245, 241, .32); border-radius: 18px; background: rgba(255, 255, 255, .08); }
.travel-photo img, .kairos-photo img { display: block; width: 100%; height: auto; }
.travel-photo figcaption, .kairos-photo figcaption { padding: 11px 15px; color: #d5ecea; font-size: .82rem; }
.kairos-section { color: #f7fbfa; background: linear-gradient(132deg, #285e71, #112e47); }
.kairos-layout > div p:not(.eyebrow) { margin: 18px 0 0; color: #dbeaf0; }.kairos-photo { order: 2; }.kairos-photo figcaption { color: #dbeaf0; }
.places-section { background: #e9f1ee; }
.place-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.place-card { min-height: 220px; padding: 24px; border: 1px solid rgba(17, 123, 122, .14); border-radius: 18px; background: rgba(255, 255, 255, .76); box-shadow: 0 12px 24px rgba(33, 111, 111, .05); }
.place-card:nth-child(2n) { color: white; background: #1c7378; }.place-card p { margin: 14px 0 0; color: var(--muted); }.place-card:nth-child(2n) p { color: #d5efeb; }
.journey-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: clamp(34px, 6vw, 64px); }
.journey-card { display: grid; grid-template-rows: 220px 1fr; margin: 0; overflow: hidden; border: 1px solid rgba(208, 245, 241, .22); border-radius: 20px; background: rgba(255, 255, 255, .1); box-shadow: 0 12px 30px rgba(3, 20, 27, .16); }
.journey-card img { width: 100%; height: 100%; object-fit: cover; }
.journey-card figcaption { display: grid; align-content: start; gap: 8px; padding: 18px; }
.journey-card figcaption > span:not(.journey-kicker), .journey-card .license-credit { color: #d5ecea; }
.journey-kicker { color: #f1c96f; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.journey-card .license-credit { margin-top: 4px; font-size: .7rem; }
.surroundings-heading { max-width: 680px; margin: clamp(48px, 7vw, 80px) 0 26px; }.surroundings-heading h3 { font-size: clamp(1.65rem, 3vw, 2.3rem); }.surroundings-heading p:not(.eyebrow) { margin: 14px 0 0; color: var(--muted); }
.surroundings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }.surroundings-card { display: grid; margin: 0; overflow: hidden; border-radius: 20px; background: var(--surface); box-shadow: 0 12px 30px rgba(24, 43, 53, .1); }.surroundings-card-wide { grid-column: 1 / -1; }.surroundings-card img { width: 100%; height: 100%; max-height: 440px; object-fit: cover; }.surroundings-card figcaption { padding: 14px 16px 16px; color: var(--muted); font-size: .92rem; }
.site-footer { color: var(--muted); background: var(--paper); font-size: .85rem; }.telegram-version-link { color: var(--sea); font-weight: 700; }.booking-note { max-width: 360px; text-align: right; }
:focus-visible { outline: 3px solid #d18b19; outline-offset: 3px; }
@keyframes living-sea { from { transform: scale(1.04) translate3d(0, 0, 0); } to { transform: scale(1.12) translate3d(-1%, -1%, 0); } }
@keyframes sunlight { from { transform: translateX(-5%); opacity: .32; } to { transform: translateX(8%); opacity: .76; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.hero-atmosphere, .hero-atmosphere::before { animation: none; } }
@media (max-width: 1100px) { .journey-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) { .overview-grid { grid-template-columns: repeat(3, 1fr); }.overview-grid > div:nth-child(3) { border-right: 0; }.overview-grid > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }.place-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .container { width: min(100% - 28px, 560px); }.header-content, .site-footer .container { align-items: flex-start; flex-direction: column; gap: 10px; }.site-nav { gap: 12px 16px; }.hero { min-height: 590px; }.property-overview { margin-top: -24px; }.overview-grid { grid-template-columns: 1fr 1fr; }.overview-grid > div { border-bottom: 1px solid var(--line); }.overview-grid > div:nth-child(2n) { border-right: 0; }.overview-grid > div:nth-child(3) { border-right: 1px solid var(--line); }.overview-grid > div:last-child { grid-column: 1 / -1; border-bottom: 0; }.apartments-layout, .section-heading-wide, .rental-layout, .comfort-grid, .calendar-layout, .booking-channels-heading, .channel-grid, .voice-layout, .travel-layout, .kairos-layout, .gallery-grid, .surroundings-grid, .journey-grid { grid-template-columns: 1fr; }.gallery-card-wide, .surroundings-card-wide { grid-column: auto; }.place-grid { grid-template-columns: 1fr; }.place-card { min-height: auto; }.calendar-card { min-width: 0; }.booking-note { text-align: left; }.kairos-photo { order: 0; } }
@media (max-width: 420px) { h1 { font-size: 2.6rem; }.calendar-card { padding: 14px 8px; }.calendar td { padding: 2px; }.day { min-height: 36px; font-size: .9rem; } }
