*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:hidden}
.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}
html{scroll-behavior:smooth;scroll-padding-top:80px}
html.ab-a [data-ab="b"],html.ab-b [data-ab="a"]{display:none!important}
html.ab-b .hero{height:clamp(300px, 202.71px + 16.95vw, 440px)}
.hero-bg-alt-poster,.hero-bg-alt-video{object-position:0% 48%;z-index:0}
.hero-bg-alt-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.hero-ol-group{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;transform:scale(1.32);transform-origin:37% -15%}
.hero-ol{position:absolute;object-fit:cover}
.hero-ol-1{z-index:3;width:21%;left:55%;top:37.5%;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,0.2)}
.hero-ol-2{z-index:2;width:26%;left:70%;top:5%;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,0.12)}
.hero-ol-3{z-index:2;width:26%;left:46%;top:18%;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,0.12)}
.hero-intro .two-col{align-items:center}
.hero-intro-h1{margin:0 0 16px;font-size:2.5rem;line-height:1.2}
.hero-intro .hero-rating{margin-bottom:16px}
.container{max-width:1100px;margin:0 auto;padding:0 4vw}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.announcement-bar,.promo-banner{position:static;display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 24px}
.announcement-close,.promo-close{background:none;border:none;padding:0 4px;line-height:1;cursor:pointer;flex-shrink:0}
.has-announcement .promo-banner{top:auto}
.has-announcement .navbar,.has-promo .navbar,.has-announcement.has-promo .navbar{top:0}
.has-announcement .hero,.has-promo .hero,.has-announcement.has-promo .hero{margin-top:0}
.navbar{position:sticky;top:0;z-index:1000;padding:1.1vw 0}
.nav-container{display:flex;align-items:center;justify-content:space-between;max-width:1400px;padding:0 4vw}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none}
.nav-dropdown{position:relative}
.dropdown-menu{display:none;position:absolute;top:calc(100% + 1.1vw - 1px);left:0;padding:20px 32px;z-index:100;grid-template-columns:auto auto auto;gap:0 48px}
.dropdown-menu::before{content:'';position:absolute;bottom:100%;left:0;right:0;height:calc(1.1vw + 4px)}
.nav-dropdown:hover .dropdown-menu{display:grid}
.dropdown-col{display:flex;flex-direction:column;gap:6px}
.dropdown-heading{margin-bottom:4px}
.dropdown-menu a{display:inline;padding:0;white-space:nowrap}
.nav-more-menu{display:none}
.nav-links>li:nth-child(n+3) .dropdown-menu{left:auto;right:0}
.nav-more-menu .dropdown-menu{grid-template-columns:auto}
@media (min-width:769px) and (max-width:1100px){.nav-show-wide{display:none!important}.nav-more-menu{display:block}}
.mobile-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.mobile-toggle span{width:22px;height:2px}
.btn{display:inline-block;padding:12px 28px;cursor:pointer}
.btn-large{padding:16px 40px}
.btn-group{display:flex;gap:12px;flex-wrap:wrap}
[data-ab="b"] .btn-group{justify-content:center}
[data-ab="b"] .container > .btn{display:block;margin-left:auto;margin-right:auto;width:fit-content}
.text-center{text-align:center}
.text-link{text-align:center;display:block;margin-top:48px}
.hero{position:relative;height:700px;display:flex;align-items:center;padding:0;overflow:hidden;margin-top:0}
.hero{--hero-anchor-right:1950;--hero-ref-width:1920;--hero-text-start:690;--hero-image-start:625;--hero-text-rate:0.27;--hero-image-rate:0.30;--hero-fade-start:445;--hero-fade-rate:0.00;--hero-fade-opacity:0.95;--hero-fade-gradient-start:34;--hero-fade-gradient-end:69;--hero-text-width:480;--hero-text-shrink-rate:0.04}
.hero-bg,.hero-bg-alt{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}
.hero-bg-img,.hero-bg-alt-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-bg-alt-video{top:-10px;height:calc(100% + 10px)}
.hero-scene{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:hidden}
.hero-scene-inner{position:relative;width:100%;height:100%}
.hero-scene-layer{position:absolute;top:0;left:0;width:100%;height:100%;display:block}
.hero-scene-fg{z-index:2;filter:drop-shadow(0 4px 20px rgba(0,0,0,0.15));box-shadow:9px 32px 32px 32px rgba(0,0,0,0.35)}
.hero-video-slot{position:absolute;z-index:1;border-radius:20px;overflow:hidden;filter:blur(0.5px);box-shadow:0px 8px 24px 0px rgba(0,0,0,0.25)}
.hero-video-slot video{width:calc(100% + 100px);height:calc(100% + 60px);margin:-40px -50px -20px;display:block}
.hero-video-1{left:31%;top:15.5%;width:14.3%;aspect-ratio:1308 / 720;display:none;transform:perspective(500px) rotateY(15deg)}
.hero-video-2{left:19.5%;top:2%;width:11.4%;aspect-ratio:1112 / 720;display:none;transform:perspective(500px) rotateY(-15deg)}
.hero-video-3{left:32.5%;top:10.5%;width:13.0%;aspect-ratio:1112 / 720;transform:perspective(500px) rotateY(15deg)}
.hero-video-4{left:48.5%;top:4.5%;width:16.8%;aspect-ratio:1112 / 720;transform:perspective(500px) rotateY(-15deg)}
.hero-overlay{position:absolute;top:0;left:0;width:55%;height:100%;z-index:1}
.hero .container{position:relative;z-index:2;width:100%;max-width:none;margin:0;padding-left:max(4vw,min(150px,8vw))}
.hero-content{max-width:480px;text-align:left;padding-top:30px}
.hero-wave{position:absolute;bottom:0;left:0;width:100%;z-index:3;line-height:0}
.hero-wave svg{width:100%;height:60px}
.highlight{padding:0 2px}
.hero-content h1{margin-bottom:20px}
.hero-eyebrow{margin-bottom:12px}
.hero-content p{margin-bottom:16px}
.hero-content .text-link{text-align:left;margin-top:24px}
.hero-form-wide{margin:32px 0 0;padding:24px}
.hero-form-label{margin-top:0;margin-bottom:12px}
.hero-rating{margin-bottom:24px}
.hero-mobile-img{display:none}
.hero-form{display:flex;flex-direction:column;gap:12px}
.form-row-wide{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.form-bottom-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.hero-form input,.hero-form textarea{width:100%;padding:10px 14px}
.hero-form textarea{resize:vertical}
.feedback-popup textarea{padding:10px 12px}
.form-group{display:flex;flex-direction:column;gap:6px}
.contact-methods{display:flex;gap:16px;flex-wrap:wrap}
.contact-methods label{display:flex;align-items:center;gap:4px;cursor:pointer}
.contact-methods input[type="checkbox"]{width:auto}
.section{padding:80px 0}
.section h2{margin-bottom:24px}
.section p{margin-bottom:16px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:start}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:4vw;margin-bottom:40px}
.service-block{padding:32px}
.service-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.service-icon svg{width:24px;height:24px}
.service-block h3{margin-bottom:12px}
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.tool-card{overflow:hidden}
.tool-img{width:100%;height:200px;overflow:hidden;padding:8px}
.tool-img img{width:100%;height:100%;object-fit:cover}
.tool-card h3{margin:20px 24px 8px}
.tool-card p{margin:0 24px 24px}
.star-list{list-style:none;margin:16px 0 24px;text-align:left;padding-left:1.4em}
.star-list li{padding:6px 0;position:relative;padding-left:0.2em}
.star-list li::before{position:absolute;left:-1.4em;margin-right:4px}
.services-table-wrap{max-width:800px;margin:40px auto 0}
.services-table{width:100%;border-collapse:collapse}
.services-table td,.services-table th{padding:20px 0;vertical-align:middle;text-align:left;font-weight:normal}
.services-table th{padding-right:24px}
.services-table th strong{display:block}
.service-note{display:block;margin-top:2px}
.service-price-cell{white-space:nowrap;text-align:right;padding-right:32px}
.service-link-cell{white-space:nowrap;text-align:right}
.reviews-row-section{padding:32px 0}
.reviews-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review-card{display:flex;flex-direction:column;padding:28px}
.review-text{flex:1;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.review-more{display:inline-block;margin-top:auto;padding-top:8px;cursor:pointer}
.review-card.expanded .review-text{-webkit-line-clamp:unset;overflow:visible}
.review-card.expanded .review-more{display:none}
.reviews-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-bottom:32px}
.review-header strong{display:block}
.reviews-row-section .container{max-width:1300px}
.reviews-section .container{max-width:1400px}
.reviews-summary{margin-bottom:32px;text-align:center}
.review-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.review-avatar{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.faq-list{max-width:800px;margin:0 auto}
.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;padding:24px 0;background:none;border:none;cursor:pointer;text-align:left;gap:16px}
.faq-icon{flex-shrink:0}
.faq-item.active .faq-icon{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden}
.faq-answer p{margin-bottom:12px;padding-bottom:0}
.faq-answer p:last-child{margin-bottom:20px}
.footer{padding:40px 0}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4vw}
.footer .footer-heading{margin-bottom:16px}
.footer a{display:block;margin-bottom:8px}
.feedback-toggle{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border:none;cursor:pointer;z-index:9999;display:flex;align-items:center;justify-content:center}
.feedback-count{position:absolute;top:-4px;right:-4px;width:20px;height:20px;display:none;align-items:center;justify-content:center;line-height:1}
.feedback-count.visible{display:flex}
.feedback-banner{display:none;position:fixed;top:0;left:0;right:0;padding:12px 24px;z-index:10000;align-items:center;justify-content:space-between}
.feedback-mode .feedback-banner{display:flex}
.feedback-banner button{border:none;cursor:pointer;padding:6px 20px}
.feedback-mode{cursor:crosshair}
.feedback-mode .navbar{top:48px}
.feedback-pin{position:absolute;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:999;transform:translate(-50%,-50%)}
.feedback-pin:hover{transform:translate(-50%,-50%) scale(1.15)}
.feedback-popup{display:none;position:absolute;z-index:10001;padding:16px;width:280px}
.feedback-popup.visible{display:block}
.feedback-popup textarea{width:100%;resize:vertical;min-height:70px}
.feedback-popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.feedback-popup-btn{padding:6px 16px;cursor:pointer;border:none}
.feedback-detail{position:absolute;z-index:10001;padding:16px;width:300px}
.feedback-detail-comment{margin-bottom:12px;word-wrap:break-word}
.feedback-detail-time{margin-bottom:10px}
.feedback-detail-close{position:absolute;top:8px;right:10px;background:none;border:none;cursor:pointer;line-height:1}
.feedback-panel{position:fixed;top:0;right:-400px;width:380px;max-width:90vw;height:100vh;z-index:10002;display:flex;flex-direction:column}
.feedback-panel.open{right:0}
.feedback-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px}
.feedback-panel-header button{background:none;border:none;cursor:pointer;line-height:1}
.feedback-panel-list{flex:1;overflow-y:auto;padding:16px}
.feedback-panel-empty{padding:40px 20px}
.feedback-item{padding:14px;margin-bottom:12px}
.feedback-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.feedback-item-pin{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feedback-item-delete{background:none;border:none;cursor:pointer;padding:2px 6px}
.feedback-item-comment{margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feedback-item-screenshot{width:100%}
.feedback-detail-screenshot{width:100%;cursor:pointer}
.feedback-panel-overlay{display:none;position:fixed;inset:0;z-index:10001}
.feedback-panel-overlay.open{display:block}
.popup-overlay{display:none;position:fixed;inset:0;z-index:10003;align-items:center;justify-content:center;padding:24px}
.popup-overlay.visible{display:flex}
.popup-modal{padding:40px;max-width:560px;width:100%;position:relative;max-height:80vh;overflow-y:auto}
.popup-close{position:absolute;top:16px;right:20px;background:none;border:none;cursor:pointer;line-height:1}
.popup-modal h2{margin-bottom:16px}
.popup-modal p{margin-bottom:12px}
.popup-modal ul{margin:12px 0;padding-left:20px}
.popup-modal li{margin-bottom:4px}
.popup-action{margin-top:20px;width:100%}
.text-link{text-align:center}
.subpage-header{padding:120px 0 0;background:#f7f8fa;text-align:left;position:relative}
.subpage-header h1{font-size:2.75rem;font-weight:700;letter-spacing:-0.03em;margin-bottom:16px}
.subpage-header p{font-size:1.05rem;max-width:600px;margin:0;line-height:1.8}
.breadcrumb{font-size:0.9rem;margin-bottom:24px}
.breadcrumb a{color:#1a73e8;text-decoration:none;font-weight:500}
.breadcrumb a:hover{text-decoration:underline}
.subpage-header .container,.subject-section .container{padding:0 8vw}
.subpage-header .container{padding-bottom:60px}
.subject-section{padding:60px 0}
.subject-section:nth-child(odd){background:#fff}
.subject-section:nth-child(even){background:#f7f8fa}
.subject-section h2{font-size:2rem;font-weight:700;margin-bottom:8px;letter-spacing:-0.03em;text-align:left}
.subject-section h3.subject-subtitle{font-size:1.05rem;font-weight:600;margin-bottom:16px}
.subject-section > .container > p{font-size:1rem;line-height:1.8;margin-bottom:32px;max-width:800px}
.subject-section.bg-white{background:#fff}
.subject-section.bg-alt{background:#f7f8fa}
.subject-section .star-list{margin-bottom:24px}
.subject-links{list-style:none;margin:24px 0}
.subject-links li{display:flex;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid #e5e7eb}
.subject-links li:first-child{border-top:1px solid #e5e7eb}
.subject-links li a{font-size:1.05rem;font-weight:600}
.subject-links li span{font-size:0.9rem;opacity:0.65}
.cta-block{text-align:center;padding:20px 0}
.cta-block p{font-size:1.1rem;margin-bottom:24px;max-width:600px;margin-left:auto;margin-right:auto}
.tutor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:32px}
.tutor-card{text-align:center}
.tutor-img{width:160px;height:160px;margin:0 auto 16px;overflow:hidden}
.tutor-img img{width:100%;height:100%;object-fit:cover}
.tutor-card h3{font-size:1.2rem;font-weight:700;margin-bottom:4px}
.tutor-card .tutor-role{font-size:0.9rem;margin-bottom:12px}
.tutor-card p{font-size:0.95rem;line-height:1.7}
.subpage-wave{position:relative;line-height:0;margin-top:-1px}
.subpage-wave svg{width:100%;height:60px;display:block}
.edit-editable{outline:1px dashed rgba(26,115,232,0.3);outline-offset:2px;min-height:1em}
.edit-editable:focus{outline:2px solid rgba(26,115,232,0.6);outline-offset:2px}
.edit-changed{background:rgba(255,235,59,0.15)}
.edit-mode-on .navbar{top:37px}
@media (min-width:1400px){.hero .container{max-width:1200px;margin:0 auto;padding-left:4vw}
}
@media (max-width:1200px){.reviews-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:768px){.nav-links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;flex-direction:column;align-items:center;justify-content:flex-start;gap:20px;z-index:10000;overflow-y:auto;padding:80px 20px 40px}
.nav-links.active{display:flex}
.nav-more-menu{display:none!important}
.dropdown-menu{position:static;display:block;grid-template-columns:1fr;box-shadow:none;border:none;text-align:center;padding:0}
.dropdown-col{align-items:center}
.nav-dropdown:hover .dropdown-menu{display:block}
.dropdown-heading{display:none}
.nav-links>li{text-align:center;width:100%}
.mobile-toggle{display:flex;z-index:1001}
.mobile-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.mobile-toggle.active span:nth-child(2){opacity:0}
.mobile-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.hero,.has-announcement .hero,.has-promo .hero,.has-announcement.has-promo .hero{height:auto;margin-top:0;padding:0;flex-direction:column}
.hero-bg,.hero-overlay{display:none}
.hero-scene{position:relative;width:100%;aspect-ratio:1093 / 641;overflow:hidden}
.hero-scene-inner{position:absolute;width:320%;aspect-ratio:4000 / 749;left:-100%;top:50%;transform:translateY(-50%)}
.hero .container{padding:24px 4vw 32px;max-width:none;margin:0;width:100%}
.hero-content{max-width:none;width:100%}
.hero-mobile-img{display:none}
.two-col{grid-template-columns:1fr;gap:32px}
.three-col,.reviews-grid,.reviews-row,.tools-grid{grid-template-columns:1fr;gap:16px}
.reviews-row-section{padding:20px 0}
.form-row-wide{grid-template-columns:1fr 1fr}
.form-bottom-row{flex-direction:column;align-items:stretch}
.services-table-wrap{margin-top:24px}
.service-price-cell{padding-right:16px}
.footer-grid{grid-template-columns:repeat(2,1fr);gap:32px}
.section{padding:48px 0}
.popup-modal{padding:28px}
.subpage-header{padding:100px 0 0}
.subpage-header h1{font-size:2rem}
.subject-section{padding:40px 0}
}
.back-to-top{position:fixed;bottom:32px;right:32px;z-index:900;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;opacity:0;pointer-events:none;transition:opacity 0.3s}
.back-to-top.visible{opacity:1;pointer-events:auto}
@media (max-width:768px){.back-to-top{bottom:20px;right:20px}
}
@supports (hanging-punctuation:first){.hero{--hero-anchor-right:1950;--hero-text-start:690;--hero-image-start:625;--hero-text-rate:0.27;--hero-image-rate:0.30}
}
@media (min-width:700px){.hero-ol-group{transform:scale(1.27)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:8% 48%}}
@media (min-width:850px){.hero-ol-group{transform:scale(1.21)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:17% 48%}}
@media (min-width:1000px){.hero-ol-group{transform:scale(1.16)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:26% 48%}}
@media (min-width:1150px){.hero-ol-group{transform:scale(1.10)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:35% 48%}}
@media (min-width:1300px){.hero-ol-group{transform:scale(1.04)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:44% 48%}}
@media (min-width:1400px){.hero-ol-group{transform:scale(1)}.hero-bg-alt-poster,.hero-bg-alt-video{object-position:50% 48%}}
@media (max-width:1000px){.hero-ol-1{box-shadow:0 2px 8px rgba(0,0,0,0.15)!important}.hero-ol-2,.hero-ol-3{box-shadow:0 2px 8px rgba(0,0,0,0.1)!important}}
@media (max-width:574px){html.ab-b .hero{height:300px}.hero-ol-group{transform:scale(1.3);transform-origin:37% -15%}.hero-ol-1{width:21%;left:59%;top:calc(43.5% - 10px);box-shadow:0 3px 10px rgba(0,0,0,0.18)!important}.hero-ol-2{width:69%;left:calc(58% + 30px);top:calc(7% + 20px);box-shadow:0 3px 10px rgba(0,0,0,0.12)!important}.hero-ol-3{display:none!important}}