/*
Theme Name: Calamus Rotana
Theme URI: https://calamusrotana.co.id
Author: REXAFLUX
Author URI: https://rexaflux.com
Description: Custom theme for PT. Calamus Rotana Cattail — training & consulting provider. Built by REXAFLUX.com. All sections (Hero, Programs, Schedule, Testimonials, Gallery, FAQ, Team, Clients) are editable from wp-admin.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: calamus-rotana
*/

/* Base design tokens (mirrors the approved design) */
:root{
  --cr-green-dark: #0F3D22;
  --cr-green: #14532D;
  --cr-green-text: #16281F;
  --cr-gold: #E3A73B;
  --cr-gold-hover: #cf9430;
  --cr-bg-light: #F4F8F5;
  --cr-border: #E3E9E4;
  --cr-text-muted: #3d4a42;
  --cr-text-faint: #8a9490;
  --cr-radius: 8px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--cr-green-text);
  background:#fff;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{text-decoration:none; color:inherit;}
button{font-family:inherit;}
.cr-container{max-width:1160px; margin:0 auto;}
.cr-visually-hidden{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:-999px; top:0; background:#fff; color:#000; padding:10px 16px; z-index:9999;}
.skip-link:focus{left:8px; top:8px;}

/* generic hover helpers (used since inline styles are avoided for CSP-friendliness) */
.cr-eyebrow{display:inline-block; color:var(--cr-green); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px;}
.cr-h2{font-family:'Inter',sans-serif; letter-spacing:-0.025em; font-size:28px; color:var(--cr-green-text); margin:0;}
.cr-section{padding:80px 48px;}
@media (max-width:640px){ .cr-section{padding:56px 20px;} }

/* ===== Header ===== */
.cr-topbar{background:var(--cr-green-dark); color:#cfe3d5; padding:8px 24px; display:flex; justify-content:space-between; align-items:center; font-size:11.5px; flex-wrap:wrap; gap:8px;}
.cr-topbar-left{display:flex; gap:20px; align-items:center; flex-wrap:wrap;}
.cr-topbar-left span{display:flex; align-items:center; gap:6px;}
.cr-topbar-social{display:flex; gap:16px; font-weight:600; letter-spacing:0.03em;}
.cr-topbar-social a{color:#cfe3d5;}
.cr-topbar-social a:hover{color:var(--cr-gold);}

.cr-header{position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 24px; transition:box-shadow .25s ease;}
.cr-header.is-command{background:rgba(20,83,45,.94); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.08);}
.cr-header.is-scrolled{box-shadow:0 8px 24px -12px rgba(16,24,20,.18);}
.cr-brand{display:flex; align-items:center; gap:9px; flex-shrink:0;}
.cr-brand-mark{width:38px; height:38px; border-radius:8px; background:var(--cr-green); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:17px; flex-shrink:0; letter-spacing:-.025em; overflow:hidden;}
.cr-header.is-command .cr-brand-mark{background:var(--cr-gold); color:var(--cr-green);}
/* Real uploaded logo (a wide wordmark, not a square icon): show it at full
   size/aspect ratio, never cropped, no colored badge behind it. */
.cr-brand.has-logo .cr-brand-mark{width:auto; height:44px; border-radius:0; background:none; overflow:visible;}
.cr-header.is-command .cr-brand.has-logo .cr-brand-mark{background:none;}
.cr-brand-name{font-weight:700; font-size:15px; color:var(--cr-green); line-height:1.15;}
.cr-header.is-command .cr-brand-name{color:#fff;}
.cr-brand-tag{font-size:9.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#9aa39d;}

.cr-nav{display:flex; align-items:center; gap:20px; font-size:12.5px; font-weight:600; white-space:nowrap;}
.cr-nav > a{color:var(--cr-green-text); padding:8px 2px; border-bottom:2px solid transparent;}
.cr-nav > a:hover{border-bottom-color:var(--cr-gold);}
.cr-header.is-command .cr-nav > a{color:#fff;}
.cr-nav .cr-cta{background:var(--cr-green); color:#fff!important; padding:10px 20px; border-radius:6px; flex-shrink:0; transition:background .15s ease,box-shadow .15s ease; box-shadow:0 4px 12px -4px rgba(20,83,45,.4); border-bottom:none!important;}
.cr-nav .cr-cta:hover{background:var(--cr-green-dark);}
.cr-header.is-command .cr-nav .cr-cta{background:var(--cr-gold); color:var(--cr-green-text)!important;}

.cr-dropdown{position:relative;}
.cr-dropdown > a{display:flex; align-items:center; gap:5px;}
.cr-dropdown-chevron{font-size:9px; transition:transform .2s ease; display:inline-block; padding:8px 4px; margin:-8px -4px; cursor:pointer;}
.cr-dropdown-menu{position:absolute; top:calc(100% + 4px); left:-14px; background:#fff; border-radius:10px; padding:8px; width:180px; box-shadow:0 16px 32px rgba(16,24,20,.12); border:1px solid var(--cr-border); z-index:60; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .16s ease, transform .16s ease;}
.cr-dropdown-menu.wide{width:260px; padding:10px;}
.cr-dropdown.is-open .cr-dropdown-menu,.cr-dropdown:focus-within .cr-dropdown-menu{opacity:1; visibility:visible; transform:translateY(0);}
.cr-dropdown.is-open .cr-dropdown-chevron{transform:rotate(180deg);}
.cr-dropdown-menu a{display:block; color:var(--cr-green-text); font-size:13px; font-weight:500; padding:9px 12px; border-radius:6px;}
.cr-dropdown-menu a:hover{background:var(--cr-bg-light); color:var(--cr-green);}
.cr-dropdown-menu .cr-menu-title{font-size:12.5px; font-weight:700; color:var(--cr-green-text); padding:6px 12px;}
.cr-dropdown-menu .cr-menu-divider{border-top:1px solid #eee; margin:6px 0;}

.cr-menu-toggle{width:44px; height:44px; border-radius:6px; border:1px solid #E3E9E4; background:#fff; color:var(--cr-green); font-size:18px; cursor:pointer; flex-shrink:0; display:none;}
.cr-header.is-command .cr-menu-toggle{border-color:rgba(255,255,255,.3); background:transparent; color:#fff;}
.cr-mobile-panel{background:#fff; overflow:hidden; max-height:0; transition:max-height .25s ease;}
.cr-header.is-command ~ .cr-mobile-panel{background:var(--cr-green-dark);}
.cr-mobile-panel.is-open{max-height:480px;}
.cr-mobile-panel-inner{border-bottom:1px solid #eee; padding:10px 20px 20px; display:flex; flex-direction:column;}
.cr-mobile-panel-inner a{color:var(--cr-green-text); font-weight:600; font-size:15px; padding:14px 6px; border-bottom:1px solid #F0F3F1;}
.cr-mobile-panel-inner a.cr-cta{background:var(--cr-green); color:#fff; font-weight:700; text-align:center; border-radius:6px; margin-top:14px; border-bottom:none;}

@media (max-width:899px){
  .cr-nav{display:none;}
  .cr-menu-toggle{display:block;}
}

/* ===== Hero ===== */
.cr-hero-split{position:relative; background:var(--cr-green); padding:64px 48px 48px;}
.cr-hero-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; max-width:1160px; margin:0 auto 40px; text-align:center;}
.cr-hero-stat-value{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:clamp(26px,4vw,34px); font-weight:700; color:var(--cr-gold);}
.cr-hero-stat-label{font-size:13.5px; color:#d9e6dd; margin-top:4px;}
.cr-hero-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); align-items:center; gap:56px; max-width:1160px; margin:0 auto;}
.cr-badge{display:inline-block; background:rgba(227,167,59,.15); color:var(--cr-gold); font-size:12.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:7px 16px; border-radius:20px; margin-bottom:22px;}
.cr-hero-title{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:clamp(30px,4.5vw,44px); line-height:1.15; color:#fff; margin:0 0 20px;}
.cr-hero-desc{font-size:16px; line-height:1.7; color:#d9e6dd; max-width:500px; margin:0 0 32px;}
.cr-btn-row{display:flex; gap:16px; flex-wrap:wrap;}
.cr-btn-primary{background:var(--cr-gold); color:var(--cr-green-text); padding:15px 30px; border-radius:6px; font-weight:700; font-size:15px; transition:background .2s ease,transform .2s ease; border:none; cursor:pointer; display:inline-block;}
.cr-btn-primary:hover{background:var(--cr-gold-hover); transform:translateY(-1px);}
.cr-btn-outline{border:1.5px solid #fff; color:#fff; padding:15px 30px; border-radius:6px; font-weight:600; font-size:15px; transition:background .2s ease; display:inline-block;}
.cr-btn-outline:hover{background:rgba(255,255,255,.1);}
.cr-hero-media{width:100%; height:360px; border-radius:var(--cr-radius); overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.2);}
.cr-hero-media img{width:100%; height:100%; object-fit:cover;}

.cr-hero-statement{position:relative; min-height:560px; display:flex; align-items:center; justify-content:center; text-align:center;}
.cr-hero-statement-bg{position:absolute; inset:0;}
.cr-hero-statement-bg img{width:100%; height:100%; object-fit:cover;}
.cr-hero-statement-overlay{position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,83,45,.88),rgba(15,61,34,.94)); pointer-events:none;}
.cr-hero-statement-inner{position:relative; max-width:760px; margin:0 auto; padding:100px 32px;}
.cr-hero-statement-title{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:clamp(32px,5.5vw,52px); line-height:1.15; color:#fff; margin:0 0 22px;}
.cr-hero-statement-desc{font-size:17px; line-height:1.75; color:#e3ede6; max-width:600px; margin:0 auto 36px;}
.cr-hero-statement-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:24px;}
.cr-hero-statement-stats .cr-hero-stat-item{border-left:1px solid rgba(255,255,255,.25); padding-left:20px; text-align:left;}
.cr-hero-statement-stats .cr-hero-stat-value{font-size:30px;}

/* Keep the 3 hero stats side-by-side (left to right) on mobile instead of
   stacking into 3 full-width rows -- auto-fit/minmax alone can't fit 3
   columns under ~540px, so mobile needs its own tighter 3-col rule. */
@media (max-width:540px){
  .cr-hero-stats{grid-template-columns:repeat(3,1fr); gap:8px;}
  .cr-hero-stat-value{font-size:20px;}
  .cr-hero-stat-label{font-size:11px;}
  .cr-hero-statement-stats{grid-template-columns:repeat(3,1fr); gap:10px;}
  .cr-hero-statement-stats .cr-hero-stat-item{padding-left:10px;}
  .cr-hero-statement-stats .cr-hero-stat-value{font-size:22px;}
  .cr-hero-statement-stats .cr-hero-stat-label{font-size:11px;}
}

/* ===== Trust / Clients ===== */
.cr-trust{padding:64px 48px 72px; text-align:center; background:#fff;}
.cr-trust-title{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:28px; color:var(--cr-green-text); margin:0 0 14px;}
.cr-trust-desc{font-size:14.5px; line-height:1.7; color:var(--cr-text-muted); max-width:560px; margin:0 auto 32px;}
.cr-accred{display:inline-flex; align-items:center; gap:14px; background:var(--cr-bg-light); border:1px solid var(--cr-border); border-radius:10px; padding:12px 20px; margin-bottom:44px; flex-wrap:wrap; justify-content:center;}
.cr-accred-label{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cr-text-muted);}
.cr-accred-divider{width:1px; height:22px; background:#dbe4dd;}
.cr-accred img{width:56px; height:36px; object-fit:contain;}
.cr-client-group{margin-bottom:36px;}
.cr-client-group-name{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--cr-text-faint); margin-bottom:18px;}
.cr-client-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:12px; max-width:1160px; margin:0 auto;}
.cr-client-chip{width:96px; height:60px; background:var(--cr-bg-light); border-radius:10px; display:flex; align-items:center; justify-content:center; padding:6px;}
.cr-client-chip img{max-width:100%; max-height:100%; object-fit:contain;}
.cr-client-chip span{font-size:10.5px; font-weight:600; color:var(--cr-text-muted); text-align:center; line-height:1.3;}
.cr-dots{display:flex; justify-content:center; gap:8px;}
.cr-dot{width:9px; height:9px; border-radius:50%; background:var(--cr-border);}
.cr-dot.is-active{background:var(--cr-green);}

/* ===== Schedule ===== */
.cr-schedule{padding:72px 48px; background:var(--cr-bg-light);}
.cr-schedule-inner{max-width:1000px; margin:0 auto;}
.cr-schedule-head{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px; margin-bottom:40px; border-bottom:2px solid var(--cr-green); padding-bottom:20px;}
.cr-schedule-head a{font-size:13.5px; font-weight:700; color:var(--cr-green); white-space:nowrap;}
.cr-schedule-item{display:flex; gap:28px; align-items:flex-start; padding:22px 0; border-bottom:1px solid var(--cr-border);}
.cr-schedule-date{width:110px; flex-shrink:0;}
.cr-schedule-month{font-size:12.5px; font-weight:700; color:var(--cr-green);}
.cr-schedule-dates{font-size:20px; font-weight:700; color:var(--cr-green-text);}
.cr-schedule-tag{display:inline-block; background:#e7f0e9; color:var(--cr-green); font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:5px; margin-bottom:8px;}
.cr-schedule-title{font-size:16.5px; font-weight:700; color:var(--cr-green-text); line-height:1.4;}

/* ===== About ===== */
.cr-about{padding:80px 48px; display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:64px; align-items:center; background:var(--cr-bg-light);}
.cr-about-media{width:100%; height:360px; border-radius:var(--cr-radius); overflow:hidden;}
.cr-about-media img{width:100%; height:100%; object-fit:cover;}
.cr-about-title{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:34px; color:var(--cr-green-text); margin:0 0 20px; line-height:1.2;}
.cr-about-desc{font-size:15.5px; line-height:1.8; color:var(--cr-text-muted); margin:0 0 24px;}
.cr-about-block{margin-bottom:16px;}
.cr-about-block-title{font-size:14.5px; font-weight:700; color:var(--cr-green); margin-bottom:4px;}
.cr-about-block p{font-size:14px; line-height:1.7; color:var(--cr-text-muted); margin:0;}

/* ===== Services / Programs ===== */
.cr-services{padding:80px 48px; background:#fff;}
.cr-services-head{text-align:center; max-width:640px; margin:0 auto 36px;}
.cr-services-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:34px; color:var(--cr-green-text); margin:0 0 16px;}
.cr-tabs{display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:40px;}
.cr-tab{border:1.5px solid var(--cr-green); background:#fff; color:var(--cr-green); padding:9px 18px; border-radius:20px; font-size:13px; font-weight:600; cursor:pointer;}
.cr-tab.is-active{background:var(--cr-green); color:#fff;}
.cr-program-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:22px; max-width:1160px; margin:0 auto 28px;}
.cr-program-card{background:var(--cr-bg-light); border-radius:var(--cr-radius); padding:26px 22px; transition:box-shadow .2s ease,transform .2s ease; border:1px solid transparent;}
.cr-program-card:hover{box-shadow:0 8px 20px rgba(16,24,20,.08); transform:translateY(-2px); border-color:var(--cr-border);}
.cr-program-mono{width:40px; height:40px; border-radius:6px; background:var(--cr-green); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--cr-gold); margin-bottom:18px;}
.cr-program-cat{font-size:11.5px; font-weight:700; color:var(--cr-green); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px;}
.cr-program-title{font-size:15.5px; font-weight:700; color:var(--cr-green-text); line-height:1.4;}

/* ===== Why Us ===== */
.cr-why{padding:80px 48px; background:var(--cr-green);}
.cr-why-head{text-align:center; max-width:640px; margin:0 auto 48px;}
.cr-why-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:34px; color:#fff; margin:0;}
.cr-why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:1160px; margin:0 auto;}
@media (max-width:800px){ .cr-why-grid{grid-template-columns:1fr;} }
.cr-why-item{text-align:center;}
.cr-why-num{width:56px; height:56px; border-radius:50%; background:var(--cr-gold); color:var(--cr-green-text); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:22px; margin:0 auto 20px;}
.cr-why-title{font-size:17px; font-weight:700; color:#fff; margin-bottom:10px;}
.cr-why-desc{font-size:14px; line-height:1.7; color:#c9dccf;}

/* ===== Trainers ===== */
.cr-trainers{padding:80px 48px; background:#fff;}
.cr-trainers-head{text-align:center; max-width:640px; margin:0 auto 48px;}
.cr-trainers-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:28px; color:var(--cr-green-text); margin:0;}
.cr-trainer-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:24px; max-width:1160px; margin:0 auto;}
.cr-trainer-card{border:1px solid #EAEFEB; border-radius:var(--cr-radius); overflow:hidden; transition:box-shadow .2s ease,transform .2s ease;}
.cr-trainer-card:hover{box-shadow:0 8px 20px rgba(16,24,20,.08); transform:translateY(-2px);}
.cr-trainer-photo{height:190px; background:var(--cr-bg-light);}
.cr-trainer-photo img{width:100%; height:100%; object-fit:cover;}
.cr-trainer-body{padding:18px 20px;}
.cr-trainer-name{font-size:15.5px; font-weight:700; color:var(--cr-green-text); margin-bottom:3px;}
.cr-trainer-title{font-size:12.5px; color:var(--cr-green); font-weight:600; margin-bottom:8px;}
.cr-trainer-cred{font-size:12.5px; line-height:1.6; color:#6b756e;}

/* ===== Testimonials ===== */
.cr-testimonials{padding:80px 48px; background:var(--cr-bg-light);}
.cr-testimonials-head{text-align:center; max-width:640px; margin:0 auto 44px;}
.cr-testimonials-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:28px; color:var(--cr-green-text); margin:0;}
.cr-testimonial-row{display:flex; align-items:center; justify-content:center; gap:20px; max-width:1160px; margin:0 auto;}
.cr-testimonial-nav{width:40px; height:40px; border-radius:50%; border:1.5px solid var(--cr-green); background:#fff; color:var(--cr-green); font-size:16px; cursor:pointer; flex-shrink:0;}
.cr-testimonial-track{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; flex:1; min-width:0;}
.cr-testimonial-card{background:#fff; border-radius:var(--cr-radius); padding:30px; box-shadow:0 1px 3px rgba(16,24,20,.05); border:1px solid #EAEFEB;}
.cr-testimonial-stars{color:var(--cr-gold); font-size:17px; letter-spacing:2px; margin-bottom:14px;}
.cr-testimonial-quote{font-size:14.5px; line-height:1.75; color:var(--cr-text-muted); margin:0 0 22px; font-style:italic;}
.cr-testimonial-person{display:flex; align-items:center; gap:12px;}
.cr-testimonial-avatar{width:42px; height:42px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--cr-green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700;}
.cr-testimonial-avatar img{width:100%; height:100%; object-fit:cover;}
.cr-testimonial-name{font-size:14px; font-weight:700; color:var(--cr-green-text);}
.cr-testimonial-role{font-size:12px; color:var(--cr-green);}

/* On mobile the card runs full-width, which used to leave the prev/next
   circles awkwardly pinned to the row's vertical center against a much
   taller card. Re-lay-out as: card on top, both nav buttons centered in
   their own row underneath -- a standard, tidy mobile carousel pattern. */
@media (max-width:680px){
  .cr-testimonial-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas:"track track" "prev next";
    gap:18px;
    justify-items:center;
  }
  .cr-testimonial-track{grid-area:track; width:100%;}
  #crTestimonialPrev{grid-area:prev; justify-self:end;}
  #crTestimonialNext{grid-area:next; justify-self:start;}
}

/* ===== Gallery ===== */
.cr-gallery{padding:80px 0; background:#fff;}
.cr-gallery-head{max-width:1160px; margin:0 auto 28px; padding:0 48px; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px;}
.cr-gallery-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:28px; color:var(--cr-green-text); margin:0;}
.cr-gallery-nav{display:flex; gap:10px; flex-shrink:0;}
.cr-gallery-arrow{width:40px; height:40px; border-radius:50%; border:1.5px solid var(--cr-green); background:#fff; color:var(--cr-green); font-size:16px; cursor:pointer; flex-shrink:0; transition:background .15s ease,color .15s ease,box-shadow .15s ease;}
.cr-gallery-arrow:hover{background:var(--cr-green); color:#fff; box-shadow:0 4px 10px -2px rgba(20,83,45,.35);}
.cr-gallery-arrow:active{transform:translateY(1px);}
.cr-gallery-track{
	display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth;
	padding:4px 48px 16px; -webkit-overflow-scrolling:touch;
	/* Permanent right-edge fade -- a constant "there's more, keep scrolling"
	   cue that doesn't depend on tracking scroll position in JS. */
	mask-image:linear-gradient(90deg,#000 0,#000 94%,transparent 100%);
	-webkit-mask-image:linear-gradient(90deg,#000 0,#000 94%,transparent 100%);
}
.cr-gallery-track::-webkit-scrollbar{height:6px;}
.cr-gallery-track::-webkit-scrollbar-thumb{background:var(--cr-border); border-radius:8px;}
.cr-gallery-track::-webkit-scrollbar-track{background:transparent;}

/* Uniform "photo card" -- same treatment as .cr-testimonial-card (white
   body, 1px border, soft shadow, rounded corners) and, crucially, the same
   fixed canvas size for every photo regardless of its original aspect
   ratio, so the row reads as one tidy set instead of a jumble of sizes. */
.cr-gallery-item{flex:0 0 auto; width:280px; border-radius:var(--cr-radius); overflow:hidden; position:relative; cursor:pointer; scroll-snap-align:start; background:#fff; border:1px solid #EAEFEB; box-shadow:0 1px 3px rgba(16,24,20,.05); transition:box-shadow .25s ease,transform .25s ease;}
.cr-gallery-item:hover{box-shadow:0 14px 28px -10px rgba(16,24,20,.22); transform:translateY(-3px);}
.cr-gallery-photo{position:relative; width:100%; height:210px; background:var(--cr-bg-light); overflow:hidden;}
.cr-gallery-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
.cr-gallery-item:hover .cr-gallery-photo img{transform:scale(1.06);}
.cr-gallery-zoom{position:absolute; right:10px; bottom:10px; width:30px; height:30px; border-radius:50%; background:rgba(15,20,17,.55); color:#fff; font-size:14px; display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(4px); transition:opacity .2s ease,transform .2s ease;}
.cr-gallery-item:hover .cr-gallery-zoom{opacity:1; transform:translateY(0);}
.cr-gallery-caption{padding:12px 14px; font-size:12.5px; font-weight:600; color:var(--cr-green-text); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
@media (max-width:640px){
	.cr-gallery-head{padding:0 20px;}
	.cr-gallery-track{padding:4px 20px 14px; gap:12px; mask-image:linear-gradient(90deg,#000 0,#000 90%,transparent 100%); -webkit-mask-image:linear-gradient(90deg,#000 0,#000 90%,transparent 100%);}
	.cr-gallery-item{width:210px;}
	.cr-gallery-photo{height:160px;}
	.cr-gallery-caption{font-size:12px; padding:10px 12px;}
	.cr-gallery-arrow{width:36px; height:36px; font-size:14px;}
}
.cr-gallery-hint{max-width:1160px; margin:0 auto; padding:0 48px; font-size:12.5px; color:var(--cr-text-faint);}
@media (max-width:640px){ .cr-gallery-hint{padding:0 20px;} }

/* ===== Social ===== */
.cr-social{padding:80px 48px; background:var(--cr-bg-light);}
.cr-social-head{display:flex; justify-content:space-between; align-items:center; max-width:1160px; margin:0 auto 32px; flex-wrap:wrap; gap:16px;}
.cr-social-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:30px; color:var(--cr-green-text); margin:0;}
.cr-social-tabs{display:flex; gap:20px; flex-wrap:wrap;}
.cr-social-tab{background:none; border:none; padding:6px 2px; font-size:13.5px; font-weight:600; cursor:pointer; color:var(--cr-text-faint); border-bottom:2px solid transparent;}
.cr-social-tab.is-active{color:var(--cr-green); border-bottom-color:var(--cr-gold);}
.cr-social-platform-label{font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-text-faint); max-width:1160px; margin:0 auto 14px;}
.cr-social-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; max-width:1160px; margin:0 auto;}
.cr-social-embed{height:320px; border-radius:var(--cr-radius); overflow:hidden; background:#16281F;}
.cr-social-embed iframe,.cr-social-embed img{width:100%; height:100%; border:0; object-fit:cover;}
.cr-social-fallback{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; width:100%; height:100%; background:linear-gradient(160deg,var(--cr-green),var(--cr-green-dark)); color:#fff; text-align:center; padding:24px;}
.cr-social-fallback-title{font-size:14.5px; font-weight:600; color:#fff; max-width:280px;}
.cr-social-fallback-cta{display:inline-block; background:var(--cr-gold); color:var(--cr-green-text); font-size:12.5px; font-weight:700; padding:9px 18px; border-radius:20px; transition:background .15s ease;}
.cr-social-fallback:hover .cr-social-fallback-cta{background:var(--cr-gold-hover);}

/* ===== FAQ ===== */
.cr-faq{padding:80px 48px; background:var(--cr-bg-light);}
.cr-faq-head{text-align:center; max-width:640px; margin:0 auto 44px;}
.cr-faq-head h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:28px; color:var(--cr-green-text); margin:0;}
.cr-faq-list{max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:10px;}
.cr-faq-item{background:#fff; border:1px solid #EAEFEB; border-radius:var(--cr-radius); overflow:hidden;}
.cr-faq-question{width:100%; text-align:left; background:none; border:none; padding:18px 22px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-size:14.5px; font-weight:600; color:var(--cr-green-text);}
.cr-faq-symbol{color:var(--cr-green); font-size:16px; flex-shrink:0; margin-left:16px;}
.cr-faq-answer{padding:0 22px 20px; font-size:14px; line-height:1.7; color:var(--cr-text-muted); display:none;}
.cr-faq-item.is-open .cr-faq-answer{display:block;}

/* ===== Contact ===== */
.cr-contact{padding:80px 48px; display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:56px; align-items:start; background:#fff;}
.cr-contact-form-wrap{background:var(--cr-bg-light); border-radius:var(--cr-radius); padding:36px;}
.cr-contact-form-wrap h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:30px; color:var(--cr-green-text); margin:0 0 24px;}
.cr-field{display:flex; flex-direction:column; gap:16px;}
.cr-field label{font-size:13px; font-weight:600; color:var(--cr-green-text); margin-bottom:6px; display:block;}
.cr-field input,.cr-field textarea{width:100%; padding:12px 14px; border:1px solid #ccd8cf; border-radius:8px; font-size:14.5px; font-family:'Inter',sans-serif; background:#fff;}
.cr-field textarea{resize:vertical;}
.cr-submit{background:var(--cr-green); color:#fff; border:none; padding:15px; border-radius:6px; font-weight:700; font-size:15px; cursor:pointer; margin-top:6px; transition:background .2s ease;}
.cr-submit:hover{background:var(--cr-green-dark);}
.cr-submit:disabled{opacity:.6; cursor:not-allowed;}
.cr-form-msg{margin-top:14px; font-size:13.5px; font-weight:600; padding:10px 14px; border-radius:6px; display:none;}
.cr-form-msg.is-success{display:block; background:#e7f0e9; color:var(--cr-green);}
.cr-form-msg.is-error{display:block; background:#fdeceb; color:#b3261e;}
.cr-honeypot{position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden;}
.cr-contact-side h3{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:22px; color:var(--cr-green-text); margin:0 0 20px;}
.cr-contact-item{border-left:2px solid var(--cr-gold); padding-left:14px; margin-bottom:18px;}
.cr-contact-label{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-text-faint); margin-bottom:3px;}
.cr-contact-value{font-size:15px; font-weight:600; color:var(--cr-green-text); max-width:320px;}
.cr-map{width:100%; height:240px; border-radius:var(--cr-radius); overflow:hidden;}
.cr-map iframe{width:100%; height:100%; border:0;}

/* ===== Final CTA ===== */
.cr-cta-final{padding:72px 48px; background:var(--cr-green); text-align:center;}
.cr-cta-final h2{font-family:'Inter',sans-serif; letter-spacing:-.025em; font-size:32px; color:#fff; margin:0 0 16px;}
.cr-cta-final p{font-size:15px; line-height:1.7; color:#c9dccf; max-width:560px; margin:0 auto 32px;}

/* ===== Footer ===== */
.cr-footer{background:var(--cr-green-dark); padding:64px 48px 28px;}
.cr-footer-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:40px; max-width:1160px; margin:0 auto 40px;}
.cr-footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.cr-footer-mark{width:36px; height:36px; border-radius:6px; background:var(--cr-gold); color:var(--cr-green-dark); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; overflow:hidden;}
.cr-footer-brand.has-logo .cr-footer-mark{width:auto; height:40px; border-radius:0; background:none; overflow:visible;}
.cr-footer-name{color:#fff; font-weight:700; font-size:15px;}
.cr-footer p{font-size:13px; line-height:1.7; color:#a9c0af; max-width:280px; margin:0;}
.cr-footer-col-title{font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-gold); margin-bottom:16px;}
.cr-footer-links{display:flex; flex-direction:column; gap:10px;}
.cr-footer-links a{color:#cfe0d3; font-size:13.5px;}
.cr-footer-links a:hover{color:var(--cr-gold);}
.cr-footer-contact{display:flex; flex-direction:column; gap:10px; font-size:13.5px; color:#cfe0d3;}
.cr-footer-bottom{border-top:1px solid rgba(255,255,255,.1); max-width:1160px; margin:0 auto; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:#8faa94; font-size:12.5px;}
.cr-credit-link{color:#8faa94; text-decoration:underline; text-underline-offset:2px;}
.cr-credit-link:hover{color:var(--cr-gold);}

/* ===== Cookie / consent banner ===== */
.cr-consent{position:fixed; left:16px; right:16px; bottom:16px; max-width:520px; margin:0 auto; background:#16281F; color:#e7f0e9; padding:18px 20px; border-radius:10px; box-shadow:0 12px 30px rgba(0,0,0,.25); z-index:9999; font-size:13px; line-height:1.6; display:none;}
.cr-consent.is-visible{display:block;}
.cr-consent a{color:var(--cr-gold); text-decoration:underline;}
.cr-consent-actions{display:flex; gap:10px; margin-top:12px;}
.cr-consent-actions button{border:none; padding:9px 16px; border-radius:6px; font-size:12.5px; font-weight:700; cursor:pointer;}
.cr-consent-accept{background:var(--cr-gold); color:#16281F;}
.cr-consent-decline{background:transparent; border:1px solid rgba(255,255,255,.3)!important; color:#fff;}

/* ===== Lightbox (gallery) ===== */
.cr-lightbox{position:fixed; inset:0; background:rgba(15,20,17,.92); z-index:1000; display:flex; align-items:center; justify-content:center; padding:32px; gap:16px;}
.cr-lightbox[hidden]{display:none;}
.cr-lightbox-figure{margin:0; display:flex; flex-direction:column; align-items:center; gap:12px; max-width:calc(100% - 140px); max-height:100%; min-width:0;}
.cr-lightbox-figure img{max-width:100%; max-height:78vh; border-radius:6px; display:block;}
.cr-lightbox-figure figcaption{color:#e7f0e9; font-size:13.5px; text-align:center; max-width:100%;}
.cr-lightbox-close{position:absolute; top:20px; right:24px; background:rgba(255,255,255,.12); border:none; color:#fff; width:40px; height:40px; border-radius:50%; font-size:16px; cursor:pointer;}
.cr-lightbox-nav{background:rgba(255,255,255,.12); border:none; color:#fff; width:48px; height:48px; border-radius:50%; font-size:22px; cursor:pointer; flex-shrink:0; transition:background .15s ease;}
.cr-lightbox-nav:hover{background:rgba(255,255,255,.25);}
.cr-lightbox-count{position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:#cfe3d5; font-size:12.5px; letter-spacing:.04em;}
@media (max-width:640px){
	.cr-lightbox{padding:16px; gap:6px;}
	.cr-lightbox-figure{max-width:calc(100% - 88px);}
	.cr-lightbox-nav{width:36px; height:36px; font-size:18px;}
}

@keyframes cr-marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Admin-bar offset for sticky header */
.admin-bar .cr-header{top:32px;}
@media (max-width:782px){ .admin-bar .cr-header{top:46px;} }
