/*
Theme Name: Saloma Villagestay
Theme URI: https://saloma-villagestay.glaciantech-7920.chatgpt.site/
Author: Kiratech
Description: A single-page editorial theme for Saloma Villagestay, a family-run Bidayuh homestay in Kampung Sadir, Sarawak. The home page is built from editable blocks and section patterns.
Version: 1.1.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: saloma
*/

/* Tokens */
:root{--forest:#28392e;--forest2:#35483a;--leaf:#596a4f;--cream:#f5f1e8;--paper:#fbf9f3;--ink:#202720;--muted:#74776e;--clay:#bb6445;--ochre:#d4a45e;--line:#dfd9cd;--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}
a{color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
.wrap{width:min(1180px,calc(100% - 48px));margin:auto}
/* Classic themes wrap Group block contents in an extra div; let the inner blocks take part in the group's grid or flex layout. */
.wp-block-group__inner-container{display:contents}
.kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--clay);margin:0}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.035em}
h1{font-size:clamp(3.4rem,7vw,6.7rem);max-width:720px;margin:22px 0}
h2{font-size:clamp(2.6rem,5vw,4.6rem);margin:12px 0 18px}
h3{font-size:1.8rem;margin:0 0 10px}
p{color:#5f665d}
button:focus-visible,a:focus-visible{outline:3px solid var(--ochre);outline-offset:4px}

/* Buttons: theme links and the Buttons block (styles: default, Light, Outline, Text link) */
.button,.wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 21px;border-radius:2px;text-decoration:none;background:var(--clay);color:#fff;font-size:.86rem;font-weight:700;letter-spacing:.03em;line-height:1.55;transition:transform .2s,background .2s}
.button:hover,.wp-block-button .wp-block-button__link:hover{background:#a95237;transform:translateY(-2px)}
.button.light,.wp-block-button.is-style-light .wp-block-button__link{background:var(--cream);color:var(--forest)}
.button.outline,.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;border:1px solid rgba(255,255,255,.65);padding:14px 21px;color:#fff}
.wp-block-button.is-style-text .wp-block-button__link{background:none;padding:0;border-radius:0;color:inherit;font-size:.82rem;font-weight:400;letter-spacing:0;text-decoration:underline;text-underline-offset:6px}
.wp-block-button.is-style-text .wp-block-button__link:hover{background:none;transform:none}
.arrow{font-size:1.1rem}
.text-link a,a.text-link{font-weight:650;color:var(--forest);text-decoration:none;border-bottom:1px solid rgba(48,64,49,.35);padding-bottom:4px}

/* WordPress essentials */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:var(--cream);clip:auto!important;clip-path:none;color:var(--forest);display:block;font-size:.9rem;height:auto;left:8px;padding:14px 20px;top:8px;width:auto;z-index:100000;text-decoration:none}
.alignleft{float:left;margin:0 24px 16px 0}.alignright{float:right;margin:0 0 16px 24px}.aligncenter{margin-left:auto;margin-right:auto}
.wp-caption-text,figcaption{font-size:.78rem;color:var(--muted)}

/* Header */
.site-header{position:relative;z-index:10;background:var(--forest);color:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:88px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.23)}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-mark{width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center;color:var(--ochre);font-family:var(--serif);font-size:1.25rem}
.brand strong{display:block;font-family:var(--serif);font-size:1.3rem;font-weight:400;letter-spacing:.02em}
.brand small{display:block;font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;opacity:.8}
.nav-links,.nav-links .menu{display:flex;align-items:center;gap:24px}
.nav-links .menu{list-style:none;margin:0;padding:0}
.nav-links a{text-decoration:none;font-size:.8rem;letter-spacing:.04em;white-space:nowrap}
.nav-links a:not(.button):hover,.nav-links .current-menu-item>a{color:var(--ochre)}
.nav-links .button{padding:12px 16px;background:var(--ochre);color:var(--forest)}
.menu-toggle{display:none;border:0;background:transparent;color:#fff;font-size:1.6rem;cursor:pointer}

/* Landing */
.landing{background:var(--forest);color:#fff;padding:35px 0 66px}
.landing-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.landing-copy{min-width:0}
.landing .kicker{color:#e9bf86}
.landing h1{font-size:clamp(2.8rem,4.6vw,4.65rem);line-height:1.08;letter-spacing:-.045em;margin:22px 0 26px;max-width:100%;overflow-wrap:normal}
.landing p:not(.kicker){color:#e0e5dc;font-size:1.03rem;line-height:1.75;max-width:520px;margin:0 0 16px}
.landing p.landing-context{color:#bfcabc;font-size:.9rem}
.landing-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap;margin-top:28px}
.landing p.landing-location{font-size:.67rem;letter-spacing:.08em;line-height:1.55;color:#bfcabc;max-width:none;margin:30px 0 0}
figure.landing-photo{margin:0;min-width:0}
figure.landing-photo img{width:100%;height:clamp(360px,46vw,570px);object-fit:cover;object-position:center}

/* Sections */
.section{padding:112px 0}
.section-head{max-width:700px;margin-bottom:46px}
.section-head p:not(.kicker){max-width:580px;font-size:1.05rem}

/* Gallery */
.gallery{background:var(--cream);scroll-margin-top:20px;padding:90px 0}
.gallery-head{margin-bottom:26px}
.gallery-head h2{margin-bottom:10px}
.gallery-head p:not(.kicker){color:var(--muted);margin:10px 0 0;max-width:650px;font-size:1rem;line-height:1.75}

/* Gallery block, Slideshow style: one photo at a time once scripts run (theme.js adds the controls) */
.saloma-js .wp-block-gallery.is-style-slideshow{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0;width:100%;height:clamp(340px,65vh,690px);margin:0;overflow:hidden;background:#e9e4d7}
.saloma-js .wp-block-gallery.is-style-slideshow>.wp-block-image{flex:1 0 100%;width:100%!important;min-width:0;height:100%;margin:0!important}
.saloma-js .wp-block-gallery.is-style-slideshow:not(.is-ready)>.wp-block-image:not(:first-child),.saloma-js .wp-block-gallery.is-style-slideshow.is-ready>.wp-block-image:not(.is-current){display:none!important}
.saloma-js .wp-block-gallery.is-style-slideshow>.wp-block-image img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center;transition:opacity .2s ease}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;padding:15px 0 0;color:var(--forest)}
.gallery-count{font-size:.68rem;letter-spacing:.12em;color:#657065;font-variant-numeric:tabular-nums}
.gallery-buttons{display:flex;align-items:center;gap:8px}
.gallery-buttons button{border:1px solid rgba(40,57,46,.32);background:transparent;color:var(--forest);border-radius:50%;width:42px;height:42px;padding:0;font:600 1rem var(--sans);cursor:pointer}
.gallery-buttons button.gallery-play{width:auto;border-radius:99px;padding:0 15px;font-size:.72rem;letter-spacing:.04em}
.gallery-buttons button:hover{background:#e9e4d7}

/* Place */
.place-intro{scroll-margin-top:18px;padding:100px 0 106px;background:#eeeadf;border-bottom:1px solid rgba(48,64,49,.12)}
.place-intro p:not(.kicker){font-size:1rem;line-height:1.75;color:var(--muted);margin:0 0 17px}
.geography-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.geography-copy h2{font-size:clamp(2.2rem,3.4vw,3.3rem);line-height:1.12;letter-spacing:-.04em;margin:16px 0 24px}
.geography-copy p:not(.kicker){font-size:.96rem;line-height:1.8}
.place-intro p.geography-trail{font-size:.7rem;line-height:1.55;word-spacing:.25em;color:var(--forest);margin:24px 0 0}
.location-map{margin:0;min-width:0;background:var(--paper);border:1px solid var(--line)}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px}
.map-views{display:flex;gap:6px;flex-wrap:wrap}
.map-views button{font:inherit;font-size:.65rem;border:1px solid var(--line);background:transparent;padding:8px 10px;color:var(--forest);cursor:pointer;border-radius:99px}
.map-views button[aria-pressed="true"]{background:var(--forest);color:#fff;border-color:var(--forest)}
.location-map iframe{display:block;width:100%;height:330px;border:0;background:#dce6df}

/* Our story */
.our-story{scroll-margin-top:25px;margin-top:85px;padding-top:75px;border-top:1px solid var(--line)}
.heritage-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
figure.heritage-photo{margin:0;min-width:0}
figure.heritage-photo img{width:100%;height:auto;display:block}
.heritage-copy h2{font-size:clamp(2.3rem,3.5vw,3.4rem);line-height:1.1;letter-spacing:-.04em;margin:16px 0 24px}
.heritage-copy h3{font:400 1.4rem var(--serif);margin:25px 0 8px}
.heritage-copy p:not(.kicker){font-size:.92rem;line-height:1.75}
.place-intro p.place-sources{font-size:.72rem;color:var(--muted);line-height:1.8;margin:14px 0 0}
.place-sources a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}

/* Press: each card links through its last line */
.press-section{margin-top:70px;padding-top:45px;border-top:1px solid var(--line)}
.press-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}
.press-heading h3{font:400 2.2rem var(--serif);margin:10px 0 0}
.place-intro .press-heading p:not(.kicker){max-width:410px;font-size:.85rem;margin:0}
.press-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.press-card{position:relative;display:flex;flex-direction:column;padding:23px;background:#f9f7f0;border:1px solid #dedbce;min-width:0;transition:background .2s}
.press-card:has(a):hover{background:#fff}
.press-brand{height:58px;display:flex;align-items:center;gap:12px;margin-bottom:18px}
.press-brand figure{margin:0;flex-shrink:0}
.press-brand img{width:32px;height:32px;object-fit:contain}
.press-brand.is-wide{flex-wrap:wrap;height:auto;min-height:58px}
.press-brand.is-wide img{width:110px;height:30px}
.place-intro .press-card p:not(.kicker){font-size:.76rem;line-height:1.6;margin:0 0 14px}
.place-intro .press-card p.press-name{font:600 1.15rem var(--serif);line-height:1.15;color:var(--forest);margin:0}
.place-intro .press-card p.press-action{font-size:.65rem;color:#786044;margin:auto 0 0}
.press-action a{color:inherit;text-decoration:none}
.press-action a::before{content:"";position:absolute;inset:0}
.press-action a::after{content:" ↗"}

/* Experiences */
.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.experience-card{background:#fff;border:1px solid var(--line);position:relative;display:flex;flex-direction:column;min-height:440px}
figure.exp-image{height:220px;overflow:hidden;margin:0}
figure.exp-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.experience-card:hover figure.exp-image img{transform:scale(1.04)}
.exp-body{padding:24px 25px 22px;display:flex;flex-direction:column;flex:1}
.exp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.exp-body p:not(.kicker){font-size:.88rem;margin-bottom:20px}
.exp-body p.pill{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;background:#edf0e8;color:var(--forest2);padding:6px 9px;margin:0}
.exp-body .price p{font-family:var(--serif);font-size:1.2rem;color:var(--ink);margin:0}
.exp-body .price p.price-note{font:.65rem var(--sans);color:var(--muted);text-align:right}
.exp-body p.exp-link{margin:auto 0 0;padding-top:13px;border-top:1px solid var(--line)}
.exp-link a{display:flex;align-items:center;justify-content:space-between;color:var(--clay);font-size:.8rem;font-weight:700;text-decoration:none}
.exp-link a::after{content:"↗"}
.note{font-size:.73rem;color:var(--muted);margin-top:18px}

/* Ritual: rows are numbered automatically */
.ritual{background:#e9e4d7}
.ritual-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:80px;align-items:start}
.ritual-list{border-top:1px solid #c9c1b3;counter-reset:ritual}
.ritual-row{display:grid;grid-template-columns:64px 1fr;column-gap:20px;padding:24px 0;border-bottom:1px solid #c9c1b3;counter-increment:ritual}
.ritual-row::before{content:counter(ritual,decimal-leading-zero);grid-row:1/span 2;font-family:var(--serif);font-size:1.45rem;line-height:1.55;color:var(--clay)}
.ritual-row>*{grid-column:2}
.ritual-row h3{font-size:1.45rem}
.ritual-row p{margin:0;font-size:.9rem}

/* Stay */
.stay-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:65px;align-items:center}
figure.stay-photo{margin:0;min-width:0;align-self:center;background:#e9e4d7}
figure.stay-photo img{width:100%;height:auto;object-fit:contain;display:block}
.stay-copy .kicker{margin-bottom:10px}
.stay-copy p:not(.kicker){font-size:1rem}
.details{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:27px 0 31px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);list-style:none}
.details li{font-size:.82rem;color:#4d564d}
.details li:before{content:"✳";color:var(--clay);margin-right:9px}
.stay-copy p.stay-route{font-size:1rem;line-height:1.65;color:var(--muted);margin-top:17px}

/* Guest stories */
.voices{background:var(--cream)}
.review-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;align-items:center}
.review-intro h2{font-size:clamp(2.6rem,4vw,4rem)}
.review-intro p:not(.kicker){max-width:350px;line-height:1.7}
.review-carousel{background:var(--forest);padding:42px;color:#fff;min-width:0}
.review-stars{color:#e8bd77;font-size:1rem;letter-spacing:.22em;margin-bottom:24px}
.review-summary{font:400 clamp(1.8rem,2.7vw,2.5rem)/1.3 var(--serif);color:#fff;margin:0 0 28px;min-height:4em}
.review-byline{display:flex;gap:15px;flex-wrap:wrap;font-size:.8rem;align-items:center}
.review-date{color:#c7d0c3}
.review-source{display:block;font-size:.68rem;margin-top:16px;color:#d8dfd3;text-underline-offset:4px}
.review-controls{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #5d6d5d;padding-top:20px;margin-top:26px;gap:15px}
.review-count{font-size:.68rem;color:#bdc9b7}
.review-controls>div{display:flex;gap:8px}
.review-controls button{border:1px solid #71806b;color:#fff;background:transparent;border-radius:99px;padding:8px 13px;cursor:pointer}

/* Final call to action */
.final-cta{background:var(--forest);color:#fff;text-align:center;padding:105px 24px}
.final-cta .kicker{color:#e9bf86}
.final-cta h2{max-width:740px;margin:14px auto 18px}
.final-cta p:not(.kicker){max-width:560px;margin:0 auto 27px;color:rgba(255,255,255,.73)}
.final-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}

/* Footer */
.site-footer{background:#202c23;color:rgba(255,255,255,.72);padding:32px 0 78px}
.footer-inner{display:flex;justify-content:space-between;gap:30px;align-items:center}
.site-footer .brand{color:#fff}
.footer-small{font-size:.72rem;max-width:330px}
.footer-links,.footer-links .menu{display:flex;gap:18px;flex-wrap:wrap}
.footer-links .menu{list-style:none;margin:0;padding:0}
.footer-links a{font-size:.73rem;text-decoration:none;color:rgba(255,255,255,.76)}

/* Inner pages */
.page-hero{background:var(--forest);color:#fff;padding:70px 0 60px}
.page-hero .kicker{color:#e9bf86}
.page-hero h1{font-size:clamp(2.4rem,5vw,4rem);margin:14px 0 0;max-width:900px}
.entry{padding:70px 0 100px}
.entry-content{max-width:760px;margin:auto;font-size:1.02rem;line-height:1.75}
.entry-content img{width:auto;max-width:100%;height:auto;display:inline-block}
.entry-content h2{font-size:clamp(1.9rem,3.5vw,2.6rem);margin-top:42px}
.entry-content h3{font-size:1.5rem;margin-top:32px}
.entry-content a:not(.button):not(.wp-block-button__link){color:var(--clay)}
.entry-content iframe,.entry-content embed,.entry-content video{max-width:100%}
.post-list{display:grid;gap:28px;max-width:760px;margin:auto}
.post-list article{padding-bottom:28px;border-bottom:1px solid var(--line)}
.post-list h2{font-size:2rem;margin:6px 0 10px}
.post-list h2 a{text-decoration:none}
.post-meta{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pagination,.nav-links-posts{max-width:760px;margin:40px auto 0;display:flex;gap:12px;flex-wrap:wrap}
.page-numbers{padding:8px 13px;border:1px solid var(--line);text-decoration:none;font-size:.8rem}
.page-numbers.current{background:var(--forest);color:#fff;border-color:var(--forest)}

@media(max-width:1024px){
 .nav{min-height:76px;padding:16px 0;position:relative}
 .menu-toggle{display:block}
 .nav-links{position:absolute;top:100%;right:0;width:250px;padding:15px 22px;background:var(--forest);display:none;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 25px #0003;z-index:25}
 .nav-links .menu{flex-direction:column;align-items:stretch;gap:0}
 .nav-links.open{display:flex}
 .nav-links a:not(.button){display:block;padding:12px 0}
 .nav-links .button{display:flex;margin:12px 0 4px}
 .landing-grid{gap:32px}
 .landing h1{font-size:clamp(2.6rem,5vw,3.7rem)}
 .review-grid{gap:35px}
 .map-toolbar{align-items:flex-start;flex-direction:column}
}
@media(max-width:1000px){
 .geography-grid,.heritage-grid{gap:30px}
 .press-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:850px){
 .section{padding:84px 0}
 .place-intro{padding:76px 0}
 .experience-grid{gap:12px}
 .exp-body{padding:19px}
 .ritual-grid{grid-template-columns:1fr;gap:35px}
 .stay-grid{gap:34px}
}
@media(max-width:700px){
 .wrap{width:calc(100% - 36px)}
 .brand strong{font-size:1.16rem}
 .landing{padding:22px 0 40px}
 .landing-grid{grid-template-columns:1fr;gap:32px}
 .landing h1{font-size:clamp(2.65rem,9.8vw,3.7rem);line-height:1.09;margin:18px 0 20px}
 .landing p:not([class]){font-size:1rem}
 figure.landing-photo img{height:clamp(280px,95vw,440px)}
 .landing p.landing-location{margin-top:22px}
 .landing-actions{gap:20px}
 .landing-actions .wp-block-button:not(.is-style-text) .wp-block-button__link{padding:13px 18px}
 .gallery{padding:58px 0}
 .saloma-js .wp-block-gallery.is-style-slideshow{height:clamp(300px,64vh,520px)}
 .geography-grid,.heritage-grid{grid-template-columns:1fr;gap:28px}
 .location-map iframe{height:300px}
 .our-story{margin-top:55px;padding-top:50px}
 .press-heading{display:block}
 .place-intro .press-heading p:not(.kicker){margin-top:14px}
 .press-grid{grid-template-columns:repeat(2,1fr)}
 .press-card{padding:17px}
 .press-section{margin-top:45px}
 .press-brand{height:52px}
 .place-intro .press-card p.press-name{font-size:1rem}
 .review-grid{grid-template-columns:1fr;gap:28px}
 .review-carousel{padding:29px 24px}
 .review-summary{font-size:1.9rem}
 .footer-links,.footer-links .menu{gap:16px}
 .site-footer{padding-bottom:38px}
}
@media(max-width:620px){
 .brand-mark{width:37px;height:37px}
 .section{padding:70px 0}
 .section-head{margin-bottom:30px}
 .place-intro{padding:62px 0}
 .gallery-head h2{font-size:2.65rem}
 .gallery-controls{padding-top:12px}
 .gallery-buttons{gap:5px}
 .gallery-buttons button{width:39px;height:39px}
 .experience-grid{grid-template-columns:1fr}
 .experience-card{min-height:0}
 figure.exp-image{height:230px}
 .ritual-row{grid-template-columns:42px 1fr;column-gap:14px;padding:20px 0}
 .ritual-row h3{font-size:1.3rem}
 .stay-grid{grid-template-columns:1fr}
 figure.stay-photo{order:2}
 .stay-copy{order:1}
 .details{grid-template-columns:1fr}
 .final-cta{padding:76px 20px}
 .footer-inner{display:block}
 .footer-links{margin:21px 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
