/* Homepage composition from the supplied desktop and mobile captures. */
.home-page { --home-width:1010px; }
.home-width { width:min(var(--home-width),calc(100% - 64px)); margin-inline:auto; }
.home-page .ref-header-nav { gap:32px; }
.home-page .ref-header-nav button { background:none; padding-inline:8px; font-size:13px; }
.home-page .ref-header-nav .ref-help { width:36px; }
.home-hero { padding:6px 24px 48px; border-radius:0 0 40px 40px; background:linear-gradient(180deg,#fff 0%,#f7fbf8 20%,#e2f2e9 62%,#cbe7dc 100%); text-align:center; }
.home-hero h1 { font-size:60px; font-weight:800; line-height:1.4; letter-spacing:-1px; }
.home-hero h1 span { display:block; }
.home-intro { display:none; }
.home-search { display:flex; align-items:center; position:relative; z-index:10; width:min(700px,100%); min-height:68px; padding:6px; margin:52px auto 0; border-radius:36px; background:white; box-shadow:0 0 0 8px #ffffff8c; text-align:left; }
.home-search-field { display:flex; align-items:center; gap:12px; min-width:0; flex:1; padding:0 14px; }
.home-search-field > [data-icon] { color:var(--brand); }
.home-search-field > [data-icon] .ref-icon { width:22px; height:22px; }
.home-search input { width:100%; height:52px; min-width:0; padding:0; border:0; background:transparent; font-size:14px; }
.home-search input::placeholder { color:var(--ink); opacity:1; }
.home-search input[type=search]::-webkit-search-cancel-button { display:none; }
.home-search > .ref-coral { min-width:152px; height:56px; border-radius:30px; padding:0 28px; }
.home-search > .ref-coral .ref-icon { display:none; }
.home-location { border-left:1px solid var(--line); flex:.8; }
.home-search.is-expanded { width:min(850px,100%); }
.home-suggestions { position:absolute; top:calc(100% + 14px); left:8px; width:min(390px,calc(100% - 16px)); max-height:330px; overflow:auto; padding:10px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 12px 36px #163a3026; }
.home-suggestions button { display:flex; align-items:center; width:100%; min-height:46px; padding:10px 14px; border-radius:12px; font-size:14px; text-align:left; }
.home-suggestions button:hover,.home-suggestions button[aria-selected=true] { background:var(--brand-soft); color:var(--brand-hover); }
.home-suggestions p { padding:12px; font-size:12px; color:#66756f; }
.home-subjects { position:relative; width:min(var(--home-width),100%); margin:32px auto 0; padding:16px 66px 16px 20px; border-radius:44px; background:#ffffffb3; }
.home-subject-track { display:flex; overflow:auto; scrollbar-width:none; scroll-snap-type:x proximity; gap:8px; }
.home-subject-track::-webkit-scrollbar,.home-review-track::-webkit-scrollbar,.home-city-rail::-webkit-scrollbar,.home-guide-rail::-webkit-scrollbar { display:none; }
.home-subject-item { display:flex; flex:0 0 auto; align-items:center; flex-direction:column; justify-content:center; gap:4px; min-width:94px; min-height:64px; padding:4px 12px; scroll-snap-align:start; border-radius:15px; white-space:nowrap; font-size:14px; }
.home-subject-item:hover { color:var(--brand); background:#fff; }
.home-subject-item svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-subject-arrow { position:absolute; right:24px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:white; }
.home-subject-arrow .ref-icon { width:18px; height:18px; transform:rotate(180deg); }
.home-featured { margin-top:40px; }
.home-featured h2 { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:20px; font-weight:600; line-height:1.5; margin:0 0 20px; }
.home-featured h2 > span { color:var(--brand); font-size:17px; letter-spacing:-1px; }
.home-featured .ref-card-grid { gap:52px 24px; }
.home-featured .ref-card-description { line-height:1.3; min-height:36.4px; margin:8px 0 5px; }
.home-featured .ref-card-description strong { font-weight:500; }
.home-featured .ref-card-price { color:var(--ink); }
.home-reviews { display:grid; grid-template-columns:450px minmax(0,1fr); gap:95px; align-items:center; margin-top:160px; }
.home-review-intro > span { display:block; color:#ffb400; font-size:30px; letter-spacing:0; }
.home-review-intro h2 { font-size:36px; font-weight:700; line-height:1.35; margin:16px 0 20px; }
.home-review-intro > p { max-width:360px; font-size:18px; line-height:1.55; }
.home-review-controls { display:flex; gap:20px; margin-top:24px; }
.home-review-controls button { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:#f7f7f7; }
.home-review-controls .ref-icon { width:23px; height:23px; }
.home-review-controls button:last-child .ref-icon { transform:rotate(180deg); }
.home-review-viewport { width:calc(100% + max(32px,(100vw - var(--home-width))/2)); min-width:0; }
.home-review-track { display:flex; gap:24px; overflow:auto; scrollbar-width:none; scroll-snap-type:x mandatory; }
.home-review-card { display:flex; flex-direction:column; flex:0 0 500px; min-height:600px; padding:32px; border-radius:64px; background:#ffe18b; scroll-snap-align:start; }
.home-review-card:nth-child(2) { background:#d7f0de; }
.home-review-card:nth-child(3) { background:#deedf4; }
.home-review-person { display:flex; align-items:center; gap:16px; }
.home-review-person img { width:64px; height:64px; border-radius:50%; }
.home-review-person h3 { font-size:24px; font-weight:600; }
.home-review-person p { font-size:18px; font-weight:600; }
.home-review-card blockquote { margin:26px 0 38px; font-size:32px; line-height:1.25; font-weight:500; letter-spacing:-.6px; }
.home-review-author { display:flex; align-items:center; gap:12px; align-self:flex-start; padding:12px 24px; min-height:56px; border-radius:30px; margin-top:auto; background:white; font-size:14px; font-weight:600; }
.home-review-author span { color:#ffb400; font-size:22px; }
.home-teaching { position:relative; margin-top:130px; overflow:hidden; border-radius:40px; }
.home-teaching picture { display:block; }
.home-teaching picture img { display:block; width:100%; height:auto; }
.home-teach-copy { position:absolute; left:56.25%; right:4%; top:27%; bottom:6.8%; display:flex; flex-direction:column; border-radius:40px; padding:24px; background:#d6ebe3; }
.home-teach-copy h2 { font-size:clamp(28px,2.28vw,38px); font-weight:600; line-height:1.26; }
.home-teach-copy p { font-size:16px; font-weight:500; line-height:1.5; margin:22px 0; }
.home-teach-copy button { display:flex; align-items:center; justify-content:center; gap:14px; min-height:56px; width:100%; margin-top:auto; border-radius:30px; background:#163b32; color:white; font-size:16px; font-weight:600; }
.home-teach-copy button:hover { background:#0b5b55; }
.home-cities { margin-top:130px; }
.home-cities h2,.home-guides h2 { font-size:36px; font-weight:700; line-height:1.4; margin-bottom:42px; }
.home-city-rail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.home-city-column { display:grid; align-content:start; gap:26px; padding:24px; border-radius:32px; background:#f7f8f7; }
.home-city-column h3 { font-size:20px; font-weight:600; line-height:1.45; margin-bottom:7px; }
.home-city-column a { display:block; font-size:14px; line-height:1.7; }
.home-city-column a:hover { color:var(--brand); text-decoration:underline; }
.home-guides { margin-top:110px; margin-bottom:120px; }
.home-guide-rail { display:flex; align-items:flex-start; gap:24px; }
.home-guide { display:block; flex:0 0 32%; padding:24px; text-align:left; border-radius:26px; box-shadow:0 5px 24px #163b3208; background:white; }
.home-guide:hover { box-shadow:0 8px 26px #163b3214; }
.home-guide h3 { font-size:20px; font-weight:600; line-height:1.55; margin-bottom:8px; }
.home-guide p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:16px; line-height:1.55; }
.home-guide small { display:block; margin-top:24px; font-size:12px; color:#929b95; }
.home-footer { padding:48px 0 24px; background:#142b25; color:#fff; }
.home-footer-grid { display:grid; grid-template-columns:repeat(4,1fr) 1.2fr; gap:32px; }
.home-footer h2 { font-size:18px; margin-bottom:20px; font-weight:600; }
.home-footer a,.home-footer button { display:block; padding:4px 0; font-size:12px; font-weight:500; text-align:left; }
.home-footer a:hover,.home-footer button:hover { color:#abdaca; }
.home-footer p { font-size:12px; line-height:1.7; }
.home-footer .home-footer-search { margin-top:20px; padding:10px 14px; border:1px solid #5a756b; border-radius:12px; }
.home-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:48px; padding-top:20px; border-top:1px solid #52625c; font-size:12px; color:#c1d0c8; }
.home-footer-brand { font-size:20px!important; font-weight:800!important; color:#c7e9dd; }
.home-guide-article p { margin:16px 0; line-height:1.8; }
.home-guide-article ol { padding-left:22px; line-height:1.8; }
.home-guide-article li + li { margin-top:10px; }
.home-piano { display:grid; grid-template-columns:repeat(8,1fr); gap:3px; margin:24px 0; }
.home-piano button { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; min-width:0; height:120px; padding:10px 0; border:1px solid #d2dfd8; border-bottom:5px solid #c2d2ca; border-radius:0 0 8px 8px; background:#fff; font-size:13px; font-weight:600; }
.home-piano button:active { border-bottom-width:2px; background:var(--brand-soft); }
.home-piano small { font-size:10px; color:#748579; }
@media(max-width:1250px) {
  .home-reviews { grid-template-columns:38% minmax(0,1fr); gap:64px; }
  .home-review-intro h2 { font-size:30px; }
  .home-review-card { flex-basis:440px; min-height:555px; }
  .home-review-card blockquote { font-size:28px; }
  .home-teach-copy { padding:20px; }
  .home-teach-copy h2 { font-size:32px; }
  .home-teach-copy p { font-size:14px; margin:16px 0; }
  .home-teach-copy button { min-height:48px; }
}
@media(max-width:1000px) and (min-width:761px) {
  .home-hero h1 { font-size:52px; }
  .home-subject-item { min-width:90px; padding-inline:8px; font-size:12px; }
  .home-teach-copy { top:18%; padding:20px; }
  .home-teach-copy h2 { font-size:26px; }
  .home-teach-copy p { font-size:12px; margin:10px 0; }
  .home-teach-copy button { min-height:42px; font-size:14px; }
  .home-footer-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:760px) {
  .home-width { width:calc(100% - 48px); }
  .home-page .ref-header { height:64px; }
  .home-hero { background:none; padding:14px 24px 0; border-radius:0; text-align:left; }
  .home-hero h1 { font-size:46px; line-height:1.15; letter-spacing:-.8px; }
  .home-hero h1 span:last-child { max-width:345px; }
  .home-intro { display:block; font-size:17px; line-height:1.35; margin:24px 0 0; }
  .home-intro strong { font-weight:600; }
  .home-search-area { margin:30px -4px 0; padding:8px 8px 0; border-radius:36px; background:linear-gradient(#e6f3ec,#f0f7f3); }
  .home-search { width:100%; min-height:62px; padding:8px; margin:0; border-radius:26px; box-shadow:0 4px 30px #0f766e0a; }
  .home-search-field { padding:0 8px; gap:0; }
  .home-search-field > [data-icon] { display:none; }
  .home-search input { height:44px; font-size:14px; letter-spacing:-.3px; }
  .home-search > .ref-coral { min-width:46px; width:46px; height:46px; min-height:46px; padding:0; border-radius:20px; }
  .home-search > .ref-coral > span { display:none; }
  .home-search > .ref-coral .ref-icon { display:block; width:25px; height:25px; }
  .home-search.is-expanded { flex-wrap:wrap; padding:8px; gap:8px; }
  .home-search.is-expanded .home-search-field { flex-basis:calc(100% - 62px); }
  .home-search.is-expanded .home-location { order:2; flex-basis:100%; border-left:0; border-top:1px solid var(--line); }
  .home-subjects { width:calc(100% + 16px); padding:12px 0 14px; border-radius:0 0 36px 36px; margin:0 -8px; background:none; overflow:hidden; }
  .home-subject-track { gap:8px; padding:0 4px; }
  .home-subject-item { min-width:59px; min-height:50px; gap:4px; padding:2px 4px; border-radius:12px; font-size:12px; font-weight:500; }
  .home-subject-item[data-mobile-featured] { order:-1; }
  .home-subject-item svg { width:24px; height:24px; }
  .home-subject-arrow { display:none; }
  .home-featured { margin-top:38px; }
  .home-featured h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .home-featured .ref-card-grid { gap:52px; }
  .home-featured .ref-card-photo { border-radius:30px; }
  .home-featured .ref-card-description { font-size:14px; line-height:1.3; min-height:36.4px; }
  .home-featured .ref-card-price { font-size:14px; }
  .home-reviews { display:block; margin-top:120px; }
  .home-review-intro > span { font-size:26px; }
  .home-review-intro h2 { font-size:28px; margin:16px 0 22px; }
  .home-review-intro > p { font-size:16px; line-height:1.5; }
  .home-review-controls { display:none; }
  .home-review-viewport { width:calc(100% + 48px); margin:48px -24px 0; }
  .home-review-track { gap:24px; padding:0 16px; }
  .home-review-card { flex-basis:calc(100vw - 88px); min-height:336px; padding:24px; border-radius:28px; }
  .home-review-person { gap:12px; }
  .home-review-person img { width:44px; height:44px; }
  .home-review-person h3 { font-size:16px; }
  .home-review-person p { font-size:12px; }
  .home-review-card blockquote { font-size:16px; letter-spacing:-.2px; line-height:1.45; margin:26px 0 40px; }
  .home-review-author { min-height:40px; font-size:14px; padding:8px 14px; gap:8px; }
  .home-review-author span { font-size:20px; }
  .home-teaching { margin-top:106px; border-radius:26px; overflow:visible; }
  .home-teaching picture { overflow:hidden; border-radius:26px 26px 0 0; }
  .home-teaching picture img { aspect-ratio:1.65; object-fit:cover; }
  .home-teach-copy { position:relative; inset:auto; padding:24px; margin-top:-20px; border-radius:26px; }
  .home-teach-copy h2 { font-size:23px; line-height:1.3; }
  .home-teach-copy p { font-size:16px; line-height:1.5; margin:20px 0 24px; }
  .home-teach-copy button { min-height:54px; font-size:14px; }
  .home-teach-copy button .ref-icon { display:none; }
  .home-cities { margin-top:80px; }
  .home-cities h2,.home-guides h2 { font-size:26px; line-height:1.4; margin-bottom:28px; }
  .home-city-rail { display:flex; width:calc(100% + 24px); gap:16px; overflow:auto; padding-right:24px; scrollbar-width:none; scroll-snap-type:x mandatory; }
  .home-city-column { flex:0 0 200px; gap:24px; padding:24px; border-radius:28px; scroll-snap-align:start; }
  .home-city-column h3 { font-size:18px; line-height:1.3; margin-bottom:8px; }
  .home-city-column a { font-size:14px; line-height:1.6; }
  .home-guides { margin-top:100px; margin-bottom:90px; }
  .home-guide-rail { width:calc(100% + 24px); gap:16px; overflow:auto; padding:4px 24px 16px 0; scrollbar-width:none; scroll-snap-type:x mandatory; }
  .home-guide { flex-basis:248px; padding:16px; border-radius:24px; scroll-snap-align:start; }
  .home-guide h3 { font-size:16px; line-height:1.5; }
  .home-guide p { font-size:14px; line-height:1.5; }
  .home-guide small { font-size:12px; margin-top:24px; }
  .home-footer { padding:40px 0 24px; }
  .home-footer-grid { grid-template-columns:1fr 1fr; gap:32px 24px; }
  .home-footer h2 { font-size:16px; margin-bottom:16px; }
  .home-footer a,.home-footer button { font-size:12px; min-height:32px; }
  .home-footer-grid section:last-child { grid-column:1/-1; }
  .home-footer-bottom { margin-top:32px; align-items:flex-start; flex-direction:column; font-size:11px; }
}
@media(max-width:360px) {
  .home-width { width:calc(100% - 36px); }
  .home-hero { padding-inline:18px; }
  .home-hero h1 { font-size:40px; }
  .home-intro { font-size:15px; }
  .home-search input { font-size:12px; }
  .home-review-viewport { width:calc(100% + 36px); margin-inline:-18px; }
  .home-review-card { flex-basis:calc(100vw - 64px); padding:20px; }
  .home-review-card blockquote { font-size:15px; }
  .home-city-rail,.home-guide-rail { width:calc(100% + 18px); padding-right:18px; }
}

.home-search input:focus,.home-search input:focus-visible { outline:none; box-shadow:none; }
