/* =========================================================
   RYTHON FAQ PAGE
   Page-only styles. Existing header/footer remain global.
========================================================= */

.ry-faq-page{
 --faq-blue:#1264f6;--faq-navy:#061944;--faq-text:#53617a;
 --faq-border:#e3eaf5;--faq-green:#14a44d;--faq-orange:#f59e0b;
 --faq-purple:#7c3aed;font-family:Inter,system-ui,sans-serif;
 color:var(--faq-navy);background:#fff
}
.ry-faq-page *,.ry-faq-page *:before,.ry-faq-page *:after{box-sizing:border-box}
.ry-faq-container{width:min(1180px,calc(100% - 48px));margin:auto}

/* Hero */
.ry-faq-hero{position:relative;overflow:hidden;min-height:440px;color:#fff;background:radial-gradient(circle at 72% 45%,rgba(15,95,255,.3),transparent 29%),linear-gradient(115deg,#04132f 0%,#061d4d 55%,#06388c 100%)}
.ry-faq-hero:before{content:"";position:absolute;inset:0;opacity:.18;background-image:radial-gradient(circle,rgba(255,255,255,.65) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent 25%,#000 75%,transparent)}
.ry-faq-hero-grid{position:relative;z-index:2;min-height:440px;display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:60px}
.ry-faq-hero-content{padding:68px 0}
.ry-faq-eyebrow{display:block;margin-bottom:16px;color:#4d8cff;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ry-faq-hero h1{max-width:600px;margin:0;font-size:clamp(45px,5vw,68px);line-height:1.02;letter-spacing:-2.7px;color:#fff}
.ry-faq-hero h1 span{display:block;color:#3980ff}
.ry-faq-title-line{width:42px;height:3px;margin:23px 0;border-radius:20px;background:#fff}
.ry-faq-hero-content>p{max-width:510px;margin:0;color:rgba(255,255,255,.75);font-size:15px;line-height:1.75}
.ry-faq-search{position:relative;width:min(100%,470px);display:flex;align-items:center;margin-top:30px}
.ry-faq-search>svg{position:absolute;left:20px;width:18px;height:18px;color:#fff;pointer-events:none}
.ry-faq-search input{width:100%;height:52px;padding:0 52px;color:#fff;font:inherit;font-size:13px;outline:0;border:1px solid rgba(255,255,255,.28);border-radius:30px;background:rgba(255,255,255,.08);backdrop-filter:blur(10px);transition:.25s}
.ry-faq-search input::placeholder{color:rgba(255,255,255,.65)}
.ry-faq-search input:focus{border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.12);box-shadow:0 0 0 4px rgba(255,255,255,.05)}
#faqSearchClear{position:absolute;right:11px;width:34px;height:34px;display:none;place-items:center;padding:0;color:#fff;border:0;border-radius:50%;background:rgba(255,255,255,.1);cursor:pointer}
#faqSearchClear svg{width:16px;height:16px}

/* Hero art */
.ry-faq-hero-art{position:relative;width:100%;height:370px}
.ry-faq-orbit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(69,133,255,.25);border-radius:50%}
.orbit-1{width:330px;height:330px}.orbit-2{width:260px;height:260px}.orbit-3{width:190px;height:190px}
.ry-faq-dots{position:absolute;width:140px;height:140px;right:10px;top:60px;opacity:.3;background-image:radial-gradient(circle,#4e8cff 2px,transparent 2px);background-size:18px 18px}
.ry-faq-bubble{position:absolute;display:grid;place-items:center;border-radius:50% 50% 50% 15%;transform:rotate(-5deg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 30px 70px rgba(0,0,0,.25)}
.ry-faq-bubble span{transform:rotate(5deg);color:#fff;font-weight:800;text-shadow:0 4px 15px rgba(0,0,0,.25)}
.ry-faq-bubble-main{z-index:3;width:185px;height:185px;left:42%;top:70px;background:linear-gradient(145deg,#4d92ff,#1264f6);animation:faqFloat 5s ease-in-out infinite}
.ry-faq-bubble-main span{font-size:95px}.ry-faq-bubble-back{z-index:1;width:145px;height:145px;left:61%;top:155px;opacity:.55;background:linear-gradient(145deg,#426aa8,#142f61);animation:faqFloatBack 6s ease-in-out infinite}.ry-faq-bubble-back span{font-size:60px;opacity:.25}
@keyframes faqFloat{50%{transform:translateY(-12px) rotate(-2deg)}}@keyframes faqFloatBack{50%{transform:translateY(9px) rotate(4deg)}}

/* Content */
.ry-faq-content{padding:58px 0 85px;background:linear-gradient(180deg,#fff,#fbfdff)}
.ry-faq-heading{text-align:center;margin-bottom:30px}.ry-faq-heading>span{color:var(--faq-blue);font-size:11px;font-weight:800;letter-spacing:.08em}.ry-faq-heading h2{margin:8px 0 0;color:var(--faq-navy);font-size:clamp(29px,3vw,38px);letter-spacing:-1.3px}

/* Filters */
.ry-faq-filters{display:grid;grid-template-columns:repeat(6,1fr);gap:15px;margin-bottom:44px}
.ry-faq-filter{min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:15px 10px;color:#34425d;font:600 11px/1.35 Inter,sans-serif;text-align:center;border:1px solid var(--faq-border);border-radius:12px;background:#fff;cursor:pointer;transition:.25s}
.ry-faq-filter:hover{transform:translateY(-3px);border-color:#a9c7ff;box-shadow:0 12px 30px rgba(15,23,42,.06)}
.ry-faq-filter.active{color:var(--faq-blue);border-color:var(--faq-blue);box-shadow:0 8px 25px rgba(18,100,246,.08)}
.filter-icon{width:36px;height:36px;display:grid;place-items:center;color:#5c6473}.filter-icon svg{width:21px;height:21px}.ry-faq-filter.active .filter-icon{color:var(--faq-blue)}

/* Groups */
.ry-faq-search-status{display:none;margin:-15px 0 30px;color:var(--faq-text);font-size:13px}.ry-faq-search-status.visible{display:block}
.ry-faq-groups{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:34px 38px}
.ry-faq-group{min-width:0}.ry-faq-group-heading{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.ry-faq-group-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:50%}.ry-faq-group-icon svg{width:21px;height:21px}
.ry-faq-group-icon.about{color:var(--faq-blue);background:#eaf2ff}.ry-faq-group-icon.campus{color:#14a44d;background:#e9f9ef}.ry-faq-group-icon.partnership{color:#e89a00;background:#fff5dc}.ry-faq-group-icon.academics{color:#9146e8;background:#f3eaff}.ry-faq-group-icon.commercial{color:#e94a4a;background:#ffeded}
.ry-faq-group-heading h3{margin:0 0 3px;color:var(--faq-navy);font-size:14px}.ry-faq-group-heading span{color:var(--faq-blue);font-size:11px;font-weight:700}

/* Accordion */
.ry-faq-accordion{display:grid;gap:8px}.ry-faq-item{overflow:hidden;border:1px solid var(--faq-border);border-radius:9px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.025);transition:.25s}.ry-faq-item.active{border-color:#b8d0ff;background:linear-gradient(145deg,#fff,#f7faff);box-shadow:0 8px 24px rgba(18,100,246,.06)}
.ry-faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;color:var(--faq-navy);font:700 12px/1.45 Inter,sans-serif;text-align:left;border:0;background:transparent;cursor:pointer}
.ry-faq-question svg{width:15px;height:15px;flex:0 0 auto}.ry-faq-item.active .ry-faq-question{color:var(--faq-blue)}
.ry-faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s ease}.ry-faq-answer-inner{min-height:0;overflow:hidden;padding:0 18px;color:var(--faq-text);font-size:11.5px;line-height:1.7;transition:padding .32s ease}.ry-faq-item.active .ry-faq-answer{grid-template-rows:1fr}.ry-faq-item.active .ry-faq-answer-inner{padding:2px 18px 18px}

/* Empty */
.ry-faq-empty{display:none;padding:70px 20px;text-align:center}.ry-faq-empty.show{display:block}.ry-faq-empty>div{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 18px;color:var(--faq-blue);border-radius:50%;background:#edf4ff}.ry-faq-empty>div svg{width:28px;height:28px}.ry-faq-empty h3{margin:0 0 8px;font-size:20px}.ry-faq-empty p{margin:0 0 18px;color:var(--faq-text);font-size:13px}.ry-faq-empty button{padding:11px 18px;color:#fff;font:700 12px Inter,sans-serif;border:0;border-radius:7px;background:var(--faq-blue);cursor:pointer}

/* Bottom actions */
.ry-faq-actions{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px;padding:26px 15px;border:1px solid #e8eef8;border-radius:16px;background:linear-gradient(110deg,#f8fbff,#fff,#f7faff);box-shadow:0 15px 40px rgba(15,23,42,.035)}
.ry-faq-action{position:relative;padding:5px 25px;text-align:center}.ry-faq-action:not(:last-child):after{content:"";position:absolute;right:0;top:10%;width:1px;height:80%;background:#e3eaf5}
.action-icon{width:50px;height:50px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%}.action-icon svg{width:21px;height:21px}.action-icon.blue{color:var(--faq-blue);background:#eaf2ff}.action-icon.green{color:var(--faq-green);background:#eaf9ef}.action-icon.orange{color:var(--faq-orange);background:#fff3e2}.action-icon.purple{color:var(--faq-purple);background:#f2eaff}
.ry-faq-action h3{margin:0 0 7px;font-size:13px}.ry-faq-action p{min-height:42px;margin:0 auto 12px;max-width:190px;color:var(--faq-text);font-size:10.5px;line-height:1.55}.ry-faq-action a{display:inline-flex;align-items:center;gap:7px;color:var(--faq-blue);font-size:11px;font-weight:800;text-decoration:none}.ry-faq-action a svg{width:13px;height:13px;transition:.2s}.ry-faq-action a:hover svg{transform:translateX(4px)}

.ry-faq-group.faq-hidden,.ry-faq-item.faq-hidden{display:none}

/* Responsive */
@media(max-width:1050px){.ry-faq-filters{grid-template-columns:repeat(3,1fr)}.ry-faq-hero-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.ry-faq-hero-grid{grid-template-columns:1fr}.ry-faq-hero-content{padding:65px 0 20px}.ry-faq-hero-art{height:290px}.ry-faq-groups{grid-template-columns:1fr}.ry-faq-actions{grid-template-columns:1fr 1fr;gap:30px 0}.ry-faq-action:nth-child(2):after{display:none}}
@media(max-width:600px){.ry-faq-container{width:min(100% - 30px,1180px)}.ry-faq-hero h1{font-size:43px;letter-spacing:-1.8px}.ry-faq-hero-art{height:250px}.ry-faq-bubble-main{width:150px;height:150px;left:37%;top:45px}.ry-faq-bubble-main span{font-size:75px}.ry-faq-bubble-back{width:110px;height:110px;left:58%;top:120px}.orbit-1{width:250px;height:250px}.orbit-2{width:190px;height:190px}.orbit-3{width:130px;height:130px}.ry-faq-filters{grid-template-columns:1fr 1fr;gap:10px}.ry-faq-filter{min-height:90px}.ry-faq-actions{grid-template-columns:1fr}.ry-faq-action{padding:20px 15px}.ry-faq-action:after{display:none!important}.ry-faq-action:not(:last-child){border-bottom:1px solid #e3eaf5}}
