/*
Theme Name: Pantraxxa Child Porto
Theme URI: https://www.portotheme.com/wordpress/porto
Author: P-THEMES
Author URI: https://www.portotheme.com/
Description: Child theme of Porto for Pantraxxa Publishing Company.
Version: 2.4
Template: porto
License: Commercial
License URI: http://themeforest.net/licenses/regular_extended
Text Domain: pantraxxa-child-porto
*/
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,700;1,400;1,700&display=swap');

/* Brand accent replaces Porto's default blue wherever the theme uses its primary color */
html { --porto-primary-color: #c64a06; --porto-primary-dark-5: #ad4005; --porto-primary-light-5: #df5407; }

/* Pantraxxa: match the previous Kadence look under Porto */
body, p, li, input, textarea, select, button, .btn, .vc_btn3,
h1, h2, h3, h4, h5, h6 { font-family: 'Lora', Georgia, serif; }
body { font-size: 17px; line-height: 1.6; color: #2D3748; }
p { font-size: 17px; line-height: 1.6; margin-bottom: 32px; }
.wpb_text_column p:last-child { margin-bottom: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; margin-top: 0; margin-bottom: 0; }
h1 { font-size: 48px; line-height: 1.1; letter-spacing: 0.03em; color: #1A202C; }
h2 { font-size: 60px; line-height: 1; letter-spacing: -0.03em; color: #1A202C; }
h3 { font-size: 36px; line-height: 1.1; letter-spacing: normal; color: #1A202C; }
h4 { font-size: 22px; line-height: 1; letter-spacing: normal; color: #2D3748; }
h5 { font-size: 20px; line-height: 1.5; letter-spacing: normal; color: #2D3748; }
h6 { font-size: 36px; line-height: 1.2; letter-spacing: -0.02em; color: #4A5568; }
.wpb_text_column a, .entry-content p a { color: #c64a06; text-decoration: underline; }
@media (max-width: 767px) {
  h2 { font-size: 40px; }
  h1 { font-size: 36px; }
  h3, h6 { font-size: 26px; }
}

/* Carried over from the Kadence Additional CSS */
.logo-drop { filter: drop-shadow(1px 2px 2px rgba(0,0,0,0.75)); }
.text-white h1, .text-white h2, .text-white h3, .text-white h4, .text-white h5, .text-white h6,
.text-white p, .text-white a, .wpb_text_column.text-white a { color: #fff; }
.book-details { font-size: 80%; }
.book-details h3 { font-size: 18px; text-transform: uppercase; }
.bookcover { filter: drop-shadow(5px 15px 2px rgba(0,0,0,0.5)); }
.book-button { font-size: .8em; }
.bookcover .vc-hoverbox { position: relative; aspect-ratio: 10/15 !important; max-width: 100%; }

/* Separators with text: full width, title on one line */
.vc_separator.vc_sep_width_100 { width: 100%; align-self: stretch; }
.vc_separator.vc_text_separator h4 { white-space: nowrap; flex: 0 0 auto; }

/* ===== SITE HEADER (Porto header template "PTX Header") ===== */
#header .ptx-header { background: #fff; padding-top: 19px; padding-bottom: 19px; }
#header .ptx-header .wpb_wrapper { align-items: center; }
#header .ptx-logo img { width: 200px; max-width: 200px !important; height: auto; }
#header .main-menu > li.menu-item > a {
  font-family: 'Lora', Georgia, serif; font-size: 17px; font-weight: 400; line-height: 1.6;
  letter-spacing: normal; text-transform: none; color: #4A5568; background: transparent;
  padding: 6px 0 6px 28px;
}
#header .main-menu > li.menu-item:hover > a,
#header .main-menu > li.menu-item.active > a { color: #c64a06; background: transparent; }
#header .mobile-toggle { background: #c64a06; color: #fff; }
/* Mobile menu panel: solid white with readable links on every page */
#header #nav-panel { background: #fff; box-shadow: 0 8px 16px rgba(0,0,0,.15); }
#header #nav-panel .mobile-menu li > a {
  color: #4A5568; font-family: 'Lora', Georgia, serif; font-size: 17px; text-transform: none;
  padding: 10px 6px; text-decoration: none;
}
#header #nav-panel .mobile-menu li > a:hover { color: #c64a06; background: transparent; }
/* Inner pages have a white header: always the black logo at the left edge, never the white overlay logo */
body:not(.home) #header .overlay-logo { display: none !important; }
html body:not(.home) #header.header-builder .logo { opacity: 1 !important; transform: none !important; animation: none !important; max-width: none; }

/* Home: same header, transparent over the hero, white links, no logo (the hero carries the large one).
   Once the header sticks on scroll it turns white and shows the black logo. */
.home #header { position: absolute; top: 0; left: 0; right: 0; z-index: 50; background: transparent; }
.home #header .ptx-header { background: transparent; }
.home #header .overlay-logo { visibility: hidden; }
.home #header:not(.sticky-header) .logo { visibility: hidden; }
.home #header .main-menu > li.menu-item > a { color: #fff; }
.home #header .main-menu > li.menu-item:hover > a { color: #fff; opacity: .8; }
.home #header.sticky-header .header-main.sticky { background: #fff; }
.home #header.sticky-header .header-main.sticky .main-menu > li.menu-item > a { color: #4A5568; }
.home #header.sticky-header .header-main.sticky .main-menu > li.menu-item:hover > a { color: #c64a06; opacity: 1; }

/* Home: the old in-content menu links are replaced by the header */
.home .wpb_text_column:has(p.ptx-menu), .home p.ptx-menu { display: none; }

/* Home: no title bar or theme footer, content edge to edge */
.home .page-top, .home #footer { display: none; }
.home #main > .container, .home #main > .container-fluid { max-width: none; width: 100%; padding-left: 0; padding-right: 0; }
.home #main .main-content-wrap { margin-left: 0; margin-right: 0; }
.home #main .main-content { padding: 0; }
.home .entry-content, .home .page-content { margin-top: 0; margin-bottom: 0; }
.home .wpb-content-wrapper { overflow-x: clip; }
/* rows run edge to edge; their content stays in a centered 990px column */
.home .wpb-content-wrapper .vc_row.top-row {
  margin-left: 0 !important; margin-right: 0 !important; max-width: none !important;
  padding-left: max(0px, calc(50% - 495px)) !important; padding-right: max(0px, calc(50% - 495px)) !important;
}

/* Home hero: room for the header that floats over it; the two buttons sit side by side, larger */
.home .wpb-content-wrapper > .vc_row:first-child { padding-top: 86px; }
.home .wpb-content-wrapper > .vc_row:first-child .vc_btn3-container.vc_btn3-left {
  display: inline-block; margin-right: 12px;
}
.home .wpb-content-wrapper > .vc_row:first-child .vc_btn3-container .vc_btn3 {
  font-size: 18px; line-height: 1.3; padding: 15px 30px;
}
@media (max-width: 767px) {
  .home .wpb-content-wrapper > .vc_row:first-child .vc_btn3-container .vc_btn3 { font-size: 16px; padding: 12px 22px; }
}

/* Home copyright row (last row): text centered vertically in the purple band */
.home .wpb-content-wrapper > .vc_row:nth-last-child(2) { padding-top: 28px; padding-bottom: 28px; }
.home .wpb-content-wrapper > .vc_row:nth-last-child(2) .wpb_content_element { margin-bottom: 0; }
.home .wpb-content-wrapper > .vc_row:nth-last-child(2) .vc_empty_space { display: none; }

/* ===== SITE FOOTER (inner pages): same purple copyright band as the home page ===== */
#footer .footer-bottom { background-color: #6D4597 !important; padding: 28px 0; }
#footer .footer-bottom .logo { display: none; }
#footer .footer-bottom .container { display: block; text-align: center; }
#footer .footer-bottom .footer-left { float: none; display: block; width: 100%; text-align: center; padding: 0; }
#footer .footer-copyright { color: #fff; font-size: .8em; }

/* ===== BOOK PAGES ===== */
/* the title lives in the page content, so no Porto title bar */
.single-book .page-top { display: none; }
.ptx-book h1 { font-size: 60px; line-height: 1; letter-spacing: -0.03em; margin-bottom: 12px; }
.ptx-book h2 { font-size: 36px; line-height: 1.1; letter-spacing: normal; margin-bottom: 16px; }
@media (max-width: 767px) {
  .ptx-book h1 { font-size: 40px; }
  .ptx-book h2 { font-size: 28px; }
}
/* FAQ questions in brand colors instead of Porto blue */
section.toggle > label {
  color: #1A202C; background: #F7FAFC; border-left-color: #c64a06;
  font-family: 'Lora', Georgia, serif; font-weight: 400;
}
section.toggle > label:hover,
section.toggle.active > label { color: #c64a06; background: #F7FAFC; border-left-color: #c64a06; }
section.toggle > label:before { border-left-color: #c64a06; }
section.toggle.active > label:before { border-left-color: #c64a06; }
/* the structured-data element at the bottom takes no visible space */
.wpb_raw_html:has(script.ptx-ld) { margin: 0; }
