/* Vila Stefana — editorial design. All public styling is scoped away from admin. */
.vila-public {
  --vs-paper:#f6f3ed; --vs-ink:#302723; --vs-muted:#746a63;
  --vs-wine:#68243c; --vs-wine-dark:#431b2b; --vs-line:#ded7cd;
  --color-emerald-50:#f8f1f2; --color-emerald-100:#f1e2e7;
  --color-emerald-200:#ead0d8; --color-emerald-300:#ddb9c4;
  --color-emerald-400:#c795a6; --color-emerald-500:#ad7187;
  --color-emerald-600:#8d4561; --color-emerald-700:#77314c;
  --color-emerald-800:#68243c; --color-emerald-900:#582036; --color-emerald-950:#321821;
  --color-amber-300:#ecd3a5; --color-amber-400:#e5c38a; --color-amber-500:#dcb779;
  --color-amber-600:#a77e41; --color-amber-700:#866332;
  --color-stone-50:#faf8f4; --color-stone-100:#f2eee7; --color-stone-200:#e5ded4;
  --color-stone-300:#d4cabd; --color-stone-500:#817468; --color-stone-600:#675b51;
  --color-stone-800:#3d322a; --color-stone-900:#302723;
  background:var(--vs-paper); color:var(--vs-ink);
  font-family:'Segoe UI',Arial,sans-serif; font-size:15px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.vila-public * { scrollbar-width:thin; scrollbar-color:#c3b5a7 transparent; }
.vila-public h1,.vila-public h2,.vila-public h3,.vila-public h4 { font-family:Georgia,'Times New Roman',serif; letter-spacing:-.035em; text-wrap:balance; }
.vila-public h1 { font-weight:400; line-height:1.1; font-size:clamp(36px,4.6vw,60px); }
.vila-public h2 { font-weight:400; line-height:1.17; font-size:clamp(29px,3vw,42px); }
.vila-public h3 { line-height:1.25; }
.vila-public p { text-wrap:pretty; }
.vila-public button,.vila-public a { -webkit-tap-highlight-color:transparent; }
.vila-public button { cursor:pointer; }
.vila-public button:disabled { cursor:not-allowed; }
.vila-public :is(button,a,input,select,textarea):focus-visible { outline:3px solid #a46b43; outline-offset:4px; }
.vila-public input,.vila-public select,.vila-public textarea { accent-color:var(--vs-wine); }
.vila-public .max-w-7xl { max-width:1280px; }
.vila-public main { min-width:0; }
.vila-public main>div:not(.vs-home) { padding-top:56px; padding-bottom:72px; }
.vila-public main>div:not(.vs-home)>div:first-child:has(h1) { margin-bottom:38px; }
.vila-public main>div:not(.vs-home)>div:first-child:has(h1)>p { max-width:680px; margin-left:auto; margin-right:auto; font-size:16px; color:var(--vs-muted); line-height:1.8; }
.vila-public main>div:not(.vs-home)>div:first-child:has(h1)>:first-child:not(h1) { font-size:10px; letter-spacing:.18em; text-transform:uppercase; font-weight:600; color:var(--vs-wine); }
.vila-public .rounded-3xl { border-radius:16px; }
.vila-public .rounded-2xl { border-radius:12px; }
.vila-public button[class*="bg-emerald-"],.vila-public a[class*="bg-emerald-"] { box-shadow:none; }
.vila-public main button[class*="font-bold"] { font-weight:600; }
.vila-public main button[class*="bg-amber-500"] { background:var(--color-amber-400); color:#332419; border-color:transparent; }
.vila-public main button[class*="bg-amber-500"]:hover { background:#efd4a3; }
.vila-public main button[class*="shadow"] { box-shadow:none; }
.vila-public .animate-pulse { animation:none; }
.vila-public main img { transition:transform .45s ease; }

/* Quiet, compact navigation with the original brand. */
.vila-public>header { background:#faf8f5f5; box-shadow:none; border-bottom:1px solid var(--vs-line); backdrop-filter:blur(14px); }
.vila-public>header>div:first-child { background:var(--vs-wine-dark); border:0; padding:9px 28px; font-size:11px; letter-spacing:.015em; }
.vila-public>header>div:first-child>div { max-width:1224px; }
.vila-public>header>div:first-child svg { color:#d8b48b; }
.vila-public>header>div:first-child button { font-size:11px; font-weight:500; padding:3px 10px; border-color:#ffffff24; border-radius:4px; color:#f4e5d0; }
.vila-public>header>div:nth-child(2) { min-height:88px; padding-top:13px; padding-bottom:13px; padding-left:28px; padding-right:28px; }
.vila-public>header>div:nth-child(2)>button img { width:204px; height:60px; object-fit:contain; }
.vila-public>header>div:nth-child(2)>div>button { border-radius:0; padding:12px 9px; font-size:13px; font-weight:500; color:#594c42; border-bottom:2px solid transparent; transition:color .2s,border-color .2s; }
.vila-public>header>div:nth-child(2)>div>button[class*="bg-stone"] { background:transparent; border-bottom-color:var(--vs-wine); color:var(--vs-wine); }
.vila-public>header>div:nth-child(2)>div>button:hover { color:var(--vs-wine); }
.vila-public>header button[aria-haspopup] { box-shadow:none; background:transparent; border-color:var(--vs-line); border-radius:4px; }
.vila-public>header button[aria-haspopup] img { width:18px; height:14px; }

/* An image-led, editorial opening. */
.vs-home { padding-bottom:0; }
.vs-home> :not([hidden])~:not([hidden]) { margin-top:86px; }
.vs-hero { display:grid; grid-template-columns:1fr 1fr; gap:54px; max-width:1280px; margin:0 auto; padding:40px 28px 0; align-items:center; }
.vs-hero-copy { padding:28px 0 28px 4px; }
.vs-eyebrow { display:flex; align-items:center; gap:12px; color:var(--vs-wine); font-size:10px; font-weight:650; letter-spacing:.2em; text-transform:uppercase; margin:0 0 27px; }
.vs-rule { width:28px; height:1px; background:var(--vs-wine); }
.vila-public .vs-hero h1 { font-size:clamp(42px,4.75vw,66px); line-height:1.08; letter-spacing:-.045em; font-weight:400; margin:0 0 24px; }
.vila-public .vs-hero h1 em { font-weight:400; color:var(--vs-wine); }
.vs-hero-description { max-width:430px; font-size:15px; line-height:1.85; color:var(--vs-muted); margin:0 0 29px; }
.vs-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px 25px; }
.vs-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:51px; padding:14px 20px; border:1px solid transparent; border-radius:5px; font-size:12px; font-weight:600; text-decoration:none; transition:background .2s,transform .2s; }
.vs-button-primary { color:#fffaf5; background:var(--vs-wine); }
.vs-button-primary:hover { background:var(--vs-wine-dark); transform:translateY(-1px); }
.vs-button span { font-size:20px; line-height:1; font-weight:400; }
.vs-text-link { display:inline-flex; align-items:center; gap:16px; color:var(--vs-ink); text-decoration:none; border-bottom:1px solid #b4a391; padding:9px 0; font-size:12px; font-weight:500; }
.vs-text-link:hover { color:var(--vs-wine); border-color:var(--vs-wine); }
.vs-hero-note { display:flex; gap:8px; align-items:center; margin-top:19px; font-size:10px; line-height:1.6; color:var(--vs-muted); }
.vs-note-dot { width:5px; height:5px; background:#7c8b72; border-radius:100%; flex:none; }
.vs-hero-facts { display:grid; grid-template-columns:.9fr 1fr 1fr; gap:15px; margin:35px 0 0; padding-top:21px; border-top:1px solid var(--vs-line); max-width:450px; }
.vs-hero-facts>div+div { border-left:1px solid var(--vs-line); padding-left:24px; }
.vs-hero-facts dt { font-family:Georgia,serif; font-size:27px; line-height:1.2; font-weight:400; }
.vs-hero-facts dt small { font-size:15px; }
.vs-hero-facts dd { margin:6px 0 0; font-size:10px; color:var(--vs-muted); }
.vs-hero-photo { position:relative; height:560px; margin:0; background:#dadbd2; overflow:hidden; border-radius:5px 5px 72px 5px; }
.vs-hero-photo>img { width:100%; height:100%; object-fit:cover; object-position:center 56%; }
.vs-hero-photo::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#17221e90); pointer-events:none; }
.vs-hero-photo figcaption { position:absolute; z-index:1; left:28px; bottom:29px; right:30px; display:flex; flex-direction:column; gap:8px; color:white; text-shadow:0 1px 8px #0008; }
.vs-hero-photo figcaption>span:first-child { font:italic 19px Georgia,serif; }
.vs-hero-photo figcaption>span:last-child { font-size:9px; letter-spacing:.19em; }

/* Booking search stays connected to the existing booking workflow. */
.vs-home>.vs-availability { margin-top:32px!important; max-width:1280px; padding-left:28px; padding-right:28px; }
.vs-availability>div { border-radius:8px; box-shadow:0 8px 30px #35291b05; border-color:var(--vs-line); padding:22px 26px; }
.vs-availability>div>div:first-child { margin-bottom:18px; }
.vs-availability button { border-radius:5px; font-size:12px; }
.vs-availability input,.vs-availability select { min-height:47px; border-radius:5px; border-color:#dfd6ca; background:#faf8f5; font-size:13px; }
.vs-availability label { font-size:9px; letter-spacing:.08em; font-weight:600; color:#766758; }
.vs-availability button[class*="bg-emerald-900"] { background:var(--vs-wine); }
.vs-home>section:not(.vs-hero) { padding-left:28px; padding-right:28px; }
.vs-home>section:nth-of-type(2) { padding-top:0; }
.vs-home>section>div:first-child:has(h2):not([class*="bg-"]) { margin-bottom:34px; }
.vs-home>section>div:first-child:has(h2):not([class*="bg-"])>p:first-child { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--vs-wine); font-weight:600; }
.vs-facility { padding:24px 22px 26px; background:transparent; border:0; border-top:1px solid var(--vs-line); border-radius:0; box-shadow:none; }
.vs-facility:hover { box-shadow:none; }
.vs-facility>div:first-child { border:0; border-radius:50%; background:#eee7dc; color:var(--vs-wine); width:39px; height:39px; }
.vila-public .vs-facility h3 { font-size:23px; font-weight:400; margin-top:18px; margin-bottom:10px; }
.vs-facility p { font-size:13px; line-height:1.85; color:var(--vs-muted); }
.vs-home section:has(.vs-facility)>.grid { gap:18px 30px; }

/* Consistent room cards, with all factual details retained. */
.vs-room-card { border-color:var(--vs-line); border-radius:9px; box-shadow:none; background:#fffdf9; }
.vs-room-card:hover { box-shadow:0 12px 35px #3827190d; transform:translateY(-2px); }
.vs-room-card>div:first-child { aspect-ratio:4/3; height:auto; }
.vs-room-card>div:first-child>img { width:100%; height:100%; object-fit:cover; }
.vs-room-card>div:nth-child(2) { padding:24px; }
.vila-public .vs-room-card h3 { font-size:24px; font-weight:400; }
.vs-room-card p { font-size:13px; line-height:1.8; }
.vs-room-card button { min-height:42px; border-radius:5px; font-size:12px; }
.vs-room-card button[aria-label*="Imaginea"] { min-height:36px; width:36px; border-radius:50%; }
.vs-room-card [class*="bg-amber-500"] { background:#fff8ed; color:#523a25; border-color:#ecdfcd; }
.vs-room-card [class*="bg-emerald-50"] { background:#f5efe9; }
.vs-room-card [class*="bg-emerald-900"] { background:var(--vs-wine); color:#fff; }

/* Photography and shared-space panels. */
.vila-public main .cursor-pointer:has(>img) { border-radius:9px; overflow:hidden; }
.vila-public main .cursor-pointer>img { transition:transform .5s ease; }
.vila-public main .cursor-pointer:hover>img { transform:scale(1.025); }
.vs-home section>div[class*="bg-emerald-950"] { background:#3e1d2a; box-shadow:none; border-color:#3e1d2a; }
.vs-home section>div[class*="bg-emerald-950"] h2 { font-weight:400; }
.vila-public main .bg-stone-100:has(a[href*="maps"]) { background:#ebe5da; border-color:var(--vs-line); }
.vila-public main a[href*="maps.google"],.vila-public main a[href*="google.com/maps"] { background:#e7e5d9; color:#49533e; text-decoration:none; font-size:14px; border:1px solid #d1d4c4; border-radius:10px; }
.vila-public main form input,.vila-public main form textarea { border-radius:6px; background:#fdfbf8; border-color:var(--vs-line); }
.vila-public main form input:focus,.vila-public main form textarea:focus { border-color:var(--vs-wine); }
.vila-public main form button[type=submit] { border-radius:6px; }
.vila-public aside[aria-label="Cookie-uri necesare"] { border-radius:10px; border-color:var(--vs-line); box-shadow:0 10px 40px #38271926; background:#fffdf9; }
.vila-public aside[aria-label="Cookie-uri necesare"] h2 { font:600 18px 'Segoe UI',sans-serif; letter-spacing:0; }
.vila-public aside[aria-label="Cookie-uri necesare"] p { font-size:12px; }

/* Calm footer; legal and contact links remain accessible. */
.vila-public>footer { background:#321b24; color:#d8c8c9; border-color:#321b24; padding-top:54px; padding-bottom:26px; margin-top:72px; font-size:13px; }
.vila-public>footer>div { max-width:1280px; padding-left:28px; padding-right:28px; }
.vila-public>footer h4 { color:#f4e9de; font-family:'Segoe UI',Arial,sans-serif; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.vila-public>footer p { font-size:13px; line-height:1.9; }
.vila-public>footer button,.vila-public>footer a { font-size:13px; }
.vila-public>footer img[alt="Logo Vila Ștefana"] { width:208px; height:auto; max-height:90px; padding:8px; background:var(--vs-paper); border-radius:5px; object-fit:contain; }
.vila-public>footer :is(button,a):hover { color:#fff; }
.vila-public>footer [class*="border-emerald"] { border-color:#ffffff15; }
.vila-public>footer a[href^="tel:"] { color:#ead1ab; }
.vila-public>footer img[alt*="ANPC"] { width:220px!important; height:auto!important; }

@media(min-width:1440px) {
  .vs-hero { padding-top:48px; gap:76px; }
  .vs-hero-photo { height:600px; }
}
@media(max-width:1100px) {
  .vs-hero { gap:32px; }
  .vs-hero-photo { height:535px; }
  .vs-hero-actions { gap:16px; }
  .vs-hero-facts>div+div { padding-left:13px; }
  .vila-public>header>div:nth-child(2)>button img { width:178px; }
  .vila-public>header>div:first-child>div>div:first-child>span:nth-child(n+2) { display:none; }
}
@media(max-width:767px) {
  .vila-public { font-size:14px; }
  .vila-public>header>div:first-child { padding:7px 16px; font-size:10px; }
  .vila-public>header>div:first-child>div { justify-content:center; gap:5px; }
  .vila-public>header>div:first-child>div>div:first-child { display:none; }
  .vila-public>header>div:nth-child(2) { min-height:74px; padding:9px 17px; }
  .vila-public>header>div:nth-child(2)>button img { width:164px; height:51px; }
  .vila-public>header>div:nth-child(2)>div>button { min-width:44px; min-height:44px; padding:9px; }
  .vila-public>header button[aria-haspopup] { padding:7px 9px; font-size:11px; }
  .vila-public main>div:not(.vs-home) { padding-top:35px; padding-bottom:40px; }
  .vila-public main>div:not(.vs-home)>div:first-child:has(h1)>p { font-size:14px; }
  .vs-hero { grid-template-columns:1fr; padding:28px 18px 0; gap:24px; }
  .vs-hero-copy { padding:5px 4px 0; }
  .vs-eyebrow { font-size:9px; letter-spacing:.16em; margin-bottom:20px; }
  .vila-public .vs-hero h1 { font-size:clamp(37px,9.9vw,59px); margin-bottom:18px; }
  .vs-hero-description { max-width:540px; font-size:14px; line-height:1.8; margin-bottom:23px; }
  .vs-hero-actions { gap:12px 20px; }
  .vs-button { min-height:48px; font-size:12px; padding:13px 17px; gap:16px; }
  .vs-text-link { font-size:12px; }
  .vs-hero-note { margin-top:14px; font-size:10px; }
  .vs-hero-facts { margin-top:24px; padding-top:18px; max-width:none; gap:12px; }
  .vs-hero-facts dt { font-size:26px; }
  .vs-hero-facts dd { font-size:9px; }
  .vs-hero-facts>div+div { padding-left:17px; }
  .vs-hero-photo { height:400px; border-radius:5px 5px 48px 5px; }
  .vs-hero-photo>img { object-position:center 54%; }
  .vs-hero-photo figcaption { left:23px; bottom:23px; }
  .vs-hero-photo figcaption>span:first-child { font-size:18px; }
  .vs-home>.vs-availability { margin-top:24px!important; padding:0 18px; }
  .vs-availability>div { padding:19px 17px; }
  .vs-availability input,.vs-availability select { font-size:16px; }
  .vs-home> :not([hidden])~:not([hidden]) { margin-top:56px; }
  .vs-home>section:not(.vs-hero) { padding-left:18px; padding-right:18px; }
  .vs-home>section>div:first-child:has(h2):not([class*="bg-"]) { margin-bottom:25px; }
  .vs-facility { padding:20px 6px; }
  .vs-home section:has(.vs-facility)>.grid { gap:8px 22px; }
  .vila-public .vs-facility h3 { font-size:23px; }
  .vs-facility p { font-size:13px; }
  .vs-room-card>div:nth-child(2) { padding:20px; }
  .vs-room-card>div:first-child { aspect-ratio:4/3; }
  .vila-public main .fixed { overscroll-behavior:contain; }
  .vila-public main input,.vila-public main select,.vila-public main textarea { font-size:16px; }
  .vila-public>footer { margin-top:46px; padding-top:38px; }
  .vila-public>footer>div { padding-left:22px; padding-right:22px; }
}
@media(max-width:380px) {
  .vila-public>header>div:first-child button { font-size:10px; padding:3px 5px; }
  .vila-public>header>div:nth-child(2)>button img { width:142px; }
  .vs-hero-facts>div+div { padding-left:11px; }
  .vs-hero-photo { height:350px; }
}
@media(prefers-reduced-motion:reduce) {
  .vila-public *, .vila-public *::before, .vila-public *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
