/* Shared interaction and layout rules, loaded after page-specific styles. */
:root { --lv-focus:#224eac; --lv-action:#006453; --lv-line:#cbded8; }
#main-content { min-height:50vh; }
#main-content :is(section,h2,h3,form)[id] { scroll-margin-top:110px; }
html[lang=fa] .it-header-menu>nav>ul { display:flex; justify-content:space-between; gap:14px; }
html[lang=fa] .it-header-menu>nav>ul>li { margin:0; }
html[lang=fa] .it-header-menu>nav>ul>li>a { font-size:14px; white-space:nowrap; }
.it-header-menu a[aria-current=page],#mobile-site-menu a[aria-current=page] {
 color:var(--lv-action); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:8px;
}
#mobile-site-menu a[aria-current=page] { background:#dcf3e8; border-radius:8px; }
.it-header-menu nav>ul>li:focus-within>.submenu { opacity:1; visibility:visible; top:100%; }
.it-header-search button { min-width:32px; min-height:32px; }
#main-content textarea { resize:vertical; }
#main-content :is(input,select,textarea) { max-width:100%; }
#main-content :is(input,textarea)[dir=ltr] { text-align:left; }
#main-content :is(.alert,.validation-summary-errors) { overflow-wrap:anywhere; line-height:1.9; }

/* Search is available on desktop and mobile, next to the learning content. */
.lv-learning-search { background:#fff; border:1px solid var(--lv-line); border-radius:16px; padding:20px 24px; margin-bottom:32px; }
.lv-learning-search label { display:block; font-size:15px; font-weight:600; margin-bottom:10px; color:#142f3e; }
.lv-learning-search>div { display:flex; gap:10px; }
.lv-learning-search input { min-width:0; flex:1; height:48px; border:1px solid #718b85; border-radius:10px; background:#f7faf8; padding:10px 14px; color:#142f3e; }
.lv-learning-search button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:10px 22px; border:0; border-radius:10px; background:var(--lv-action); color:#fff; flex-shrink:0; }
.lv-learning-search button:hover { background:#003e35; }
.lv-learning-search>a { display:inline-flex; align-items:center; min-height:44px; margin-top:8px; font-size:14px; color:#224eac; text-decoration:underline; text-underline-offset:4px; }
.lv-learning-empty { padding:40px 24px; text-align:center; background:#fff; border:1px dashed #8da89d; border-radius:16px; }
html[lang=fa] .lv-learning-empty h2 { font-size:22px; line-height:1.8; }
.lv-learning-empty p { max-width:50ch; margin:12px auto; }
.lv-learning-empty a { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--lv-action); text-decoration:underline; text-underline-offset:4px; }

/* Comfortable, consistent reading and form surfaces. */
body.lv-vibrant-palette :is(.lv-news-summary,.lv-directory-specialty,.lv-contact-form-intro,.lv-category-card p) { line-height:2; }
body.lv-vibrant-palette :is(.lv-reading-body,.lv-forum-post-body) { overflow-wrap:anywhere; }
body.lv-vibrant-palette .lv-reading-body :is(pre,table) { max-width:100%; }
body.lv-vibrant-palette .lv-contact-form-panel label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
body.lv-vibrant-palette .lv-contact-form-panel input.form-control { min-height:48px; }
body.lv-vibrant-palette .lv-contact-form-panel textarea { min-height:160px; line-height:1.9; }
body.lv-vibrant-palette :is(.lv-story-accordions summary,.lv-reading-contents summary) { min-height:44px; padding-block:8px; }
body.lv-vibrant-palette :is(.lv-directory-card,.lv-news-card,.lv-learning-card,.lv-category-card):focus-within { outline:2px solid var(--lv-focus); outline-offset:4px; }
body.lv-vibrant-palette .lv-forum-tabs a { min-height:44px; display:inline-flex; align-items:center; }
body.lv-vibrant-palette :is(.lv-community-search button,.lv-community-mobile-categories summary) { min-height:44px; }
body.lv-vibrant-palette :is(.lv-forum-tag-cloud a,.lv-news-tags a) { display:inline-flex; align-items:center; min-height:32px; }
body.lv-vibrant-palette .lv-forum-index :is(.lv-community-author,.lv-forum-tag,.lv-forum-category-badge,.lv-forum-activity) { font-size:12px; }
body.lv-vibrant-palette .lv-community-mobile-categories summary:focus-visible { outline:3px solid var(--lv-focus); outline-offset:3px; }

/* Account forms also use the site's reading and interaction scale. */
html[lang=fa] .lv-auth-breadcrumb { padding:32px 0; background:#edf5f0 !important; }
.lv-auth-breadcrumb .it-breadcrumb-shape-1 { display:none; }
html[lang=fa] .lv-auth-breadcrumb .it-breadcrumb-title { color:#142f3e; font-size:28px; line-height:1.65; margin-bottom:12px; }
html[lang=fa] .lv-auth-form-area { padding:40px 0 64px; background:#f6f8f5; }
.lv-auth-form-area .it-signup-wrap { max-width:600px; margin-inline:auto; padding:32px; background:#fff; border:1px solid var(--lv-line); border-radius:18px; box-shadow:0 8px 28px #142f3e08; }
html[lang=fa] .lv-auth-form-area .it-signup-title { font-size:22px; line-height:1.8; margin-bottom:24px; }
.lv-auth-form-area .it-signup-input label { display:block; color:#142f3e; font-size:14px; margin-bottom:8px; }
.lv-auth-form-area .it-signup-input input { border:1px solid #718b85; border-radius:10px; min-height:48px; background:#fafcfb; color:#142f3e; }
.lv-auth-form-area input::placeholder { color:#465e68; opacity:1; }
.lv-auth-form-area .it-signup-input input.input-validation-error { border:2px solid #a12622; background:#fff0ee; }
.lv-auth-form-area .it-btn-yellow { background:var(--lv-action); color:#fff; border-radius:10px; min-height:48px; }
.lv-auth-form-area .it-btn-yellow:hover { background:#003e35; color:#fff; }
.lv-auth-form-area .it-signup-forget a,.lv-auth-form-area .it-signup-text a { color:#224eac; display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.lv-auth-form-area :is(input,button,a):focus-visible { outline:3px solid var(--lv-focus); outline-offset:4px; }

/* Home contact owns its field layout, independent of the legacy template form. */
#home-contact>.container>.row { align-items:center !important; row-gap:32px; }
#home-contact .it-contact-left>p { color:#e1f3ea; line-height:2; }
#home-contact .it-contact-2-form-box { padding:28px; min-width:0; }
html[lang=fa] #home-contact .it-contact-2-form-title { font-size:22px; line-height:1.7; text-align:right; margin:0 0 8px; }
#home-contact .lv-home-contact-hint { font-size:13px; color:#465e68; margin:0 0 20px; }
.lv-home-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px; }
.lv-home-contact-field { min-width:0; }
.lv-home-contact-wide { grid-column:1 / -1; }
.lv-home-contact-field label { display:block; color:#173b33; font-size:14px; font-weight:600; margin-bottom:8px; }
body #home-contact .lv-home-contact-field :is(input,textarea) { display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; border:1px solid #718b85; border-radius:8px; background:#fff; color:#142f3e; padding:12px 14px; font-size:16px; line-height:1.6; }
body #home-contact .lv-home-contact-field input { height:48px; }
body #home-contact .lv-home-contact-field textarea { min-height:144px; height:auto; resize:vertical; }
#home-contact .lv-home-contact-field :is(input,textarea)::placeholder { color:#526770; opacity:1; font-size:14px; }
.lv-home-contact-field .field-validation-error { display:block; margin-top:6px; }
.lv-home-contact-actions { display:grid; gap:16px; margin-top:20px; min-width:0; }
#home-contact .lv-captcha { width:100%; min-width:0; margin:0; background:#fffdf8; color:#173b33; padding:16px; }
#home-contact .lv-captcha label { font-size:14px; color:#173b33; }
#home-contact .lv-captcha input[type=text] { min-height:44px; }
#home-contact .lv-home-contact-submit { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; min-height:48px; border:0; border-radius:8px; padding:12px 20px; background:#006453; color:#fff; font-size:16px; font-weight:600; }
#home-contact .lv-home-contact-submit:hover { background:#003e35; }
#home-contact .lv-home-contact-submit:focus-visible { outline:3px solid #224eac; outline-offset:4px; }
#home-contact .lv-home-contact-submit:disabled { background:#e7ece9; color:#52645e; cursor:not-allowed; }
@media(max-width:575px) {
 #home-contact .it-contact-2-form-box { padding:22px 18px; }
 html[lang=fa] #home-contact .it-contact-2-form-title { font-size:20px; }
 .lv-home-contact-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
}
/* Secondary public flows: courses, cart, teacher search and applications. */
.lv-service-page #main-content { background:#f5f8f6; color:#142f3e; }
.lv-service-page #main-content .it-breadcrumb-area { padding:32px 0; background:#edf5f0 !important; }
.lv-service-page #main-content .it-breadcrumb-area>img { display:none; }
html[lang=fa] .lv-service-page #main-content .it-breadcrumb-title { font-size:clamp(24px,2.2vw,30px); line-height:1.7; color:#142f3e; }
.lv-service-page #main-content :is(.cart-area,.checkout-area,.it-course-area,.it-course-details-area,.it-about-area) { padding-block:48px; }
.lv-service-page #main-content :is(.it-course-item,.table-content,.checkbox-form,.your-order) { background:#fff; border:1px solid var(--lv-line); border-radius:16px; }
.lv-service-page #main-content :is(.it-btn-yellow,.it-btn) { background:var(--lv-action); color:#fff; border-radius:10px; min-height:44px; }
.lv-service-page #main-content :is(.it-btn-yellow,.it-btn):hover { background:#003e35; color:#fff; }
html[lang=fa] .lv-service-page :is(.lv-apply-form-panel h1,.lv-find-hero h1) { font-size:clamp(24px,2.2vw,30px); line-height:1.7; }
html[lang=fa] .lv-service-page .lv-apply-guide h2 { font-size:22px; line-height:1.8; }
.lv-service-page :is(.lv-apply-form-panel,.lv-apply-guide) { border-radius:18px; }
.lv-service-page #main-content :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]),select,textarea) { border-color:#718b85; border-radius:8px; min-height:44px; }
.lv-service-page #main-content :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--lv-focus); outline-offset:3px; }
.lv-service-page #main-content :is(h1,h2,h3,p,td) { overflow-wrap:anywhere; }
.lv-service-page .table-responsive { max-width:100%; }
@media(max-width:991px) {
 body.lv-vibrant-palette .lv-home-page :is(.it-about-area,.it-language-area,.it-contact-2-area,.it-blog-area) { padding-block:48px; }
 body.lv-vibrant-palette .lv-profile-aside { position:static; }
}
@media(max-width:575px) {
 .lv-service-page #main-content :is(.cart-area,.checkout-area,.it-course-area,.it-course-details-area,.it-about-area) { padding-block:28px; }
 html[lang=fa] .lv-service-page #main-content :is(input,select,textarea) { font-size:16px; }
 .lv-learning-search { padding:16px; margin-bottom:24px; }
 .lv-learning-search>div { gap:8px; }
 .lv-learning-search button { padding-inline:14px; font-size:14px; }
 .lv-learning-search button i { display:none; }
 .lv-learning-search input { font-size:16px; }
 .lv-learning-empty { padding:28px 18px; }
 html[lang=fa] .lv-learning-empty h2 { font-size:20px; }
 body.lv-vibrant-palette :is(.lv-contact-message,.lv-story-hero,.lv-profile-layout,.lv-reading-layout) { gap:20px; }
 body.lv-vibrant-palette :is(.lv-contact-form-panel,.lv-contact-note,.lv-detail-card) { padding:22px 18px; }
 body.lv-vibrant-palette :is(.lv-forum-tag-cloud a,.lv-news-tags a) { min-height:44px; }
 body.lv-vibrant-palette .lv-contact-send { width:100%; justify-content:center; min-height:48px; }
 .lv-auth-form-area .it-signup-wrap { padding:24px 18px; }
 html[lang=fa] .lv-auth-form-area { padding:24px 0 40px; }
 html[lang=fa] .lv-auth-form-area .it-signup-title { font-size:21px; }
 html[lang=fa] .lv-auth-form-area input { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
 .wow { visibility:visible !important; }
}
