/* Genutės sodyba – įskiepio komponentų stiliai (rezervacija, greita rezervacija, namelių kortelės).
   Perkelta iš prototipo assets/css/style.css; dydžiai px (prototipo bazė 17 px).
   Visos taisyklės apribotos .gs – kad Hello temos reset.css (mygtukai, laukai) jų nenugalėtų.
   Elementor puslapių blokų stiliai – Elementor Kit → Custom CSS (wp/elementor/kit.css). */
:root {
  --stone-50: #F6F4EF;
  --stone-100: #EDE9E1;
  --stone-200: #DCD6C9;
  --stone-300: #C9C1B1;
  --stone-400: #9A9384;
  --pine-950: #0B1F1B;
  --pine-900: #12302A;
  --pine-700: #1F4A3F;
  --pine-500: #2F6B5A;
  --brass-500: #B08D57;
  --brass-300: #D6BE90;
  --ink-900: #1A1F1D;
  --ink-600: #4F5652;
  --white: #FFFFFF;
  --success: #2F7D5A; --success-bg: #E8F2EC;
  --warning: #9A6E0C; --warning-bg: #F7EFD9;
  --danger: #B4432F; --danger-bg: #F8E6E2;

  --font-display: 'EB Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Outfit', 'Helvetica Neue', Arial, sans-serif;

  --text-xs: 11.9px;    /* 12px */
  --text-sm: 13.9px;   /* 14px */
  --text-base: 17px;    /* 17px */
  --text-lg: 20.4px;
  --text-xl: 25.5px;
  --text-2xl: 32.3px;
  --text-3xl: 40.8px;

  --container: 1280px;
  --gutter: clamp(16px, 4vw, 48px);
  --section: clamp(72px, 10vw, 136px);
  --header-h: 88px;

  --ease-out: cubic-bezier(.22,.61,.36,1);
  --dur: 320ms;
}


.gs .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 56px; padding: 0 32px; border: 1px solid var(--pine-900); background: var(--pine-900); color: var(--stone-50);
  font-family: var(--font-body); font-size: var(--text-sm); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  transition: background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
  -webkit-tap-highlight-color: rgba(0,0,0,.1);
}
.gs .btn:hover { background: var(--pine-700); border-color: var(--pine-700); }
.gs .btn--light { background: var(--stone-50); color: var(--pine-900); border-color: var(--stone-50); }
.gs .btn--light:hover { background: var(--white); border-color: var(--white); }
.gs .btn--ghost { background: transparent; color: currentColor; border-color: currentColor; }
.gs .btn--ghost:hover { background: rgba(255,255,255,.08); border-color: currentColor; }
.gs .btn--sm { min-height: 44px; padding: 0 22px; font-size: var(--text-xs); }
.gs .btn--block { width: 100%; }
.gs .btn[disabled], .gs .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

.gs .link-arrow {
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-size: var(--text-sm); font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  color: var(--pine-900); padding-bottom: 6px; border-bottom: 1px solid var(--brass-500);
}
.gs .link-arrow::after { content: '→'; transition: transform var(--dur) var(--ease-out); }
.gs .link-arrow:hover::after { transform: translateX(6px); }
.gs .link-arrow--light { color: var(--stone-50); border-color: var(--brass-300); }


/* greita rezervacija herojuje */
.gs.quick-book {
  position: relative; z-index: 2; width: min(100% - 2 * var(--gutter), var(--container)); margin: 0 auto;
  background: var(--stone-50); color: var(--ink-900); display: grid; grid-template-columns: 1.25fr 1fr 1fr auto;
  border: 1px solid var(--stone-200); transform: translateY(50%);
}
.gs .quick-book__field { padding: 20px 26px; border-right: 1px solid var(--stone-200); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gs .quick-book__field label { font-size: var(--text-xs); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-600); }
.gs .quick-book__field select, .gs .quick-book__field input { border: 0; background: transparent; padding: 0; font-family: var(--font-display); font-size: 25.5px; line-height: 1.2; width: 100%; color: var(--ink-900); appearance: none; -webkit-appearance: none; }
.gs .quick-book__field input[type="date"] { min-height: 30.6px; }
.gs .quick-book__field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2312302A' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 2px center; padding-right: 26px; }
.gs .quick-book__field select:focus, .gs .quick-book__field input:focus { outline: none; }
.gs .quick-book__field:focus-within label { color: var(--pine-900); }
.gs.quick-book .btn { border-radius: 0; height: 100%; padding: 0 40px; }
@media (max-width: 900px) {
  .gs.quick-book { grid-template-columns: 1fr 1fr; transform: none; width: min(100% - 2 * var(--gutter), var(--container)); margin-bottom: 0; }
  .gs .quick-book__field:first-child { grid-column: 1 / -1; border-bottom: 1px solid var(--stone-200); }
  .gs .quick-book__field:nth-child(2) { border-bottom: 1px solid var(--stone-200); }
  .gs .quick-book__field:nth-child(3) { border-right: 0; border-bottom: 1px solid var(--stone-200); }
  .gs.quick-book .btn { grid-column: 1 / -1; min-height: 60px; }
  .gs .quick-book__field select, .gs .quick-book__field input { font-size: 22.1px; }
}


/* ---------- formos ---------- */
.gs .form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
.gs .form__field { display: flex; flex-direction: column; gap: 8px; }
.gs .form__field--full { grid-column: 1 / -1; }
.gs .form__field label, .gs .form__label { font-size: var(--text-xs); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-600); }
.gs .input, .gs .form__field input:not([type="checkbox"]), .gs .form__field select, .gs .form__field textarea {
  width: 100%; min-height: 54px; padding: 12px 16px; border: 1px solid var(--stone-300); background: var(--white); color: var(--ink-900);
  border-radius: 0; appearance: none; -webkit-appearance: none; transition: border-color var(--dur), box-shadow var(--dur);
}
.gs .form__field textarea { min-height: 140px; resize: vertical; }
.gs .form__field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2312302A' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.gs .form__field input:focus, .gs .form__field select:focus, .gs .form__field textarea:focus, .gs .input:focus { outline: none; border-color: var(--pine-900); box-shadow: 0 0 0 3px rgba(18,48,42,.14); }
.gs .form__field.has-error input, .gs .form__field.has-error select, .gs .form__field.has-error textarea { border-color: var(--danger); }
.gs .form__error { font-size: var(--text-sm); color: var(--danger); display: none; }
.gs .form__field.has-error .form__error { display: block; }
.gs .form__hint { font-size: var(--text-xs); color: var(--ink-600); }
.gs .check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: var(--text-sm); color: var(--ink-600); text-transform: none; letter-spacing: 0; }
.gs .check input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--pine-900); }
.gs .form__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 8px; }
.gs .form__status { grid-column: 1 / -1; font-size: var(--text-sm); padding: 14px 18px; border: 1px solid var(--stone-300); background: var(--white); }
.gs .form__status.is-error { border-color: var(--danger); background: var(--danger-bg); color: var(--danger); }
.gs .form__status.is-success { border-color: var(--success); background: var(--success-bg); color: var(--success); }
@media (max-width: 640px) { .gs .form { grid-template-columns: 1fr; } }

/* ---------- rezervacija ---------- */
.gs .booking__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.gs .booking__mode { font-size: var(--text-sm); padding: 12px 16px; border: 1px solid var(--stone-300); background: var(--stone-100); color: var(--ink-600); margin-bottom: 32px; }
.gs .booking__step { margin-bottom: clamp(48px, 6vw, 72px); }
.gs .booking__step-title { display: flex; align-items: baseline; gap: 18px; font-size: clamp(28.9px, 2.6vw, 37.4px); margin-bottom: 24px; }
.gs .booking__step-title span { font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: .2em; color: var(--brass-500); }

.gs .unit-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gs .unit-option { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: center; border: 1px solid var(--stone-300); background: var(--white); cursor: pointer; padding: 12px; transition: border-color var(--dur), box-shadow var(--dur); }
.gs .unit-option:hover { border-color: var(--pine-500); }
.gs .unit-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gs .unit-option:has(input:checked) { border-color: var(--pine-900); box-shadow: inset 0 0 0 1px var(--pine-900); }
.gs .unit-option:has(input:focus-visible) { outline: 2px solid var(--brass-500); outline-offset: 3px; }
.gs .unit-option img { width: 96px; height: 96px; object-fit: cover; }
.gs .unit-option__name { font-family: var(--font-display); font-size: 23px; font-weight: 500; line-height: 1.1; display: block; }
.gs .unit-option__meta { display: block; font-size: var(--text-xs); letter-spacing: .06em; color: var(--ink-600); margin-top: 6px; }
.gs .unit-option__price { display: block; font-size: var(--text-sm); margin-top: 6px; }
.gs .unit-option__price strong { font-weight: 500; }
@media (max-width: 640px) { .gs .unit-picker { grid-template-columns: 1fr; } }

.gs .cal { border: 1px solid var(--stone-300); background: var(--white); padding: clamp(16px, 2.5vw, 28px); }
.gs .cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.gs .cal__nav { display: flex; gap: 6px; }
.gs .cal__nav button { width: 40px; height: 40px; border: 1px solid var(--stone-300); background: var(--white); font-family: var(--font-display); font-size: 22.1px; line-height: 1; }
.gs .cal__nav button:hover { border-color: var(--pine-900); }
.gs .cal__nav button[disabled] { opacity: .35; cursor: not-allowed; }
.gs .cal__months { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.gs .cal__month-title { font-family: var(--font-display); font-size: 25.5px; font-weight: 500; margin: 0 0 12px; }
.gs .cal__weekdays, .gs .cal__days { display: grid; grid-template-columns: repeat(7, 1fr); }
.gs .cal__weekdays span { font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-600); text-align: center; padding: 6px 0 10px; }
.gs .cal__day { aspect-ratio: 1; border: 0; background: transparent; padding: 0; position: relative; font-size: var(--text-sm); color: var(--ink-900); display: flex; align-items: center; justify-content: center; }
.gs .cal__day > span { width: min(40px, 100%); aspect-ratio: 1; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; transition: background var(--dur), color var(--dur); position: relative; z-index: 1; }
.gs .cal__day:not([disabled]):hover > span { background: var(--stone-100); }
.gs .cal__day.is-empty { pointer-events: none; }
.gs .cal__day[disabled] { cursor: not-allowed; color: var(--stone-400); }
.gs .cal__day.is-blocked > span { text-decoration: line-through; color: var(--stone-400); background: repeating-linear-gradient(135deg, transparent 0 3px, var(--stone-100) 3px 4px); }
.gs .cal__day.is-today > span::after { content: ''; position: absolute; bottom: 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--brass-500); }
.gs .cal__day.is-start > span, .gs .cal__day.is-end > span, .gs .cal__day.is-single > span { background: var(--pine-900); color: var(--stone-50); }
.gs .cal__day.is-start > span::after, .gs .cal__day.is-end > span::after { background: var(--brass-300); }
.gs .cal__day.is-range::before, .gs .cal__day.is-start.has-end::before, .gs .cal__day.is-end::before { content: ''; position: absolute; top: 50%; height: 40px; transform: translateY(-50%); left: 0; right: 0; background: var(--stone-100); }
.gs .cal__day.is-start.has-end::before { left: 50%; }
.gs .cal__day.is-end::before { right: 50%; }
.gs .cal__day.is-hover::before { content: ''; position: absolute; top: 50%; height: 40px; transform: translateY(-50%); left: 0; right: 0; background: var(--stone-100); opacity: .7; }
.gs .cal__legend { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 18px; font-size: var(--text-xs); letter-spacing: .06em; color: var(--ink-600); }
.gs .cal__legend span::before { content: ''; display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: -2px; margin-right: 8px; border: 1px solid var(--stone-300); }
.gs .cal__legend .is-free::before { background: var(--white); }
.gs .cal__legend .is-busy::before { background: repeating-linear-gradient(135deg, transparent 0 2px, var(--stone-300) 2px 3px); }
.gs .cal__legend .is-sel::before { background: var(--pine-900); border-color: var(--pine-900); }
.gs .cal__hint { margin-top: 14px; font-size: var(--text-sm); color: var(--ink-600); }
@media (max-width: 900px) { .gs .cal__months { grid-template-columns: 1fr; } .gs .cal__months > :nth-child(2) { display: none; } }

.gs .summary { position: sticky; top: calc(var(--header-h) + 24px); border: 1px solid var(--pine-900); background: var(--stone-50); padding: clamp(24px, 3vw, 36px); }
.gs .summary__title { font-size: 30.6px; margin-bottom: 20px; }
.gs .summary__rows { margin: 0; padding: 0; }
.gs .summary__rows > div { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--stone-200); padding: 12px 0; font-size: var(--text-sm); }
.gs .summary__rows dt { color: var(--ink-600); }
.gs .summary__rows dd { margin: 0; text-align: right; font-weight: 500; }
.gs .summary__total { border-top: 1px solid var(--pine-900); margin-top: 8px; padding-top: 18px; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.gs .summary__total span:first-child { font-size: var(--text-xs); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-600); }
.gs .summary__total strong { font-family: var(--font-display); font-size: 37.4px; font-weight: 500; }
.gs .summary__note { font-size: var(--text-xs); color: var(--ink-600); margin-top: 14px; line-height: 1.5; }
.gs .summary__empty { color: var(--ink-600); font-size: var(--text-sm); }
.gs .summary .btn { margin-top: 22px; }
@media (max-width: 900px) { .gs .booking__grid { grid-template-columns: 1fr; } .gs .summary { position: static; } }

.gs .booking-done { border: 1px solid var(--pine-900); padding: clamp(32px, 5vw, 64px); max-width: 860px; }
.gs .booking-done__id { font-family: var(--font-display); font-size: clamp(40.8px, 5vw, 68px); font-weight: 500; line-height: 1; margin: 12px 0 24px; }
.gs .booking-done dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; margin: 32px 0; padding: 0; }
.gs .booking-done dt { font-size: var(--text-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-600); }
.gs .booking-done dd { margin: 4px 0 0; font-weight: 500; }
.gs .booking-done__actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 8px; }


.gs .cal__hint.is-warning { color: var(--danger); border-left: 0; padding: 12px 16px; background: var(--danger-bg); }

/* rezervacijos priedai (maitinimas, kubilas, renginys be nakvynės) */
.gs .extras { display: grid; gap: 10px; margin-top: 4px; }
.gs .extras__item { padding: 14px 16px; border: 1px solid var(--stone-300); background: var(--white); align-items: flex-start; transition: border-color var(--dur); }
.gs .extras__item:hover { border-color: var(--pine-500); }
.gs .extras__item:has(input:checked) { border-color: var(--pine-900); box-shadow: inset 0 0 0 1px var(--pine-900); }
.gs .extras__item strong { display: block; font-weight: 500; color: var(--ink-900); }
.gs .extras__item small { display: block; margin-top: 4px; font-size: var(--text-xs); line-height: 1.5; color: var(--ink-600); }


/* ---------- objektų kortelės ir atskiri namelių puslapiai ---------- */
.gs.units { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.gs .unit-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--stone-200); }
.gs .unit-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--stone-100); }
.gs .unit-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.gs .unit-card:hover .unit-card__media img { transform: scale(1.04); }
.gs .unit-card__body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.gs .unit-card__name { font-size: 27.2px; margin: 0 0 4px; }
.gs .unit-card__name a { text-decoration: none; }
.gs .unit-card__name a:hover { color: var(--pine-700); }
.gs .unit-card__tag { color: var(--ink-600); font-size: var(--text-sm); margin: 0 0 16px; }
.gs .unit-card__specs { display: flex; gap: 28px; margin: 0 0 16px; padding: 14px 0; border-block: 1px solid var(--stone-200); }
.gs .unit-card__specs > div { display: flex; flex-direction: column; gap: 2px; }
.gs .unit-card__specs dt { font-size: var(--text-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-600); }
.gs .unit-card__specs dd { margin: 0; font-family: var(--font-display); font-size: 22.1px; font-weight: 500; line-height: 1.1; }
.gs .unit-card__list { list-style: none; margin: 0 0 20px; padding: 0; font-size: var(--text-sm); color: var(--ink-600); }
.gs .unit-card__list li { padding: 5px 0 5px 20px; position: relative; text-wrap: pretty; }
.gs .unit-card__list li::before { content: ''; position: absolute; left: 0; top: 14px; width: 9px; height: 1px; background: var(--brass-500); }
.gs .unit-card__actions { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.gs .units__more { font-size: var(--text-xs); font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  text-decoration: none; padding-bottom: 5px; border-bottom: 1px solid var(--brass-500); white-space: nowrap; }
.gs .units__more::after { content: ' →'; }
.gs .units__soon { font-size: var(--text-xs); color: var(--ink-600); line-height: 1.4; }
.gs .units__note { margin: 28px 0 0; font-size: var(--text-sm); color: var(--ink-600); max-width: 70ch;
  border-left: 2px solid var(--brass-500); padding-left: 16px; }


/* Hello temos laukų ir mygtukų atstatymai komponentų viduje */
.gs button, .gs input, .gs select, .gs textarea { font-family: var(--font-body); }
.gs .btn, .gs button.btn { border-radius: 0; white-space: nowrap; line-height: 1.2; }
.gs .btn:hover, .gs .btn:focus { color: var(--stone-50); }
.gs .cal__nav button, .gs .cal__day { border-radius: 0; color: var(--ink-900); line-height: 1; }
.gs .cal__day { border: 0; }
.gs .cal__nav button:hover, .gs .cal__nav button:focus { background: var(--white); color: var(--ink-900); }
.gs .cal__day:hover, .gs .cal__day:focus { background: transparent; color: var(--ink-900); }
.gs label { line-height: 1.4; }
.gs a { text-decoration: none; }
.gs .form__optional { text-transform: none; letter-spacing: 0; }
.gs .form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gs .unit-option__noimg { width: 96px; height: 96px; background: var(--stone-100); display: block; }
.gs [hidden] { display: none !important; }
.gs.quick-book .btn { border: 0; }
.gs.quick-book .quick-book__field input, .gs.quick-book .quick-book__field select { border-radius: 0; min-height: 0; }
.gs .unit-card__actions .btn { color: var(--stone-50); }
.gs .unit-card__name a, .gs .units__more { color: var(--ink-900); }
