/* Guest reviews */
.pkg-rv-sum { margin-top: 1.1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding: 1rem 1.2rem; border-radius: 1.1rem; border: 1px solid rgba(188,140,63,.35); background: linear-gradient(180deg,#fcf8ee,#f7efdd); }
.pkg-rv-score { display: flex; align-items: baseline; gap: .5rem; }
.pkg-rv-score b { font-family: 'Playfair Display', serif; font-size: 2.6rem; line-height: 1; color: #34241b; }
.pkg-rv-score span { font-size: .8rem; color: #8a7c6f; }
.pkg-rv-cta { margin-left: auto; padding: .65rem 1.3rem; border-radius: 999px; background: #34241b; color: #fff; font-size: .8rem; font-weight: 600; letter-spacing: .04em; transition: background .25s, transform .25s; }
.pkg-rv-cta:hover { background: #5f4530; transform: translateY(-2px); }
.pkg-stars i { margin-right: .08rem; }
.pkg-rv-list { margin-top: 1.2rem; }
.pkg-rv { display: flex; gap: .9rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(0,0,0,.07); }
.pkg-rv[hidden] { display: none; }
.pkg-rv.is-new { animation: rv-in .6s cubic-bezier(.2,.7,.2,1); background: rgba(232,189,85,.08); border-radius: .9rem; padding-left: .8rem; padding-right: .8rem; }
@keyframes rv-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.pkg-rv-av { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; background: #34241b; color: #e8bd55; font-weight: 700; }
.pkg-rv-body { min-width: 0; }
.pkg-rv-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; }
.pkg-rv-head b { color: #34241b; }
.pkg-rv-head time { font-size: .75rem; color: #8a7c6f; }
.pkg-rv-body p { margin: .4rem 0 0; font-size: .93rem; line-height: 1.7; color: #5a4d43; overflow-wrap: anywhere; }
.pkg-rv-empty { padding: 1rem 0; font-size: .92rem; color: #8a7c6f; }
.pkg-rv-empty.hidden { display: none; }
.pkg-rv-more { margin-top: .9rem; font-size: .85rem; font-weight: 600; color: #9d712f; border-bottom: 1px solid #c9a45e; padding-bottom: .15rem; }

.pkg-rv-form { margin-top: 1.4rem; padding: 1.3rem; border: 1px solid rgba(188,140,63,.35); border-radius: 1.1rem; background: #faf8f2; }
.pkg-rate { border: 0; padding: 0; margin: 1rem 0 .6rem; }
.pkg-rate legend { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #9d712f; margin-bottom: .4rem; }
.pkg-rate-stars { display: inline-flex; flex-direction: row-reverse; gap: .2rem; }
.pkg-rate-stars input { position: absolute; opacity: 0; pointer-events: none; }
.pkg-rate-stars label { font-size: 1.7rem; line-height: 1; color: #d9cfbf; cursor: pointer; transition: color .15s, transform .15s; }
.pkg-rate-stars label:hover, .pkg-rate-stars label:hover ~ label, .pkg-rate-stars input:checked ~ label { color: #f0b429; }
.pkg-rate-stars label:hover { transform: scale(1.12); }
.pkg-rate-stars input:focus-visible + label { outline: 2px solid #bc8c3f; outline-offset: 3px; border-radius: 4px; }
.pkg-rv-f { margin-top: .9rem; }
.pkg-rv-f label { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #9d712f; margin-bottom: .35rem; }
.pkg-rv-f input, .pkg-rv-f textarea { width: 100%; background: #fff; border: 1px solid rgba(0,0,0,.12); border-radius: .75rem; padding: .7rem .9rem; font: 400 16px/1.5 'Inter', sans-serif; color: #34241b; outline: none; transition: border-color .2s, box-shadow .2s; resize: vertical; }
.pkg-rv-f input:focus, .pkg-rv-f textarea:focus { border-color: #bc8c3f; box-shadow: 0 0 0 3px rgba(188,140,63,.18); }
.pkg-rv-f small { display: block; text-align: right; margin-top: .25rem; font-size: .72rem; color: #8a7c6f; }
.rv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.pkg-rv-msg { margin: .9rem 0 0; padding: .7rem .9rem; border-radius: .7rem; font-size: .88rem; line-height: 1.5; }
.pkg-rv-msg.hidden { display: none; }
.pkg-rv-msg.is-ok { background: #eef3e6; color: #3d5a2a; border: 1px solid #cfdcbf; }
.pkg-rv-msg.is-bad { background: #fbeee9; color: #a4452c; border: 1px solid #efcfc4; }
.pkg-rv-send { margin-top: 1rem; width: 100%; padding: .85rem 1.2rem; border-radius: .8rem; background: #34241b; color: #fff; font-weight: 600; letter-spacing: .06em; transition: background .25s; }
.pkg-rv-send:hover { background: #5f4530; }
.pkg-rv-send:disabled { opacity: .6; cursor: wait; }
@media (min-width: 640px) { .pkg-rv-send { width: auto; padding-left: 2rem; padding-right: 2rem; } }
@media (max-width: 639px) { .pkg-rv-cta { margin-left: 0; width: 100%; text-align: center; } }

/* Google reviews of our resorts */
.pkg-gr { margin-top: 1.3rem; }
.pkg-gr-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; }
.pkg-gr-head h3 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.25rem; color: #34241b; }
.pkg-gr-head span { font-size: .78rem; color: #8a7c6f; }
.pkg-gr-head i { color: #4285F4; margin-right: .25rem; }
.pkg-gr-list { margin-top: .9rem; display: grid; gap: .9rem; }
@media (min-width: 720px) { .pkg-gr-list { grid-template-columns: 1fr 1fr; } }
.pkg-gr-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.1rem 1rem; border-radius: 1.1rem; background: #faf8f2; border: 1px solid rgba(0,0,0,.06); transition: border-color .3s, box-shadow .3s, transform .3s; }
.pkg-gr-card:hover { border-color: rgba(188,140,63,.45); box-shadow: 0 16px 30px -22px rgba(40,25,15,.5); transform: translateY(-2px); }
.pkg-gr-top { display: flex; align-items: center; gap: .75rem; }
.pkg-gr-av { flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; }
.pkg-gr-top b { display: block; color: #34241b; font-size: .95rem; }
.pkg-gr-top small { display: block; color: #8a7c6f; font-size: .74rem; line-height: 1.3; }
.pkg-gr-text { margin: 0; font-size: .9rem; line-height: 1.7; color: #5a4d43; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.pkg-gr-text.is-open { display: block; -webkit-line-clamp: unset; }
.pkg-gr-more { align-self: flex-start; font-size: .8rem; font-weight: 600; color: #9d712f; border-bottom: 1px solid #c9a45e; padding-bottom: .1rem; }
.pkg-rv-sub { margin: 1.6rem 0 0; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.25rem; color: #34241b; }
.pkg-rv-sub + .pkg-rv-list { margin-top: .4rem; }

.pkg-rv-prop { font-size: .74rem; color: #8a7c6f; }
.pkg-rv-body { flex: 1; }

/* Sliding reviews */
.pkg-rvs { margin-top: 1.2rem; }
.pkg-rvs-track { display: flex; gap: 1rem; margin-top: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .3rem .1rem .8rem; align-items: stretch; outline: none; }
.pkg-rvs-track::-webkit-scrollbar { display: none; }
.pkg-rvs-track:focus-visible { box-shadow: 0 0 0 2px rgba(188,140,63,.5); border-radius: 1rem; }
.pkg-rvs-track .pkg-rv { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; flex-direction: column; gap: .55rem; padding: 1.2rem; border: 1px solid rgba(0,0,0,.07); border-radius: 1.2rem; background: #faf8f2; box-shadow: 0 14px 30px -24px rgba(40,25,15,.45); position: relative; }
@media (min-width: 720px) { .pkg-rvs-track .pkg-rv { flex-basis: calc(50% - .5rem); } }
.pkg-rvs-track .pkg-rv.is-new { background: #fff7e4; border-color: rgba(188,140,63,.5); }
.pkg-rvs-track .pkg-rv-av { width: 2.8rem; height: 2.8rem; }
.pkg-rvs-track .pkg-rv::after { content: '\201C'; position: absolute; right: 1.1rem; top: .4rem; font-family: 'Playfair Display', serif; font-size: 4rem; line-height: 1; color: rgba(188,140,63,.28); pointer-events: none; }
.pkg-rvs-track .pkg-rv-body { display: flex; flex-direction: column; gap: .35rem; }
.pkg-rvs-track .pkg-rv-body p { margin: .3rem 0 0; }
.pkg-rvs-nav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: .4rem; }
.pkg-rvs-btn { width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; color: #34241b; border: 1px solid rgba(188,140,63,.5); background: #fff; transition: background .25s, color .25s, transform .25s; }
.pkg-rvs-btn:hover { background: #34241b; color: #e8bd55; transform: scale(1.06); }
.pkg-rvs-dots { display: flex; gap: .45rem; align-items: center; }
.pkg-rvs-dots i { display: block; width: .55rem; height: .55rem; border-radius: 999px; background: rgba(188,140,63,.35); cursor: pointer; transition: width .3s, background .3s; }
.pkg-rvs-dots i.on { width: 1.6rem; background: #bc8c3f; }


/* FAQ */
.pkg-faq2 { margin-top: 1.1rem; }
.pkg-faq2 details { border: 1px solid rgba(0,0,0,.07); border-radius: 1rem; background: #faf8f2; margin-bottom: .7rem; transition: border-color .3s, box-shadow .3s, background .3s; }
.pkg-faq2 details[open] { background: #fff; border-color: rgba(188,140,63,.5); box-shadow: 0 14px 30px -22px rgba(40,25,15,.5); }
.pkg-faq2 summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1.1rem; }
.pkg-faq2 summary::-webkit-details-marker { display: none; }
.pkg-faq2 summary h3 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.02rem; line-height: 1.3; color: #34241b; }
.pkg-faq2 .faq-plus { flex: none; color: #bc8c3f; transition: transform .3s ease; }
.pkg-faq2 details[open] .faq-plus { transform: rotate(45deg); }
.pkg-faq2 details p { margin: 0; padding: 0 1.1rem 1.1rem; font-size: .93rem; line-height: 1.75; color: #5a4d43; }
