/* ============================================
   开元棋牌 — 古典棋道传承与名局鉴赏平台
   主样式文件 kp-style.css
   CSS前缀: kp-
   ============================================ */

/* === Google Fonts Import === */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&display=swap');

/* === CSS Custom Properties === */
:root {
  --kp-color-primary: #8C2318;
  --kp-color-secondary: #E4B467;
  --kp-color-accent: #2E4A3B;
  --kp-color-highlight: #F2E0C9;
  --kp-color-bg: #F8F3ED;
  --kp-color-text: #333333;
  --kp-color-text-light: #666666;
  --kp-color-nav-bg: #5C3E2A;
  --kp-color-footer-bg: #333333;
  --kp-color-white: #FFFFFF;
  --kp-font-heading: 'Noto Serif SC', 'SimSun', serif;
  --kp-font-body: 'Noto Serif SC', 'SimSun', serif;
  --kp-radius: 4px;
  --kp-shadow: 0 2px 10px rgba(0,0,0,0.08);
  --kp-shadow-hover: 0 6px 20px rgba(0,0,0,0.15);
  --kp-transition: all 0.3s ease;
  --kp-max-width: 1200px;
}

/* === Reset & Base === */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: var(--kp-font-body);
  color: var(--kp-color-text);
  background-color: var(--kp-color-bg);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--kp-color-primary);
  text-decoration: none;
  transition: var(--kp-transition);
}

a:hover {
  color: var(--kp-color-secondary);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--kp-font-heading);
  font-weight: 700;
  line-height: 1.4;
  color: var(--kp-color-text);
}

h1 { font-size: 2.4rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.2rem; }

p {
  margin-bottom: 1rem;
}

/* === Container === */
.kp-container {
  max-width: var(--kp-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

/* === Section Common === */
.kp-section {
  padding: 60px 0;
}

.kp-section-title {
  text-align: center;
  margin-bottom: 40px;
  position: relative;
}

.kp-section-title h2 {
  display: inline-block;
  color: var(--kp-color-primary);
  padding: 0 30px;
  position: relative;
}

.kp-section-title h2::before,
.kp-section-title h2::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 60px;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--kp-color-secondary));
}

.kp-section-title h2::before {
  right: 100%;
  background: linear-gradient(to left, transparent, var(--kp-color-secondary));
}

.kp-section-title h2::after {
  left: 100%;
}

.kp-section-subtitle {
  text-align: center;
  color: var(--kp-color-text-light);
  font-size: 0.95rem;
  max-width: 600px;
  margin: -20px auto 40px;
}

/* === Gold Divider === */
.kp-gold-line {
  width: 80px;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--kp-color-secondary), transparent);
  margin: 15px auto;
}

/* === Navigation === */
.kp-nav {
  background-color: var(--kp-color-nav-bg);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 2px solid var(--kp-color-secondary);
}

.kp-nav-inner {
  max-width: var(--kp-max-width);
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 70px;
}

.kp-nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.kp-nav-logo img {
  width: 45px;
  height: 45px;
  border-radius: 4px;
}

.kp-nav-logo span {
  font-family: var(--kp-font-heading);
  font-size: 1.3rem;
  font-weight: 900;
  color: var(--kp-color-secondary);
  letter-spacing: 2px;
}

.kp-nav-menu {
  display: flex;
  list-style: none;
  gap: 5px;
}

.kp-nav-menu li a {
  display: block;
  padding: 8px 14px;
  color: var(--kp-color-highlight);
  font-size: 0.9rem;
  position: relative;
  transition: var(--kp-transition);
}

.kp-nav-menu li a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  right: 50%;
  height: 2px;
  background: var(--kp-color-secondary);
  transition: var(--kp-transition);
}

.kp-nav-menu li a:hover,
.kp-nav-menu li a.kp-active {
  color: var(--kp-color-secondary);
}

.kp-nav-menu li a:hover::after,
.kp-nav-menu li a.kp-active::after {
  left: 10%;
  right: 10%;
}

.kp-nav-cta {
  display: inline-block;
  padding: 8px 20px;
  background: var(--kp-color-primary);
  color: var(--kp-color-white) !important;
  border: 2px solid var(--kp-color-secondary);
  border-radius: var(--kp-radius);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 1px;
  transition: var(--kp-transition);
}

.kp-nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(140,35,24,0.3);
  color: var(--kp-color-white) !important;
}

/* Hamburger */
.kp-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 5px;
}

.kp-hamburger span {
  width: 25px;
  height: 2px;
  background: var(--kp-color-secondary);
  transition: var(--kp-transition);
}

/* === Hero Banner === */
.kp-hero {
  position: relative;
  width: 100%;
  height: 70vh;
  min-height: 500px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kp-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.kp-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    135deg,
    rgba(248,243,237,0.85) 0%,
    rgba(242,224,201,0.75) 50%,
    rgba(248,243,237,0.85) 100%
  );
  z-index: 2;
}

.kp-hero-content {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 600px;
  padding: 40px;
}

.kp-hero-content h1 {
  font-size: 2.6rem;
  color: var(--kp-color-primary);
  margin-bottom: 20px;
  letter-spacing: 4px;
  line-height: 1.5;
}

.kp-hero-content p {
  color: var(--kp-color-text-light);
  font-size: 1rem;
  margin-bottom: 30px;
  line-height: 1.9;
}

.kp-btn-seal {
  display: inline-block;
  padding: 14px 36px;
  background: var(--kp-color-primary);
  color: var(--kp-color-white);
  border: 2px solid var(--kp-color-secondary);
  border-radius: var(--kp-radius);
  font-family: var(--kp-font-heading);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 3px;
  transition: var(--kp-transition);
  cursor: pointer;
}

.kp-btn-seal:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(140,35,24,0.3);
  color: var(--kp-color-white);
}

/* === Weekly Game === */
.kp-weekly-game {
  background: var(--kp-color-white);
}

.kp-weekly-game-inner {
  display: flex;
  gap: 40px;
  align-items: center;
}

.kp-weekly-game-info {
  flex: 1;
}

.kp-weekly-game-info h3 {
  color: var(--kp-color-primary);
  margin-bottom: 10px;
  font-size: 1.5rem;
}

.kp-weekly-game-meta {
  display: flex;
  gap: 20px;
  margin-bottom: 15px;
  font-size: 0.9rem;
  color: var(--kp-color-text-light);
}

.kp-weekly-game-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.kp-weekly-game-img {
  flex: 1;
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
}

.kp-weekly-game-img img {
  width: 100%;
  transition: var(--kp-transition);
}

.kp-weekly-game-img:hover img {
  transform: scale(1.03);
}

/* === Book Cards === */
.kp-books-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}

.kp-book-card {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  transition: var(--kp-transition);
  border: 1px solid rgba(228,180,103,0.2);
}

.kp-book-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--kp-shadow-hover);
}

.kp-book-card-img {
  height: 220px;
  overflow: hidden;
}

.kp-book-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kp-transition);
}

.kp-book-card:hover .kp-book-card-img img {
  transform: scale(1.05);
}

.kp-book-card-body {
  padding: 18px;
}

.kp-book-card-body h4 {
  color: var(--kp-color-primary);
  margin-bottom: 5px;
}

.kp-book-card-era {
  font-size: 0.8rem;
  color: var(--kp-color-secondary);
  margin-bottom: 8px;
  font-weight: 600;
}

.kp-book-card-body p {
  font-size: 0.85rem;
  color: var(--kp-color-text-light);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 10px;
}

.kp-btn-link {
  display: inline-block;
  color: var(--kp-color-primary);
  font-size: 0.85rem;
  font-weight: 600;
  border-bottom: 1px solid transparent;
  transition: var(--kp-transition);
}

.kp-btn-link:hover {
  border-bottom-color: var(--kp-color-primary);
}

/* === Masters === */
.kp-masters-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.kp-master-card {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  transition: var(--kp-transition);
  text-align: center;
}

.kp-master-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--kp-shadow-hover);
}

.kp-master-card-img {
  height: 280px;
  overflow: hidden;
}

.kp-master-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kp-transition);
}

.kp-master-card:hover .kp-master-card-img img {
  transform: scale(1.05);
}

.kp-master-card-body {
  padding: 20px;
}

.kp-master-card-body h4 {
  color: var(--kp-color-primary);
  margin-bottom: 5px;
}

.kp-master-card-era {
  font-size: 0.8rem;
  color: var(--kp-color-secondary);
  margin-bottom: 10px;
  font-weight: 600;
}

.kp-master-card-body p {
  font-size: 0.85rem;
  color: var(--kp-color-text-light);
}

/* === Fupan Entry === */
.kp-fupan-entry {
  background: linear-gradient(135deg, var(--kp-color-accent) 0%, #1a3328 100%);
  color: var(--kp-color-white);
  text-align: center;
}

.kp-fupan-entry h2 {
  color: var(--kp-color-secondary);
}

.kp-fupan-entry p {
  color: rgba(255,255,255,0.85);
  max-width: 600px;
  margin: 0 auto 30px;
}

.kp-btn-seal-light {
  display: inline-block;
  padding: 14px 36px;
  background: transparent;
  color: var(--kp-color-secondary);
  border: 2px solid var(--kp-color-secondary);
  border-radius: var(--kp-radius);
  font-family: var(--kp-font-heading);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 3px;
  transition: var(--kp-transition);
  cursor: pointer;
}

.kp-btn-seal-light:hover {
  background: var(--kp-color-secondary);
  color: var(--kp-color-accent);
  transform: translateY(-3px);
}

/* === Video Section === */
.kp-video-section {
  background: var(--kp-color-white);
  position: relative;
}

.kp-video-wrapper {
  max-width: 800px;
  margin: 0 auto;
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  border: 3px solid var(--kp-color-secondary);
}

.kp-video-wrapper video {
  width: 100%;
  display: block;
}

.kp-video-info {
  text-align: center;
  margin-top: 20px;
}

.kp-video-info h3 {
  color: var(--kp-color-primary);
  margin-bottom: 8px;
}

.kp-video-info p {
  color: var(--kp-color-text-light);
  font-size: 0.9rem;
}

/* === Articles Grid === */
.kp-articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}

.kp-article-card {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  transition: var(--kp-transition);
}

.kp-article-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--kp-shadow-hover);
}

.kp-article-card-img {
  height: 180px;
  overflow: hidden;
}

.kp-article-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kp-transition);
}

.kp-article-card:hover .kp-article-card-img img {
  transform: scale(1.05);
}

.kp-article-card-body {
  padding: 18px;
}

.kp-article-card-body h4 {
  color: var(--kp-color-primary);
  margin-bottom: 8px;
  font-size: 1.05rem;
}

.kp-article-card-body p {
  font-size: 0.85rem;
  color: var(--kp-color-text-light);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 12px;
}

.kp-article-card-date {
  font-size: 0.8rem;
  color: var(--kp-color-secondary);
}

/* === Community === */
.kp-community {
  background: var(--kp-color-highlight);
}

.kp-comments-list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.kp-comment-item {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  padding: 20px;
  box-shadow: var(--kp-shadow);
  border-left: 3px solid var(--kp-color-secondary);
}

.kp-comment-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}

.kp-comment-author {
  font-weight: 600;
  color: var(--kp-color-accent);
}

.kp-comment-date {
  font-size: 0.8rem;
  color: var(--kp-color-text-light);
}

.kp-comment-body {
  font-size: 0.9rem;
  color: var(--kp-color-text-light);
  line-height: 1.7;
}

/* === Chess Artifacts === */
.kp-artifacts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}

.kp-artifact-card {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  transition: var(--kp-transition);
}

.kp-artifact-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--kp-shadow-hover);
}

.kp-artifact-card-img {
  height: 200px;
  overflow: hidden;
}

.kp-artifact-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--kp-transition);
}

.kp-artifact-card:hover .kp-artifact-card-img img {
  transform: scale(1.05);
}

.kp-artifact-card-body {
  padding: 15px;
}

.kp-artifact-card-body h4 {
  color: var(--kp-color-primary);
  font-size: 1rem;
  margin-bottom: 5px;
}

.kp-artifact-card-body p {
  font-size: 0.83rem;
  color: var(--kp-color-text-light);
}

/* === Trust Section === */
.kp-trust {
  background: var(--kp-color-white);
  border-top: 2px solid var(--kp-color-secondary);
}

.kp-trust-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
}

.kp-trust-item {
  text-align: center;
}

.kp-trust-item img {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 15px;
  border: 3px solid var(--kp-color-secondary);
}

.kp-trust-item h4 {
  color: var(--kp-color-primary);
  margin-bottom: 5px;
}

.kp-trust-item p {
  font-size: 0.85rem;
  color: var(--kp-color-text-light);
}

/* === Footer === */
.kp-footer {
  background: var(--kp-color-footer-bg);
  color: rgba(255,255,255,0.8);
  padding-top: 50px;
}

.kp-footer-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.kp-footer-col h4 {
  color: var(--kp-color-secondary);
  margin-bottom: 15px;
  font-size: 1.05rem;
}

.kp-footer-col p {
  font-size: 0.85rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.7);
}

.kp-footer-col ul {
  list-style: none;
}

.kp-footer-col ul li {
  margin-bottom: 8px;
}

.kp-footer-col ul li a {
  color: rgba(255,255,255,0.7);
  font-size: 0.85rem;
  transition: var(--kp-transition);
}

.kp-footer-col ul li a:hover {
  color: var(--kp-color-secondary);
}

.kp-footer-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}

.kp-footer-logo img {
  width: 40px;
  height: 40px;
  border-radius: 4px;
}

.kp-footer-logo span {
  font-family: var(--kp-font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--kp-color-secondary);
}

.kp-footer-seo {
  padding: 20px 0;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.6;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.kp-footer-bottom {
  padding: 20px 0;
  text-align: center;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.8;
}

/* === Breadcrumb === */
.kp-breadcrumb {
  padding: 15px 0;
  font-size: 0.85rem;
  color: var(--kp-color-text-light);
}

.kp-breadcrumb a {
  color: var(--kp-color-text-light);
}

.kp-breadcrumb a:hover {
  color: var(--kp-color-primary);
}

.kp-breadcrumb span {
  margin: 0 8px;
  color: var(--kp-color-secondary);
}

/* === Inner Page Banner === */
.kp-page-banner {
  position: relative;
  height: 300px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kp-page-banner img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.kp-page-banner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(46,74,59,0.7), rgba(140,35,24,0.5));
  z-index: 2;
}

.kp-page-banner-content {
  position: relative;
  z-index: 3;
  text-align: center;
  color: var(--kp-color-white);
}

.kp-page-banner-content h1 {
  color: var(--kp-color-white);
  font-size: 2.2rem;
  letter-spacing: 3px;
  text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

/* === Inner Page Content === */
.kp-page-content {
  padding: 40px 0 60px;
}

.kp-page-content h2 {
  color: var(--kp-color-primary);
  margin: 30px 0 15px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(228,180,103,0.3);
}

.kp-page-content h3 {
  color: var(--kp-color-accent);
  margin: 25px 0 12px;
}

.kp-page-content p {
  text-indent: 2em;
  margin-bottom: 1.2rem;
  text-align: justify;
}

.kp-page-content .kp-no-indent {
  text-indent: 0;
}

.kp-content-img {
  margin: 20px 0;
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
}

.kp-content-img img {
  width: 100%;
}

/* === FAQ === */
.kp-faq-list {
  max-width: 800px;
  margin: 0 auto;
}

.kp-faq-item {
  background: var(--kp-color-white);
  border-radius: var(--kp-radius);
  margin-bottom: 12px;
  box-shadow: var(--kp-shadow);
  overflow: hidden;
}

.kp-faq-question {
  padding: 18px 20px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  color: var(--kp-color-primary);
  transition: var(--kp-transition);
}

.kp-faq-question:hover {
  background: rgba(228,180,103,0.1);
}

.kp-faq-question::after {
  content: '+';
  font-size: 1.3rem;
  color: var(--kp-color-secondary);
  transition: var(--kp-transition);
}

.kp-faq-item.kp-active .kp-faq-question::after {
  transform: rotate(45deg);
}

.kp-faq-answer {
  padding: 0 20px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.kp-faq-item.kp-active .kp-faq-answer {
  padding: 0 20px 18px;
  max-height: 500px;
}

.kp-faq-answer p {
  font-size: 0.9rem;
  color: var(--kp-color-text-light);
  text-indent: 0;
}

/* === Go Board (Fupan Page) === */
.kp-fupan-layout {
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

.kp-fupan-board-wrapper {
  flex: 1;
  max-width: 500px;
}

.kp-fupan-info-panel {
  flex: 1;
}

#kp-go-board {
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--kp-radius);
  box-shadow: var(--kp-shadow);
  cursor: pointer;
}

.kp-fupan-controls {
  display: flex;
  gap: 10px;
  margin-top: 15px;
  flex-wrap: wrap;
}

.kp-fupan-controls button {
  padding: 8px 18px;
  background: var(--kp-color-primary);
  color: var(--kp-color-white);
  border: 1px solid var(--kp-color-secondary);
  border-radius: var(--kp-radius);
  font-family: var(--kp-font-body);
  font-size: 0.85rem;
  cursor: pointer;
  transition: var(--kp-transition);
}

.kp-fupan-controls button:hover {
  background: var(--kp-color-accent);
  transform: translateY(-1px);
}

.kp-fupan-step-display {
  margin-top: 10px;
  font-size: 0.9rem;
  color: var(--kp-color-text-light);
}

.kp-fupan-annotation {
  background: var(--kp-color-highlight);
  border-left: 3px solid var(--kp-color-secondary);
  padding: 15px 20px;
  margin-top: 20px;
  border-radius: var(--kp-radius);
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--kp-color-text);
}

.kp-fupan-annotation.kp-highlight {
  background: rgba(228,180,103,0.2);
  border-left-color: var(--kp-color-primary);
}

/* === Scroll to Top === */
.kp-scroll-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 45px;
  height: 45px;
  background: var(--kp-color-primary);
  color: var(--kp-color-white);
  border: 2px solid var(--kp-color-secondary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: var(--kp-transition);
  z-index: 999;
}

.kp-scroll-top.kp-visible {
  opacity: 1;
  visibility: visible;
}

.kp-scroll-top:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(140,35,24,0.3);
}

/* === Inner Page Video === */
.kp-inner-video {
  max-width: 700px;
  margin: 25px auto;
  border-radius: var(--kp-radius);
  overflow: hidden;
  box-shadow: var(--kp-shadow);
  border: 2px solid var(--kp-color-secondary);
}

.kp-inner-video video {
  width: 100%;
  display: block;
}

/* === Two Column Layout === */
.kp-two-col {
  display: flex;
  gap: 30px;
  margin: 25px 0;
}

.kp-two-col > div {
  flex: 1;
}

/* === Contact Form === */
.kp-contact-form {
  max-width: 600px;
  margin: 30px auto;
}

.kp-form-group {
  margin-bottom: 18px;
}

.kp-form-group label {
  display: block;
  margin-bottom: 5px;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--kp-color-text);
}

.kp-form-group input,
.kp-form-group textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid rgba(228,180,103,0.4);
  border-radius: var(--kp-radius);
  font-family: var(--kp-font-body);
  font-size: 0.9rem;
  background: var(--kp-color-white);
  transition: var(--kp-transition);
}

.kp-form-group input:focus,
.kp-form-group textarea:focus {
  outline: none;
  border-color: var(--kp-color-secondary);
  box-shadow: 0 0 0 3px rgba(228,180,103,0.15);
}

.kp-form-group textarea {
  height: 120px;
  resize: vertical;
}

/* === Privacy/Terms Page === */
.kp-legal-content {
  max-width: 800px;
  margin: 0 auto;
}

.kp-legal-content h2 {
  font-size: 1.4rem;
}

.kp-legal-content h3 {
  font-size: 1.15rem;
}

.kp-legal-content ul {
  padding-left: 2em;
  margin-bottom: 1rem;
}

.kp-legal-content ul li {
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  color: var(--kp-color-text-light);
}
