/* Coffee Tour La Sierra · forest, parchment and the warmth of coffee. */
:root { --forest:#153c2d; --forest-deep:#0d281f; --green:#355b46; --gold:#be995b; --gold-light:#e8d6b2; --cream:#faf7ef; --sand:#f0eadd; --border:#e4dfd3; }
body { font-family: 'Segoe UI', Arial, sans-serif; }
.container { width:min(1200px,calc(100% - 72px)); }
.button { min-height:54px; border-radius:9px; letter-spacing:.015em; box-shadow:0 5px 16px #0d281f0a; transition:transform .2s,background .2s,box-shadow .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 9px 22px #0d281f18; }
.button:active { transform:translateY(0); }
.button-outline { box-shadow:none; }
.label-tag { display:inline-flex; width:fit-content; align-items:center; min-height:28px; padding:5px 12px; border:1px solid #b8985e66; border-radius:30px; background:#f3ecdc; color:#68522e; font-size:.61rem; font-weight:700; letter-spacing:.11em; line-height:1.6; }
.site-topline { background:var(--forest-deep); }
.topline-inner { min-height:34px; }
.site-header { background:#fffefa; box-shadow:0 6px 24px #102b2006; }
.header-inner { min-height:98px; }
.main-navigation > a { font-size:.81rem; }
.brand-wordmark { font-size:1.3rem; }
.header-book { border-radius:8px; }
.page-home .hero { position:relative; padding:68px 0 72px; background:radial-gradient(ellipse at 0% 100%,#254b37,transparent 70%),var(--forest-deep); }
.hero-grid { gap:70px; }
.hero h1 { max-width:13.5ch; color:var(--cream); font-size:clamp(3.4rem,5vw,4.65rem); letter-spacing:-.045em; }
.hero .eyebrow,.hero .text-link,.hero-details { color:var(--gold-light); }
.hero .eyebrow { letter-spacing:.19em; }
.hero-description { color:#d2ddd5; font-size:1rem; }
.hero .button { background:var(--gold-light); border-color:var(--gold-light); color:var(--forest-deep); }
.hero .button:hover { background:#f5e6c7; }
.hero-price { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:29px; color:#d8dfd6; font-size:.76rem; }
.hero-price .label-tag { background:#ffffff07; border-color:#d8bd8355; color:var(--gold-light); font-size:.55rem; }
.hero-price strong { color:#fff7e5; font-size:1.02rem; font-weight:500; }
.hero-details { font-size:.67rem; margin-top:19px; }
.hero-visual { padding:0 0 0 18px; }
.hero-visual::before { inset:22px -18px 32px 36px; border-color:#d1af6b66; border-radius:60px 8px 40px 8px; }
.hero-photo { border:0; border-radius:46px 9px 35px 9px; box-shadow:0 22px 50px #0003; }
.hero-photo figcaption { background:#fffaf1; color:var(--forest); }
.hero-margin-note { margin-top:22px; color:var(--gold-light); font-size:.57rem; }

/* The medallion is one vector artwork: no independent lettering can overflow it. */
.hero-photo-media { position:relative; min-width:0; isolation:isolate; }
.hero-photo-media > .photo-link { display:block; }
.hero-photo-media > .hero-origin-seal { position:absolute; z-index:1; inset-inline-end:6px; inset-block-end:6px; display:block; width:18%; max-width:88px; height:auto; aspect-ratio:1; margin:0; padding:0; border:0; border-radius:50%; object-fit:contain; filter:drop-shadow(0 3px 6px #102b201a); pointer-events:none; }

.experience-strip { background:#efe8d9; color:var(--forest); border-bottom:1px solid var(--border); }
.strip-grid { padding-block:23px; }
.strip-grid > div { border-right-color:#cbbda6; }
.strip-grid > div > span:last-child { color:#455b4a; }
.strip-number,.strip-symbol { color:#7b653e; }
.section-space { padding-block:94px; }
.split-heading { gap:50px; }
.experience-card { min-height:250px; padding:34px; border-radius:18px; background:#fbf8f1; transition:transform .25s,box-shadow .25s,border-color .25s; }
.experience-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px #2336280c; border-color:#cbb892; }
.card-number { display:inline-flex; align-items:center; justify-content:center; width:39px; height:39px; border:1px solid #d8cbae; border-radius:50%; margin-bottom:30px; }
.experience-card h3 { font-size:1.72rem; }
.story-image .photo-card { border-radius:28px 8px; box-shadow:0 18px 35px #2439240e; }
.photo-card { border-radius:13px; }
.photo-link img { transition:opacity .2s; }
.photo-link:hover img { opacity:.95; }
.journey-preview { gap:18px; }
.journey-preview article { padding:30px 16px 5px 0; }
.faq-list { border-top:0; }
.faq-list details { border:1px solid var(--border); border-radius:13px; margin-bottom:12px; background:#fffdf8; }
.faq-list summary { padding:21px 22px; font-weight:500; }
.faq-answer { padding:0 28px 25px 22px; }
.faq-list details[open] { border-color:#bea677; box-shadow:0 8px 18px #173d2c06; }
.visit-cta { position:relative; overflow:hidden; padding-block:78px; background:radial-gradient(ellipse at 80% 100%,#2b513b,transparent 70%),var(--forest-deep); border-top:1px solid #baa06c; }
.visit-cta-inner { gap:60px; }
.visit-cta h2 { max-width:22ch; font-size:clamp(2.4rem,4vw,3.65rem); line-height:1.14; }
.visit-cta h2 em { color:var(--gold-light); font-weight:400; }
.visit-cta p:not(.eyebrow) { max-width:52ch; line-height:1.9; }
.visit-cta .button-light { background:var(--gold-light); border-color:var(--gold-light); }
.site-footer { color:#e2e7dc; background:#102d22; border-top:1px solid #3d5042; }
.footer-main { padding-block:64px 48px; }
.footer-brand h2,.footer-column h3 { color:#f6f1e4; }
.footer-eyebrow { color:var(--gold-light); }
.footer-column > a,.footer-column > p,.footer-brand p:last-child { color:#c4cfc4; }
.footer-column > a:hover,.footer-bottom a:hover { color:#fff3d3; }
.footer-bottom { border-top-color:#3c5042; }
.footer-bottom a,.footer-bottom p { color:#bdc8bc; }
.footer-logo { border:0; border-radius:12px; padding:12px; }
.whatsapp-float { background:#21533b; border-color:#d8ddc3; box-shadow:0 6px 28px #102b2033; }
.page-intro { padding-bottom:66px; background:linear-gradient(115deg,#f9f4e8,#fffdf8); }
.breadcrumb { margin-bottom:34px; }
.page-intro .eyebrow { display:table; padding:6px 12px; border:1px solid #cdb88e88; border-radius:30px; font-size:.59rem; background:#f1e9d9; }
.page-lead { max-width:60ch; }
.information-card,.arrival-card,.tour-summary,.form-card { border-radius:19px; background:#fffdf8; box-shadow:0 12px 32px #1c362309; }
.arrival-card hr { border:0; border-top:1px solid var(--border); margin:25px 0; }
.arrival-card .label-tag { margin-bottom:18px; }
.arrival-card h3 + p { margin-top:12px; font-size:.88rem; }
.arrival-card > .arrival-icon { display:none; }
.form-card { padding:38px; border:1px solid var(--border); }
.form-card h2 { font-size:2.1rem; }
.field label,.field > label { color:var(--forest-deep); font-weight:600; font-size:.82rem; }
.field input,.field select,.field textarea { border-radius:9px; border:1px solid #d7d9cf; background:#fff; padding:14px; min-height:52px; transition:border-color .2s,box-shadow .2s; }
.field input:hover,.field textarea:hover,.field select:hover { border-color:#829885; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:#426d50; box-shadow:0 0 0 3px #355b4612; }
.field-help { color:#59685d; }
.checkbox-field { align-items:flex-start; border-radius:10px; padding:15px; background:#f5f3ed; }
.checkbox-field input { flex:0 0 18px; margin-top:4px; accent-color:var(--forest); }
.checkbox-field label { line-height:1.7; }
.booking-surface { background:#f8f6ef; }
.booking-main { min-width:0; }
.booking-section { padding:30px; border:1px solid var(--border); border-radius:17px; background:#fffefb; margin-bottom:22px; }
.booking-section:first-child { padding-top:30px; }
.form-section-heading > span { border-radius:50%; background:#f0e8d7; border:1px solid #d6c7a8; color:#73603c; }
.form-section-heading h2 { font-size:1.8rem; }
.booking-summary { border-radius:19px; background:#fcfaf3; border:1px solid #d9cdaa; border-top:4px solid #a38750; box-shadow:0 14px 35px #1b38200a; }
.booking-consent { background:linear-gradient(#fffefb,#f9f5e9); }
.reservation-card { border:1px solid var(--border); border-radius:16px; padding:28px; background:#fffefa; margin-bottom:22px; }
.reservation-code,.reference-chip { border-radius:12px; background:#f0e8d5; overflow-wrap:anywhere; }
.transfer-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:44px; align-items:start; }
.bank-card { background:var(--forest-deep); color:#fff4de; padding:35px; border:1px solid #426249; border-radius:20px; }
.bank-card .label-tag { background:#ffffff08; color:var(--gold-light); border-color:#c7ac6d66; margin-bottom:21px; }
.bank-card h2 { color:#fff6e5; margin-bottom:16px; }
.bank-card p { color:#cdd7ca; font-size:.88rem; }
.bank-details { margin:25px 0; }
.bank-details > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 20px; padding:16px 0; border-bottom:1px solid #526449; font-size:.84rem; }
.bank-details dt { color:#c6d2c4; }
.bank-details dd { margin:0; max-width:100%; overflow-wrap:anywhere; color:#fff5e0; text-align:right; }
.bank-details .bank-account { display:block; padding:20px 0; }
.bank-account dd { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:14px; text-align:left; }
.bank-account strong { font-size:clamp(1.2rem,3vw,1.65rem); font-weight:500; letter-spacing:.06em; }
.copy-button { min-height:39px; padding:8px 13px; border:1px solid #bda974; border-radius:8px; background:transparent; color:var(--gold-light); font-size:.75rem; }
.copy-button:hover { background:#ffffff0d; }
.receipt-form { margin-top:24px; }
.receipt-form > .label-tag { margin-bottom:19px; }
.upload-field { border:1px dashed #aebaa7; padding:20px; border-radius:13px; background:#f5f5ed; }
.upload-field input[type=file] { width:100%; background:transparent; border:0; padding:12px 0; font-size:.8rem; }
.upload-field input::file-selector-button { padding:10px 14px; margin:0 10px 9px 0; border:1px solid #b7c4b1; border-radius:8px; background:#fff; color:var(--forest); cursor:pointer; }
.receipt-state { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; border-top:1px solid var(--border); padding:23px 0 8px; margin-top:20px; }
.receipt-state strong { color:var(--forest); font-size:.88rem; }
.receipt-state p { margin-top:7px; font-size:.82rem; overflow-wrap:anywhere; }
.receipt-state small { color:var(--muted); font-size:.73rem; }
.receipt-state .status-pill { flex-shrink:0; }
.reference-chip { padding:12px; font-size:.78rem; color:var(--forest); }
.transfer-summary .detail-list dd { max-width:60%; overflow-wrap:anywhere; }
.notice { border-radius:12px; }
.notice + .bank-card { margin-top:22px; }
[data-reveal].reveal-pending { opacity:0; transform:translateY(22px); }
[data-reveal] { transition:opacity .65s ease,transform .65s ease; }
@media(min-width:901px) { .hero-visual { animation:photo-arrival 1s ease both; } @keyframes photo-arrival { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } } }
@media(max-width:1120px) { .hero-grid { gap:40px; } .main-navigation { gap:18px; } .header-inner { gap:20px; } .brand-wordmark { font-size:1.15rem; } .visit-cta-inner { gap:35px; } }
@media(max-width:900px) {
    .container { width:calc(100% - 44px); }
    .header-inner { min-height:87px; }
    .hero-grid { grid-template-columns:1fr; gap:44px; }
    .hero h1 { max-width:17ch; font-size:clamp(3.1rem,7.5vw,4.8rem); }
    .hero-description { max-width:54ch; }
    .hero-visual { width:min(620px,100%); padding-right:14px; margin-inline:auto; }
    .hero-visual::before { right:0; }
    .hero-price { margin-top:28px; }
    .transfer-grid { grid-template-columns:1fr; gap:28px; }
    .transfer-summary { position:static; }
    .visit-cta-inner { align-items:flex-start; flex-direction:column; gap:30px; }
    .visit-cta h2 { font-size:3rem; }
    .form-card { padding:28px; }
}
@media(max-width:600px) {
    .container { width:calc(100% - 36px); }
    .section-space { padding-block:58px; }
    .site-topline .topline-note { display:none; }
    .header-inner { gap:10px; min-height:83px; }
    .brand { gap:8px; }
    .brand-logo { width:58px; height:62px; }
    .brand-wordmark { font-size:1rem; }
    .brand-wordmark > span { font-size:.54rem; letter-spacing:.18em; }
    .header-book { min-height:43px; padding:11px 12px; font-size:.73rem; }
    .menu-toggle { flex:0 0 42px; width:42px; height:43px; }
    .page-home .hero { padding:42px 0 34px; }
    .hero-copy { padding:0; }
    .hero .eyebrow { font-size:.57rem; }
    .hero h1 { max-width:12.5ch; font-size:clamp(2.9rem,11vw,3.75rem); }
    .hero-description { margin-top:22px; font-size:.92rem; line-height:1.85; }
    .hero .button-row { align-items:stretch; flex-direction:column; gap:10px; margin-top:26px; }
    .hero .text-link { justify-content:center; }
    .hero-details { gap:7px 12px; font-size:.62rem; }
    .hero-price { gap:12px; }
    .hero-visual { padding:0 11px 0 0; }
    .hero-visual::before { inset:14px 0 24px 14px; border-radius:35px 6px; }
    .hero-photo { border-radius:30px 7px 26px 7px; }
    .hero-photo figcaption { min-height:52px; padding:13px 16px; font-size:.67rem; }
    .hero-margin-note { padding-right:5px; margin-top:17px; font-size:.48rem; }
    .strip-grid { padding:22px 0; }
    .strip-grid > div { gap:12px; }
    .strip-grid > div > span:last-child { font-size:.71rem; }
    .experience-card { min-height:0; padding:27px; }
    .card-number { margin-bottom:24px; }
    .experience-card h3 { font-size:1.8rem; }
    .faq-list summary { padding:19px 17px; font-size:.88rem; }
    .faq-answer { padding:0 19px 22px 17px; }
    .visit-cta { padding-block:54px; }
    .visit-cta h2 { font-size:2.55rem; }
    .visit-cta .eyebrow { font-size:.59rem; }
    .cta-actions { width:100%; }
    .cta-actions .button { width:100%; }
    .footer-main { padding-top:45px; }
    .footer-logo { flex-basis:99px; }
    .footer-brand { gap:18px; }
    .footer-brand h2 { font-size:1.5rem; }
    .page-intro { padding-block:23px 40px; }
    .page-intro h1 { font-size:2.85rem; }
    .page-lead { font-size:.91rem; }
    .page-intro .eyebrow { max-width:100%; letter-spacing:.09em; }
    .booking-section,.booking-section:first-child { padding:23px 19px; }
    .form-section-heading { gap:13px; }
    .form-section-heading h2 { font-size:1.55rem; }
    .form-section-heading > span { flex-shrink:0; }
    .form-card { padding:26px 20px; }
    .form-card h2 { font-size:1.9rem; }
    .field label { font-size:.8rem; }
    .field input,.field select,.field textarea { font-size:16px; }
    .checkbox-field { padding:13px; }
    .booking-summary { padding:26px 21px; }
    .bank-card { padding:27px 21px; }
    .bank-details > div { font-size:.79rem; }
    .bank-details dd { text-align:left; }
    .bank-details div:not(.bank-account) dd { flex:1 1 100%; }
    .bank-details div:not(.bank-account) dt { font-size:.71rem; }
    .receipt-state { flex-direction:column; gap:10px; }
    .reservation-card { padding:25px 20px; }
    .upload-field { padding:16px; }
}
@media(max-width:359px) { .brand-wordmark { display:none; } .hero h1 { font-size:2.75rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } [data-reveal].reveal-pending { opacity:1; transform:none; } }

/* Keep the entire photograph and its decoration inside the content margins. */
.hero-grid > * { min-width:0; }
.hero-visual { width:100%; max-width:100%; min-width:0; padding:0 14px 0 0; }
.hero-visual::before { inset:15px 0 30px 14px; border-radius:46px 9px 35px 9px; }
.hero-photo { width:100%; margin:0; }
.photo-link { overflow:hidden; }
.photo-link img { opacity:1; transform:scale(1); transition:transform .65s cubic-bezier(.2,.65,.2,1); }
.photo-link:focus-visible img { transform:scale(1.025); }
.button > span[aria-hidden], .text-link > span[aria-hidden] { transition:transform .24s ease; }
.button:focus-visible > span[aria-hidden], .text-link:focus-visible > span[aria-hidden] { transform:translate(3px,-2px); }
@media(hover:hover) and (pointer:fine) {
    .photo-link:hover img { opacity:1; transform:scale(1.035); }
    .button:hover > span[aria-hidden], .text-link:hover > span[aria-hidden] { transform:translate(3px,-2px); }
    .photo-card { transition:box-shadow .3s,border-color .3s; }
    .photo-card:hover { box-shadow:0 15px 34px #14332212; border-color:#c6b38b; }
}
@media(max-width:600px) {
    .hero-visual { width:100%; max-width:100%; padding:0 10px 0 0; }
    .hero-visual::before { inset:10px 0 27px 10px; border-radius:30px 7px 26px 7px; }
    .hero-margin-note { padding-right:10px; }
}
@media(prefers-reduced-motion:reduce) {
    .photo-link:hover img,.photo-link:focus-visible img { transform:none; }
    .button:hover > span[aria-hidden],.text-link:hover > span[aria-hidden] { transform:none; }
}

.payment-options { display:grid; gap:13px; margin-block:24px; }
.payment-options .eyebrow { margin-bottom:0; }
.payment-options .small-text { margin-top:-5px; }
.payment-options form { display:grid; gap:12px; }
.payment-test-note { padding:12px 14px; border:1px solid #d9c087; border-radius:9px; background:#fff6df; color:#695126; font-size:.77rem; }
