/* IslandKTLG — Elementor native widgets styled to brand. v2.0 (widget-class based) */

/* Headings */
.iktlg-h .elementor-heading-title{ color:var(--text) !important; font-family:'Cormorant',Georgia,serif !important; }
.iktlg-on-dark .elementor-heading-title{ color:var(--ivory-100) !important; font-family:'Cormorant',Georgia,serif !important; }

/* Paragraphs */
.iktlg-p .elementor-widget-container, .iktlg-p p{ color:var(--text-muted) !important; }
.iktlg-p-light .elementor-widget-container, .iktlg-p-light p{ color:var(--ivory-100) !important; }

/* Eyebrow */
.iktlg-eyebrow .elementor-heading-title{ display:inline-flex; align-items:center; gap:.5em;
  font-family:'Montserrat',sans-serif !important; font-size:.74rem !important; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold-700) !important; font-weight:600 !important; }
.iktlg-eyebrow .elementor-heading-title::before{ content:""; width:22px; height:1px; background:currentColor; display:inline-block; }
.iktlg-eyebrow-light .elementor-heading-title{ color:var(--gold-400) !important; }

/* Buttons */
.elementor-widget-button .elementor-button{ font-family:'Montserrat',sans-serif; font-weight:600; font-size:.86rem;
  letter-spacing:.04em; text-transform:uppercase; padding:16px 32px; border-radius:var(--radius-full);
  border:1px solid transparent; transition:transform .2s,background .2s,color .2s; }
.iktlg-btn-primary .elementor-button{ background:linear-gradient(135deg,var(--gold-500),var(--gold-700)) !important; color:var(--emerald-950) !important; box-shadow:0 10px 24px -8px rgba(212,175,55,.55) !important; }
.iktlg-btn-primary .elementor-button:hover{ background:linear-gradient(135deg,var(--gold-500),var(--gold-700)) !important; box-shadow:0 16px 32px -8px rgba(212,175,55,.7) !important; transform:translateY(-2px); }
.iktlg-btn-outline .elementor-button{ background:transparent !important; border-color:currentColor !important; }
.iktlg-btn-outline.iktlg-on-dark .elementor-button, .iktlg-btn-outline .elementor-button{ color:inherit; }
.iktlg-btn-light .elementor-button{ color:var(--ivory-100) !important; border-color:rgba(251,248,241,.5) !important; }
.iktlg-btn-outline .elementor-button:hover{ transform:translateY(-2px); }

/* Benefit cards (icon-box widget) */
.iktlg-card{ background:var(--surface) !important; border:1px solid var(--border) !important;
  border-radius:var(--radius-md) !important; padding:38px 30px !important; box-shadow:var(--card-shadow) !important;
  height:100%; text-align:center; transition:transform .3s,box-shadow .3s; }
.iktlg-card:hover{ transform:translateY(-6px); box-shadow:var(--card-shadow-hover) !important; }
.iktlg-card .elementor-icon{ font-size:24px !important; background:rgba(15,76,58,.09);
  width:56px !important; height:56px; display:inline-flex; align-items:center; justify-content:center; border-radius:14px; }
.iktlg-card .elementor-icon i, .iktlg-card .elementor-icon svg, .iktlg-card .elementor-icon svg path{ color:var(--emerald-800) !important; fill:var(--emerald-800) !important; }
.iktlg-card .elementor-icon-box-title, .iktlg-card .elementor-icon-box-title a{ font-family:'Cormorant',serif !important; color:var(--text) !important; }
.iktlg-card .elementor-icon-box-description{ color:var(--text-muted) !important; }

/* Trust items (icon-box on emerald section) */
.iktlg-trust-item .elementor-icon-box-title, .iktlg-trust-item .elementor-icon-box-title *{ color:var(--ivory-100) !important;
  font-family:'Montserrat',sans-serif !important; font-size:.8rem !important; letter-spacing:.03em; text-transform:uppercase; margin:0; }
.iktlg-trust-item .elementor-icon, .iktlg-trust-item .elementor-icon i, .iktlg-trust-item .elementor-icon svg, .iktlg-trust-item .elementor-icon svg path{ color:var(--gold-500) !important; fill:var(--gold-500) !important; font-size:20px !important; }
.iktlg-trust-item .elementor-icon-box-wrapper{ display:flex; align-items:center; text-align:left; gap:6px; }

/* Services (image-box) */
.iktlg-service .elementor-image-box-img img{ border-radius:var(--radius-md); aspect-ratio:4/3; object-fit:cover; width:100%; }
.iktlg-service .elementor-image-box-title{ font-family:'Cormorant',serif !important; color:var(--text) !important; margin-top:14px; }
.iktlg-service .elementor-image-box-description{ color:var(--text-muted) !important; }

/* Testimonials */
.iktlg-testi .elementor-testimonial-wrapper{ background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:34px; box-shadow:var(--card-shadow); }
.iktlg-testi .elementor-testimonial-content{ font-family:'Cormorant',serif !important; font-size:1.3rem; color:var(--text) !important; font-style:normal; }
.iktlg-testi .elementor-testimonial-name{ color:var(--text) !important; font-weight:600; }
.iktlg-testi .elementor-testimonial-job{ color:var(--text-muted) !important; }

/* About stats */
.iktlg-stat .elementor-heading-title{ font-family:'Cormorant',serif !important; color:var(--emerald-800) !important; font-size:2.4rem !important; margin:0; }
.iktlg-media img{ border-radius:var(--radius-lg); }

/* --- polish pass v2.4 --- */
.iktlg-ibtn{ display:inline-block !important; width:auto !important; vertical-align:middle; margin:16px 6px 0 !important; }
.elementor-widget-wrap:has(> .iktlg-ibtn-c){ text-align:center !important; }
.iktlg-service .elementor-image-box-wrapper{ height:100%; }
.iktlg-testi .elementor-testimonial-wrapper{ height:100%; box-sizing:border-box; }
.iktlg-card{ margin-bottom:8px; }

.iktlg-ctac .elementor-heading-title, .iktlg-ctac .elementor-widget-container, .iktlg-ctac p{ text-align:center !important; }

/* value + step + faq v2.6 */
.iktlg-value .elementor-icon{ color:var(--emerald-800)!important; background:rgba(15,76,58,.09); width:34px!important; height:34px; border-radius:50%; font-size:13px!important; }
.iktlg-value .elementor-icon-box-title{ font-family:'Cormorant',serif!important; color:var(--text)!important; margin-bottom:2px; }
.iktlg-value .elementor-icon-box-description{ color:var(--text-muted)!important; }
.iktlg-step .elementor-heading-title{ font-family:'Cormorant',serif!important; color:var(--gold-500)!important; font-size:2.8rem!important; margin:0 0 4px !important; }
.iktlg-faq .elementor-accordion-title{ font-family:'Montserrat',sans-serif!important; font-weight:600; color:var(--text)!important; }
.iktlg-faq .elementor-tab-content{ color:var(--text-muted)!important; }

/* dark-mode alt-bg fix v2.7 */
[data-theme="dark"] .elementor-section:has(.iktlg-service),
[data-theme="dark"] .elementor-section:has(.iktlg-step),
[data-theme="dark"] .elementor-section:has(.iktlg-value){ background-color:#0c2a20 !important; }

/* native toggle + social + map v2.8 */
.iktlg-toggle{ cursor:pointer; }
.iktlg-toggle .elementor-icon{ width:42px; height:42px; border-radius:50%; border:1px solid var(--border); background:var(--surface); display:inline-flex; align-items:center; justify-content:center; font-size:16px !important; color:var(--text) !important; transition:border-color .2s, transform .2s; }
.iktlg-toggle .elementor-icon:hover{ border-color:var(--gold-500); transform:translateY(-1px); }
.iktlg-toggle .elementor-icon i{ color:var(--text) !important; }
[data-theme="dark"] .iktlg-toggle .fa-moon:before{ content:"\f185"; }
.iktlg-social .elementor-social-icon{ background:transparent !important; border:1px solid rgba(255,255,255,.18); width:40px; height:40px; transition:all .2s; }
.iktlg-social .elementor-social-icon i{ color:#fbf8f1 !important; font-size:15px; }
.iktlg-social .elementor-social-icon:hover{ border-color:var(--gold-500); transform:translateY(-2px); }
.iktlg-social .elementor-social-icon:hover i{ color:var(--gold-400) !important; }
.iktlg-social-onlight .elementor-social-icon{ border-color:var(--border); }
.iktlg-social-onlight .elementor-social-icon i{ color:var(--text) !important; }
.iktlg-map iframe{ border-radius:16px; }

/* toggle color fix v2.9 */
.iktlg-toggle .elementor-icon{ background:var(--surface) !important; color:var(--text) !important; }
.iktlg-toggle .elementor-icon i{ color:var(--text) !important; }
[data-theme="dark"] .iktlg-toggle .elementor-icon{ background:transparent !important; border-color:rgba(255,255,255,.25); }
[data-theme="dark"] .iktlg-toggle .elementor-icon, [data-theme="dark"] .iktlg-toggle .elementor-icon i{ color:var(--ivory-100) !important; }

/* coin logo v3.0 */
.iktlg-logobox .elementor-image-box-wrapper, .iktlg-footlogobox .elementor-image-box-wrapper{ display:flex; align-items:center; gap:10px; text-align:left; }
.iktlg-logobox .elementor-image-box-img{ width:46px !important; flex-shrink:0; margin:0 !important; }
.iktlg-footlogobox .elementor-image-box-img{ width:54px !important; flex-shrink:0; margin:0 !important; }
.iktlg-logobox .elementor-image-box-title{ font-family:'Cormorant',serif !important; font-weight:600 !important; font-size:1.5rem !important; letter-spacing:.02em; color:var(--text) !important; margin:0 !important; }
[data-theme="dark"] .iktlg-logobox .elementor-image-box-title{ color:var(--ivory-100) !important; }
.iktlg-footlogobox .elementor-image-box-title{ font-family:'Cormorant',serif !important; font-weight:600 !important; font-size:1.55rem !important; color:var(--ivory-100) !important; margin:0 !important; }
.iktlg-logobox .elementor-image-box-content, .iktlg-footlogobox .elementor-image-box-content{ margin:0; }

/* theme-toggle oval fix v3.1 — the widget itself carried .theme-toggle's circle styling
   (bg + border-radius:50%); on mobile Elementor stretches the widget full-width,
   turning it into a huge oval. Strip the widget-level pill and style the icon button
   instead: solid surface color, small radius, no transparency. */
.elementor-widget.theme-toggle{ background:none !important; border:none !important; border-radius:0 !important; }
.iktlg-toggle .elementor-icon{ background:var(--surface) !important; border-radius:10px !important; }
[data-theme="dark"] .iktlg-toggle .elementor-icon{ background:var(--surface) !important; border-color:rgba(255,255,255,.25); }

/* events grid v3.1 */
.ikev-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:26px; margin-top:10px; }
.ikev-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--card-shadow); transition:transform .3s var(--ease), box-shadow .3s var(--ease); display:flex; flex-direction:column; }
.ikev-card:hover{ transform:translateY(-6px); box-shadow:var(--card-shadow-hover); }
.ikev-media{ position:relative; display:block; aspect-ratio:4/3; background:var(--bg-alt); }
.ikev-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.ikev-ph{ display:flex; align-items:center; justify-content:center; height:100%; font-size:3rem; }
.ikev-date{ position:absolute; top:12px; left:12px; background:var(--emerald-900); color:var(--ivory-100); border:1px solid rgba(212,175,55,.4); border-radius:12px; padding:6px 12px; text-align:center; line-height:1.1; z-index:2; }
.ikev-date b{ display:block; font-family:'Cormorant',serif; font-size:1.3rem; color:var(--gold-400); }
.ikev-date i{ display:block; font-style:normal; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.ikev-body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.ikev-body h3{ margin:0; font-family:'Cormorant',serif; font-size:1.35rem; line-height:1.2; }
.ikev-body h3 a{ color:var(--text) !important; text-decoration:none; }
.ikev-meta{ display:flex; flex-direction:column; gap:4px; font-size:.86rem; color:var(--text-muted); }
.ikev-actions{ margin-top:auto; display:flex; align-items:center; gap:12px; padding-top:6px; }
.ikev-buy{ display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--gold-500),var(--gold-700)); color:var(--emerald-950) !important; font-family:'Montserrat',sans-serif; font-weight:600; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; padding:11px 22px; border-radius:999px; text-decoration:none; box-shadow:0 8px 18px -8px rgba(212,175,55,.55); transition:transform .2s, box-shadow .2s; }
.ikev-buy:hover{ transform:translateY(-2px); box-shadow:0 12px 24px -8px rgba(212,175,55,.7); }
.ikev-more{ font-size:.82rem; font-weight:600; color:var(--text-muted) !important; text-decoration:none; }
.ikev-more:hover{ color:var(--gold-700) !important; }
.ikev-past{ opacity:.55; } .ikev-past:hover{ transform:none; }
.ikev-over{ font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); }
.ikev-pasthead{ margin:46px 0 6px; font-family:'Montserrat',sans-serif; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }
.ikev-empty{ text-align:center; padding:60px 20px; background:var(--surface); border:1px dashed var(--border); border-radius:var(--radius-md); }
.ikev-empty h3{ font-family:'Cormorant',serif; } .ikev-empty a{ color:var(--gold-700) !important; font-weight:600; }

.ikev-meta i{ color:var(--gold-700); width:16px; text-align:center; margin-right:2px; }

/* v3.4 — centered price pill on event flyers */
.ikev-pricepill{ position:absolute; left:50%; bottom:14px; transform:translateX(-50%); background:linear-gradient(135deg,var(--gold-500),var(--gold-700)); color:var(--emerald-950); font-family:'Montserrat',sans-serif; font-weight:700; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; padding:7px 18px; border-radius:999px; box-shadow:0 6px 16px -4px rgba(0,0,0,.45); white-space:nowrap; max-width:86%; overflow:hidden; text-overflow:ellipsis; z-index:2; pointer-events:none; }

/* v3.5 — hover lift+zoom, branded placeholder flyer */
.ikev-media{ overflow:hidden; }
.ikev-media img{ transition:transform .5s var(--ease); }
.ikev-card:not(.ikev-past):hover{ transform:translateY(-8px); box-shadow:0 22px 44px -14px rgba(212,175,55,.38), 0 10px 24px -10px rgba(8,35,27,.35); }
.ikev-card:not(.ikev-past):hover .ikev-media img{ transform:scale(1.06); }
.ikev-ph{ flex-direction:column; gap:12px; background:radial-gradient(120% 90% at 50% 0%, #14563f 0%, var(--emerald-900, #0f4c3a) 45%, #08231b 100%); }
.ikev-ph svg{ width:88px; height:88px; filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)); }
.ikev-ph em{ font-style:normal; font-family:'Cormorant',serif; font-size:1.05rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-400, #d4af37); opacity:.85; }
