/**
* Supplier components (gallery carousel, uploader previews)
*/
.supplier-card-logo {
 height: 210px;
 padding: 1.5rem;
 display: flex;
 align-items: center;
 justify-content: center;
 background: linear-gradient(145deg, #fff9f2, #f6ebdd);
 border-bottom: 1px solid rgba(188, 154, 106, 0.25);
}


.supplier-card-logo.has-image {
 padding: 0;
}


.supplier-logo-img {
 width: 100%;
 height: 100%;
 object-fit: contain;
 filter: drop-shadow(0 6px 14px rgba(68, 51, 31, 0.18));
 transition: transform 0.2s ease;
}


.talent-card:hover .supplier-logo-img {
 transform: scale(1.03);
}


.supplier-logo-placeholder {
 width: 120px;
 height: 120px;
 border-radius: 28px;
 border: 2px dashed rgba(188, 154, 106, 0.45);
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 color: rgba(82, 63, 44, 0.8);
 background: rgba(255, 255, 255, 0.6);
}


.supplier-logo-placeholder i {
 font-size: 2.4rem;
}


.supplier-avatar-img {
 object-fit: cover;
}


.talent-gallery {
 position: relative;
 width: 100%;
 background: #fdfaf6;
 border-radius: 18px;
 overflow: hidden;
 box-shadow: 0 12px 30px rgba(188, 154, 106, 0.12);
 margin-bottom: 1rem;
}


.talent-gallery.detail {
 min-height: 320px;
}


.gallery-track {
 display: flex;
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
 scroll-behavior: smooth;
}


.gallery-track::-webkit-scrollbar {
 height: 0;
}


.gallery-slide {
 flex: 0 0 100%;
 scroll-snap-align: start;
 position: relative;
 min-height: 220px;
 background: #e9dfd1;
}


.gallery-slide img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}


.gallery-nav {
 position: absolute;
 top: 50%;
 transform: translateY(-50%);
 background: rgba(32, 29, 24, 0.55);
 color: #fff;
 border: none;
 border-radius: 50%;
 width: 44px;
 height: 44px;
 display: flex;
 align-items: center;
 justify-content: center;
 cursor: pointer;
 z-index: 3;
 padding: 0;
}


.gallery-nav:hover {
 background: rgba(32, 29, 24, 0.8);
}


.gallery-nav:active {
 background: rgba(32, 29, 24, 1);
}


.gallery-nav.prev {
 left: 0.75rem;
}


.gallery-nav.next {
 right: 0.75rem;
}


.talent-gallery[data-gallery-length="1"] .gallery-nav,
.talent-gallery[data-gallery-length="1"] .gallery-dots,
.talent-gallery[data-gallery-length="1"] .gallery-swipe-hint,
.talent-gallery[data-gallery-length="1"] .gallery-thumb-strip {
 display: none !important;
}


.gallery-dots {
 position: absolute;
 left: 50%;
 bottom: 0.65rem;
 transform: translateX(-50%);
 display: inline-flex;
 gap: 0.35rem;
 z-index: 2;
}


.gallery-dot {
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: rgba(255, 255, 255, 0.45);
 border: none;
 padding: 0;
}


.gallery-dot.active {
 background: #f2c684;
}


.gallery-swipe-hint {
 position: absolute;
 bottom: 0.85rem;
 left: 50%;
 transform: translateX(-50%);
 background: rgba(0, 0, 0, 0.55);
 color: #fff;
 padding: 0.25rem 0.85rem;
 border-radius: 999px;
 font-size: 0.75rem;
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 z-index: 3;
 transition: opacity 0.3s ease;
}


.gallery-swipe-hint.is-hidden {
 opacity: 0;
 pointer-events: none;
}


.swipe-arrow {
 font-weight: 600;
}


.gallery-thumb-strip {
 display: flex;
 gap: 0.25rem;
 padding: 0.5rem;
 background: #fff;
}


.gallery-thumb {
 border: none;
 padding: 0;
 width: 54px;
 height: 54px;
 border-radius: 12px;
 overflow: hidden;
 cursor: pointer;
 opacity: 0.75;
 transition: transform 0.2s ease, opacity 0.2s ease;
}


.gallery-thumb img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}


.gallery-thumb:hover,
.gallery-thumb:focus,
.gallery-thumb.active-thumb {
 opacity: 1;
 transform: translateY(-2px);
 outline: none;
}


.supplier-profile-head .supplier-logo img {
 width: 120px;
 height: 120px;
 object-fit: cover;
 border-radius: 20px;
 border: 2px solid rgba(188, 154, 106, 0.25);
 background: #fff;
}


.supplier-profile-head .supplier-logo .logo-placeholder {
 width: 120px;
 height: 120px;
 border-radius: 20px;
 border: 2px dashed rgba(188, 154, 106, 0.4);
 display: flex;
 align-items: center;
 justify-content: center;
 color: rgba(90, 74, 58, 0.5);
}


.supplier-inline-gallery .talent-gallery {
 border-radius: 20px;
 border: 1px solid rgba(188, 154, 106, 0.15);
}


.custom-file-dropzone {
 border: 2px dashed rgba(188, 154, 106, 0.5);
 border-radius: 16px;
 padding: 1rem;
 text-align: center;
 background: rgba(247, 239, 226, 0.4);
}


.custom-file-dropzone input[type="file"] {
 display: block;
 margin: 0 auto;
}


.existing-gallery-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
 gap: 0.75rem;
}


.existing-gallery-item {
 border-radius: 12px;
 overflow: hidden;
 border: 1px solid rgba(0, 0, 0, 0.05);
 background: #fff;
}


.existing-gallery-item img {
 width: 100%;
 height: 110px;
 object-fit: cover;
}


.existing-gallery-item figcaption {
 font-size: 0.75rem;
 padding: 0.35rem 0.5rem;
 color: #6b5845;
}


@media (max-width: 767.98px) {
 .gallery-nav {
   width: 32px;
   height: 32px;
 }
 .gallery-swipe-hint {
   font-size: 0.7rem;
   padding: 0.2rem 0.65rem;
 }
 .gallery-thumb {
   width: 48px;
   height: 48px;
 }
}

.supplier-hero-meta .text-muted {
 color: #8c7b6a !important;
}

.supplier-sections-card {
 border-radius: 20px;
 border: 1px solid rgba(0, 0, 0, 0.05);
 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.supplier-tabs {
 border-bottom: 1px solid rgba(0, 0, 0, 0.08);
 margin-bottom: 0.75rem;
}

.supplier-tabs .nav-link {
 border: none;
 border-radius: 0;
 padding: 0.5rem 0;
 margin-right: 1.5rem;
 color: #6b5a47;
 font-weight: 600;
 border-bottom: 2px solid transparent;
 transition: color 0.2s ease, border-color 0.2s ease;
 text-decoration: none;
}

.supplier-tabs .nav-link::after,
.supplier-tabs .nav-link.active::after,
.supplier-tabs .nav-link:focus::after {
 content: none !important;
}

.supplier-tabs .nav-link:focus {
 outline: none;
 text-decoration: none;
 box-shadow: none;
}

.supplier-tabs .nav-link:hover {
 color: #3f2b1c;
 text-decoration: none;
}

.supplier-tabs .nav-link.active {
 color: #fff !important;

 text-decoration: none !important;
}


.info-list .label {
 display: block;
 font-size: 0.8rem;
 text-transform: uppercase;
 letter-spacing: 0.02em;
 color: #8c7b6a;
}

.info-list .value {
 display: block;
 font-weight: 600;
 color: #3f3326;
 margin-bottom: 0.5rem;
}

.rich-text-block {
 background: rgba(247, 239, 226, 0.4);
 border-radius: 14px;
 padding: 1rem;
 border: 1px solid rgba(188, 154, 106, 0.2);
}

.business-price-card {
 border-radius: 16px;
 border: 1px solid rgba(188, 154, 106, 0.2);
 padding: 1.25rem;
 background: #fffaf2;
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.business-price-card .display-value {
 font-size: 1.35rem;
 font-weight: 600;
 margin-bottom: 0;
 color: #3f2b1c;
}

.media-gallery-block {
 border-radius: 20px;
 padding: 1.25rem;
 color: #fff;
}

.media-gallery-block .talent-gallery {
 background: transparent;
 box-shadow: none;
}

.media-gallery-block .gallery-slide {
 background: rgba(255, 255, 255, 0.1);
}

.supplier-sidebar.sticky-sidebar {
 position: sticky;
 top: 90px;
 z-index: 2;
 box-shadow: 0 12px 30px rgba(0, 0, 0, 0.05);
}

@media (max-width: 991.98px) {
 .supplier-sidebar.sticky-sidebar {
   position: static;
 }
}

.sidebar-cta-group .btn {
 font-weight: 600;
}

.share-feedback {
 min-height: 18px;
}

.profile-photo {
 width: 140px;
 height: 140px;
 border-radius: 28px;
 overflow: hidden;
 background: #f5eee5;
 border: 1px solid rgba(0, 0, 0, 0.05);
 display: flex;
 align-items: center;
 justify-content: center;
}

.profile-photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.profile-photo-placeholder {
 width: 100%;
 height: 100%;
 display: flex;
 align-items: center;
 justify-content: center;
 color: #b89a7a;
 font-size: 2rem;
}

.badge-soft {
 background: rgba(188, 154, 106, 0.15);
 color: #6b4c2b;
 font-weight: 600;
 border-radius: 999px;
 padding: 0.25rem 0.75rem;
 font-size: 0.85rem;
}

.hero-actions .btn {
 border-radius: 14px;
}

.profile-stat-grid {
 display: flex;
 flex-wrap: wrap;
 gap: 1rem;
}

.profile-stat-grid.compact {
 gap: 0.75rem;
}

.profile-stat-pill {
 flex: 1 1 140px;
 border-radius: 16px;
 border: 1px solid rgba(0, 0, 0, 0.05);
 padding: 0.85rem 1rem;
 background: #fff;
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.profile-stat-pill .label {
 text-transform: uppercase;
 letter-spacing: 0.03em;
 font-size: 0.7rem;
 color: #8c7b6a;
}

.profile-stat-pill .value {
 font-size: 1.4rem;
 font-weight: 600;
 margin: 0;
 color: #3f2b1c;
}

.social-link-chip {
 border-radius: 999px;
 border: 1px solid rgba(0, 0, 0, 0.08);
 padding: 0.35rem 0.9rem;
 display: inline-flex;
 align-items: center;
 font-weight: 500;
 color: #5a4635;
 background: #fff;
 transition: background 0.2s ease, color 0.2s ease;
}

.social-link-chip:hover {
 text-decoration: none;
 background: #2e2a24;
 color: #fff;
}

.media-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
 gap: 0.75rem;
}

.media-grid-item {
 border-radius: 14px;
 overflow: hidden;
}

.media-grid-item img {
 width: 100%;
 height: 130px;
 object-fit: cover;
 border-radius: 14px;
 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.freelancer-demo-list {
 display: flex;
 flex-direction: column;
}

.freelancer-demo-item {
 border: 1px solid rgba(0, 0, 0, 0.05);
 border-radius: 14px;
 padding: 0.75rem 1rem;
 display: flex;
 align-items: center;
 justify-content: space-between;
 background: #fff;
 margin-bottom: 0.5rem;
}

.freelancer-demo-item a {
 font-weight: 600;
 color: #6b4c2b;
}

.rating-entry {
 padding: 1rem 0;
 border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.rating-entry:last-child {
 border-bottom: none;
}

.related-freelancer-card {
 border: 1px solid rgba(0, 0, 0, 0.05);
 border-radius: 16px;
 padding: 0.85rem 1rem;
 display: flex;
 align-items: center;
 justify-content: space-between;
 margin-bottom: 0.75rem;
}

.freelancer-hero-card .card-header {
 border-radius: 20px 20px 0 0;
}

/**
 * 新的分段卡片佈局樣式
 */
.sections-container {
 margin-top: 1rem;
}

.info-section {
 border-radius: 16px;
 border: 1px solid rgba(188, 154, 106, 0.2);
 border-left: 4px solid #bc9a6a;
 overflow: hidden;
 box-shadow: 0 6px 16px rgba(0, 0, 0, 0.04);
 transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.info-section:hover {
 box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
 transform: translateY(-2px);
}

.section-header {
 background: linear-gradient(135deg, #faf7f2 0%, #f5eee5 100%);
 padding: 1.25rem;
 border-bottom: 1px solid rgba(188, 154, 106, 0.15);
 display: flex;
 align-items: center;
}

.section-title {
 margin: 0;
 font-size: 1.05rem;
 font-weight: 700;
 color: #3f2b1c;
 letter-spacing: 0.01em;
 display: flex;
 align-items: center;
}

.section-title i {
 color: #bc9a6a;
 font-size: 1.15rem;
}

.section-body {
 padding: 1.5rem;
 color: #5a4635;
}

.section-body .row {
 margin-left: -0.75rem;
 margin-right: -0.75rem;
}

.section-body .col-md-6 {
 padding-left: 0.75rem;
 padding-right: 0.75rem;
}

/* 響應式調整 */
@media (max-width: 767.98px) {
 .info-section {
   margin-bottom: 1rem;
   border-left: 4px solid #bc9a6a;
 }

 .section-header {
   padding: 1rem;
 }

 .section-title {
   font-size: 1rem;
 }

 .section-body {
   padding: 1.25rem;
 }
}

/* 確保 h-100 搭配卡片時的高度 */
.info-section.h-100 {
 display: flex;
 flex-direction: column;
}

.info-section.h-100 .section-body {
 flex: 1;
}
