/* ================================================================
   PH HEALING — home.css  (front-page only)
   ================================================================ */

/* ── Hero Carousel ── */
.ph-hero-carousel          { position:relative; overflow:hidden; background:#0D1B2A; }
.hero-slides               { display:flex; will-change:transform; transition:transform .6s cubic-bezier(.4,0,.2,1); }
.hero-slide                { min-width:100%; min-height:86vh; display:flex; align-items:center; position:relative; background-size:cover; background-position:center; }
.hero-slide .container     { position:relative; z-index:2; padding:80px 20px 140px; }
.hero-content              { max-width:660px; }
.hero-badge                { display:inline-block; background:rgba(0,151,167,.32); color:#B2EBF2; padding:6px 18px; border-radius:20px; font-size:.82rem; font-weight:700; border:1px solid rgba(0,151,167,.55); margin-bottom:20px; letter-spacing:.8px; }
.hero-slide h1             { color:#fff; font-size:clamp(2rem,4.5vw,3.2rem); line-height:1.2; margin-bottom:16px; font-family:'Playfair Display',Georgia,serif; }
.hero-slide h1 em          { color:#B2EBF2; font-style:normal; }
.hero-slide p              { color:rgba(255,255,255,.87); font-size:1.05rem; max-width:560px; margin-bottom:28px; }
.hero-actions              { display:flex; gap:14px; flex-wrap:wrap; }
.btn-outline-white         { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.7); }
.btn-outline-white:hover   { background:rgba(255,255,255,.15); color:#fff; }

.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:10; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.hero-arrow:hover  { background:rgba(255,255,255,.3); }
.hero-prev         { left:18px; }
.hero-next         { right:18px; }
.hero-dots         { position:absolute; bottom:82px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:10; }
.hero-dot          { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; padding:0; transition:all .25s; }
.hero-dot.active   { background:#fff; width:28px; border-radius:5px; }

/* Stats ribbon */
.hero-ribbon      { position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.52); backdrop-filter:blur(8px); z-index:10; }
.ribbon-inner     { display:flex; justify-content:center; }
.ribbon-stat      { padding:14px 36px; border-right:1px solid rgba(255,255,255,.12); text-align:center; flex:1; max-width:200px; }
.ribbon-stat:last-child { border-right:none; }
.rs-num           { display:block; font-size:1.5rem; font-weight:800; color:#B2EBF2; line-height:1.1; }
.rs-lbl           { display:block; font-size:.72rem; color:rgba(255,255,255,.65); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }

/* ── NavPills / Tabs ── */
.ph-pills-section  { background:#fff; box-shadow:0 4px 24px rgba(0,0,0,.07); position:relative; z-index:5; }
.ph-pills-section .container { padding-top:0; padding-bottom:40px; }
.pills-tabs        { display:flex; border-bottom:2px solid var(--ph-border); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.pills-tabs::-webkit-scrollbar { display:none; }
.pill              { padding:16px 22px; font-weight:700; font-size:.9rem; color:var(--ph-muted); background:none; border:none; border-bottom:3px solid transparent; margin-bottom:-2px; cursor:pointer; white-space:nowrap; transition:all .2s; flex-shrink:0; }
.pill:hover        { color:var(--ph-teal); background:rgba(0,151,167,.06); }
.pill.active       { color:var(--ph-teal); border-bottom-color:var(--ph-teal); background:rgba(0,151,167,.06); }
.pill-panel        { display:none; padding:32px 0 8px; }
.pill-panel.active { display:block; }

/* Courses grid */
.courses-grid      { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.course-card       { overflow:hidden; padding:0; transition:transform .25s,box-shadow .25s; }
.course-card:hover { transform:translateY(-4px); box-shadow:var(--ph-shadow-lg); }
.cc-thumb          { overflow:hidden; aspect-ratio:16/9; background:#f0f0f0; }
.cc-thumb img      { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.course-card:hover .cc-thumb img { transform:scale(1.05); }
.cc-thumb-fallback { width:100%; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; font-size:3rem; background:#E3F2FD; }
.cc-body           { padding:16px; }
.cc-body h4        { font-size:.95rem; font-weight:700; margin-bottom:6px; }
.cc-body p         { font-size:.82rem; margin-bottom:10px; }
.cc-badges         { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.cc-footer         { display:flex; align-items:center; justify-content:space-between; }
.cc-price          { font-size:1.2rem; font-weight:800; color:var(--ph-green-dark); }

/* Appointment */
.apt-layout        { display:grid; grid-template-columns:1fr 1.3fr; gap:40px; align-items:start; }
.apt-info h3       { font-size:1.5rem; margin-bottom:12px; }
.apt-list          { list-style:none; margin:20px 0 0; padding:0; }
.apt-list li       { padding:7px 0; font-size:.92rem; }
.apt-contact-info  { background:var(--ph-teal-light); border-radius:var(--ph-radius); padding:16px 20px; margin-top:20px; }
.apt-contact-info p { margin:4px 0; font-size:.92rem; }
.apt-form-col .card { padding:28px; }

/* Events grid */
.events-grid       { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.event-card        { overflow:hidden; padding:0; }
.ec-img            { overflow:hidden; aspect-ratio:16/9; }
.ec-img img        { width:100%; height:100%; object-fit:cover; }
.ec-body           { padding:16px; }
.ec-date           { margin-bottom:10px; }
.ec-day            { font-size:2rem; font-weight:800; color:var(--ph-teal); line-height:1; display:block; }
.ec-month          { font-size:.72rem; color:var(--ph-muted); font-weight:700; text-transform:uppercase; }
.ec-body h4        { font-size:.9rem; font-weight:700; margin-bottom:6px; }
.ec-body p         { font-size:.8rem; }
.ec-meta           { display:flex; flex-direction:column; gap:4px; font-size:.78rem; color:var(--ph-muted); margin:8px 0; }
.ec-footer         { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }

/* Free sessions */
.free-grid         { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.free-card         { text-align:center; }
.free-ico          { font-size:2.5rem; margin-bottom:12px; }
.free-card h4      { font-size:1rem; font-weight:700; margin-bottom:8px; }
.free-card p       { font-size:.85rem; }
.free-meta         { display:flex; flex-direction:column; gap:4px; font-size:.78rem; color:var(--ph-muted); margin:12px 0; }
.free-footer       { display:flex; align-items:center; justify-content:space-between; gap:8px; }

/* ── Why PH + AI section ── */
.ph-why-section    { background:var(--ph-bg); }
.why-layout        { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; }
.why-label         { display:inline-block; background:var(--ph-teal-light); color:var(--ph-teal-dark); padding:4px 14px; border-radius:20px; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:14px; }
.why-left h2       { font-family:'Playfair Display',Georgia,serif; font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.25; margin-bottom:14px; }
.why-left > p      { font-size:.97rem; margin-bottom:0; }
.why-features      { margin-top:28px; display:flex; flex-direction:column; gap:20px; }
.why-item          { display:flex; gap:16px; align-items:flex-start; }
.why-ico           { width:44px; height:44px; background:var(--ph-teal-light); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; flex-shrink:0; }
.why-item h5       { font-size:.95rem; font-weight:700; margin-bottom:4px; }
.why-item p        { font-size:.84rem; margin:0; }

/* AI showcase card */
.ai-card           { background:linear-gradient(145deg,#0D1B2A,#006978); border-radius:20px; padding:28px; color:#fff; box-shadow:0 20px 60px rgba(0,105,120,.4); }
.ai-card-header    { display:flex; align-items:center; gap:12px; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.15); }
.ai-card-header h4 { color:#fff; font-size:1rem; margin-bottom:2px; font-family:var(--ph-font); }
.ai-card-header p  { color:rgba(255,255,255,.58); font-size:.8rem; margin:0; }
.ai-live           { margin-left:auto; background:#E53935; color:#fff; padding:3px 10px; border-radius:20px; font-size:.7rem; font-weight:700; animation:pulse-live 2s infinite; white-space:nowrap; }
@keyframes pulse-live { 0%,100%{opacity:1} 50%{opacity:.55} }
.ai-card-features  { display:flex; flex-direction:column; gap:16px; }
.ai-feat-row       { display:flex; align-items:center; gap:14px; }
.ai-feat-ico       { width:40px; height:40px; background:rgba(255,255,255,.12); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; }
.ai-feat-row strong { color:#fff; font-size:.9rem; display:block; }
.ai-feat-row span   { color:rgba(255,255,255,.58); font-size:.8rem; }

/* ── Testimonials ── */
.ph-testi-section  { background:linear-gradient(135deg,#E3F2FD,#E8F5E9); }
.section-title     { text-align:center; margin-bottom:40px; }
.section-title h2  { font-family:'Playfair Display',Georgia,serif; }
.title-line        { width:60px; height:3px; background:var(--ph-teal); margin:12px auto 0; border-radius:2px; }
.section-title p   { margin-top:12px; color:var(--ph-muted); max-width:520px; margin-left:auto; margin-right:auto; }
.testi-wrap        { position:relative; }
.testi-track       { display:flex; gap:24px; transition:transform .55s cubic-bezier(.4,0,.2,1); overflow:hidden; }
.testi-card        { min-width:calc(33.333% - 16px); background:#fff; border-radius:16px; padding:26px; box-shadow:var(--ph-shadow); flex-shrink:0; }
.testi-stars       { font-size:1rem; color:#FFC107; letter-spacing:2px; margin-bottom:12px; }
.testi-text        { font-size:.9rem; line-height:1.65; color:var(--ph-text); margin-bottom:18px; font-style:italic; }
.testi-author      { display:flex; align-items:center; gap:12px; }
.testi-ava         { width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.testi-ava-init    { width:46px; height:46px; border-radius:50%; background:var(--ph-teal); color:#fff; font-size:1.2rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.testi-author strong { display:block; font-size:.88rem; color:var(--ph-text); }
.testi-author span   { font-size:.78rem; color:var(--ph-muted); }
.testi-btn         { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:#fff; border:1px solid var(--ph-border); color:var(--ph-text); cursor:pointer; font-size:1.1rem; box-shadow:var(--ph-shadow); display:flex; align-items:center; justify-content:center; transition:all .2s; z-index:5; }
.testi-btn:hover   { background:var(--ph-teal); color:#fff; border-color:var(--ph-teal); }
.testi-prev        { left:-12px; }
.testi-next        { right:-12px; }
.testi-dots        { display:flex; justify-content:center; gap:8px; margin-top:24px; }
.testi-dot         { width:8px; height:8px; border-radius:50%; background:var(--ph-border); border:none; cursor:pointer; padding:0; transition:all .2s; }
.testi-dot.active  { background:var(--ph-teal); width:22px; border-radius:4px; }

/* ── Contact section ── */
.ph-contact-section    { background:#fff; }
.contact-layout        { display:grid; grid-template-columns:1fr 1.2fr; gap:48px; align-items:start; }
.contact-map           { border-radius:12px; overflow:hidden; border:1px solid var(--ph-border); }
.contact-info          { display:flex; flex-direction:column; gap:10px; }
.ci-row                { display:flex; align-items:center; gap:14px; padding:14px 16px; background:var(--ph-bg); border-radius:8px; }
.ci-ico                { font-size:1.3rem; flex-shrink:0; }
.ci-row a, .ci-row span { font-size:.92rem; font-weight:600; color:var(--ph-text); }
.ci-row a:hover        { color:var(--ph-teal); }
.contact-form-card     { padding:28px !important; }
.contact-form-card h3  { margin-bottom:20px; }

/* ── Blog grid ── */
.blog-grid             { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.blog-card             { overflow:hidden; padding:0; }
.blog-thumb img        { width:100%; aspect-ratio:16/9; object-fit:cover; }
.blog-body             { padding:20px; }
.blog-title a          { color:var(--ph-text); font-size:1.1rem; }
.blog-title a:hover    { color:var(--ph-teal); }
.blog-meta             { font-size:.82rem; color:var(--ph-muted); margin-bottom:10px; }
.blog-excerpt p        { font-size:.88rem; }

/* ── Responsive ── */
@media(max-width:1200px){
  .courses-grid { grid-template-columns:repeat(2,1fr); }
  .free-grid    { grid-template-columns:repeat(2,1fr); }
  .events-grid  { grid-template-columns:repeat(2,1fr); }
  .testi-card   { min-width:calc(50% - 12px); }
}
@media(max-width:1024px){
  .why-layout       { grid-template-columns:1fr; gap:40px; }
  .contact-layout   { grid-template-columns:1fr; }
  .apt-layout       { grid-template-columns:1fr; }
  .ribbon-stat      { flex:0 0 50%; }
}
@media(max-width:768px){
  .hero-slide       { min-height:72vh; }
  .hero-slide .container { padding:60px 16px 130px; }
  .hero-slide h1    { font-size:1.8rem; }
  .hero-arrow       { width:36px; height:36px; font-size:1rem; }
  .courses-grid,
  .free-grid,
  .events-grid      { grid-template-columns:1fr; }
  .pill             { padding:12px 14px; font-size:.82rem; }
  .testi-card       { min-width:100%; }
  .blog-grid        { grid-template-columns:1fr; }
}
@media(max-width:480px){
  .ribbon-inner     { flex-wrap:wrap; }
  .ribbon-stat      { flex:0 0 50%; border-bottom:1px solid rgba(255,255,255,.1); }
  .hero-dots        { bottom:58px; }
  .hero-actions     { flex-direction:column; }
  .hero-actions .btn { width:100%; justify-content:center; }
}
