chore: finalize project updates

This commit is contained in:
2026-08-22 11:42:16 +03:30
parent 7719d750e9
commit 691290c340
55 changed files with 1923 additions and 6498 deletions
+132 -560
View File
@@ -1,606 +1,178 @@
/* =========================================================
Travel Agency - Home Page
تایپوگرافی و تنظیمات پایه (یکپارچه)
========================================================= */
.travel-page {
background: #f6f8fb;
min-height: 100vh;
padding: 60px 0;
direction: rtl;
body, html {
font-family: 'Tahoma', 'Arial', sans-serif !important;
/*font-size: 13px !important; !* متن اصلی خواناتر *!*/
line-height: 1.8 !important;
color: #374151 !important;
/*background: #f5f7fa;*/
}
.travel-page .section-heading {
text-align: center;
margin-bottom: 35px;
h1, h2, h3, h4, h5 {
font-family: 'Tahoma', sans-serif !important;
color: #1f2937 !important;
}
.travel-page .section-heading h2 {
font-size: 28px;
font-weight: 700;
color: #1f2937;
margin-bottom: 10px;
/* اصلاح فرم‌ها */
.form-control, input, select, textarea {
font-size: 12px !important;
padding: 10px 14px !important;
}
.travel-page .section-heading p {
color: #7b8494;
font-size: 14px;
margin: 0;
}
/* =========================================================
Tour Cards
استایل‌های کارت‌ها (مشترک بین همه صفحات)
========================================================= */
.travel-page .travel-card {
background: #fff;
border-radius: 14px;
overflow: hidden;
border: 1px solid #edf0f4;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
transition: all .25s ease;
height: 100%;
}
.travel-page .travel-card:hover {
transform: translateY(-6px);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.10);
}
/* تصویر کارت */
.travel-page .travel-card-image {
width: 100%;
height: 210px;
overflow: hidden;
background: #eef1f5;
}
.travel-page .travel-card-image img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
transition: transform .35s ease;
}
.travel-page .travel-card:hover .travel-card-image img {
transform: scale(1.05);
}
/* بدنه کارت */
.travel-page .travel-card-body {
padding: 20px;
}
.travel-page .travel-card-title {
font-size: 19px;
font-weight: 700;
color: #202936;
margin: 0 0 12px;
}
.travel-page .travel-card-summary {
color: #737d8d;
font-size: 14px;
line-height: 1.9;
min-height: 52px;
margin-bottom: 15px;
}
.travel-page .travel-date {
color: #555f70;
font-size: 13px;
margin-bottom: 18px;
}
.travel-page .travel-date i {
margin-left: 6px;
color: #1687d9;
}
/* =========================================================
Buttons
========================================================= */
.travel-page .travel-btn {
display: block;
text-align: center;
text-decoration: none !important;
background: #1687d9;
color: #fff !important;
border-radius: 8px;
padding: 10px 15px;
font-size: 14px;
transition: .2s;
}
.travel-page .travel-btn:hover {
background: #0d6fae;
}
/* =========================================================
Empty State
========================================================= */
.travel-page .empty-box {
background: #fff;
border: 1px dashed #d9dee7;
border-radius: 12px;
padding: 35px;
text-align: center;
color: #8a93a1;
}
/* =========================================================
Pagination
========================================================= */
.travel-page .pagination-wrapper {
display: flex;
justify-content: center;
margin-top: 30px;
direction: rtl;
}
.travel-page .pagination-wrapper nav {
margin: 0;
}
/* =========================================================
Flights
========================================================= */
.travel-page .flights-section {
margin-top: 80px;
}
.travel-page .flight-card {
background: #fff;
border-radius: 14px;
border: 1px solid #edf0f4;
padding: 22px;
height: 100%;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
transition: all .25s ease;
}
.travel-page .flight-card:hover {
transform: translateY(-5px);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.09);
}
.travel-page .flight-icon {
width: 50px;
height: 50px;
border-radius: 50%;
background: #e9f5ff;
color: #1687d9;
display: flex;
align-items: center;
justify-content: center;
font-size: 21px;
margin-bottom: 17px;
}
.travel-page .flight-title {
font-size: 19px;
font-weight: 700;
color: #202936;
margin-bottom: 12px;
}
.travel-page .flight-summary {
color: #737d8d;
font-size: 14px;
line-height: 1.9;
min-height: 52px;
margin-bottom: 14px;
}
.travel-page .flight-date {
color: #555f70;
font-size: 13px;
margin-bottom: 18px;
}
/* =========================================================
Responsive
========================================================= */
@media (max-width: 767px) {
.travel-page {
padding: 35px 15px;
}
.travel-page .section-heading h2 {
font-size: 23px;
}
.travel-page .travel-card-image {
height: 190px;
}
.travel-page .flights-section {
margin-top: 55px;
}
}
.tour-details-page {
direction: rtl;
padding: 50px 0;
background: #f7f8fa;
}
.tour-details-card {
max-width: 1050px;
margin: auto;
.travel-card, .flight-card, .tour-card, .tour-details-card {
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
border: 1px solid #eef0f5;
transition: all .3s ease;
}
.travel-card:hover, .flight-card:hover, .tour-details-card:hover {
box-shadow: 0 10px 25px rgba(20, 50, 90, .10);
}
/* دکمه‌های اصلی */
.travel-btn {
display: inline-block;
background: #1687d9;
color: #fff !important;
font-size: 12px;
font-weight: 400;
padding: 10px 20px;
border-radius: 8px;
text-decoration: none;
}
.travel-btn:hover { background: #0e6bb0; }
/* دکمه علاقه‌مندی */
.travel-favorite-btn {
display: inline-flex;
align-items: center;
gap: 8px;
background: transparent;
border: 1px solid #e0245e;
color: #e0245e;
border-radius: 25px;
padding: 8px 20px;
font-size: 12px;
cursor: pointer;
transition: all .2s ease;
}
.travel-favorite-btn:hover, .travel-favorite-btn.active {
background: #e0245e;
color: #fff;
}
/* =========================================================
بخش اختصاصی جزئیات تور (tour-details-page)
========================================================= */
.tour-details-page { padding: 30px 0; }
.tour-details-card { padding: 30px; margin-bottom: 30px; }
.tour-details-image {
width: 100%;
height: 400px;
height: 350px;
overflow: hidden;
border-radius: 12px;
margin-bottom: 20px;
}
.tour-details-image img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.tour-no-image {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: #eeeeee;
color: #777;
}
.tour-details-content {
padding: 35px;
}
.tour-details-title {
margin: 0 0 25px;
font-size: 32px;
font-weight: 700;
color: #222;
}
.tour-details-image img { width: 100%; height: 100%; object-fit: cover; }
.tour-details-info {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 15px;
margin-bottom: 35px;
margin: 25px 0;
}
.tour-info-box {
padding: 20px;
background: #f7f8fa;
border-radius: 12px;
background: #f8fafc;
padding: 15px;
border-radius: 10px;
text-align: center;
border: 1px solid #eef0f5;
}
.tour-info-label {
display: block;
color: #888;
font-size: 13px;
margin-bottom: 8px;
}
.tour-info-box strong {
color: #222;
font-size: 15px;
}
.tour-description {
border-top: 1px solid #eee;
padding-top: 30px;
}
.tour-description h2,
.tour-flights h2,
.related-tours h2 {
margin-bottom: 20px;
font-size: 22px;
}
.tour-description p {
color: #555;
line-height: 2.2;
font-size: 15px;
}
.tour-flights {
margin-top: 35px;
padding-top: 30px;
border-top: 1px solid #eee;
}
.flight-item {
display: flex;
justify-content: space-between;
gap: 20px;
padding: 18px;
margin-bottom: 10px;
background: #f7f8fa;
border-radius: 10px;
}
.flight-item span {
display: block;
color: #888;
font-size: 13px;
font-size: 12px;
color: #8a93a3;
margin-bottom: 5px;
}
.related-tours {
margin-top: 40px;
padding-top: 30px;
border-top: 1px solid #eee;
}
.related-tours-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 15px;
}
.related-tour-card {
.tour-info-box strong {
font-size: 13px;
color: #1f2937;
display: block;
overflow: hidden;
background: #f7f8fa;
}
.tour-flights .flight-item {
background: #f8fafc;
padding: 15px;
border-radius: 10px;
color: inherit;
text-decoration: none;
}
.related-tour-card img {
width: 100%;
height: 130px;
object-fit: cover;
display: block;
}
.related-tour-card div {
padding: 12px;
}
.related-tour-card h3 {
margin: 0 0 8px;
font-size: 15px;
}
.related-tour-card span {
color: #888;
font-size: 12px;
}
.tour-back {
margin-top: 35px;
}
.tour-back-button {
display: inline-block;
padding: 12px 25px;
background: #222;
color: #fff;
border-radius: 8px;
text-decoration: none;
}
.tour-back-button:hover {
color: #fff;
text-decoration: none;
opacity: .9;
}
@media (max-width: 768px) {
.tour-details-page {
padding: 20px 10px;
}
.tour-details-image {
height: 250px;
}
.tour-details-content {
padding: 20px;
}
.tour-details-title {
font-size: 25px;
}
.tour-details-info {
grid-template-columns: 1fr 1fr;
}
.related-tours-grid {
grid-template-columns: 1fr 1fr;
}
.flight-item {
flex-direction: column;
}
margin-bottom: 10px;
display: flex;
justify-content: space-between;
}
/* =========================================================
Main Navbar - RTL Fix
========================================================= */
#main-nav {
direction: rtl;
width: 100%;
عنوان بخش‌ها (Global Header Style)
========================================================= */
h2 {
font-size: 15px !important;
font-weight: 500 !important;
padding-right: 15px;
position: relative;
z-index: 1000;
margin-bottom: 20px !important;
}
#main-nav .container {
width: 100%;
}
#main-nav .navbar-inner {
display: flex;
align-items: center;
min-height: 80px;
}
/* لوگو */
#main-nav .navbar-header {
float: none;
flex-shrink: 0;
}
#main-nav .navbar-brand {
display: flex;
align-items: center;
height: 80px;
padding: 10px 0 10px 30px;
}
#main-nav .navbar-brand img {
max-height: 55px;
width: auto;
}
/* بخش منو */
#main-nav .navbar-collapse {
display: flex !important;
align-items: center;
justify-content: space-between;
flex: 1;
border: 0;
box-shadow: none;
}
/* منوی اصلی */
#main-nav .navbar-nav {
float: none !important;
display: flex;
align-items: center;
margin: 0;
}
#main-nav .navbar-nav > li {
float: none;
}
#main-nav .navbar-nav > li > a {
display: flex;
align-items: center;
min-height: 80px;
padding: 0 16px;
white-space: nowrap;
}
/* منوی سمت راست */
#main-nav .navbar-nav.navbar-right {
margin-right: auto;
margin-left: 0;
}
/* آیکون حساب */
#main-nav .navbar-nav-item-user-icon {
margin-left: 7px;
font-size: 18px;
}
/* Dropdown */
#main-nav .dropdown-menu {
h2::before {
content: "";
position: absolute;
right: 0;
left: auto;
min-width: 180px;
text-align: right;
top: 2px;
width: 5px;
height: 24px;
/*background: #1687d9;*/
border-radius: 4px;
}
/* =========================================================
حفظ رنگ سفید در هیرو (travel-hero)
این قانون باید بعد از قانون سراسری h1 قرار بگیرد
========================================================= */
.travel-hero-content h1,
.travel-hero-content h1 span {
color: #ffffff !important;
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}
#main-nav .navbar-right .dropdown-menu {
right: auto;
left: 0;
/* متن‌های دیگر هیرو هم سفید و خوانا */
.travel-hero-label,
.travel-hero-content p {
color: #ffffff !important;
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}
/* موبایل */
@media (max-width: 767px) {
#main-nav .navbar-inner {
display: block;
min-height: auto;
}
#main-nav .navbar-header {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 70px;
}
#main-nav .navbar-brand {
height: 70px;
padding: 8px 0;
}
#main-nav .navbar-toggle {
float: left;
margin-left: 0;
margin-right: 15px;
}
#main-nav .navbar-collapse {
display: block !important;
width: 100%;
padding: 0;
}
#main-nav .navbar-nav {
display: block;
width: 100%;
}
#main-nav .navbar-nav > li {
display: block;
width: 100%;
}
#main-nav .navbar-nav > li > a {
min-height: 45px;
padding: 12px 15px;
display: block;
}
#main-nav .navbar-nav.navbar-right {
margin: 0;
}
#main-nav .dropdown-menu {
position: static;
float: none;
width: 100%;
box-shadow: none;
}
.travel-card {
display: flex;
flex-direction: column;
border-radius: 8px;
overflow: hidden;
background: #fff;
transition: transform 0.3s ease;
}
.travel-card-image img {
width: 100%;
height: 200px;
object-fit: cover;
}
.travel-card-body {
padding: 15px;
flex-grow: 1;
}