/* Pagina principală ca hub de rezervare: cardurile celor cinci oferte. Se încarcă după site.css. */

.gi-offers { padding: clamp(48px, 7vw, 96px) 0 clamp(56px, 8vw, 112px); }
.gi-offers-head { max-width: 760px; margin: 0 auto clamp(26px, 4vw, 48px); text-align: center; }
.gi-offers-head h2 { margin: 12px 0 0; font-family: var(--display); font-size: clamp(38px, 4.6vw, 58px); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; color: var(--forest-deep); }
.gi-offers-head h2 em { font-style: italic; color: var(--meadow-em); }

/* Cardurile ofertelor: cinci pe un rând pe ecran lat; cu textul mai mare, pe ecrane mai mici trei + două (ultimele două centrate), apoi două pe tabletă și unul pe telefon. */
.gi-offers-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 22px); }
.gi-offers-grid > .gi-offer-card { grid-column: span 2; }
.gi-offers-grid > .gi-offer-card:nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }
.gi-offers-grid > .gi-offer-card:last-child:nth-child(3n + 2) { grid-column: 4 / span 2; }
.gi-offer-card { position: relative; display: flex; flex-direction: column; min-height: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: #fff; color: var(--ink); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease; }
.gi-offer-card:hover,
.gi-offer-card:focus-visible { transform: translateY(-4px); box-shadow: 0 1px 2px rgb(var(--shade) / .05), 0 18px 40px -24px rgb(var(--shade) / .3); }
.gi-offer-card:focus-visible { outline: 3px solid var(--forest); outline-offset: 3px; }
.gi-offer-card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--sand); filter: var(--photo-filter); transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.gi-offer-card:hover img { transform: scale(1.04); }
.gi-offer-card-body { display: grid; grid-template-rows: auto 1fr auto; gap: 8px; flex: 1; padding: 22px 22px 8px; }
.gi-offer-card-body strong { font-family: var(--display); font-size: 25px; font-weight: 500; line-height: 1.15; color: var(--forest-deep); }
.gi-offer-card-body span { font-size: var(--fs-ui); line-height: 1.5; color: var(--muted); }
.gi-offer-card-body small { font-size: var(--fs-note); font-weight: 650; color: var(--sun-deep); /* chihlimbar: 5,4:1 pe alb */ }
.gi-offer-card-cta { display: inline-flex; align-items: center; gap: 8px; margin: 10px 22px 24px; font-size: var(--fs-ui); font-weight: 650; color: var(--forest); }
.gi-offer-card-cta .gi-icon { width: 18px; height: 18px; transition: transform .25s ease; }
.gi-offer-card:hover .gi-offer-card-cta .gi-icon { transform: translateX(3px); }

/* Fotografia cardului se transformă în imaginea mare a paginii dedicate la navigare. */
.gi-offer-card-bungalow img { view-transition-name: gi-photo-bungalow; }
.gi-offer-card-glamping img { view-transition-name: gi-photo-glamping; }
.gi-offer-card-camping img { view-transition-name: gi-photo-camping; }
.gi-offer-card-festivaluri img { view-transition-name: gi-photo-festivaluri; }
.gi-offer-card-private img { view-transition-name: gi-photo-private; }
.gi-booking-arrival .gi-offer-card img { view-transition-name: none; }

.gi-site .home-booking { scroll-margin-top: 12px; }

/* Contrast (WCAG 1.4.3): supratitlurile în verde de iarbă, ca pe paginile dedicate (4,8:1 și peste pe toate fundalurile lor). */
.gi-site.home-page main .eyebrow:not(.eyebrow-light) { color: var(--meadow-deep); }

/* Textul din hero stă pe fotografie: umbra urcă puțin mai sus, ca textul alb și „devine acasă.” să aibă contrast suficient. */
/* Umbra din spatele textului din hero: acoperă tot hero-ul pe înălțime, ține cât blocul de text (de la marginea stângă a conținutului) și se stinge spre dreapta;
   restul fotografiei rămâne luminos. Valorile se reglează cu --veil din site.css. */
.gi-site.home-page .home-hero-overlay { --gi-left: max(32px, calc((100% - 1360px) / 2)); background: linear-gradient(180deg, rgb(var(--shade) / 0) 0, rgb(var(--shade) / calc(.56 * var(--veil))) 20%, rgb(var(--shade) / calc(.52 * var(--veil))) 68%, rgb(var(--shade) / calc(.4 * var(--veil))) 100%); -webkit-mask-image: linear-gradient(90deg, #000 calc(var(--gi-left) + 640px), transparent calc(var(--gi-left) + 1160px)); mask-image: linear-gradient(90deg, #000 calc(var(--gi-left) + 640px), transparent calc(var(--gi-left) + 1160px)); }
/* Norii din colțul din dreapta sus stau sub meniu: nu primesc strălucire în plus. */
.gi-site.home-page .home-hero-slice-shore img { filter: saturate(1.08); }
/* Fotografia cu focul de seară e din fire mai întunecată: o ridicăm puțin mai mult decât pe celelalte. */
.gi-site.home-page .home-hero-slice-foc img { filter: brightness(1.16) saturate(1.1); }
.gi-site.home-page .home-hero-content > p { text-shadow: 0 1px 2px rgb(var(--shade) / .35), 0 1px 16px rgb(var(--shade) / .5); }
.gi-site.home-page .home-hero-content h1 { text-shadow: 0 2px 4px rgb(var(--shade) / .25), 0 2px 28px rgb(var(--shade) / .4); }
.gi-site.home-page .home-hero-content .eyebrow, .gi-site.home-page .home-hero-events-link { text-shadow: 0 1px 2px rgb(var(--shade) / .35), 0 1px 12px rgb(var(--shade) / .5); }
/* Linkul „Festivaluri & tabere”: zonă de atingere de 44px fără să mute sublinierea. */
.gi-site .home-hero-events-link { position: relative; }
.gi-site .home-hero-events-link::after { content: ""; position: absolute; inset: -10px -6px -10px; }

/* Aceeași formă prietenoasă ca paginile dedicate: butoane și modulul de rezervare rotunjite */
.gi-site.home-page .button { border-radius: 999px; }
.gi-site.home-page .home-booking-shell { border-radius: 28px; }
/* Fără overflow:hidden: calendarul de date (BRW) se deschide peste marginea cardului și ar fi tăiat. */
.gi-site.home-page .booking-panel { border-radius: 18px; overflow: visible; }
.gi-site.home-page .home-review-cards blockquote { border-radius: 22px; }

/* Informații utile: festival, despre noi, regulament */
.gi-home-info { padding: 0 0 clamp(56px, 8vw, 104px); }
.gi-home-info-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: clamp(12px, 1.6vw, 20px); }
.gi-home-info-card { display: grid; align-content: start; gap: 10px; padding: clamp(22px, 3vw, 32px); border: 1px solid var(--line); border-radius: 28px; background: var(--cream); color: var(--ink); transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease; }
.gi-home-info-card:hover, .gi-home-info-card:focus-visible { transform: translateY(-3px); box-shadow: 0 18px 40px -24px rgb(var(--shade) / .3); }
.gi-home-info-card:focus-visible { outline: 3px solid var(--forest); outline-offset: 3px; }
.gi-home-info-card > .gi-icon { width: 48px; height: 48px; padding: 12px; border-radius: 14px; background: var(--paper); color: var(--accent-dark); }
.gi-home-info-card strong { font-family: var(--display); font-size: 28px; line-height: 1.15; font-weight: 500; color: var(--forest-deep); }
.gi-home-info-card span { font-size: var(--fs-text); line-height: 1.5; color: var(--text-2); }
.gi-home-info-card em { display: inline-flex; align-items: center; gap: 8px; font-style: normal; font-size: var(--fs-ui); font-weight: 650; color: var(--forest); }
.gi-home-info-card em .gi-icon { width: 18px; height: 18px; }
/* Cardul de festival: lumină caldă de soare, ca să iasă în față fără un bloc închis. */
.gi-home-info-festival { background: radial-gradient(80% 120% at 100% 0%, rgba(247, 178, 103, .38) 0%, rgba(247, 178, 103, 0) 70%), linear-gradient(160deg, var(--sun-100) 0%, var(--sun-50) 100%); border-color: rgba(163, 86, 31, .16); }
.gi-home-info-festival > .gi-icon { background: #fff; color: var(--sun-deep); }

/* Recenzii: titlu real, fără medie calculată din recenzii selectate */
.gi-site .home-reviews .reviews-summary h2 { margin: 10px 0 8px; font-family: var(--display); font-size: clamp(36px, 3.8vw, 50px); font-weight: 500; line-height: 1.05; color: var(--forest-deep); }

/* Blog */
.gi-home-blog { padding: clamp(48px, 7vw, 96px) 0; }
.gi-home-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.gi-home-blog-card { display: grid; align-content: start; gap: 8px; padding: 24px; border: 1px solid var(--line); border-radius: 24px; background: #fff; color: var(--ink); }
.gi-home-blog-card small { font-size: var(--fs-note); color: var(--text-2); }
.gi-home-blog-card strong { font-family: var(--display); font-size: 26px; line-height: 1.2; font-weight: 500; color: var(--forest-deep); }
.gi-home-blog-card span { font-size: var(--fs-ui); line-height: 1.5; color: var(--text-2); }

@media (min-width: 1400px) {
  .gi-offers-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .gi-offers-grid > .gi-offer-card,
  .gi-offers-grid > .gi-offer-card:nth-last-child(2):nth-child(3n + 1),
  .gi-offers-grid > .gi-offer-card:last-child:nth-child(3n + 2) { grid-column: auto; }
}

@media (max-width: 1100px) {
  /* Pe tabletă textul din hero coboară spre mijlocul fotografiei: umbra de sub el e puțin mai ferma. */
  .gi-site.home-page .home-hero-overlay { background: linear-gradient(180deg, rgb(var(--shade) / 0) 0, rgb(var(--shade) / calc(.58 * var(--veil))) 20%, rgb(var(--shade) / calc(.62 * var(--veil))) 68%, rgb(var(--shade) / calc(.5 * var(--veil))) 100%); }
  .gi-home-info-grid, .gi-home-blog-grid { grid-template-columns: 1fr 1fr; }
  .gi-home-info-festival { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  /* Pe telefon textul ocupă jumătatea de jos a fotografiei: umbra de jos urcă până la titlu. */
  .gi-site.home-page .home-hero-overlay { -webkit-mask-image: none; mask-image: none; background: linear-gradient(180deg, rgb(var(--shade) / 0) 0, rgb(var(--shade) / calc(.6 * var(--veil))) 22%, rgb(var(--shade) / calc(.6 * var(--veil))) 68%, rgb(var(--shade) / calc(.68 * var(--veil))) 100%); }

  /* Butonul fix „Rezervă cazare” se ascunde cât timp formularul, butonul din hero sau footer-ul sunt pe ecran (site.js). */
  .gi-site.home-page .mobile-booking-cta { transition: transform .4s cubic-bezier(.2, .8, .2, 1), opacity .3s ease, visibility 0s linear 0s; }
  .gi-site.home-page .mobile-booking-cta.is-managed:not(.is-visible) { transform: translateY(calc(100% + 24px)); opacity: 0; visibility: hidden; transition: transform .3s ease, opacity .2s ease, visibility 0s linear .3s; }
  body.gi-one-page:has(.home-page .mobile-booking-cta.is-managed) { padding-bottom: 0; }
}

@media (max-width: 900px) {
  .gi-offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gi-offers-grid > .gi-offer-card,
  .gi-offers-grid > .gi-offer-card:nth-last-child(2):nth-child(3n + 1),
  .gi-offers-grid > .gi-offer-card:last-child:nth-child(3n + 2) { grid-column: auto; }
  .gi-offers-grid > .gi-offer-card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc(50% - 10px); justify-self: center; }
}

@media (max-width: 560px) {
  .gi-offers-grid, .gi-home-info-grid, .gi-home-blog-grid { grid-template-columns: 1fr; }
  .gi-offers-grid > .gi-offer-card:last-child:nth-child(odd) { grid-column: auto; width: auto; justify-self: stretch; }
  .gi-offer-card { display: grid; grid-template-columns: 36% 1fr; grid-template-rows: 1fr auto; border-radius: 22px; }
  .gi-offer-card img { grid-row: 1 / span 2; height: 100%; aspect-ratio: auto; }
  .gi-offer-card-body { padding: 16px 16px 4px; gap: 4px; }
  .gi-offer-card-body strong { font-size: 24px; }
  .gi-offer-card-body span { font-size: var(--fs-note); }
  .gi-offer-card-cta { margin: 6px 16px 14px; }
}
