/* Dimensions and responsive composition taken from the user-supplied screenshots. */
.reference-page { --ref-primary:var(--brand); --ref-soft:var(--brand-soft); --ref-accent:#456477; color:var(--ink); font-size:14px; }
.reference-page h1,.reference-page h2,.reference-page h3 { letter-spacing:-.025em; }
.reference-page button,.reference-page a { touch-action:manipulation; }
.ref-container { width:min(1060px,calc(100% - 64px)); margin-inline:auto; }
.ref-icon { display:inline-block; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; flex-shrink:0; }
[data-icon] { display:inline-flex; align-items:center; justify-content:center; }
.ref-coral { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:12px 28px; background:var(--ref-primary); color:#fff; border-radius:12px; font-weight:600; font-size:14px; }
.ref-coral:hover { background:#0b5b55; }
.ref-center { display:flex; justify-content:center; margin-top:48px; }
.ref-header { display:flex; align-items:center; justify-content:space-between; height:88px; padding:0 24px; position:relative; z-index:15; }
.ref-header-left { display:flex; align-items:center; gap:26px; }
.ref-logo { color:var(--ref-primary); font-weight:800; font-size:26px; letter-spacing:-.7px; }
.ref-logo-small { display:none; }
.ref-header-nav { display:flex; gap:16px; align-items:center; }
.ref-header-nav button { display:flex; align-items:center; justify-content:center; min-height:40px; background:#f7f7f7; border-radius:30px; padding:8px 17px; font-size:14px; font-weight:600; }
.ref-header-nav .ref-help { width:40px; padding:0; }
.ref-help .ref-icon { width:18px; height:18px; }
.ref-header-search { display:flex; align-items:center; gap:16px; min-height:56px; padding:8px 8px 8px 24px; background:#f7f7f7; border-radius:30px; font-weight:600; font-size:14px; }
.ref-header-search > span:last-child { display:grid; place-items:center; width:40px; height:40px; color:#fff; background:var(--ref-primary); border-radius:50%; }
.ref-header-search .ref-icon { width:19px; height:19px; }
.ref-mobile-toggle { display:none; }
.ref-mobile-query { display:none; }
.ref-footer { margin-top:100px; border-top:1px solid #eee; padding:48px 0 25px; }
.ref-footer-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:40px; }
.ref-footer h2 { font-size:18px; margin-bottom:16px; }
.ref-footer a,.ref-footer button { display:block; padding:5px 0; font-size:12px; font-weight:500; text-align:left; }
.ref-footer a:hover,.ref-footer button:hover { color:var(--ref-primary); }
.ref-footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid #eee; margin-top:40px; padding-top:24px; font-size:11px; color:#777; }
.ref-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; color:#a3a3a3; font-size:10px; align-items:center; }
.ref-breadcrumb > span:nth-child(even) { font-size:18px; }

/* English subject landing page */
.category-page #ref-header { position:absolute; top:0; left:0; right:0; }
.category-page .ref-header-nav button { background:#fff; }
.category-hero { position:relative; height:709px; background:var(--ref-soft); }
.category-hero-inner { width:min(1120px,calc(100% - 64px)); margin:auto; position:relative; z-index:2; }
.category-intro { padding-top:182px; max-width:620px; }
.category-intro h1 { font-size:40px; font-weight:700; line-height:1.4; margin-bottom:14px; }
.category-benefits { line-height:24px; font-weight:600; font-size:16px; }
.category-portraits { position:absolute; left:calc(50% + 127px); top:0; width:min(545px,calc(50% - 127px)); height:709px; overflow:hidden; pointer-events:none; }
.hero-portrait { position:absolute; width:160.5px; overflow:hidden; }
.hero-portrait img { width:100%; height:100%; }
.hero-portrait:nth-child(1) { left:0; top:120px; height:540px; border-radius:90px 90px 0 0; }
.hero-portrait:nth-child(2) { left:192.5px; top:179.5px; height:529.5px; border-radius:90px 90px 0 0; }
.hero-portrait:nth-child(3) { left:384.5px; top:0; height:560px; border-radius:0 0 90px 90px; }
.hero-portrait:nth-child(3)::after { content:''; position:absolute; inset:0 0 auto; height:66px; background:linear-gradient(110deg,#adc5cd,#c1d2d4 55%,#a9c1ce); }
.ref-search { display:flex; align-items:center; padding:8px; margin-top:40px; min-height:72px; background:#fff; box-shadow:0 16px 25px #0f766e15; border-radius:24px; }
.ref-search label { display:flex; align-items:center; gap:12px; flex:1; min-width:0; padding:0 12px; }
.ref-search label + label { border-left:2px solid #ddd; }
.ref-search label .ref-icon { color:#aaa; }
.ref-search input { min-width:0; width:100%; border:0; padding:0; outline-offset:6px; height:36px; background:none; font-size:16px; }
.ref-search .ref-coral { min-height:56px; border-radius:16px; padding-inline:30px; }
.trust-panel { position:absolute; z-index:3; bottom:-48px; left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:6px; width:570px; min-height:96px; padding:24px; border-radius:42px; background:#fff; box-shadow:0 6px 30px #00000005; font-size:15px; }
.trust-panel > div { white-space:nowrap; }
.trust-panel strong { font-weight:600; }
.trust-stars { color:#ffb600; font-size:22px; letter-spacing:-1px; vertical-align:-1px; }
.trust-stars > span { background:linear-gradient(90deg,#ffb600 55%,#ffebbb 55%); color:transparent; background-clip:text; }
.category-teachers { padding-top:126px; }
.category-teachers > h2 { font-size:30px; font-weight:600; line-height:1.5; margin:28px 0 40px; }
.ref-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ref-teacher-card { position:relative; min-width:0; }
.ref-card-link { display:block; }
.ref-card-photo { position:relative; aspect-ratio:1; border-radius:30px; overflow:hidden; background:#f4f4f4; }
.ref-card-photo img { width:100%; height:100%; object-fit:cover; }
/* The supplied photographic crops include the original image captions. */
.ref-card-caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ref-card-rating { display:flex; align-items:center; justify-content:space-between; gap:5px; margin-top:10px; font-size:13px; white-space:nowrap; }
.ref-card-rating .gold { color:#ffb400; font-size:20px; line-height:1; vertical-align:-2px; margin-right:3px; }
.ref-card-rating strong { font-weight:600; }
.ref-status { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:15px; font-size:12px; font-weight:600; color:var(--ref-accent); background:#eaf2f6; }
.ref-status--plain { background:#f4f4f4; color:#666; font-size:11px; }
.ref-card-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:8px 0 7px; font-size:14px; line-height:1.5; min-height:42px; color:#565656; }
.ref-card-price { font-size:14px; color:#555; font-weight:600; }
.ref-card-price span { color:var(--ref-primary); font-weight:500; }
.ref-card-favorite { position:absolute; top:5px; right:5px; width:44px; height:44px; border-radius:50%; color:#fff; }
.ref-card-favorite .ref-icon { opacity:0; width:23px; height:23px; filter:drop-shadow(0 1px 2px #0005); }
.ref-card-favorite:hover { background:#0002; }
.ref-card-favorite[aria-pressed=true] .ref-icon { opacity:1; fill:var(--ref-primary); stroke:#fff; }
.category-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:110px; }
.category-facts article { padding:24px; border-radius:24px; position:relative; background:#fffaed; color:#8a662f; }
.category-facts article:nth-child(2) { background:var(--ref-soft); color:var(--ref-primary); }
.category-facts article:nth-child(3) { background:#edf2f6; color:#456477; }
.category-facts strong { display:block; font-size:24px; font-weight:700; }
.category-facts strong small { font-size:16px; }
.category-facts article > span { position:absolute; right:22px; top:25px; font-size:20px; }
.category-facts p { margin-top:6px; font-size:12px; line-height:1.5; font-weight:600; }
.category-steps,.category-testimonials,.category-faq { margin-top:84px; }
.category-steps > h2,.category-testimonials > h2,.category-faq > h2,.category-essential h2 { font-size:24px; font-weight:600; margin-bottom:38px; }
.ref-three-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ref-three-grid article { display:flex; flex-direction:column; padding:24px; border-radius:38px; background:var(--ref-soft); }
.ref-three-grid article > span { font-size:56px; font-weight:600; line-height:1; color:#70b3a1; }
.ref-three-grid h3 { font-size:28px; margin-top:10px; margin-bottom:14px; font-weight:600; }
.ref-three-grid p { font-size:14px; line-height:1.9; margin-bottom:32px; }
.ref-three-grid img { width:100%; aspect-ratio:1.25; border-radius:20px; margin-top:auto; }
.category-review-grid { columns:2; column-gap:24px; }
.category-review-card { break-inside:avoid; margin-bottom:24px; padding:25px; border-radius:24px; box-shadow:0 6px 24px #00000005; }
.category-review-person { display:flex; gap:10px; align-items:center; margin-bottom:22px; }
.category-review-person img { width:56px; height:56px; object-fit:cover; border-radius:50%; }
.category-review-person strong { display:block; font-weight:600; font-size:14px; }
.category-review-person small { display:block; font-size:12px; font-weight:600; }
.category-review-person .gold { display:block; color:#ffb400; letter-spacing:1px; }
.category-review-card p { font-size:14px; line-height:1.6; }
.category-review-card > small { display:block; font-size:12px; margin-top:24px; font-weight:600; }
.faq-box { border-radius:24px; padding:12px 24px; box-shadow:0 5px 26px #00000005; }
.faq-box details + details { border-top:1px solid #f3f3f3; }
.faq-box summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; cursor:pointer; font-size:14px; }
.faq-box summary::-webkit-details-marker { display:none; }
.faq-box summary::after { content:'⌄'; font-size:20px; }
.faq-box details[open] summary::after { transform:rotate(180deg); }
.faq-box p { padding:0 0 20px; color:#666; line-height:1.8; }
.category-cta { margin-top:110px; padding:42px 24px; text-align:center; background:#eaf3ef; border-radius:35px; }
.category-cta h2 { font-size:24px; font-weight:600; }
.category-cta p { margin:12px 0 20px; font-size:13px; }
.category-essential { width:min(840px,calc(100% - 64px)); margin-top:100px; }
.category-essential dl { padding:10px 24px; margin:0; border-radius:20px; box-shadow:0 6px 24px #00000005; }
.category-essential dl div { display:flex; justify-content:space-between; gap:20px; padding:16px 0; font-size:13px; }
.category-essential dd { margin:0; font-weight:600; text-align:right; }
.category-directory { margin-top:100px; }
.category-directory > h2 { background:var(--ref-soft); padding:28px 24px; border-radius:24px; font-size:24px; margin-bottom:22px; }
#lesson-directory { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.directory-group { padding:26px; box-shadow:0 4px 24px #00000005; border-radius:20px; }
.directory-group h3 { font-size:16px; margin-bottom:16px; }
.directory-group > div { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.directory-group a { font-size:12px; }
.directory-group a:hover { color:var(--ref-primary); }
.category-mobile-search { display:none; }

/* Search results */
.results-page .ref-container { max-width:1012px; }
.results-main { padding-top:36px; padding-bottom:70px; }
.results-main > h1 { font-size:38px; font-weight:600; line-height:1.5; margin-bottom:36px; }
.ref-filter-bar { display:flex; gap:8px; align-items:center; }
.ref-filter-bar button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:40px; padding:8px 16px; border:1px solid #e0e0e0; border-radius:30px; font-size:14px; font-weight:500; white-space:nowrap; }
.ref-filter-bar button.is-active { border-color:var(--ref-primary); background:var(--ref-soft); color:#0b5b55; }
.ref-filter-bar button:hover { border-color:#555; }
.ref-result-count { font-size:14px; font-weight:500; margin:25px 0 17px; }
.results-page .ref-card-grid { gap:40px 18px; }
.ref-empty { padding:65px 24px; background:#fafafa; text-align:center; border-radius:24px; }
.ref-empty h2 { font-size:22px; }
.ref-empty p { color:#777; margin:15px 0 24px; }

/* Teacher profile */
.ref-profile-cover { display:none; }
.ref-profile-layout { width:min(1340px,calc(100% - 108px)); margin:40px auto 0; display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:24px; align-items:start; }
.ref-profile-tags { display:flex; flex-wrap:wrap; gap:16px 8px; margin-bottom:34px; }
.ref-profile-tags a { padding:8px 24px; color:var(--ref-primary); background:var(--ref-soft); border-radius:30px; font-size:12px; font-weight:600; white-space:nowrap; }
.ref-profile-title { font-size:40px; line-height:1.4; font-weight:600; margin:0 0 42px; letter-spacing:-.5px!important; }
.ref-profile-section { margin-top:42px; }
.ref-profile-section h2,.ref-profile-location h2 { font-size:24px; font-weight:600; margin-bottom:26px; }
.ref-profile-location .ref-pill { margin:3px 0 0; }
.ref-pill { display:inline-flex; gap:8px; align-items:center; min-height:46px; padding:10px 24px; border-radius:32px; border:1px solid #ddd; font-size:14px; font-weight:600; }
.ref-pill .ref-icon { width:18px; height:18px; }
.ref-ambassador { padding:24px; background:#eaf2f6; border-radius:32px; margin-top:28px; }
.ref-ambassador h2 { display:flex; align-items:center; gap:12px; color:var(--ref-accent); margin:0 0 14px; font-size:20px; font-weight:600; }
.sparkles { font-size:32px; line-height:1; }
.ref-ambassador p { font-size:14px; line-height:1.8; }
.ref-profile-section > p { font-size:16px; line-height:1.9; }
.ref-profile-section.about-lesson { margin-top:78px; }
.lesson-pills { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:22px; }
.ref-profile-sidebar { position:sticky; top:24px; padding:40px 55px 24px; border-radius:42px; box-shadow:0 6px 30px #00000004; background:white; text-align:center; }
.ref-profile-avatar { width:140px; height:140px; position:relative; margin:0 auto 15px; }
.ref-profile-avatar img { width:100%; height:100%; object-fit:cover; border-radius:42px; }
.ref-profile-avatar > span { position:absolute; right:-12px; bottom:-12px; display:grid; place-items:center; background:#eaf2f6; color:var(--ref-accent); border:4px solid #fff; border-radius:50%; width:45px; height:45px; font-size:30px; }
.profile-quick-actions { position:absolute; right:20px; top:14px; display:grid; gap:4px; }
.profile-quick-actions button { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; }
.profile-quick-actions button:hover { background:#f7f7f7; }
.ref-profile-sidebar h2 { font-size:28px; font-weight:600; }
.mobile-name-badge { display:none; }
.ref-profile-score { display:block; margin-top:12px; font-size:12px; }
.ref-profile-score .gold { color:#ffb400; font-size:20px; vertical-align:-2px; margin-right:4px; }
.ref-profile-score a { text-decoration:underline; }
.ref-profile-meta { margin:38px 0 20px; }
.ref-profile-meta div { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:44px; }
.ref-profile-meta dt { font-weight:500; font-size:14px; }
.ref-profile-meta dd { margin:0; font-size:20px; font-weight:700; }
.ref-profile-sidebar .ref-coral { width:100%; min-height:56px; border-radius:24px; font-size:18px; }
.profile-mobile-contact { display:none; }
.profile-reviews { margin-top:58px; }
.profile-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.profile-section-head h2 { margin:0; font-size:24px; font-weight:600; }
.profile-section-head h2 button { padding:4px; }
.profile-section-head > span { white-space:nowrap; font-size:12px; }
.profile-section-head .gold { color:#ffb400; }
.profile-review-track { display:grid; gap:26px; }
.profile-review-box { padding:28px; border:1px solid #e3e3e3; border-radius:28px; }
.profile-review-author { display:flex; gap:10px; align-items:center; font-size:14px; font-weight:600; margin-bottom:20px; }
.profile-review-author > span:first-child { display:grid; place-items:center; width:32px; height:32px; background:#ffcc44; color:#fff; border-radius:50%; font-size:12px; }
.profile-review-author > small { margin-left:auto; background:#fffaf0; border-radius:15px; color:#d99900; padding:0 6px; font-size:12px; }
.profile-review-box p { font-size:14px; line-height:1.9; white-space:pre-line; }
.profile-reply { margin:16px 0 0 auto; width:70%; padding:20px; background:#f7f7f7; border-radius:16px; }
.profile-reply summary { font-size:12px; font-weight:600; cursor:pointer; list-style:none; }
.profile-reply p { font-size:13px; line-height:1.9; padding-top:14px; white-space:pre-line; }
.recommendation-track { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.recommendation-track .profile-review-box { flex:0 0 47%; scroll-snap-align:start; }
.recommendation-track .profile-review-author > span:first-child { background:#456477; }
.recommendation-track details { margin-top:16px; font-size:13px; }
.recommendation-track summary { font-weight:600; cursor:pointer; }
.profile-price-box { border:1px solid #e3e3e3; border-radius:28px; padding:28px; font-size:14px; line-height:1.9; }
.profile-price-box dt { font-weight:600; margin-top:20px; }
.profile-price-box dt:first-child { margin-top:0; }
.profile-price-box dd { margin:4px 0 0; }
.profile-interview { display:flex; flex-direction:column; align-items:center; padding:10px 24px 24px; border-radius:28px; background:#dcefe6; }
.profile-interview > span { font-family:Georgia,serif; font-size:100px; height:100px; line-height:1.3; }
.profile-interview button { background:#111; color:white; border-radius:30px; padding:6px 20px; width:100%; font-size:13px; }
.similar-teachers { display:flex; gap:12px; overflow:auto; padding-bottom:15px; }
.similar-card { flex:0 0 155px; border-radius:20px; overflow:hidden; box-shadow:0 3px 10px #0001; font-size:12px; }
.similar-card img { aspect-ratio:1; }
.similar-card > div { padding:8px; }
.similar-card span { color:var(--ref-primary); display:block; font-size:11px; margin-top:4px; }
.profile-bottom-breadcrumb { margin-top:70px; }

/* Menus, filters, sharing, and contact overlays */
.ref-dialog { width:min(570px,calc(100% - 40px)); max-height:92dvh; padding:44px 38px 36px; border:0; border-radius:36px; box-shadow:0 20px 80px #0002; overflow:auto; }
.ref-dialog::backdrop { background:#0009; }
.ref-dialog-close { position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:50%; background:#f7f7f7; display:grid; place-items:center; }
.ref-dialog h2 { font-size:26px; font-weight:600; margin:4px 0 24px; }
.ref-dialog form { display:grid; gap:16px; }
.ref-dialog label { display:grid; gap:8px; font-size:14px; font-weight:500; }
.ref-dialog input,.ref-dialog select,.ref-dialog textarea { width:100%; padding:14px 16px; min-height:54px; border:1px solid #e5e5e5; border-radius:15px; background:#fafafa; font:inherit; font-size:16px; }
.ref-dialog input[type=range] { padding:0; accent-color:var(--ref-primary); }
.ref-dialog .ref-coral { min-height:52px; }
.ref-dialog .ref-local-note { font-size:11px; font-weight:400; color:#777; margin-top:20px; }
.ref-dialog .ref-radio { display:flex; align-items:center; gap:10px; min-height:48px; }
.ref-radio input { width:20px; height:20px; min-height:0; accent-color:var(--ref-primary); }
.ref-menu-dialog { border-radius:0; margin:0; width:100%; max-width:none; max-height:none; height:100dvh; padding:92px 40px 40px; }
.ref-menu-dialog .ref-dialog-close { background:var(--ref-primary); color:#fff; top:24px; right:24px; border-radius:18px; }
.ref-menu-auth { display:grid; gap:16px; margin:4px 0 40px; padding-bottom:40px; border-bottom:2px solid #f7f7f7; }
.ref-menu-auth button { min-height:48px; border-radius:16px; background:#f7f7f7; font-size:16px; font-weight:600; }
.ref-menu-auth .ref-coral { background:var(--ref-primary); }
.ref-menu-links { display:grid; gap:26px; }
.ref-menu-links button,.ref-menu-links a { display:flex; align-items:center; gap:12px; text-align:left; padding:8px 16px; font-size:16px; font-weight:600; min-height:40px; }
.ref-menu-links .ref-icon { color:#ddd; }
.ref-share-dialog { width:min(650px,calc(100% - 40px)); padding:32px 60px 40px; border-radius:40px; }
.ref-share-dialog h2 { text-align:center; font-size:25px; line-height:1.4; margin:0 0 44px; }
.share-profile { display:flex; align-items:center; gap:20px; border:1px solid #ddd; border-radius:40px; padding:20px; margin:0 auto 40px; max-width:420px; }
.share-profile img { width:80px; height:80px; border-radius:26px; }
.share-profile strong { display:block; font-size:20px; line-height:1.2; font-weight:600; }
.share-profile p { display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; margin-top:4px; font-size:14px; line-height:1.45; color:#a7a7a7; font-weight:600; }
.share-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:42px 20px; }
.share-actions button { display:flex; flex-direction:column; align-items:center; gap:14px; font-size:17px; font-weight:500; }
.share-actions button > span:first-child { display:grid; place-items:center; width:70px; height:70px; background:#f7f7f7; border-radius:28px; font-size:40px; font-weight:700; }
.share-actions .ref-icon { width:28px; height:28px; }
#share-status:empty { display:none; }
.ref-contact-dialog { width:min(490px,calc(100% - 32px)); padding:40px 30px 26px; text-align:center; }
.contact-avatar { width:80px; height:80px; margin:0 auto 8px; border-radius:24px; }
.contact-stars { color:#ffc844; font-size:24px; letter-spacing:1px; }
.ref-contact-dialog h2 { margin:8px 0 6px; font-size:24px; }
.ref-contact-dialog .contact-intro { font-size:18px; margin-bottom:28px; }
.ref-contact-dialog form { gap:14px; }
.ref-contact-dialog input { background:#f7f7f7; border:0; min-height:58px; font-weight:600; }
.ref-contact-dialog .ref-coral { min-height:56px; border-radius:24px; }
.social-auth { display:grid; gap:16px; margin-top:16px; }
.social-auth > span { color:#999; font-size:18px; }
.social-auth button { position:relative; min-height:58px; padding:12px 32px; border-radius:26px; background:#f7f7f7; font-size:16px; font-weight:600; }
.social-auth button > span { position:absolute; left:20px; font-size:23px; }
.social-auth button > .ref-icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); width:23px; height:23px; }
.google-g { color:#4285f4; font-family:Arial,sans-serif; font-weight:700; }
.contact-bottom { margin-top:35px; color:#999; font-size:13px; }
.contact-bottom button { padding:5px; font-weight:600; color:#444; }

/* Static informational pages */
.static-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,42%); align-items:center; gap:40px; margin-top:26px; }
.static-hero-grid h1 { font-size:46px; line-height:1.25; font-weight:700; margin:0 0 18px; }
.static-hero-grid p { max-width:640px; font-size:17px; line-height:1.8; color:#555; }
.static-hero-media { width:100%; aspect-ratio:1.36; object-fit:cover; border-radius:34px; background:#f4f4f4; }
.static-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:28px; }
.static-actions > a:not(.ref-coral) { font-weight:600; color:var(--ref-primary); }
.static-section { margin-top:78px; }
.static-section h2 { font-size:24px; font-weight:600; margin-bottom:26px; }
.static-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.static-card { display:block; min-height:178px; padding:24px; border-radius:28px; background:#fff; box-shadow:0 6px 24px #00000006; border:1px solid #f1f1f1; }
.static-card:nth-child(3n+1) { background:var(--ref-soft); }
.static-card:nth-child(3n+2) { background:#fffaf0; }
.static-card:nth-child(3n+3) { background:#edf2f6; }
.static-card span { display:block; font-size:18px; font-weight:700; margin-bottom:12px; }
.static-card p { color:#555; font-size:14px; line-height:1.7; }
.static-contact-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr); gap:32px; align-items:start; padding:32px; border-radius:32px; background:#f8fbfa; }
.static-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.static-form label { display:grid; gap:8px; font-weight:600; }
.static-form label:nth-child(4),.static-form button,.static-form .ref-local-note { grid-column:1 / -1; }
.static-form input,.static-form select,.static-form textarea { width:100%; min-height:52px; padding:13px 15px; border:1px solid #e2e2e2; border-radius:15px; background:#fff; font:inherit; }

/* Ensinar: o registo fica no topo, ao lado da proposta */
.teach-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,420px); grid-template-areas:"copy signup" "points signup"; grid-template-rows:auto 1fr; column-gap:56px; align-items:start; margin-top:26px; }
.teach-copy { grid-area:copy; }
.teach-copy h1 { font-size:44px; line-height:1.2; font-weight:700; letter-spacing:-1px; margin-bottom:18px; }
.teach-copy p { max-width:560px; font-size:17px; line-height:1.75; color:#555; }
.teach-points { grid-area:points; display:grid; gap:18px; margin-top:30px; }
.teach-points li { position:relative; padding-left:40px; font-size:14px; line-height:1.6; color:#555; }
.teach-points li::before { content:'✓'; position:absolute; left:0; top:0; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--ref-soft); color:var(--ref-primary); font-size:13px; font-weight:700; }
.teach-points strong { display:block; font-size:15px; font-weight:600; color:var(--ink); }
.teach-signup { grid-area:signup; min-height:480px; padding:30px 28px; border:1px solid #e3eee8; border-radius:28px; background:#fff; box-shadow:0 14px 50px #15382d14; scroll-margin-top:20px; }
.teach-signup .db-logo { display:none; }
.teach-signup h2 { font-size:24px; line-height:1.3; font-weight:600; letter-spacing:-.5px; margin-bottom:8px; }
.teach-signup h2 + p { font-size:13px; color:#60736b; }
.teach-signup .ref-coral { margin-top:24px; }

@media (max-width: 900px) {
  .teach-hero { grid-template-columns:1fr; grid-template-areas:"copy" "signup" "points"; row-gap:26px; }
  .teach-copy h1 { font-size:34px; }
  .teach-points { margin-top:6px; }
  .static-hero-grid,.static-contact-grid { grid-template-columns:1fr; }
  .static-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .static-hero-grid h1 { font-size:38px; }
}

@media (max-width: 620px) {
  .teach-hero { margin-top:18px; row-gap:22px; }
  .teach-copy h1 { font-size:28px; letter-spacing:-.6px; margin-bottom:12px; }
  .teach-copy p { font-size:15px; line-height:1.65; }
  .teach-signup { min-height:0; padding:24px 20px; border-radius:24px; }
  .static-hero-grid { gap:24px; margin-top:18px; }
  .static-hero-grid h1 { font-size:30px; }
  .static-hero-grid p { font-size:15px; }
  .static-hero-media { border-radius:24px; }
  .static-card-grid,.static-form { grid-template-columns:1fr; }
  .static-contact-grid { padding:22px; border-radius:24px; }
}

.contact-bottom > p { margin-top:16px; }
.contact-bottom a { text-decoration:underline; }
.ref-toast { position:fixed; z-index:100; left:50%; bottom:26px; transform:translateX(-50%); background:#222; color:#fff; padding:14px 22px; width:max-content; max-width:calc(100% - 32px); border-radius:16px; font-size:13px; text-align:center; }
.ref-favorite-active .ref-icon { fill:var(--ref-primary); stroke:var(--ref-primary); }

@media(max-width:1250px) {
  .category-hero-inner { width:calc(100% - 100px); }
  .category-intro { max-width:56%; }
  .category-portraits { left:62%; width:38%; overflow:hidden; }
  .category-intro h1 { font-size:34px; }
  .category-benefits { font-size:14px; }
}
@media(max-width:1000px) {
  .ref-profile-layout { width:calc(100% - 48px); grid-template-columns:minmax(0,1fr) 300px; }
  .ref-profile-sidebar { padding-inline:28px; }
  .ref-profile-title { font-size:32px; }
  .category-benefits { font-size:13px; }
  .category-intro h1 { font-size:30px; }
  .ref-search { flex-wrap:wrap; gap:12px; }
  .ref-search .ref-coral { width:100%; }
  .ref-card-rating { flex-wrap:wrap; }
  .category-hero { height:630px; }
  .category-portraits { height:630px; }
}
@media(max-width:760px) {
  .reference-page { font-size:14px; }
  .ref-container { width:calc(100% - 48px); }
  .ref-header { height:64px; padding:0 24px; }
  .ref-header-nav,.ref-header-search,.ref-header-logo-full { display:none; }
  .ref-header-left { min-width:0; gap:24px; flex:1; }
  .ref-logo { font-size:25px; }
  .ref-mobile-toggle { display:grid; place-items:center; width:36px; height:44px; padding:0; margin-left:14px; }
  .ref-mobile-toggle .ref-icon { width:22px; height:22px; stroke-width:2.5; }
  .ref-footer { padding-top:36px; margin-top:65px; padding-bottom:90px; }
  .ref-footer-grid { grid-template-columns:1fr; gap:34px; }
  .ref-footer h2 { font-size:18px; margin-bottom:14px; }
  .ref-footer a,.ref-footer button { min-height:32px; font-size:12px; }
  .ref-footer-bottom { flex-direction:column; font-size:10px; }
  .category-hero { height:276px; overflow:visible; }
  .category-hero-inner { width:calc(100% - 48px); }
  .category-intro { padding-top:77px; max-width:none; }
  .category-intro h1 { font-size:22px; line-height:1.45; margin-bottom:18px; font-weight:600; }
  .category-benefits { font-size:13px; font-weight:500; line-height:23px; letter-spacing:-.1px; }
  .category-portraits,.category-intro .ref-search { display:none; }
  .trust-panel { width:calc(100% - 48px); min-height:84px; padding:14px 12px; bottom:-42px; border-radius:24px; flex-direction:column; gap:8px; font-size:14px; }
  .trust-stars { font-size:20px; }
  .trust-panel > div { white-space:normal; text-align:center; }
  .category-teachers { padding-top:65px; }
  .ref-breadcrumb { font-size:9px; gap:10px; }
  .ref-breadcrumb > span:nth-child(even) { font-size:18px; }
  .category-teachers > h2 { font-size:18px; line-height:1.5; margin:18px 0 25px; font-weight:600; }
  .ref-card-grid { grid-template-columns:1fr; gap:28px; }
  .category-teachers .ref-card-grid { margin:0 5px; }
  .ref-card-photo { border-radius:30px; }
  .ref-card-rating { font-size:13px; flex-wrap:nowrap; margin-top:10px; }
  .ref-status { font-size:12px; padding:1px 8px; }
  .ref-card-description { font-size:13px; min-height:39px; margin:7px 0 5px; }
  .ref-card-price { font-size:13px; }
  .ref-card-favorite { top:6px; right:6px; }
  .ref-center { margin-top:36px; }
  .category-facts { margin-top:60px; grid-template-columns:1fr; gap:16px; }
  .category-steps,.category-testimonials,.category-faq,.category-directory { margin-top:55px; }
  .category-steps > h2,.category-testimonials > h2,.category-faq > h2,.category-essential h2 { font-size:20px; margin-bottom:26px; }
  .ref-three-grid { grid-template-columns:1fr; gap:20px; }
  .ref-three-grid article { padding:26px; border-radius:28px; }
  .ref-three-grid img { max-height:240px; }
  .category-review-grid { columns:1; }
  .category-review-card { padding:22px; }
  .category-review-card p { font-size:13px; }
  .faq-box { padding:8px 18px; }
  .faq-box summary { font-size:12px; min-height:60px; }
  .category-cta { margin-top:60px; padding:30px 24px; }
  .category-cta h2 { font-size:21px; }
  .category-essential { width:calc(100% - 48px); margin-top:55px; }
  .category-essential dl { padding:8px 16px; }
  .category-essential dl div { font-size:11px; gap:10px; }
  .category-directory > h2 { font-size:21px; padding:24px; }
  #lesson-directory { grid-template-columns:1fr; gap:20px; }
  .directory-group { padding:22px; }
  .directory-group > div { gap:14px 10px; }
  .directory-group a { font-size:10px; }
  .category-mobile-search { display:flex; position:fixed; z-index:20; left:16px; right:16px; bottom:20px; align-items:center; gap:10px; padding:8px 8px 8px 18px; height:62px; border-radius:24px; box-shadow:0 12px 25px #0f766e20; background:var(--ref-primary); color:#fff; font-size:14px; font-weight:600; }
  .category-mobile-search .ref-icon { width:22px; height:22px; }
  .mobile-search-circle { margin-left:auto; width:46px; height:46px; border-radius:20px; color:var(--ref-primary); background:#fff; }
  .results-page #ref-header { position:sticky; z-index:25; top:0; background:#fff; }
  .results-page .ref-header { height:86px; padding:0 24px; }
  .results-page .ref-logo { display:none; }
  .ref-logo-small { display:grid; place-items:center; width:36px; height:36px; background:var(--ref-primary); color:#fff; font-size:24px; font-weight:800; border-radius:12px; line-height:1; }
  .ref-mobile-query { display:flex; justify-content:center; align-items:center; min-width:0; gap:6px; min-height:42px; padding:8px 12px; width:100%; max-width:205px; border-radius:18px; background:#f7f7f7; font-size:14px; font-weight:600; white-space:nowrap; }
  .ref-mobile-query .ref-icon { width:18px; height:18px; }
  .ref-mobile-query span { overflow:hidden; text-overflow:ellipsis; }
  .results-page .ref-header-left { justify-content:space-between; gap:16px; }
  .results-page .ref-mobile-toggle { margin-left:30px; }
  .results-main { padding-top:0; padding-bottom:40px; width:calc(100% - 48px); }
  .results-main > h1,.ref-result-count { display:none; }
  .ref-filter-wrap { position:sticky; top:86px; z-index:20; background:#fff; width:calc(100% + 48px); margin-left:-24px; padding:6px 0 8px; margin-bottom:0; }
  .ref-filter-bar { overflow-x:auto; scrollbar-width:none; padding:0 24px; gap:8px; }
  .ref-filter-bar button { min-height:40px; padding:8px 17px; font-size:14px; }
  .ref-filter-bar::-webkit-scrollbar { display:none; }
  .results-page .ref-card-grid { gap:48px; }
  .results-page .ref-card-rating { font-size:13px; }
  .results-page .ref-card-description { font-size:14px; }
  .profile-page #ref-header { display:none; }
  .ref-profile-cover { display:block; position:relative; }
  .ref-profile-cover > img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
  .ref-cover-actions { position:absolute; left:16px; right:16px; top:16px; display:flex; gap:14px; }
  .ref-cover-actions a,.ref-cover-actions button { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#fff; color:#111; }
  .ref-cover-actions a { margin-right:auto; }
  .ref-cover-actions .ref-icon { width:21px; height:21px; }
  .ref-profile-layout { position:relative; display:flex; flex-direction:column; width:100%; margin:-20px 0 0; gap:0; }
  .ref-profile-sidebar { position:static; order:-1; width:100%; padding:20px 24px 0; border-radius:26px 26px 0 0; box-shadow:none; }
  .ref-profile-avatar,.profile-quick-actions,.ref-profile-sidebar > .ref-coral { display:none; }
  .ref-profile-sidebar h2 { font-size:26px; }
  .mobile-name-badge { display:inline-grid; place-items:center; width:24px; height:24px; background:var(--ref-accent); color:#fff; font-size:20px; border-radius:50%; vertical-align:3px; }
  .ref-profile-score { font-size:12px; margin-top:4px; }
  .ref-profile-meta { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #ddd; border-radius:38px; padding:13px 20px; margin:12px 0 0; }
  .ref-profile-meta div { display:flex; flex-direction:column-reverse; justify-content:center; gap:0; min-height:39px; }
  .ref-profile-meta dd { font-size:16px; }
  .ref-profile-meta dt { font-size:12px; font-weight:600; }
  .ref-profile-content { display:flex; flex-direction:column; width:100%; padding:25px 24px 0; }
  .ref-profile-title { order:0; font-size:22px; font-weight:700; line-height:1.45; margin:0 0 28px; }
  .ref-profile-tags { order:1; margin:0 -24px 0 0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding:12px 24px 12px 0; gap:14px; }
  .ref-profile-tags a { font-size:11px; padding:7px 20px; }
  .ref-profile-location { order:2; margin-top:28px; }
  .ref-profile-location h2 { display:none; }
  .ref-profile-location .ref-pill { display:flex; justify-content:flex-start; min-height:68px; padding:18px 24px; width:100%; border-radius:28px; color:#777; }
  .ref-profile-location .ref-icon { display:none; }
  .ref-ambassador { order:3; margin-top:38px; border-radius:28px; padding:24px; }
  .ref-ambassador h2 { flex-direction:row-reverse; justify-content:space-between; font-size:17px; margin-bottom:13px; }
  .ref-ambassador p { font-size:14px; line-height:1.6; }
  .ref-profile-section { order:4; margin-top:52px; }
  .ref-profile-section h2 { font-size:18px; margin-bottom:20px; }
  .ref-profile-section > p { font-size:14px; line-height:1.65; }
  .ref-profile-section.about-lesson { margin-top:70px; }
  .ref-pill { min-height:40px; padding:8px 20px; font-size:12px; }
  .lesson-pills { display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:20px; }
  .lesson-pills .ref-icon { display:none; }
  .profile-reviews { order:5; margin-top:70px; }
  .profile-section-head { margin-bottom:24px; }
  .profile-section-head h2 { font-size:18px; }
  .profile-section-head h2 .ref-icon { width:17px; height:17px; }
  .profile-section-head > span { font-size:11px; }
  .profile-review-track { display:flex; gap:12px; overflow-x:auto; margin-right:-24px; padding-right:24px; scroll-snap-type:x mandatory; scrollbar-width:none; align-items:stretch; }
  .profile-review-thread { flex:0 0 91%; scroll-snap-align:start; border:1px solid #e5e5e5; border-radius:26px; padding:22px; }
  .profile-review-box { border:0; padding:0; border-radius:0; }
  .profile-review-author { font-size:12px; margin-bottom:18px; }
  .profile-review-author > span:first-child { width:28px; height:28px; font-size:11px; }
  .profile-review-box p { font-size:14px; line-height:1.9; }
  .profile-reply { width:100%; background:none; padding:0; margin-top:18px; border-radius:0; }
  .profile-reply summary { font-size:11px; }
  .profile-reply summary::after { content:'⌄'; margin-left:8px; }
  .profile-reply p { font-size:12px; padding-top:15px; }
  .recommendations-section { order:6; margin-top:70px; }
  .recommendation-track { margin-right:-24px; padding-right:24px; gap:12px; }
  .recommendation-track .profile-review-box { flex-basis:91%; border:1px solid #e5e5e5; padding:22px; border-radius:26px; }
  .profile-prices-section { order:7; }
  .profile-price-box { padding:24px; border-radius:28px; font-size:13px; }
  .profile-interview-section { order:8; }
  .profile-similar-section { order:9; }
  .profile-bottom-breadcrumb { order:10; margin-top:70px; font-size:11px; line-height:1.8; }
  .similar-teachers { margin-right:-24px; padding-right:24px; gap:8px; }
  .similar-card { flex-basis:155px; }
  .profile-mobile-contact { position:fixed; z-index:25; display:block; bottom:18px; left:20px; right:20px; padding:16px; background:#fff; box-shadow:0 5px 15px #0002; border-radius:24px; }
  .profile-mobile-contact .ref-coral { width:100%; min-height:54px; border-radius:22px; font-size:16px; }
  .ref-dialog { padding:50px 24px 28px; border-radius:26px; }
  .ref-dialog h2 { font-size:23px; }
  .ref-menu-dialog { width:100%; max-width:none; max-height:none; height:100dvh; border-radius:0; padding:92px 40px 30px; }
  .ref-share-dialog { padding:44px 24px 30px; }
  .ref-share-dialog h2 { margin-bottom:28px; }
  .share-profile { padding:18px 16px; border-radius:26px; gap:14px; margin-bottom:30px; }
  .share-profile img { width:60px; height:60px; border-radius:20px; }
  .share-profile strong { font-size:17px; }
  .share-profile p { font-size:11px; -webkit-line-clamp:3; }
  .share-actions { gap:24px 10px; }
  .share-actions button { font-size:12px; gap:10px; }
  .share-actions button > span:first-child { width:56px; height:56px; border-radius:22px; font-size:30px; }
  .ref-contact-dialog { display:flex; flex-direction:column; width:100%; max-width:none; max-height:none; height:100dvh; border-radius:0; margin:0; padding:32px 30px 30px; }
  .ref-contact-dialog:not([open]) { display:none; }
  .ref-contact-dialog #ref-dialog-content { display:flex; flex:1; flex-direction:column; }
  .ref-contact-dialog .ref-dialog-close { left:15px; right:auto; top:15px; background:none; }
  .contact-avatar { width:80px; height:80px; border-radius:22px; }
  .contact-stars { margin-top:2px; }
  .ref-contact-dialog h2 { font-size:24px; margin:9px 0 2px; }
  .ref-contact-dialog .contact-intro { font-size:16px; margin-bottom:26px; }
  .contact-bottom { margin-top:auto; padding-top:24px; font-size:13px; }
  .ref-contact-dialog .ref-local-note { font-size:10px; margin-top:12px; }
  .ref-toast { bottom:110px; }
}
@media(max-width:360px) {
  .ref-container,.category-hero-inner { width:calc(100% - 36px); }
  .category-benefits { font-size:11px; }
  .category-intro h1 { font-size:21px; }
  .trust-panel { width:calc(100% - 36px); font-size:12px; }
  .ref-card-rating,.ref-status { font-size:11px; }
  .ref-profile-content,.ref-profile-sidebar { padding-inline:20px; }
  .results-page .ref-header { padding-inline:18px; }
  .ref-filter-wrap { width:calc(100% + 36px); margin-left:-18px; }
  .ref-filter-bar { padding-inline:18px; }
  .ref-profile-tags,.profile-review-track,.recommendation-track,.similar-teachers { margin-right:-20px; padding-right:20px; }
  .results-page .ref-mobile-toggle { margin-left:14px; }
  .ref-mobile-query { font-size:13px; }
  .ref-menu-dialog { padding-inline:30px; }
}

/* Perfis reais: fotografia ausente, estados vazios e ligação da conta */
.ref-header-nav .ref-account-link { display:flex; align-items:center; justify-content:center; min-height:40px; background:#0f766e; color:#fff; border-radius:30px; padding:8px 17px; font-size:14px; font-weight:600; }
.category-page .ref-header-nav .ref-account-link { background:#0f766e; }
.ref-photo-fallback { display:grid; place-items:center; width:100%; height:100%; background:linear-gradient(135deg,#d9eee3,#b9dccb); color:#0f655b; font-size:min(30vw,120px); font-weight:600; border-radius:inherit; }
.ref-profile-avatar .ref-photo-fallback { font-size:60px; border-radius:42px; }
.ref-profile-cover .ref-photo-fallback { aspect-ratio:1; height:auto; border-radius:0; }
.similar-card .ref-photo-fallback { aspect-ratio:1; height:auto; font-size:54px; border-radius:20px; }
.share-profile .ref-photo-fallback { width:80px; height:80px; font-size:36px; border-radius:20px; flex:0 0 80px; }
.ref-card-photo img[src=""], .ref-card-photo img:not([src]) { display:none; }
.ref-empty-box { grid-column:1/-1; text-align:center; padding:48px 24px; border:1px dashed #cfdcd5; border-radius:24px; background:#f8fbf9; }
.ref-empty-box h1, .ref-empty-box h3 { font-size:22px; line-height:1.4; margin-bottom:10px; }
.ref-empty-box p { max-width:460px; margin:0 auto 24px; color:#5b6c64; line-height:1.7; }
.ref-empty-box .ref-coral { display:inline-flex; }
.home-featured .ref-card-grid { margin-top:24px; }
.ref-contact-note { margin-top:10px; font-size:12px; color:#5b6c64; }

/* Páginas legais e contacto directo */
.legal-page { max-width:760px; margin:0 auto; }
.legal-page h1 { font-size:clamp(30px,5vw,44px); line-height:1.2; margin-bottom:10px; }
.legal-updated { color:#5b6c64; font-size:13px; margin-bottom:18px; }
.legal-intro { font-size:17px; line-height:1.8; margin-bottom:24px; }
.legal-toc { background:#f4f8f6; border-radius:18px; padding:18px 24px; margin-bottom:28px; }
.legal-toc ol { margin:0; padding-left:20px; columns:2; column-gap:32px; font-size:14px; line-height:2; }
.legal-toc a { text-decoration:underline; text-underline-offset:3px; color:#0f766e; }
.legal-page .ref-profile-section p { line-height:1.85; margin-top:12px; }
.legal-page .ref-profile-section a { color:#0f766e; text-decoration:underline; }
.static-direct { margin-top:22px; padding:18px 20px; border-radius:18px; background:#f4f8f6; }
.static-direct h3 { font-size:15px; margin-bottom:8px; }
.static-direct p { margin:4px 0; font-size:14px; }
@media (max-width:640px) { .legal-toc ol { columns:1; } }
.ref-404 { font-size:72px; font-weight:800; line-height:1; color:#0f766e; margin-bottom:12px !important; letter-spacing:-3px; }
.ref-coral.ref-secondary { background:#fff; color:#0f766e; border:1px solid #0f766e; margin-left:8px; }
.ref-coral.ref-secondary:hover { background:#eef7f3; }

/* Campos de pesquisa: sem rectângulo de foco no próprio input */
.home-search input:focus,.home-search input:focus-visible,
.ref-search input:focus,.ref-search input:focus-visible,
.ref-dialog form input:focus,.ref-dialog form input:focus-visible { outline:none; box-shadow:none; }
