/*
Theme Name: Jungle Hostel
Theme URI: https://junglehostel.example
Author: Jungle Hostel
Description: Approved Jungle Hostel hybrid design, with editable pages, booking links and guest reviews.
Version: 1.9.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: jungle-hostel
*/

:root{--forest:#10291e;--deep:#0b1e15;--lime:#c6fa65;--cream:#f8f4e8;--sage:#e8efdc;--coral:#ff7759;--yellow:#ffdc75}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--forest);font-family:'DM Sans',sans-serif}a{text-decoration:none;color:inherit}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand,.ticker{font-family:'Space Grotesk',sans-serif}.wrap{width:min(1280px,calc(100% - 9vw));margin:auto}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.19em;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:100px;padding:16px 25px;background:var(--lime);color:var(--forest);font-size:13px;letter-spacing:.06em;font-weight:800;text-transform:uppercase;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-3px);background:#ddff9b}.btn.dark{background:var(--forest);color:white}.btn.dark:hover{background:#2d5340}.btn.outline{background:transparent;color:white;border:1px solid #ffffffa0}.btn.outline:hover{background:#ffffff24}.nav{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:26px 4.5%;color:white}.brand{font-size:30px;font-weight:700;letter-spacing:-.09em;line-height:.8}.brand span{color:var(--lime)}.brand small{display:block;font-family:'DM Sans',sans-serif;letter-spacing:.24em;font-size:9px;margin-top:12px}.navlinks{display:flex;align-items:center;gap:28px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.navlinks>a:not(.btn):hover{color:var(--lime)}.menu{display:none;border:1px solid #ffffff80;color:white;background:#0c271e70;padding:10px 14px;border-radius:8px}.hero{position:relative;min-height:750px;height:100svh;max-height:1050px;display:flex;align-items:end;overflow:hidden;background:#1c3527;color:white}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#061a12a8 0%,#061a1220 32%,#061a12d9 100%),url('https://h-img3.cloudbeds.com/uploads/294427/escape_jungle_hostel_001~~651624bf7f945.jpg') center/cover}.hero-inner{position:relative;width:100%;padding-bottom:8vh}.hero .eyebrow{color:var(--lime);margin-bottom:25px}.hero h1{font-size:clamp(75px,11.5vw,170px);line-height:.82;letter-spacing:-.09em;font-weight:700;margin:0;text-transform:uppercase}.hero h1 em{font-style:normal;color:var(--lime)}.hero-foot{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-top:35px}.hero-foot p{font-size:clamp(17px,1.6vw,22px);line-height:1.5;max-width:510px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.stamp{position:absolute;z-index:2;right:8%;top:30%;width:134px;height:134px;border:1px solid #ffffffad;background:#10291e77;border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:800;letter-spacing:.06em;transform:rotate(12deg)}.ticker{overflow:hidden;background:var(--lime);padding:18px 0;white-space:nowrap;font-size:18px;font-weight:700}.track{display:flex;width:max-content;animation:marquee 30s linear infinite}.track>div{display:flex;align-items:center;flex-shrink:0}.track span{margin-right:36px}.track b{color:#e76547;margin-right:36px}@keyframes marquee{to{transform:translateX(-50%)}}section{padding:105px 0}.section-title{font-size:clamp(46px,6.3vw,90px);line-height:.96;letter-spacing:-.075em;text-transform:uppercase;margin:15px 0 25px}.lead{font-size:18px;line-height:1.75;color:#4a5e50;max-width:590px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8vw}.photo-frame{position:relative}.photo-frame img{width:100%;height:560px;object-fit:cover;border-radius:12px;transform:rotate(2deg)}.sticker{position:absolute;bottom:-24px;left:-30px;display:grid;place-items:center;text-align:center;width:135px;height:135px;border-radius:50%;background:var(--yellow);font-weight:900;transform:rotate(-12deg);line-height:1.15}.rooms{background:var(--sage)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:38px}.section-head .lead{max-width:360px;margin:0}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.room-card{overflow:hidden;background:white;border-radius:14px}.room-photo{height:350px;position:relative;overflow:hidden}.room-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.room-card:hover .room-photo img{transform:scale(1.05)}.pill{position:absolute;top:20px;left:20px;border-radius:30px;padding:9px 14px;background:var(--lime);font-weight:800;font-size:12px;text-transform:uppercase}.room-body{padding:28px}.room-body h3{font-size:clamp(25px,3vw,36px);letter-spacing:-.06em;margin:0 0 10px}.room-body p{line-height:1.65;color:#56685b}.room-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #dce4d9;padding-top:20px;font-size:13px;font-weight:800}.room-bottom a{color:#e35f42}.dark-section{background:var(--forest);color:white;overflow:hidden}.dark-section .eyebrow{color:var(--lime)}.dark-section .section-title em{font-style:normal;color:var(--coral)}.dark-section .lead{color:#d0ddcf}.collage{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:245px 245px;gap:12px;margin-top:42px}.collage img{width:100%;height:100%;object-fit:cover;border-radius:9px}.collage img:first-child{grid-row:span 2}.spaces-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}.space{background:white;border-radius:12px;overflow:hidden}.space img{width:100%;height:245px;object-fit:cover}.space div{padding:25px}.space h3{font-size:25px;letter-spacing:-.05em;margin-bottom:10px}.space p{line-height:1.6;color:#55685b;margin:0}.location{background:var(--yellow)}.location .lead{color:#4d4938}.map-tile{background:var(--cream);border-radius:20px;padding:55px 30px;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(2deg)}.map-tile strong{font-family:'Space Grotesk';font-size:clamp(70px,9vw,120px);letter-spacing:-.1em;line-height:1}.map-tile span{font-size:13px;font-weight:800;letter-spacing:.17em}.faq{background:var(--cream)}.faq-list{max-width:850px;margin:40px auto 0}.faq details{border-bottom:1px solid #cdd8c9;padding:20px 0}.faq summary{cursor:pointer;font-weight:800;font-size:18px}.faq details p{color:#526456;line-height:1.7;margin:14px 0 0}.final{background:var(--coral);text-align:center}.final .section-title{font-size:clamp(54px,8vw,120px)}.final p{font-size:19px;line-height:1.5}.footer{background:var(--deep);color:white;padding:65px 0 28px}.footer-grid{display:flex;justify-content:space-between;gap:35px;flex-wrap:wrap}.footer-grid p{color:#c0cfc4}.footer-links{display:flex;gap:22px;flex-wrap:wrap;font-weight:700;font-size:13px}.fine{border-top:1px solid #ffffff33;padding-top:23px;margin-top:65px;color:#a5b9aa;font-size:12px}@media(max-width:950px){.navlinks{display:none;position:absolute;top:75px;left:4%;right:4%;padding:22px;background:var(--forest);border-radius:12px;flex-direction:column;align-items:stretch}.navlinks.open{display:flex}.menu{display:block}.stamp{display:none}.hero-foot{align-items:start;flex-direction:column}.split{grid-template-columns:1fr;gap:55px}.photo-frame img{height:440px}.spaces-grid{grid-template-columns:1fr 1fr}.section-head{align-items:start;flex-direction:column}}@media(max-width:650px){.wrap{width:calc(100% - 38px)}.nav{padding:22px 19px}.brand{font-size:25px}.hero{min-height:700px}.hero-inner{padding-bottom:75px}.hero h1{font-size:clamp(66px,15vw,110px)}.hero-foot p{font-size:17px}section{padding:75px 0}.room-grid,.spaces-grid{grid-template-columns:1fr}.room-photo{height:270px}.photo-frame img{height:360px}.sticker{left:0;width:100px;height:100px;font-size:12px}.collage{grid-template-columns:1fr 1fr;grid-template-rows:200px 200px}.collage img:nth-child(5){display:none}.map-tile{min-height:250px}.footer-grid{flex-direction:column}.ticker{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
.reviews{background:var(--forest);color:white}.reviews .eyebrow{color:var(--lime)}.reviews .section-title{max-width:1000px}.review-summary{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin:32px 0 38px}.review-score{background:var(--lime);color:var(--forest);padding:24px 27px;border-radius:14px;font:700 58px/1 'Space Grotesk',sans-serif;letter-spacing:-.08em}.review-score small{font-size:20px;letter-spacing:0}.review-meta strong{display:block;font:700 26px 'Space Grotesk',sans-serif}.review-meta p{margin:8px 0;color:#d0ddcf}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:30px}.review-card{background:#204231;border:1px solid #ffffff20;border-radius:14px;padding:27px;display:flex;flex-direction:column;gap:18px;min-height:220px}.review-card .review-stars{color:var(--lime);font-weight:800;letter-spacing:.06em}.review-card p{font-size:17px;line-height:1.65;margin:0;flex:1}.review-card footer{color:#c6d9c9;font-size:13px;font-weight:700}.review-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.review-actions .review-note{font-size:12px;color:#c6d9c9}@media(max-width:800px){.review-grid{grid-template-columns:1fr}.review-card{min-height:0}}

/* WordPress page support; homepage design rules above are unchanged */
.page-hero{background:var(--forest);color:white;padding:175px 0 85px}
.page-hero h1{font-size:clamp(52px,8vw,112px);line-height:.95;letter-spacing:-.075em;margin:16px 0 20px;text-transform:uppercase}
.page-content{min-height:40vh;padding:80px 0}
.page-content .entry-content{max-width:950px;font-size:18px;line-height:1.8}
.page-content .entry-content img{border-radius:14px}
.page-content .entry-content a:not(.btn){text-decoration:underline}
.page-content .entry-content h2{font-size:clamp(32px,4vw,55px);letter-spacing:-.06em;line-height:1.1;margin-top:35px}
.page-content .entry-content h3{font-size:28px}
.page-content .entry-content .wp-block-columns{gap:25px}
body:not(.home) .nav{position:relative;background:var(--deep)}
body:not(.home) .navlinks{gap:17px}
body:not(.home) .navlinks>a{font-size:11px}
body:not(.home) .navlinks>a:not(.btn):hover{color:var(--lime)}
.screen-reader-text{position:absolute;left:-10000px}
.screen-reader-text:focus{left:20px;top:20px;z-index:999;background:white;color:black;padding:10px}
@media(max-width:950px){body:not(.home) .navlinks{position:absolute}}

/* Accommodation and Meet the Team; scoped to secondary pages */
.page-hero p{max-width:650px;font-size:19px;line-height:1.65;color:#e1e9df}
.jungle-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.jungle-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.jungle-feature-card{background:#f5f2e8;border-radius:16px;overflow:hidden;color:#17382a;box-shadow:0 12px 35px #082a1710}
.jungle-feature-card>img,.jungle-photo-placeholder{width:100%;height:310px;object-fit:cover;display:flex;align-items:center;justify-content:center}
.jungle-photo-placeholder{background:#dce7c9;color:#406349;text-align:center;padding:20px;font-weight:800;letter-spacing:.05em}
.jungle-feature-body{padding:32px}
.jungle-feature-body h2{font-size:clamp(32px,4vw,54px);letter-spacing:-.06em;line-height:1.02;margin:12px 0 15px}
.jungle-feature-body p{font-size:16px;line-height:1.7;margin-bottom:25px}
.jungle-feature-body .eyebrow{color:#4b704d}
.jungle-secondary-copy{padding:70px 0 0;max-width:720px}
.jungle-secondary-copy h2,.jungle-team-empty h2{font-size:clamp(36px,5vw,65px);line-height:1;letter-spacing:-.06em}
.jungle-secondary-copy p,.jungle-team-empty p{font-size:18px;line-height:1.7}
.jungle-team-empty{max-width:690px;padding:30px 0}
@media(max-width:850px){.jungle-page-grid,.jungle-team-grid{grid-template-columns:1fr}.jungle-feature-card>img,.jungle-photo-placeholder{height:250px}}

/* Secondary information pages — no changes to the approved homepage */
.jungle-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.jungle-info-panel{background:#f5f2e8;color:#17382a;border-radius:16px;padding:36px}
.jungle-info-panel .eyebrow{color:#4b704d}
.jungle-info-panel h2{font-size:clamp(30px,4vw,50px);line-height:1.05;letter-spacing:-.05em;margin:14px 0}
.jungle-info-panel p{font-size:17px;line-height:1.7}
.jungle-contact-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px}
@media(max-width:800px){.jungle-info-grid{grid-template-columns:1fr}.jungle-info-panel{padding:25px}}

/* v1.4 header logo: only applies when a custom logo is selected */
.brand .jungle-header-logo{display:block;width:auto;height:auto;max-height:58px;max-width:230px;object-fit:contain}
@media(max-width:650px){.brand .jungle-header-logo{max-height:46px;max-width:170px}}

/* v1.7 footer image */
.jungle-footer-brand .jungle-footer-logo{display:block;width:auto;max-width:min(75vw,380px);max-height:none;object-fit:contain}

/* v1.8 — Social links and WhatsApp */
.jungle-social-links{display:flex;gap:12px 18px;flex-wrap:wrap;margin-top:18px}
.jungle-social-links a{font-size:12px;font-weight:700;letter-spacing:.04em;text-decoration:none}
.jungle-contact-social{grid-column:1/-1;padding:16px 0 10px}
.jungle-contact-social h2{font-size:clamp(22px,3vw,36px);margin:0 0 18px}
.jungle-contact-social-buttons{display:flex;flex-wrap:wrap;gap:12px}
.jungle-whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:9999;background:#25d366;color:#102b1c!important;border-radius:100px;padding:14px 20px;text-decoration:none;font-size:14px;font-weight:800;box-shadow:0 6px 25px rgba(0,0,0,.3);line-height:1.1}
.jungle-whatsapp-float:hover{filter:brightness(1.08)}
@media(max-width:600px){.jungle-whatsapp-float{right:12px;bottom:12px;padding:13px 16px;font-size:13px}}

/* v1.9 — Gallery and seasonal offers */
.jungle-gallery-section,.jungle-gallery-home{padding:70px 0;background:#f4f0e7;color:#15372a}
.jungle-gallery-filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}
.jungle-gallery-filters button{border:1px solid #183e2b;background:transparent;color:#183e2b;border-radius:40px;padding:11px 16px;cursor:pointer;font:700 12px inherit;letter-spacing:.04em}
.jungle-gallery-filters button.active,.jungle-gallery-filters button:hover{background:#183e2b;color:#fff}
.jungle-gallery-grid{columns:3 250px;column-gap:15px}
.jungle-gallery-tile{width:100%;padding:0;border:0;background:transparent;cursor:pointer;display:block;break-inside:avoid;margin:0 0 15px;border-radius:6px;overflow:hidden}
.jungle-gallery-tile[hidden]{display:none!important}
.jungle-gallery-tile img{width:100%;height:auto;display:block;transition:transform .2s ease}
.jungle-gallery-tile:hover img{transform:scale(1.03)}
.jungle-gallery-more-wrap{text-align:center;margin-top:28px}
.jungle-gallery-more[hidden]{display:none!important}
.jungle-gallery-home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}
.jungle-gallery-home-grid img{width:100%;height:220px;object-fit:cover;display:block;border-radius:4px}
.jungle-lightbox,.jungle-promo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px}
.jungle-lightbox[hidden],.jungle-promo-overlay[hidden]{display:none!important}
.jungle-lightbox figure{margin:0;max-width:94vw;max-height:90vh;text-align:center;color:white}
.jungle-lightbox img{max-width:100%;max-height:82vh;object-fit:contain}
.jungle-lightbox>button,.jungle-promo-close{position:absolute;right:20px;top:12px;background:transparent;color:white;border:0;font-size:40px;cursor:pointer;z-index:2}
.jungle-lightbox-caption{font-size:13px;margin-top:6px}
.jungle-modal-open{overflow:hidden}
.jungle-promo-overlay{background:rgba(8,22,15,.75)}
.jungle-promo-card{position:relative;width:min(92vw,540px);max-height:90vh;overflow:auto;background:#f4f0e7;color:#173728;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4);text-align:center}
.jungle-promo-image{width:100%;max-height:42vh;object-fit:cover;display:block}
.jungle-promo-content{padding:22px 26px 30px}
.jungle-promo-content h2{font-size:clamp(24px,4vw,38px);line-height:1.1;margin:0 0 12px}
.jungle-promo-content p{margin:0 0 20px}
.jungle-promo-content .btn{display:inline-block}
.jungle-promo-close{right:10px;top:6px;background:rgba(0,0,0,.55);border-radius:100px;width:42px;height:42px;line-height:40px}
@media(max-width:700px){.jungle-gallery-home-grid{grid-template-columns:repeat(2,1fr)}.jungle-gallery-home-grid img{height:150px}.jungle-gallery-section,.jungle-gallery-home{padding:45px 0}}
