/* ══════════════════════════════════════════
   Chamade Guest Pages — Shared Styles
   ══════════════════════════════════════════ */

@font-face{font-family:'Dahlia';src:url('../../fonts/dahlia.woff2') format('woff2');font-display:swap}

:root{
  --cream:#faf7f2;--cream-warm:#f5efe6;--sand:#ede4d6;--sand-warm:#e6dace;
  --green:#3a5240;--green-dark:#2a3d2f;--green-light:#4d6b55;
  --terra:#b8604a;--terra-light:#c4785a;--blush:#d9927e;
  --rose:#e8b4a0;--rose-pale:#f2d5c8;
  --text:#1e2820;--text-mid:#5a5248;--text-light:#8a7d74;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Jost',sans-serif;background:var(--cream);color:var(--text);-webkit-font-smoothing:antialiased}

/* ── top bar ── */
.top-bar{background:var(--green);padding:18px 40px;display:flex;align-items:center;justify-content:space-between}
.top-bar a{text-decoration:none}
.top-logo{font-family:Dahlia,serif;font-size:22px;letter-spacing:0.07em;color:var(--cream);text-transform:uppercase}
.top-langs{display:flex;gap:8px;align-items:center}
.top-langs a{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(250,247,242,0.5);text-decoration:none;transition:color 0.2s}
.top-langs a.active{color:var(--terra)}
.top-langs a:hover{color:var(--cream)}
.top-sep{width:1px;height:10px;background:rgba(250,247,242,0.2)}

/* ── subpage layout ── */
.page-wrap{max-width:720px;margin:0 auto;padding:48px 32px 80px}
.page-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-mid);text-decoration:none;transition:color 0.2s;margin-bottom:28px}
.page-back:hover{color:var(--terra)}
.page-title{font-family:Dahlia,serif;font-size:clamp(1.8rem,5vw,2.6rem);color:var(--green);margin-bottom:8px}
.page-intro{font-size:0.95rem;color:var(--text-mid);font-weight:300;line-height:1.7;margin-bottom:40px}

/* ── accordion ── */
.accordion{display:flex;flex-direction:column;gap:8px}
.accordion-item{background:var(--cream-warm);border-radius:10px;overflow:hidden;border:1px solid var(--sand)}
.accordion-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:none;border:none;cursor:pointer;font-family:'Jost',sans-serif;font-size:1rem;font-weight:500;color:var(--green);text-align:left;transition:background 0.2s}
.accordion-trigger:hover{background:var(--sand)}
.accordion-trigger svg{width:18px;height:18px;stroke:var(--text-light);stroke-width:2;fill:none;transition:transform 0.3s}
.accordion-item.open .accordion-trigger svg{transform:rotate(180deg)}
.accordion-panel{max-height:0;overflow:hidden;transition:max-height 0.35s ease}
.accordion-item.open .accordion-panel{max-height:2000px}
.accordion-content{padding:0 24px 24px;font-size:0.9rem;color:var(--text-mid);font-weight:300;line-height:1.8}
.accordion-content h3{font-family:Dahlia,serif;font-size:1rem;color:var(--green);margin:16px 0 6px;font-weight:400}
.accordion-content h3:first-child{margin-top:0}
.accordion-content ul{margin:8px 0 8px 20px}
.accordion-content li{margin-bottom:4px}
.accordion-content a{color:var(--terra);text-decoration:none}
.accordion-content a:hover{text-decoration:underline}
.accordion-content strong{font-weight:500;color:var(--text)}

/* ── info box ── */
.info-box{background:var(--sand);border-radius:8px;padding:16px 20px;margin:12px 0;font-size:0.85rem;line-height:1.7}
.info-box strong{color:var(--green)}

/* ── place card (city guide) ── */
.place-card{background:var(--sand);border-radius:8px;padding:14px 18px;margin:8px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.place-card .place-info{flex:1}
.place-card .place-name{font-weight:500;color:var(--text);margin-bottom:2px}
.place-card .place-desc{font-size:0.82rem;color:var(--text-light)}
.place-card .place-link{flex-shrink:0;font-size:0.8rem;color:var(--terra);text-decoration:none;display:flex;align-items:center;gap:4px}
.place-card .place-link:hover{text-decoration:underline}

/* ── hours grid (breakfast, contact) ── */
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.hours-card{background:var(--sand);border-radius:8px;padding:14px 18px;text-align:center}
.hours-label{font-size:0.75rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-light);margin-bottom:4px}
.hours-time{font-family:Dahlia,serif;font-size:1.2rem;color:var(--green)}

/* ── content sections (breakfast) ── */
.content-section{margin-bottom:40px}
.content-section h2{font-family:Dahlia,serif;font-size:1.2rem;color:var(--green);margin-bottom:12px;font-weight:400}
.content-section p{font-size:0.9rem;color:var(--text-mid);font-weight:300;line-height:1.8;margin-bottom:12px}
.content-section ul{margin:8px 0 16px 20px;font-size:0.9rem;color:var(--text-mid);font-weight:300;line-height:1.8}
.content-section li{margin-bottom:4px}
.content-section a{color:var(--terra);text-decoration:none}
.content-section a:hover{text-decoration:underline}
.content-section strong{font-weight:500;color:var(--text)}
.content-section .info-box{background:var(--cream-warm);border-radius:10px;padding:24px;margin:24px 0;border:1px solid var(--sand)}
.content-section .info-box h3{font-family:Dahlia,serif;font-size:1rem;color:var(--green);margin-bottom:8px;font-weight:400}
.content-section .info-box p{font-size:0.88rem;color:var(--text-mid);font-weight:300;line-height:1.7;margin-bottom:4px}

/* ── price table (hotel) ── */
.price-table{width:100%;border-collapse:collapse;margin:12px 0}
.price-table th{text-align:left;font-size:0.75rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-light);padding:8px 0;border-bottom:1px solid var(--sand-warm)}
.price-table td{padding:8px 0;border-bottom:1px solid var(--sand);font-size:0.88rem}
.price-table td:last-child{text-align:right;font-weight:500;color:var(--green)}

/* ── contact cards ── */
.contact-grid{display:flex;flex-direction:column;gap:16px}
.contact-card{background:var(--cream-warm);border-radius:10px;padding:24px;border:1px solid var(--sand)}
.contact-card h2{font-family:Dahlia,serif;font-size:1.1rem;color:var(--green);margin-bottom:8px;font-weight:400}
.contact-card p{font-size:0.9rem;color:var(--text-mid);font-weight:300;line-height:1.8;margin-bottom:8px}
.contact-card a{color:var(--terra);text-decoration:none}
.contact-card a:hover{text-decoration:underline}
.contact-card strong{font-weight:500;color:var(--text)}
.contact-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:8px;text-decoration:none;font-size:0.9rem;font-weight:500;transition:all 0.2s;margin-top:8px}
.contact-btn--whatsapp{background:#25D366;color:#fff}
.contact-btn--whatsapp:hover{background:#1fba59;color:#fff;text-decoration:none}
.contact-btn--phone{background:var(--green);color:var(--cream)}
.contact-btn--phone:hover{background:var(--green-dark);color:var(--cream);text-decoration:none}

/* ── page image ── */
.page-image{width:100%;border-radius:12px;margin-bottom:32px;aspect-ratio:16/9;object-fit:cover;background:var(--sand)}
.page-image--portrait{aspect-ratio:4/3}

/* ── homepage ── */
.guest-wrap{padding:88px 48px}
.section-label{font-size:9px;font-weight:500;letter-spacing:0.38em;text-transform:uppercase;color:var(--terra);display:block;margin-bottom:16px}
.section-title{font-family:'Dahlia',serif;font-size:clamp(38px,5.5vw,70px);color:var(--green);line-height:1.0}
.section-sub{font-size:15px;font-weight:300;color:var(--text-mid);line-height:1.72;margin-top:16px;max-width:520px}
.tips-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.tip{border-top:2px solid var(--rose-pale);padding-top:24px;text-decoration:none;display:block;transition:border-color 0.3s}
.tip:hover{border-color:var(--terra)}
.tip-cat{font-size:9px;font-weight:500;letter-spacing:0.34em;text-transform:uppercase;color:var(--terra);margin-bottom:10px}
.tip h3{font-family:'Dahlia',serif;font-size:21px;color:var(--green);margin-bottom:8px}
.tip p{font-size:15px;font-weight:300;color:var(--text-mid);line-height:1.72}
.tip .tip-arrow{font-size:13px;color:var(--terra);margin-top:12px;display:inline-block;transition:transform 0.2s}
.tip:hover .tip-arrow{transform:translateX(4px)}

/* ── map ── */
.map-container{width:100%;height:400px;border-radius:12px;overflow:hidden;margin-bottom:32px;border:1px solid var(--sand)}
.map-container .mapboxgl-popup-content{font-family:'Jost',sans-serif;padding:12px 16px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12)}
.map-container .mapboxgl-popup-content h3{font-family:Dahlia,serif;font-size:0.95rem;color:var(--green);margin-bottom:4px;font-weight:400}
.map-container .mapboxgl-popup-content p{font-size:0.82rem;color:var(--text-mid);font-weight:300;line-height:1.5;margin:0}
.map-container .mapboxgl-popup-close-button{font-size:18px;padding:4px 8px;color:var(--text-light)}

/* ── walk cards ── */
.walk-grid{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}
.walk-card{background:var(--cream-warm);border-radius:10px;padding:24px;border:1px solid var(--sand);cursor:pointer;transition:border-color 0.2s}
.walk-card:hover{border-color:var(--terra)}
.walk-card.active{border-color:var(--terra);border-width:2px}
.walk-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.walk-card h2{font-family:Dahlia,serif;font-size:1.1rem;color:var(--green);font-weight:400}
.walk-meta{display:flex;gap:12px;flex-shrink:0}
.walk-badge{font-size:0.7rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-light);background:var(--sand);padding:4px 10px;border-radius:20px}
.walk-card p{font-size:0.88rem;color:var(--text-mid);font-weight:300;line-height:1.7}
.walk-stops{margin-top:12px;display:flex;flex-direction:column;gap:4px}
.walk-stop{font-size:0.82rem;color:var(--text-mid);font-weight:300;display:flex;align-items:baseline;gap:8px}
.walk-stop-num{font-weight:500;color:var(--terra);font-size:0.75rem;min-width:16px}
.walk-btn{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:0.82rem;color:var(--terra);font-weight:500;text-decoration:none;transition:gap 0.2s}
.walk-btn:hover{gap:10px}

/* ── review section ── */
.review-section{margin-top:64px;text-align:center;padding-top:48px;border-top:1px solid var(--sand)}
.review-title{font-family:Dahlia,serif;font-size:clamp(1.4rem,3vw,1.8rem);color:var(--green);margin-bottom:8px}
.review-sub{font-size:0.9rem;color:var(--text-mid);font-weight:300;margin-bottom:28px}
.review-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.review-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;border-radius:10px;text-decoration:none;font-size:0.95rem;font-weight:500;transition:all 0.2s}
.review-btn--google{background:var(--green);color:var(--cream)}
.review-btn--google:hover{background:var(--green-dark);color:var(--cream);text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 16px rgba(58,82,64,0.25)}
.review-btn--feedback{background:var(--cream-warm);color:var(--text);border:1px solid var(--sand-warm)}
.review-btn--feedback:hover{border-color:var(--terra);color:var(--terra);text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.review-btn svg{flex-shrink:0}

/* ── footer ── */
.guest-footer{text-align:center;padding:32px 24px;border-top:1px solid var(--sand);font-size:0.75rem;color:var(--text-light);font-weight:300;line-height:1.7}
.guest-footer a{color:var(--terra);text-decoration:none}
.guest-footer a:hover{text-decoration:underline}

/* ── whatsapp float ── */
.wa-float{position:fixed;bottom:24px;right:24px;z-index:900;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;text-decoration:none;padding:12px 20px 12px 16px;border-radius:50px;box-shadow:0 4px 16px rgba(0,0,0,0.18);transition:all 0.3s;font-family:'Jost',sans-serif;font-size:13px;font-weight:500;letter-spacing:0.02em}
.wa-float:hover{background:#1fba59;transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,0.22)}
.wa-float svg{flex-shrink:0}

/* ── responsive ── */
@media(max-width:768px){
  .guest-wrap{padding:56px 32px}
  .tips-grid{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:600px){
  .top-bar{padding:14px 20px}
  .guest-wrap{padding:48px 20px}
  .tips-grid{grid-template-columns:1fr;gap:24px}
  .page-wrap{padding:36px 20px 60px}
  .accordion-trigger{padding:16px 18px;font-size:0.95rem}
  .accordion-content{padding:0 18px 20px}
  .hours-grid{grid-template-columns:1fr}
  .place-card{flex-direction:column;align-items:flex-start;gap:6px}
  .map-container{height:300px;border-radius:8px}
  .review-buttons{flex-direction:column;align-items:stretch}
  .review-btn{justify-content:center}
  .wa-float span{display:none}.wa-float{padding:14px}
  .guest-footer{padding:28px 20px}
}
