/*
Theme Name:   Chengye Optical Child
Theme URI:    https://www.chengyeglasses.com
Description:  Chengye Optical - Professional Eyewear Manufacturer | Child theme for Blocksy
Author:       CHENGYE OPTICAL
Author URI:   https://www.chengyeglasses.com
Template:     blocksy
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  chengye-child
*/

/* =====================================================
   CHENGYE OPTICAL — Global Brand Variables
   Deep Navy Blue + Gold — Premium B2B Eyewear Identity
   ===================================================== */

:root {
  /* ── Brand Colors ── */
  --cy-navy:         #1a2744;
  --cy-navy-dark:    #111b33;
  --cy-navy-mid:     #243059;
  --cy-gold:         #c9a84c;
  --cy-gold-light:   #e0c472;
  --cy-gold-dark:    #a8873a;
  --cy-white:        #ffffff;
  --cy-off-white:    #f8f6f1;
  --cy-grey-light:   #f2f2f2;
  --cy-grey:         #888888;
  --cy-text:         #1a1a1a;
  --cy-text-muted:   #555555;

  /* ── Typography ── */
  --cy-font-heading: &#039;Playfair Display&#039;, Georgia, serif;
  --cy-font-body:    &#039;Inter&#039;, &#039;Helvetica Neue&#039;, sans-serif;

  /* ── Spacing ── */
  --cy-section-pad:  90px 0;
  --cy-radius:       4px;
  --cy-radius-lg:    8px;

  /* ── Transitions ── */
  --cy-ease:         all 0.3s ease;

  /* ── Override Blocksy defaults ── */
  --theme-palette-color-1: #1a2744;
  --theme-palette-color-2: #c9a84c;
}

/* =====================================================
   TYPOGRAPHY
   ===================================================== */

body {
  font-family: var(--cy-font-body);
  color: var(--cy-text);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title {
  font-family: var(--cy-font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--cy-navy);
}

/* =====================================================
   NAVIGATION — Premium Dark Header
   ===================================================== */

.site-header,
#header {
  background: var(--cy-navy) !important;
  border-bottom: 2px solid var(--cy-gold);
}

/* Logo text fallback */
.site-logo a,
.custom-logo-link {
  color: var(--cy-white) !important;
  font-family: var(--cy-font-heading);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* Nav links */
.main-navigation a,
.header-navigation a,
[data-id="main-navigation"] a {
  color: rgba(255,255,255,0.88) !important;
  font-family: var(--cy-font-body);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 0 !important;
  transition: var(--cy-ease);
}

.main-navigation a:hover,
.header-navigation a:hover,
[data-id="main-navigation"] a:hover {
  color: var(--cy-gold) !important;
}

/* Active page */
.main-navigation .current-menu-item > a,
.main-navigation .current-page-ancestor > a {
  color: var(--cy-gold) !important;
}

/* =====================================================
   BUTTONS — Global CTA Style
   ===================================================== */

.wp-block-button__link,
.elementor-button,
.btn,
button[type="submit"],
input[type="submit"] {
  background: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
  border: none !important;
  border-radius: var(--cy-radius) !important;
  font-family: var(--cy-font-body) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 14px 32px !important;
  transition: var(--cy-ease) !important;
  cursor: pointer;
}

.wp-block-button__link:hover,
.elementor-button:hover,
.btn:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--cy-gold-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(201,168,76,0.35) !important;
}

/* Secondary / Outline button */
.btn-outline,
.elementor-button.btn-outline {
  background: transparent !important;
  color: var(--cy-gold) !important;
  border: 2px solid var(--cy-gold) !important;
}

.btn-outline:hover,
.elementor-button.btn-outline:hover {
  background: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
}

/* =====================================================
   SECTIONS — Alternating backgrounds
   ===================================================== */

/* Light section */
.cy-section-light {
  background: var(--cy-white);
  padding: var(--cy-section-pad);
}

/* Off-white section */
.cy-section-offwhite {
  background: var(--cy-off-white);
  padding: var(--cy-section-pad);
}

/* Dark / Navy section */
.cy-section-dark {
  background: var(--cy-navy);
  color: var(--cy-white);
  padding: var(--cy-section-pad);
}

.cy-section-dark h1,
.cy-section-dark h2,
.cy-section-dark h3,
.cy-section-dark h4 {
  color: var(--cy-white);
}

.cy-section-dark p {
  color: rgba(255,255,255,0.78);
}

/* =====================================================
   SECTION HEADINGS — Consistent style
   ===================================================== */

.cy-section-title {
  font-family: var(--cy-font-heading);
  font-size: clamp(28px, 4vw, 42px);
  color: var(--cy-navy);
  margin-bottom: 12px;
  line-height: 1.2;
}

.cy-section-subtitle {
  font-size: 16px;
  color: var(--cy-text-muted);
  max-width: 640px;
  margin: 0 auto 50px;
  line-height: 1.7;
}

/* Gold divider line */
.cy-gold-line {
  width: 56px;
  height: 3px;
  background: var(--cy-gold);
  margin: 14px auto 22px;
  display: block;
}

/* =====================================================
   PRODUCT CARDS — WooCommerce + Elementor
   ===================================================== */

/* WooCommerce product card */
ul.products li.product,
.wc-product-card {
  border: none !important;
  border-radius: var(--cy-radius-lg) !important;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
  transition: var(--cy-ease) !important;
  background: var(--cy-white) !important;
}

ul.products li.product:hover,
.wc-product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.14) !important;
}

/* Product image */
ul.products li.product a img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  transition: transform 0.4s ease;
}

ul.products li.product:hover a img {
  transform: scale(1.04);
}

/* Product title */
ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--cy-font-heading) !important;
  font-size: 18px !important;
  color: var(--cy-navy) !important;
  padding: 14px 18px 4px !important;
}

/* Product category tag */
ul.products li.product .product-category-tag {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cy-gold);
  padding: 0 18px 12px;
  display: block;
}

/* Remove price for B2B */
ul.products li.product .price {
  display: none !important;
}

/* "Request Quote" button replaces "Add to cart" */
ul.products li.product .button,
ul.products li.product .add_to_cart_button {
  background: var(--cy-navy) !important;
  color: var(--cy-white) !important;
  border: none !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  width: calc(100% - 36px) !important;
  margin: 0 18px 18px !important;
  padding: 11px 0 !important;
  border-radius: var(--cy-radius) !important;
  transition: var(--cy-ease) !important;
}

ul.products li.product .button:hover {
  background: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
}

/* =====================================================
   HERO SECTION — Full-Screen Banner
   ===================================================== */

.cy-hero {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--cy-navy) 0%, var(--cy-navy-mid) 60%, #1e3a5f 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 120px 20px;
}

.cy-hero::before {
  content: &#039;&#039;;
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width=&#039;60&#039; height=&#039;60&#039; viewBox=&#039;0 0 60 60&#039; xmlns=&#039;http://www.w3.org/2000/svg&#039;%3E%3Cg fill=&#039;none&#039; fill-rule=&#039;evenodd&#039;%3E%3Cg fill=&#039;%23c9a84c&#039; fill-opacity=&#039;0.04&#039;%3E%3Cpath d=&#039;M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z&#039;/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  opacity: 0.5;
}

.cy-hero-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cy-gold);
  margin-bottom: 18px;
  display: block;
}

.cy-hero-title {
  font-family: var(--cy-font-heading);
  font-size: clamp(40px, 7vw, 76px);
  color: var(--cy-white);
  line-height: 1.1;
  font-weight: 700;
  margin-bottom: 24px;
}

.cy-hero-title span {
  color: var(--cy-gold);
}

.cy-hero-desc {
  font-size: clamp(15px, 2vw, 18px);
  color: rgba(255,255,255,0.75);
  max-width: 600px;
  margin: 0 auto 40px;
  line-height: 1.75;
}

/* =====================================================
   STATS BAR — Numbers that build trust
   ===================================================== */

.cy-stats-bar {
  background: var(--cy-navy);
  padding: 60px 0;
}

.cy-stat-item {
  text-align: center;
}

.cy-stat-number {
  font-family: var(--cy-font-heading);
  font-size: clamp(36px, 5vw, 56px);
  color: var(--cy-gold);
  font-weight: 700;
  line-height: 1;
  display: block;
}

.cy-stat-label {
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-top: 8px;
  display: block;
}

/* =====================================================
   CAPABILITY / ICON CARDS
   ===================================================== */

.cy-capability-card {
  background: var(--cy-white);
  border-radius: var(--cy-radius-lg);
  padding: 40px 32px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.07);
  transition: var(--cy-ease);
  border-top: 3px solid transparent;
}

.cy-capability-card:hover {
  transform: translateY(-6px);
  border-top-color: var(--cy-gold);
  box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}

.cy-capability-icon {
  width: 64px;
  height: 64px;
  background: var(--cy-navy);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 22px;
}

.cy-capability-icon svg,
.cy-capability-icon i {
  color: var(--cy-gold);
  font-size: 26px;
}

.cy-capability-title {
  font-family: var(--cy-font-heading);
  font-size: 20px;
  color: var(--cy-navy);
  margin-bottom: 12px;
}

.cy-capability-text {
  font-size: 14.5px;
  color: var(--cy-text-muted);
  line-height: 1.7;
}

/* =====================================================
   CONTACT FORM — Professional Inquiry
   ===================================================== */

.cy-form input[type="text"],
.cy-form input[type="email"],
.cy-form input[type="tel"],
.cy-form select,
.cy-form textarea,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  border: 1px solid #d8d8d8;
  border-radius: var(--cy-radius);
  padding: 13px 16px;
  font-family: var(--cy-font-body);
  font-size: 14.5px;
  color: var(--cy-text);
  transition: var(--cy-ease);
  background: var(--cy-white);
  box-sizing: border-box;
}

.cy-form input:focus,
.cy-form select:focus,
.cy-form textarea:focus,
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--cy-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}

.wpcf7-form textarea {
  min-height: 150px;
  resize: vertical;
}

.wpcf7-submit {
  background: var(--cy-gold) !important;
  color: var(--cy-navy) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 15px 40px !important;
  border: none !important;
  border-radius: var(--cy-radius) !important;
  cursor: pointer;
  transition: var(--cy-ease) !important;
}

.wpcf7-submit:hover {
  background: var(--cy-gold-dark) !important;
  transform: translateY(-2px);
}

/* =====================================================
   FOOTER — Authoritative & Clean
   ===================================================== */

.site-footer,
#footer {
  background: var(--cy-navy-dark) !important;
  color: rgba(255,255,255,0.72);
  padding: 70px 0 0;
  font-size: 14px;
  line-height: 1.8;
}

.footer-widget-title,
.widget-title {
  font-family: var(--cy-font-heading) !important;
  color: var(--cy-white) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  margin-bottom: 22px !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid var(--cy-gold) !important;
}

.site-footer a {
  color: rgba(255,255,255,0.65) !important;
  transition: var(--cy-ease);
}

.site-footer a:hover {
  color: var(--cy-gold) !important;
}

.footer-bottom {
  background: #0d1520;
  text-align: center;
  padding: 18px 0;
  margin-top: 60px;
  font-size: 13px;
  color: rgba(255,255,255,0.4);
}

/* =====================================================
   UTILITY CLASSES
   ===================================================== */

.cy-text-center { text-align: center; }
.cy-text-gold   { color: var(--cy-gold) !important; }
.cy-text-navy   { color: var(--cy-navy) !important; }
.cy-text-white  { color: var(--cy-white) !important; }
.cy-bg-navy     { background: var(--cy-navy) !important; }
.cy-bg-gold     { background: var(--cy-gold) !important; }
.cy-bg-offwhite { background: var(--cy-off-white) !important; }

/* Divider accent */
.cy-divider {
  width: 56px;
  height: 3px;
  background: var(--cy-gold);
  margin: 16px 0 28px;
  display: block;
}

.cy-divider-center {
  margin-left: auto;
  margin-right: auto;
}

/* =====================================================
   SCROLL REVEAL ANIMATION
   ===================================================== */

.cy-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.cy-reveal.visible {
  opacity: 1;
  transform: none;
}

/* =====================================================
   RESPONSIVE — Mobile & Tablet
   ===================================================== */

@media (max-width: 768px) {
  :root {
    --cy-section-pad: 60px 0;
  }

  .cy-hero {
    padding: 100px 20px 70px;
    min-height: auto;
  }

  .cy-stat-number {
    font-size: 36px;
  }

  ul.products li.product a img {
    height: 200px;
  }
}


/* ===== CHENGYE Blog Archive Styles ===== */
.blog .entries, .archive .entries {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
}

.blog .entry-card, .archive .entry-card {
    background: #fff !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 14px rgba(26,39,68,0.07) !important;
    border: 1px solid #eeebe3 !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    margin-bottom: 0 !important;
}
.blog .entry-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 12px 32px rgba(26,39,68,0.14) !important;
}

.blog .entry-card img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.35s ease !important;
}
.blog .entry-card:hover img {
    transform: scale(1.04) !important;
}

.blog .entry-card .card-content {
    padding: 24px 26px 28px !important;
}

.blog .entry-meta li.meta-categories a {
    display: inline-block !important;
    background: rgba(201,168,76,0.1) !important;
    color: #c9a84c !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 4px 12px !important;
    border-radius: 3px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    text-decoration: none !important;
    border: 1px solid rgba(201,168,76,0.25) !important;
}

.blog .entry-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 19px !important;
    color: #1a2744 !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    margin: 0 0 12px !important;
}
.blog .entry-title a {
    color: #1a2744 !important;
    text-decoration: none !important;
}
.blog .entry-title a:hover {
    color: #c9a84c !important;
}

.blog .entry-excerpt {
    color: #555 !important;
    font-size: 14px !important;
    line-height: 1.75 !important;
}
.blog .entry-excerpt p {
    margin: 0 !important;
}

.blog .page-title, .archive .page-title {
    text-align: center !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 36px !important;
    color: #1a2744 !important;
    margin: 60px 0 48px !important;
    font-weight: 700 !important;
}

@media (max-width: 900px) {
    .blog .entries, .archive .entries {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}
@media (max-width: 600px) {
    .blog .entries, .archive .entries {
        grid-template-columns: 1fr !important;
    }
}
/* ===== End CHENGYE Blog Styles ===== */
