/*
Theme Name: IMO Landing
Theme URI: https://example.com
Author: IMO Team
Description: Тема для лендинга IMO с управляемыми блоками, отзывами и ведущими
Version: 3.5.2
Text Domain: imo-landing
*/

:root {
	--bg: #ffffff;
	--fg: #0f172a;
	--muted: #475569;
	--brand: #0d6e9b;
	--accent: #c1432e;
	--card: #f8fafc;
}

/* Topbar */
.topbar { background:#f1f5f9; border-bottom:1px solid #e2e8f0; font-size:14px; color:#334155; }
.topbar-inner { display:flex; justify-content:space-between; align-items:center; padding:6px 0; }
.topbar a { color:#334155; text-decoration:none; }
.topbar .sep { margin:0 8px; color:#94a3b8; }
}
html { scroll-behavior: smooth; }
body { margin:0; font:16px/1.65 'Open Sans', -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:var(--fg); background:var(--bg); }
.container { max-width:1100px; margin:0 auto; padding:0 24px; }
.site-header { position:sticky; top:0; background:#ffffff; border-bottom:1px solid #e2e8f0; z-index:1000; }
.site-header.is-stuck { box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.site-nav { display:flex; gap:44px; align-items:center; padding:6px 20px; }
.site-brand { margin-right:auto; display:flex; align-items:center; gap:10px; }
.site-brand a { color:var(--fg); text-decoration:none; display:flex; align-items:center; }
.site-brand { padding-top:6px; padding-bottom:6px; }
.site-brand img { height: var(--logo-height, 30px); width:auto; display:block; margin-top:4px; margin-bottom:4px; }
.site-nav a { color:#475569; text-decoration:none; opacity:1; font-weight:600; letter-spacing:.01em; font-size:14px; }
.site-nav a:hover { opacity:1; }
.hero { padding:56px 0 84px; text-align:center; background-color:#0b1220; min-height: 600px; }
.hero .hero-box { max-width:880px; margin:0 auto; text-align:center; padding:28px 32px; background:rgba(0,0,0,.06); }
.hero h1 { font-size:38px; line-height:1.2; margin:0 0 12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.hero p { color:#ffffff; margin:8px 0 0; }
.hero .hero-box p { font-size:18px; line-height:1.7; }
.hero .btn { background: var(--brand); color:#ffffff; }
.hero-title { display:inline-block; }
.hero-underline { width:100%; height:3px; background: var(--accent); margin: 10px 0 16px; }
.kicker { display:inline-block; margin-top:12px; font-weight:600; letter-spacing:.02em; color:var(--fg); }
.kicker::after { content:""; display:block; width:90px; height:2px; background:var(--accent); margin-top:8px; }
.hero.has-image .kicker { color:#ffffff; }
.title-underline { position:relative; padding-bottom:14px; }
.title-underline::after { content:""; position:absolute; left:0; bottom:0; width:64px; height:2px; background:var(--accent); }
.title-underline.center { text-align:center; }
.title-underline.center::after { left:50%; transform:translateX(-50%); }

/* Centered title chip inside word cloud */
.cloud-title { order:0; width:100%; margin:0 0 10px; text-align:center; font-size:28px; font-weight:700; }
.word-cloud .cloud-title { background:transparent; border:none; padding:0; box-shadow:none; }

/* Visually hidden for semantics */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.section { padding:64px 0; }
.section.alt { background:#f1f5f9; }
#being-alive.section { position:relative; background:#ffffff; }
#being-alive.section::before { content:none; }
.hl-section { position:relative; overflow:hidden; background: radial-gradient(1200px 600px at 12% 0%, rgba(14,165,168,.28) 0%, rgba(241,245,249,.97) 55%, #ffffff 100%); }
.hl-section::before { content:""; position:absolute; inset:-25%; background:
	radial-gradient(60% 60% at 15% 30%, rgba(14,165,168,.35) 0%, rgba(14,165,168,0) 60%),
	radial-gradient(42% 52% at 82% 18%, rgba(193,67,46,.32) 0%, rgba(193,67,46,0) 62%),
	radial-gradient(48% 48% at 90% 88%, rgba(193,67,46,.26) 0%, rgba(193,67,46,0) 65%);
filter: blur(30px); opacity:.85; transform: translate3d(-2%, -2%, 0) scale(1);
animation: floatBg 26s ease-in-out infinite alternate; }
.hl-section .container { position:relative; z-index:1; }
@keyframes floatBg { 0% { transform: translate3d(-2%, -2%, 0) scale(1); } 100% { transform: translate3d(3%, 3%, 0) scale(1.06); } }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.hl-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.hl-card { position:relative; padding:22px 20px 20px 44px; background:#ffffff; border:1px solid #e2e8f0; border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,.06); opacity:0; transition: transform .6s ease, box-shadow .3s ease, opacity .5s ease; }
.hl-card h3 { margin:0; font-size:20px; }
.hl-dot { position:absolute; left:16px; top:22px; width:12px; height:12px; border-radius:50%; background:var(--accent); }
.hl-dot::after { content:""; position:absolute; inset:-2px; border-radius:50%; background:var(--accent); opacity:.35; animation:pulseRing 2.4s ease-out infinite; transform-origin:center; }
.hl-card.tilt-a { transform: rotate(-0.6deg) translateY(16px); }
.hl-card.tilt-b { transform: rotate(0.6deg) translateY(16px); }
.hl-card.in-view.tilt-a { transform: rotate(-0.6deg) translateY(0); opacity:1; }
.hl-card.in-view.tilt-b { transform: rotate(0.6deg) translateY(0); opacity:1; }
.hl-card:hover { box-shadow:0 12px 28px rgba(0,0,0,.09); }
@keyframes pulseRing { 0% { transform: scale(1); opacity:.35; } 70% { transform: scale(1.9); opacity:0; } 100% { opacity:0; } }
@media (max-width: 900px) {
	.hl-grid { grid-template-columns:1fr; }
	.hl-card { transform:none; }
	.hl-card.in-view { opacity:1; transform:none; }
}

/* Typing line for HL section */
.hl-section.typing-enabled .hl-grid { display:none; }
.hl-section.typing-enabled { min-height:240px; padding:48px 0; display:flex; align-items:center; }
.hl-typing { display:flex; justify-content:center; align-items:center; gap:6px; margin-top:16px; font-size:24px; font-weight:600; color:var(--fg); min-height:2.4em; }
.hl-typing .text { min-width:1ch; font-family: 'Caveat', cursive; font-weight:600; font-size:42px; letter-spacing:.3px; font-style:italic; line-height:1.2; transition: all 0.05s ease-out; }
.hl-typing .caret { width:2px; height:1.4em; background:var(--fg); animation: caretBlink 1s steps(1) infinite; }
@keyframes caretBlink { 0%, 49% { opacity:1; } 50%, 100% { opacity:0; } }
.card { padding:24px; background:var(--card); border:1px solid #e2e8f0; }
.card.featured { outline:2px solid var(--brand); }
.btn { display:inline-block; padding:12px 18px; background:var(--brand); color:#ffffff; font-weight:600; text-decoration:none; transition: all 0.2s ease; border:none; cursor:pointer; }
.btn:hover { filter:brightness(1.05); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(14,165,168,.3); }
.btn-nav { padding:6px 12px; background:var(--accent); font-size:13px; color:#ffffff !important; }
.btn-nav:hover { background:var(--brand); color:#ffffff !important; }
.btn-large { padding:16px 32px; font-size:18px; background:var(--accent); }
.btn-large:hover { background:var(--brand); }
.section-cta { text-align:center; margin-top:32px; }
@media (max-width: 900px) {
	.grid-3 { grid-template-columns:1fr; }
	.grid-2 { grid-template-columns:1fr; }
	.hero h1 { font-size:32px; }
	.for-whom-grid { grid-template-columns: 1fr; gap: 24px; }
	.for-whom-card { padding: 28px 20px; }
}

/* Questions section */
#questions { --q-icon-d: clamp(44px, 7.2vw, 67px); --q-gap-left: 22px; --q-gap-right: 14px; --q-gutter: calc(var(--q-gap-left) + var(--q-icon-d) + var(--q-gap-right)); }
#questions h2 { text-align:center; margin:0 0 28px; }
#questions .lead { text-align:center; color: var(--muted); margin:0 0 22px; }
#questions .grid-2 { align-items:start; }
#questions .card.question { position:relative; padding-left: var(--q-gutter); background:#ffffff; overflow:hidden; }
#questions .card.question::before { content:"?"; position:absolute; left: var(--q-gap-left); top:50%; transform: translateY(-50%); width: var(--q-icon-d); height: var(--q-icon-d); display:flex; align-items:center; justify-content:center; background: rgba(13,110,155,.12); color: rgba(13,110,155,.5); font-weight:600; font-size: clamp(20px, 3.6vw, 32px); border-radius:50%; }
#questions .card.question p { margin:0; font-size:18px; line-height:1.6; text-align:center; }
#questions .note { text-align:center; color: var(--fg); display:block; margin:28px auto 0; padding:14px 18px; background: linear-gradient(90deg, rgba(14,165,168,.14), rgba(14,165,168,.08)); border:none; font-weight:600; box-shadow:0 6px 16px rgba(14,165,168,.18); max-width: 780px; }

@media (max-width: 900px) {
    #questions { --q-icon-d: clamp(38px, 12vw, 58px); --q-gap-left: 18px; --q-gap-right: 10px; --q-gutter: calc(var(--q-gap-left) + var(--q-icon-d) + var(--q-gap-right)); }
    .word-cloud { grid-template-columns: repeat(2, 1fr); gap:14px 18px; --hole-w: 280px; --hole-h: 84px; }
    .word-cloud .cloud-hole { grid-column: 1 / -1; }
}

/* Program section */
#program h2 { text-align:center; margin:0 0 22px; }
#program .program-list { display:flex; flex-direction:column; gap:10px; max-width: 760px; margin: 0 auto; }
#program .program-item { display:grid; grid-template-columns: 120px 1fr; align-items:center; gap:16px; padding:16px 18px; background:#ffffff; border:1px solid #e2e8f0; }
#program .program-num { font-weight:700; color: var(--brand); text-align:center; }
#program .program-title { font-weight:600; line-height:1.5; }
#program .program-date { color: var(--muted); margin-top:4px; }
@media (max-width: 900px) {
	#program .program-item { grid-template-columns: 1fr; }
	#program .program-num { margin-bottom:6px; }
}

/* Methodology section */
#methodology .content { max-width: 900px; margin: 0 auto; }
#methodology h2 { font-size:22px; line-height:1.5; margin:0 0 32px; font-weight:700; text-align:center; }
#methodology .lead { font-weight:700; margin: 18px 0 8px 160px; }
#methodology .method-list { list-style:none; padding:0; margin:0 0 12px 160px; display:flex; flex-direction:column; gap:14px; }
#methodology .method-list li { position:relative; padding-left:26px; font-size:18px; }
#methodology .method-list li::before { content:""; position:absolute; left:0; top:0.7em; width:8px; height:8px; border-radius:50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(14,165,168,.15); transform: translateY(-50%); }
#methodology .footnote { margin-top:32px; color: var(--muted); text-align:center; }

/* IMO Institute section */
#imo-institute .container { max-width: 920px; text-align:center; }
#imo-institute h2 { font-size:20px; line-height:1.5; margin:0 0 12px; font-weight:700; }
#imo-institute .lead { margin: 8px 0 16px; font-weight:600; }
#imo-institute .country-flags { list-style:none; padding:0; margin:0 0 18px; display:flex; flex-wrap:wrap; justify-content:center; gap:14px 18px; }
#imo-institute .flag { font-size:32px; line-height:1; filter:saturate(1.1); }
#imo-institute .mission { margin: 16px auto; font-weight:600; }
#imo-institute .ext-link { color: var(--brand); text-decoration:none; font-weight:600; }
#imo-institute .ext-link:hover { text-decoration:underline; }

/* Speakers */
#speakers h2 { text-align:center; margin:0 0 22px; }
#speakers .speakers-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; max-width: 1000px; margin: 0 auto; }
#speakers .speaker-card { background:#ffffff; border:1px solid #e2e8f0; box-shadow:0 6px 16px rgba(0,0,0,.05); overflow:hidden; text-align:center; padding-bottom:16px; }
#speakers .speaker-photo { aspect-ratio: 1 / 1; background:#f8fafc; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#speakers .speaker-photo img { width:100%; height:100%; object-fit:cover; display:block; }
#speakers .speaker-name { margin:12px 12px 6px; font-size:20px; font-weight:700; }
#speakers .speaker-regalia { margin:0 16px; color: var(--muted); line-height:1.6; }
@media (max-width: 900px) {
	#speakers .speakers-grid { grid-template-columns: 1fr; }
}

/* Videos section */
#videos { background: var(--bg); }
#videos h2 { text-align: center; margin: 0 0 32px; }
.videos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.video-item { background: #ffffff; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,.08); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.video-item:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.video-wrapper { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; background: #000; }
.video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.video-caption { margin: 0; padding: 16px; font-size: 15px; line-height: 1.5; color: var(--fg); text-align: center; background: #ffffff; }
@media (max-width: 900px) {
	.videos-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 600px) {
	.videos-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* Testimonials */
#testimonials { background: var(--bg); }
#testimonials h2 { text-align: center; margin: 0 0 32px; }
.testimonials-slider { position: relative; max-width: 900px; margin: 0 auto; }
.testimonials-track { position: relative; min-height: 300px; }
.testimonial-card { 
	width: 100%; 
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	opacity: 0;
	transform: translateX(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	pointer-events: none;
}
.testimonial-card.active { 
	position: relative;
	opacity: 1;
	transform: translateX(0);
	pointer-events: auto;
}
.testimonial-card.slide-out-left {
	opacity: 0;
	transform: translateX(-30px);
}
.testimonial-card.slide-out-right {
	opacity: 0;
	transform: translateX(30px);
}
.testimonial-content { background: #ffffff; padding: 32px; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.testimonial-text { margin: 0 0 24px; position: relative; }
.testimonial-text:before { content: '"'; position: absolute; top: -20px; left: -10px; font-size: 80px; color: var(--brand); opacity: 0.15; font-family: Georgia, serif; line-height: 1; }
.testimonial-text p { font-size: 18px; line-height: 1.8; color: var(--fg); margin: 0; font-style: italic; }
.testimonial-author { display: flex; align-items: center; gap: 16px; padding-top: 20px; border-top: 1px solid #e2e8f0; }
.testimonial-photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.testimonial-photo-placeholder { background: var(--card); display: flex; align-items: center; justify-content: center; color: var(--muted); }
.testimonial-photo-placeholder svg { width: 40px; height: 40px; }
.testimonial-info { flex: 1; }
.testimonial-name { font-weight: 700; font-size: 18px; color: var(--fg); margin: 0 0 4px; }
.testimonial-title { color: var(--muted); font-size: 14px; }
.testimonials-nav { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 24px; }
.testimonials-nav.single-testimonial { display: none; }
.testimonials-prev, .testimonials-next { background: var(--brand); border: none; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; color: #fff; }
.testimonials-prev:hover, .testimonials-next:hover { background: var(--accent); transform: scale(1.1); }
.testimonials-prev svg, .testimonials-next svg { width: 20px; height: 20px; }
.testimonials-prev:disabled, .testimonials-next:disabled { opacity: 0.5; cursor: pointer; }
.testimonials-prev:disabled:hover, .testimonials-next:disabled:hover { background: var(--accent); transform: scale(1.1); }
.testimonials-dots { display: flex; gap: 8px; }
.testimonials-dot { width: 10px; height: 10px; border-radius: 50%; background: #cbd5e1; border: none; padding: 0; cursor: pointer; transition: all 0.3s ease; }
.testimonials-dot.active { background: var(--brand); width: 24px; border-radius: 5px; }
@media (max-width: 768px) {
	.testimonial-content { padding: 24px; }
	.testimonial-text p { font-size: 16px; }
	.testimonial-author { flex-direction: column; text-align: center; }
	.testimonials-prev, .testimonials-next { width: 40px; height: 40px; }
}

/* Terms */
#terms h2 { text-align:center; margin:0 0 18px; }
#terms .terms-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; max-width: 1000px; margin: 0 auto; }
#terms .term-card { background:#ffffff; border:1px solid #e2e8f0; padding:18px; text-align:center; box-shadow:0 6px 16px rgba(0,0,0,.05); display:flex; flex-direction:column; }
#terms .term-title { margin:0 0 8px; font-size:18px; font-weight:700; }
#terms .term-chip { display:inline-block; margin:2px 0 6px; padding:4px 8px; font-size:11px; font-weight:600; color: var(--muted); background: rgba(14,165,168,.08); border:none; letter-spacing:.2px; }
#terms .price { margin:6px 0 6px; font-size:28px; font-weight:800; letter-spacing:.3px; margin-top:auto; }
#terms .price .currency { font-size:14px; font-weight:700; margin-left:6px; color: var(--muted); }
#terms .price-hr { height:1px; background:#e2e8f0; margin:8px 0 6px; }
#terms .per-module { margin:0; color: var(--muted); font-weight:600; }
#terms .term-card > .per-module { margin-bottom:0; }
@media (max-width: 900px) {
	#terms .terms-grid { grid-template-columns:1fr; }
}

/* Contact form */
#contact { background: linear-gradient(135deg, rgba(14,165,168,.08) 0%, rgba(193,67,46,.06) 100%); }
#contact h2 { text-align: center; margin-bottom: 32px; color: var(--fg); }
.contact-form { max-width: 620px; margin: 0 auto; background: #ffffff; padding: 32px; box-shadow: 0 4px 24px rgba(0,0,0,.08); }
.form-group { margin: 16px 0; display: flex; flex-direction: column; }
.form-group label { margin-bottom: 8px; color: var(--brand); font-weight: 600; font-size: 15px; }
.form-group input, .form-group textarea, .form-group select { border:2px solid #e2e8f0; background:#ffffff; color:var(--fg); padding:12px 14px; font-family: inherit; font-size: inherit; transition: all 0.2s ease; }
.form-group select { cursor: pointer; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline:none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(14,165,168,.15); }
.contact-form .btn { width: 100%; margin-top: 8px; padding: 14px; font-size: 16px; background: var(--accent); transition: all 0.2s ease; }
.contact-form .btn:hover { background: var(--brand); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(14,165,168,.3); }
.form-status { margin-top: 12px; min-height: 20px; text-align: center; font-weight: 600; }
.form-status.ok { color:#16a34a; }
.form-status.err { color:#ef4444; }

/* Word cloud */
.word-cloud { --hole-w: 480px; --hole-h: 140px; display:grid; grid-template-columns: repeat(4, auto); grid-template-rows: repeat(4, auto); justify-content:center; justify-items:center; align-items:center; column-gap:24px; row-gap:20px; margin:18px auto 0; position:relative; min-height: 320px; max-width:1100px; padding:0 48px; }
.word-cloud::before { content:""; position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); width:var(--hole-w); height:var(--hole-h); background:var(--bg); border-radius:50%; z-index:1; }
.word-cloud .cloud-title { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); margin:0; text-align:center; font-size:28px; font-weight:700; z-index:2; padding:0 4px; white-space:nowrap; }
.word-cloud .cloud-hole { display:none; }
.word-cloud .word { display:inline-block; padding:8px 14px; background:#fff; border:1px solid #e2e8f0; color:var(--fg); position:relative; box-shadow: 0 3px 10px rgba(0,0,0,.04); white-space:nowrap; z-index:0; }
/* Fixed 4-row layout: Row 1 (4 chips), Row 2 (2 chips), Row 3 (2 chips), Row 4 (4 chips) */
.word-cloud .word:nth-of-type(1) { grid-column:1; grid-row:1; }
.word-cloud .word:nth-of-type(2) { grid-column:2; grid-row:1; }
.word-cloud .word:nth-of-type(3) { grid-column:3; grid-row:1; }
.word-cloud .word:nth-of-type(4) { grid-column:4; grid-row:1; }
.word-cloud .word:nth-of-type(5) { grid-column:1; grid-row:2; }
.word-cloud .word:nth-of-type(6) { grid-column:4; grid-row:2; }
.word-cloud .word:nth-of-type(7) { grid-column:1; grid-row:3; }
.word-cloud .word:nth-of-type(8) { grid-column:4; grid-row:3; }
.word-cloud .word:nth-of-type(9) { grid-column:1; grid-row:4; }
.word-cloud .word:nth-of-type(10) { grid-column:2; grid-row:4; }
.word-cloud .word:nth-of-type(11) { grid-column:3; grid-row:4; }
.word-cloud .word:nth-of-type(12) { grid-column:4; grid-row:4; }

.cloud-title { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); margin:0; text-align:center; font-size:30px; line-height:1.25; font-weight:700; z-index:1; pointer-events:none; padding:8px 16px; }
.cloud-oval { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width: 580px; height: 190px; z-index:0; pointer-events:none; }
.cloud-oval::before { content:""; position:absolute; inset:0; background:
    radial-gradient(closest-side, transparent calc(100% - 2px), rgba(193,67,46,.28) calc(100% - 2px) 100%)
; border-radius:50%; }

/* Soft color tints for chips */
.word-cloud .word:nth-child(6n+1) { background: rgba(14,165,168,.10); border-color: rgba(14,165,168,.25); }
.word-cloud .word:nth-child(6n+2) { background: rgba(193,67,46,.09); border-color: rgba(193,67,46,.23); }
.word-cloud .word:nth-child(6n+3) { background: rgba(99,102,241,.09); border-color: rgba(99,102,241,.23); }
.word-cloud .word:nth-child(6n+4) { background: rgba(234,179,8,.12); border-color: rgba(234,179,8,.25); }
.word-cloud .word:nth-child(6n+5) { background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.22); }
.word-cloud .word:nth-child(6n)   { background: rgba(15,23,42,.06);  border-color: rgba(15,23,42,.14); }

@media (prefers-reduced-motion: reduce) {
	.word-cloud .word { animation: none !important; }
}
.word-cloud .s2 { font-size:16px; }
.word-cloud .s3 { font-size:18px; font-weight:600; }
.word-cloud .s4 { font-size:20px; font-weight:600; }
@media (max-width: 900px) {
    .word-cloud { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); gap:12px 14px; --hole-w: 260px; --hole-h: 90px; }
    .word-cloud .cloud-hole { grid-column: 3 / span 2; grid-row: 2 / span 2; }
	.word-cloud .s4 { font-size:18px; }
}


/* For whom section */
#for-whom { background: #f8f9fa; }
#for-whom h2 { text-align:center; margin-bottom: 48px; }
.for-whom-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; max-width: 1200px; margin: 0 auto; }
.for-whom-card { 
	background: #ffffff; 
	padding: 32px 24px; 
	text-align: center; 
	box-shadow: 0 4px 16px rgba(0,0,0,.08);
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.for-whom-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.for-whom-icon { 
	width: 64px; 
	height: 64px; 
	margin: 0 auto 18px; 
	background: rgba(13, 110, 155, 0.75);
	color: #ffffff;
	display: flex; 
	align-items: center; 
	justify-content: center; 
	border-radius: 50%;
	flex-shrink: 0;
}
.for-whom-icon svg { 
	width: 38px; 
	height: 38px;
}
.for-whom-icon svg * { 
	stroke: #ffffff;
}
.for-whom-card h3 { 
	font-size: 20px;
	font-weight: 500; 
	margin: 0;
	color: var(--fg);
}

/* Mobile responsive styles */
@media (max-width: 768px) {
	/* Container & sections */
	.container { padding:0 16px; }
	.section { padding:40px 0; }
	
	/* Topbar */
	.topbar { font-size:12px; }
	.topbar-inner { flex-direction:column; gap:10px; padding:10px 0; text-align:center; }
	.topbar-right { display:flex; flex-direction:column; gap:8px; width:100%; align-items:center; }
	.topbar .sep { display:none; }
	
	/* Header & Navigation */
	.site-nav { gap:4px; padding:8px 0; flex-wrap:wrap; justify-content:center; }
	.site-brand { width:100%; justify-content:center; margin-right:0; margin-bottom:6px; }
	.site-nav > a { font-size:11px; white-space:nowrap; text-transform:uppercase; letter-spacing:.05em; }
	.site-nav > a:not(.btn) { margin:0 3px; }
	.btn-nav { padding:4px 8px; font-size:11px; text-transform:uppercase; margin-left:2px; }
	
	/* Hero */
	.hero { padding:40px 0 60px; min-height:auto; }
	.hero .hero-box { padding:20px 16px; }
	.hero h1 { font-size:26px; }
	.hero .hero-box p { font-size:16px; }
	.hero-underline { height:2px; margin:8px 0 12px; }
	
	/* Typography */
	h2 { font-size:22px; line-height:1.3; }
	h3 { font-size:18px; }
	
	/* Horizontal Leadership section */
	.hl-section { padding:40px 0; }
	.hl-typing { font-size:20px; min-height:2em; margin-top:12px; }
	.hl-typing .text { font-size:32px; }
	
	/* Word cloud - Being Alive */
	.word-cloud { display:flex; flex-wrap:wrap; gap:8px; padding:0 16px; min-height:auto; justify-content:center; align-items:flex-start; }
	.word-cloud .cloud-title { font-size:20px; width:100%; text-align:center; margin-bottom:16px; position:static; transform:none; }
	.word-cloud .word { font-size:13px !important; padding:6px 10px; max-width:100%; white-space:normal; text-align:center; line-height:1.3; }
	.word-cloud .s3 { font-size:14px !important; }
	.word-cloud::before { display:none; }
	
	/* Questions section */
	#questions { --q-icon-d: 48px; --q-gap-left: 12px; --q-gap-right: 12px; --q-gutter: calc(var(--q-gap-left) + var(--q-icon-d) + var(--q-gap-right)); }
	#questions h2 { font-size:20px; margin-bottom:20px; }
	#questions .card.question { padding:16px 16px 16px var(--q-gutter); font-size:15px; }
	#questions .card.question::before { font-size:24px; }
	#questions .card.question p { font-size:15px; }
	#questions .note { font-size:15px; padding:16px; margin-top:20px; }
	
	/* Program section */
	#program h2 { font-size:22px; margin-bottom:20px; }
	.program-list { gap:16px; }
	.program-item { padding:16px; gap:12px; text-align:center; }
	.program-num { font-size:13px; }
	.program-title { font-size:16px; }
	.program-date { font-size:13px; margin-top:6px; }
	
	/* Methodology section */
	#methodology h2 { font-size:18px; line-height:1.4; margin-bottom:24px; padding:0 8px; }
	#methodology .method-list { margin-left:40px; gap:12px; }
	#methodology .method-list li { font-size:16px; padding-left:22px; }
	#methodology .method-list li::before { width:6px; height:6px; }
	#methodology .footnote { font-size:14px; margin-top:24px; }
	
	/* IMO Institute section */
	#imo-institute h2 { font-size:18px; line-height:1.4; }
	#imo-institute .lead { font-size:15px; }
	.country-flags { gap:12px; }
	.flag { font-size:28px; }
	#imo-institute .mission { font-size:15px; }
	
	/* Speakers section */
	#speakers h2 { font-size:22px; margin-bottom:20px; }
	.speaker-name { font-size:18px; }
	.speaker-regalia { font-size:14px; line-height:1.5; }
	
	/* Terms section */
	#terms h2 { font-size:22px; margin-bottom:20px; }
	.terms-grid { gap:16px; }
	.term-card { padding:20px; }
	.term-title { font-size:18px; }
	.term-chip { font-size:11px; padding:4px 8px; margin:4px 0; }
	.price { font-size:28px; }
	.price .currency { font-size:20px; }
	.per-module { font-size:13px; }
	
	/* Contact form */
	#contact h2 { font-size:22px; margin-bottom:24px; }
	.contact-form { padding:24px 20px; max-width:100%; }
	.form-group { margin:12px 0; }
	.form-group label { font-size:14px; }
	.form-group input, .form-group textarea, .form-group select { padding:10px 12px; font-size:15px; }
	.contact-form .btn { padding:12px; font-size:15px; }
	
	/* Buttons */
	.btn-large { padding:14px 28px; font-size:16px; }
	.section-cta { margin-top:24px; }
}

