/*
Theme Name: Poonchira Resorts
Theme URI: https://poonchiraholiday.example
Author: Poonchira Resorts
Description: Custom WordPress theme for Poonchira Resorts / Ilaveezhapoonchira — a hillstation stay, bamboo huts, off-road trekking and camping destination in Thodupuzha, Idukki, Kerala. Built from the resort's original site content and imagery.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: poonchira
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* =========================================================================
   DESIGN TOKENS
   Palette pulled from the Poonchira logo (deep highland-night navy, trail
   gold and hill-green) plus a warm map-paper cream for backgrounds.
   Signature motif: topographic contour lines — this is a valley ringed by
   hillocks ("poonchira"), so contour rules stand in for section dividers.
   ========================================================================= */
:root{
	--navy:        #0c1547;
	--navy-2:      #101d5e;
	--navy-deep:   #070c2e;
	--gold:        #f2c200;
	--gold-2:      #ffdc4a;
	--moss:        #2f8f4e;
	--moss-dark:   #1f6236;
	--cream:       #faf7ee;
	--paper:       #f2ecdb;
	--ink:         #17203a;
	--ink-soft:    #4a5270;
	--line:        #e2dac0;
	--white:       #ffffff;

	--font-display: 'Big Shoulders Display', sans-serif;
	--font-body:    'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	--font-mono:    'JetBrains Mono', ui-monospace, monospace;

	--radius: 6px;
	--container: 1200px;
	--shadow-soft: 0 18px 40px -18px rgba(7,12,46,0.35);
}

/* =========================================================================
   RESET / BASE
   ========================================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
	margin:0;
	font-family: var(--font-body);
	color: var(--ink);
	background: var(--cream);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; height:auto; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.05;
	margin: 0 0 .5em;
	text-transform: uppercase;
	letter-spacing: .01em;
	color: var(--navy);
}
p{ margin: 0 0 1em; }
button{ font-family: inherit; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
	outline: 3px solid var(--gold);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce){
	*{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

.container{ max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.pc-section{ padding: 88px 0; }
.pc-section--tight{ padding: 56px 0; }
.pc-section--navy{ background: var(--navy); color: var(--white); }
.pc-section--navy h2, .pc-section--navy h3{ color: var(--white); }
.pc-section--paper{ background: var(--paper); }

.eyebrow{
	font-family: var(--font-mono);
	font-size: 12.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--moss-dark);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.eyebrow::before{
	content: "";
	width: 26px; height: 2px;
	background: var(--gold);
	display: inline-block;
}
.pc-section--navy .eyebrow{ color: var(--gold-2); }

.section-head{ max-width: 640px; margin-bottom: 44px; }
.section-head h2{ font-size: clamp(30px, 4vw, 46px); margin-top: .3em; }
.section-head p{ color: var(--ink-soft); font-size: 17px; }
.pc-section--navy .section-head p{ color: #c7cce0; }

.btn{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-mono);
	font-weight: 600;
	font-size: 13.5px;
	letter-spacing: .07em;
	text-transform: uppercase;
	padding: 15px 26px;
	border-radius: var(--radius);
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.btn-gold{ background: var(--gold); color: var(--navy-deep); }
.btn-gold:hover{ background: var(--gold-2); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.btn-outline{ border-color: currentColor; color: inherit; background: transparent; }
.btn-outline:hover{ background: rgba(255,255,255,.12); transform: translateY(-2px); }
.btn-navy{ background: var(--navy); color: var(--white); }
.btn-navy:hover{ background: var(--navy-2); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.btn-block{ width: 100%; justify-content: center; }

/* contour-line divider — signature element */
.contour{
	width: 100%;
	line-height: 0;
	position: relative;
	z-index: 2;
}
.contour svg{ width: 100%; height: 60px; display: block; }
.contour--up{ transform: scaleY(-1); }

/* =========================================================================
   TOP BAR + HEADER
   ========================================================================= */
.pc-topbar{
	background: var(--navy-deep);
	color: #cdd3ea;
	font-family: var(--font-mono);
	font-size: 12.5px;
	letter-spacing: .04em;
}
.pc-topbar .container{
	display:flex; align-items:center; justify-content:space-between;
	padding-top: 9px; padding-bottom: 9px; flex-wrap: wrap; gap: 8px;
}
.pc-topbar a{ color: var(--gold-2); }
.pc-topbar a:hover{ text-decoration: underline; }
.pc-topbar__facts{ display:flex; gap: 18px; flex-wrap: wrap; }
.pc-topbar__facts span strong{ color: var(--white); }

.pc-header{
	background: var(--navy);
	position: sticky; top: 0; z-index: 200;
	box-shadow: 0 2px 0 rgba(0,0,0,.08);
}
.pc-header .container{
	display:flex; align-items:center; justify-content:space-between;
	padding-top: 14px; padding-bottom: 14px;
}
.pc-logo img{ height: 58px; width: auto; }
.pc-logo{ display:flex; align-items:center; }

.pc-nav ul{ display:flex; align-items:center; gap: 6px; }
.pc-nav a{
	display:block;
	padding: 10px 16px;
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #dfe3f2;
	border-radius: var(--radius);
	transition: background .15s ease, color .15s ease;
}
.pc-nav a:hover,
.pc-nav .current-menu-item > a{ background: rgba(242,194,0,.14); color: var(--gold-2); }
.pc-header__cta{ display:flex; align-items:center; gap: 14px; }
.pc-header__cta .btn{ padding: 11px 20px; }

.pc-menu-toggle{
	display:none;
	background: transparent; border: 2px solid rgba(255,255,255,.35);
	border-radius: var(--radius); width: 46px; height: 42px;
	position: relative; cursor: pointer;
}
/*.pc-menu-toggle span,
.pc-menu-toggle span::before,
.pc-menu-toggle span::after{
	content:""; position:absolute; left:11px; right:11px; height:2px; background: var(--white);
}
.pc-menu-toggle span{ top: 20px; }
.pc-menu-toggle span::before{ top:-7px; }
.pc-menu-toggle span::after{ top:7px; }*/

.pc-menu-toggle{
    display:none;
    background:transparent;
    border:2px solid rgba(255,255,255,.35);
    border-radius:var(--radius);
    width:46px;
    height:42px;
    position:relative;
    cursor:pointer;
}

.pc-menu-toggle span{
    position:absolute;
    top:50%;
    left:10px;
    width:24px;
    height:3px;
    background:#fff;
    transform:translateY(-50%);
}

.pc-menu-toggle span::before{
    content:"";
    position:absolute;
    left:0;
    top:-8px;
    width:24px;
    height:3px;
    background:#fff;
}

.pc-menu-toggle span::after{
    content:"";
    position:absolute;
    left:0;
    top:8px;
    width:24px;
    height:3px;
    background:#fff;
}

@media (max-width:780px){
    .pc-menu-toggle{
        display:block;
    }
}

/* =========================================================================
   HERO / SLIDER
   ========================================================================= */
.pc-hero{ position: relative; overflow: hidden; background: var(--navy-deep); }
.pc-hero__slides{ position: relative; height: 86vh; min-height: 560px; max-height: 860px; }
.pc-hero__slide{
	position:absolute; inset:0;
	background-size: cover; background-position: center;
	opacity: 0; transition: opacity 1.2s ease;
}
.pc-hero__slide.is-active{ opacity: 1; }
.pc-hero__slide::after{
	content:"";
	position:absolute; inset:0;
	background: linear-gradient(180deg, rgba(7,12,46,.55) 0%, rgba(7,12,46,.35) 40%, rgba(7,12,46,.85) 100%);
}
.pc-hero__content{
	position:absolute; inset:0; z-index: 5;
	display:flex; flex-direction:column; justify-content:center;
	color: var(--white); text-align: center;
	padding: 0 20px;
}
.pc-hero__badge{
	font-family: var(--font-mono); font-size: 13px; letter-spacing:.18em;
	text-transform: uppercase; color: var(--gold-2);
	display:inline-flex; gap:10px; align-items:center; justify-content:center;
	margin: 0 auto 18px;
}
.pc-hero__badge::before, .pc-hero__badge::after{ content:""; width:34px; height:1px; background: rgba(255,220,74,.6); }
.pc-hero h1{
	color: var(--white);
	font-size: clamp(38px, 7vw, 92px);
	max-width: 1000px; margin: 0 auto 18px;
}
.pc-hero__sub{ max-width: 640px; margin: 0 auto 34px; font-size: 18px; color: #e7e9f5; }
.pc-hero__ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.pc-hero__dots{
	position:absolute; z-index:6; bottom: 92px; left:0; right:0;
	display:flex; justify-content:center; gap:10px;
}
.pc-hero__dots button{
	width:9px; height:9px; border-radius:50%;
	background: rgba(255,255,255,.4); border: none; padding:0; cursor:pointer;
}
.pc-hero__dots button.is-active{ background: var(--gold); width: 26px; border-radius: 6px; }

.pc-hero .contour{ position:absolute; left:0; right:0; bottom:-2px; z-index:4; }

/* elevation / distance stat strip — real trail data, not decoration */
.pc-stats{
	background: var(--cream);
	margin-top: -1px;
	position: relative; z-index: 3;
}
.pc-stats .container{
	display:grid; grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
.pc-stat{
	padding: 30px 20px;
	text-align:center;
	border-left: 1px solid var(--line);
}
.pc-stat:first-child{ border-left:none; }
.pc-stat__num{
	font-family: var(--font-mono); font-weight:700; font-size: clamp(24px,3vw,34px);
	color: var(--navy);
}
.pc-stat__label{
	font-family: var(--font-mono); font-size: 11.5px; letter-spacing:.08em;
	text-transform:uppercase; color: var(--ink-soft); margin-top:4px;
}

/* =========================================================================
   INTRO / FEATURE ICONS
   ========================================================================= */
.pc-features{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.pc-feature{
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 34px 28px;
	position: relative;
}
.pc-feature__icon{
	width:54px; height:54px; border-radius: 50%;
	background: var(--navy); color: var(--gold-2);
	display:flex; align-items:center; justify-content:center;
	margin-bottom: 20px;
}
.pc-feature h3{ font-size: 21px; margin-bottom: 10px; }
.pc-feature p{ color: var(--ink-soft); margin:0; font-size: 15px; }

/* =========================================================================
   SPLIT / IMAGE-TEXT
   ========================================================================= */
.pc-split{ display:grid; grid-template-columns: 1fr 1fr; align-items:stretch; }
.pc-split__media{ position:relative; min-height: 420px; background-size:cover; background-position:center; }
.pc-split__text{ padding: 80px 60px; display:flex; flex-direction:column; justify-content:center; }
.pc-split__text .eyebrow{ margin-bottom: 16px; }
.pc-split__text h2{ font-size: clamp(28px,3.4vw,42px); }
.pc-split__text p{ color: var(--ink-soft); font-size: 16.5px; }
.pc-split--reverse .pc-split__media{ order: 2; }

/* =========================================================================
   CARDS — activities / facilities
   ========================================================================= */
.pc-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pc-grid--3{ grid-template-columns: repeat(3, 1fr); }
.pc-card{
	background: var(--white);
	border-radius: var(--radius);
	overflow:hidden;
	border: 1px solid var(--line);
	transition: transform .2s ease, box-shadow .2s ease;
}
.pc-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.pc-card__media{ height: 190px; background-size:cover; background-position:center; position:relative; }
.pc-card__tag{
	position:absolute; top:14px; left:14px;
	background: var(--gold); color: var(--navy-deep);
	font-family: var(--font-mono); font-size:11px; font-weight:700;
	letter-spacing:.06em; text-transform:uppercase;
	padding: 5px 10px; border-radius: 3px;
}
.pc-card__body{ padding: 22px 22px 26px; }
.pc-card__body h3{ font-size: 19px; margin-bottom: 8px; }
.pc-card__body p{ color: var(--ink-soft); font-size: 14.5px; margin-bottom: 0; }

/* =========================================================================
   GALLERY
   ========================================================================= */
.pc-masonry{
	column-count: 4; column-gap: 16px;
}
.pc-masonry__item{
	break-inside: avoid; margin-bottom: 16px;
	border-radius: var(--radius); overflow:hidden;
	position: relative; display:block;
}
.pc-masonry__item img{ width:100%; transition: transform .35s ease; }
.pc-masonry__item:hover img{ transform: scale(1.06); }
.pc-masonry__item::after{
	content: "＋"; position:absolute; inset:0;
	background: rgba(12,21,71,0); color: transparent;
	display:flex; align-items:center; justify-content:center;
	font-size: 28px; transition: all .2s ease;
}
.pc-masonry__item:hover::after{ background: rgba(12,21,71,.35); color: var(--gold-2); }

.pc-lightbox{
	position: fixed; inset:0; z-index: 999;
	background: rgba(7,12,46,.94);
	display:none; align-items:center; justify-content:center; padding: 40px;
}
.pc-lightbox.is-open{ display:flex; }
.pc-lightbox img{ max-width: 90vw; max-height: 85vh; border-radius: 4px; }
.pc-lightbox__close{
	position:absolute; top:24px; right:32px;
	background:none; border:none; color: var(--white); font-size: 32px; cursor:pointer;
}
.pc-lightbox__nav{
	position:absolute; top:50%; transform:translateY(-50%);
	background: rgba(255,255,255,.1); border:none; color:var(--white);
	width:52px; height:52px; border-radius:50%; font-size:22px; cursor:pointer;
}
.pc-lightbox__nav--prev{ left: 24px; }
.pc-lightbox__nav--next{ right: 24px; }

/* =========================================================================
   TESTIMONIAL / QUOTE STRIP
   ========================================================================= */
.pc-quote{
	max-width: 820px; margin: 0 auto; text-align:center;
}
.pc-quote blockquote{
	font-family: var(--font-display); font-size: clamp(24px,3vw,36px);
	line-height:1.3; text-transform:none; color: var(--white); margin:0 0 20px;
}
.pc-quote cite{ font-family: var(--font-mono); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color: var(--gold-2); font-style:normal; }

/* =========================================================================
   CTA BAND
   ========================================================================= */
.pc-cta{
	background: var(--moss-dark);
	color: var(--white);
	text-align:center;
}
.pc-cta h2{ color: var(--white); font-size: clamp(28px,4vw,46px); }
.pc-cta p{ color: #dcead9; max-width: 560px; margin: 0 auto 28px; }

/* =========================================================================
   FORMS (contact / booking)
   ========================================================================= */
.pc-form{ background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 40px; }
.pc-form__row{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pc-field{ margin-bottom: 20px; }
.pc-field label{
	display:block; font-family: var(--font-mono); font-size: 12px; letter-spacing:.06em;
	text-transform:uppercase; color: var(--ink-soft); margin-bottom: 8px;
}
.pc-field input,
.pc-field textarea,
.pc-field select{
	width:100%; padding: 13px 15px;
	border: 1.5px solid var(--line); border-radius: 4px;
	font-family: var(--font-body); font-size:15px; background: var(--cream);
	color: var(--ink);
}
.pc-field textarea{ min-height: 130px; resize: vertical; }
.pc-field input:focus, .pc-field textarea:focus, .pc-field select:focus{ border-color: var(--gold); background: var(--white); }
.pc-hp{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }

.pc-notice{
	padding: 16px 20px; border-radius: var(--radius); margin-bottom: 26px;
	font-size: 15px; font-weight: 500;
}
.pc-notice--success{ background: #e6f4ea; color: var(--moss-dark); border:1px solid #bfe3c9; }
.pc-notice--error{ background: #fbe9e7; color: #9c3626; border:1px solid #f3c6bf; }
.pc-notice--warn{ background: #fff6df; color: #7a5a00; border:1px solid #f0deA0; }

/* =========================================================================
   CONTACT DETAILS / MAP
   ========================================================================= */
.pc-contact-info{ display:flex; flex-direction:column; gap: 26px; }
.pc-info-card{
	background: var(--navy); color: var(--white);
	border-radius: var(--radius); padding: 28px;
}
.pc-info-card h3{ color: var(--gold-2); font-size:16px; margin-bottom: 10px; }
.pc-info-card p, .pc-info-card a{ color:#dfe3f2; font-size:20px; }
.pc-info-card a:hover{ color: var(--gold-2); }
.pc-map{ border-radius: var(--radius); overflow:hidden; border: 1px solid var(--line); }
.pc-map iframe{ width:100%; height: 320px; border:0; display:block; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.pc-footer{ background: var(--navy-deep); color: #b9beda; }
.pc-footer .contour{ margin-top: -1px; }
.pc-footer__top{ padding: 70px 0 40px; }
.pc-footer__grid{ display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 30px; }
.pc-footer h4{
	color: var(--white); font-family: var(--font-mono); font-size: 13px;
	letter-spacing:.08em; text-transform:uppercase; margin-bottom: 18px;
}
.pc-footer__about img{ height: 46px; margin-bottom: 16px; }
.pc-footer__about p{ font-size: 14px; color: #9aa0c2; }
.pc-footer ul li{ margin-bottom: 10px; font-size: 14.5px; }
.pc-footer ul li a:hover{ color: var(--gold-2); }
.pc-footer__social{ display:flex; gap:10px; margin-top: 18px; }
.pc-footer__social a{
	width:36px; height:36px; border-radius:50%; border:1px solid #2c355e;
	display:flex; align-items:center; justify-content:center; font-size:14px;
}
.pc-footer__social a:hover{ background: var(--gold); color: var(--navy-deep); border-color: var(--gold); }
.pc-footer__bottom{
	border-top: 1px solid #1c2452;
	padding: 22px 0; font-size: 13px;
	display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
	color: #767ca0;
}

/* =========================================================================
   PAGE HEADER (interior pages)
   ========================================================================= */
.pc-pageheader{
	background: var(--navy);
	background-size: cover; background-position: center;
	position: relative; padding: 130px 0 70px; text-align:center; overflow:hidden;
}
.pc-pageheader::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(7,12,46,.75), rgba(7,12,46,.55)); }
.pc-pageheader .container{ position:relative; z-index:2; }
.pc-pageheader .eyebrow{ color: var(--gold-2); justify-content:center; }
.pc-pageheader h1{ color: var(--white); font-size: clamp(34px,5vw,58px); margin-top:.3em; }
.pc-pageheader p{ color:#dfe3f2; max-width:600px; margin: 10px auto 0; }
.pc-pageheader .contour{ position:absolute; left:0; right:0; bottom:-1px; }

/* =========================================================================
   MISC content pages
   ========================================================================= */
.pc-prose{ max-width: 780px; }
.pc-prose p{ color: var(--ink-soft); font-size: 17px; }
.pc-prose h2{ font-size: 28px; margin-top: 1.4em; }

.pc-checklist{ display:grid; grid-template-columns: 1fr 1fr; gap: 10px 30px; }
.pc-checklist li{
	position:relative; padding-left: 26px; font-size:15px; color: var(--ink-soft);
}
.pc-checklist li::before{
	content:"✓"; position:absolute; left:0; top:0; color: var(--moss); font-weight:700;
}
.pc-notlist li{
	position:relative; padding-left:26px; font-size:15px; color: var(--ink-soft);
}
.pc-notlist li::before{ content:"✕"; position:absolute; left:0; top:0; color:#c1442f; font-weight:700; }

.pc-people{ display:grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.pc-person{ background: var(--white); border:1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.pc-person h4{ font-family: var(--font-body); text-transform:none; font-size:16px; color:var(--navy); margin-bottom:8px; font-weight:700; }
.pc-person a{ display:block; font-family: var(--font-mono); font-size:14px; color: var(--ink-soft); margin-bottom:4px; }
.pc-person a:hover{ color: var(--moss-dark); }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px){
	.pc-features{ grid-template-columns: 1fr 1fr; }
	.pc-grid{ grid-template-columns: repeat(2,1fr); }
	.pc-grid--3{ grid-template-columns: repeat(2,1fr); }
	.pc-split{ grid-template-columns: 1fr; }
	.pc-split__media{ min-height: 320px; order: -1 !important; }
	.pc-split__text{ padding: 56px 36px; }
	.pc-footer__grid{ grid-template-columns: 1fr 1fr; }
	.pc-masonry{ column-count: 3; }
	.pc-people{ grid-template-columns: repeat(2,1fr); }
	.pc-stats .container{ grid-template-columns: repeat(2,1fr); }
	.pc-stat{ border-left:none; border-top:1px solid var(--line); }
	.pc-stat:nth-child(odd){ border-left:none; }
}

@media (max-width: 780px){
	.pc-nav{
		position: fixed; top: 0; right: 0; bottom:0; width: 78%; max-width: 320px;
		background: var(--navy); transform: translateX(100%); transition: transform .25s ease;
		padding: 100px 28px 28px; overflow-y:auto; z-index: 150;
	}
	.pc-nav.is-open{ transform: translateX(0); }
	.pc-nav ul{ flex-direction:column; align-items:flex-start; gap:2px; }
	.pc-nav a{ padding: 14px 10px; width:100%; }
	.pc-menu-toggle{ display:block; }
	.pc-header__cta .btn span{ display:none; }
	.pc-features{ grid-template-columns: 1fr; }
	.pc-grid{ grid-template-columns: 1fr; }
	.pc-grid--3{ grid-template-columns: 1fr; }
	.pc-form__row{ grid-template-columns: 1fr; }
	.pc-footer__grid{ grid-template-columns: 1fr 1fr; }
	.pc-masonry{ column-count: 2; }
	.pc-people{ grid-template-columns: 1fr; }
	.pc-topbar__facts{ display:none; }
	.pc-hero__ctas{ flex-direction:column; align-items:stretch; }
	.pc-hero__ctas .btn{ justify-content:center; }
}

@media (max-width: 480px){
	.pc-masonry{ column-count: 1; }
	.pc-section{ padding: 60px 0; }
	.pc-form{ padding: 26px; }
}
