/*
Theme Name: madrisscosmoderma
Theme URI: https://madrisscosmoderma.com
Author: MadrissCosmoderma Team
Author URI: https://madrisscosmoderma.com
Description: Luxury clinical cosmeceutical & dermatology e-commerce theme for MadrissCosmoderma with a custom 1550px container layout and responsive Tailwind architecture.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: madrisscosmoderma
*/

/* ==========================================================================
   GLOBAL CONTAINER & BASE THEME STYLES
   Requirement: Max-width 1550px with 20px left and right padding
   ========================================================================== */

:root {
  --theme-container-max: 1550px;
  --theme-container-padding: 20px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  position: relative;
  background-color: #fff8f4;
  color: #25190a;
  font-family: 'Plus Jakarta Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.theme-container,
.site-container,
.max-w-theme {
  max-width: 1550px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box !important;
}

/* Material Symbols vertical alignment */
.material-symbols-outlined {
  vertical-align: middle;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Mobile drawer transition */
#mobile-menu-drawer {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}

#mobile-menu-drawer.active {
  transform: translateX(0);
  opacity: 1;
}

/* Accordion smooth expansion */
.faq-content {
  transition: max-height 0.35s ease, opacity 0.3s ease;
}

/* Hide default browser scrollbars where requested */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* ==========================================================================
   Navigation Submenu & Drawer Layout Styles
   ========================================================================== */

/* Desktop Submenu Dropdown Layout */
nav .menu-item-has-children {
  position: relative;
}

nav .menu-item-has-children > .sub-menu-dropdown {
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

nav .menu-item-has-children:hover > .sub-menu-dropdown,
nav .menu-item-has-children:focus-within > .sub-menu-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Fallback styling for standard nested WordPress menus */
nav ul.sub-menu {
  list-style: none;
  margin: 0;
}

nav ul.sub-menu li {
  list-style: none;
  width: 100%;
}

/* Mobile Drawer Submenu Layout */
#mobile-menu-drawer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#mobile-menu-drawer .mobile-sub-menu {
  transition: all 0.25s ease-in-out;
}

#mobile-menu-drawer .mobile-sub-menu.flex {
  display: flex !important;
}

#mobile-menu-drawer .madriss-mobile-accordion-toggle {
  transition: background-color 0.2s ease;
}

/* ==========================================================================
   Mobile Custom Logo Sizing
   ========================================================================== */
@media (max-width: 768px) {
  img.custom-logo {
    max-width: 75% !important;
  }
}

/* ==========================================================================
   Contact Form Shortcode Styling (CF7, WPForms, etc.)
   ========================================================================== */
.madriss-contact-shortcode-wrapper {
  width: 100%;
}
.madriss-contact-shortcode-wrapper .screen-reader-response {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}
.madriss-contact-shortcode-wrapper fieldset.hidden-fields-container {
  display: none !important;
}
.madriss-contact-shortcode-wrapper form.wpcf7-form,
.madriss-contact-shortcode-wrapper form {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1.5rem !important;
  width: 100% !important;
  margin: 0 !important;
}
.madriss-contact-shortcode-wrapper form.wpcf7-form > p {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
}
.madriss-contact-shortcode-wrapper label {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.05em !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  color: #25190a !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
  width: 100% !important;
}
.madriss-contact-shortcode-wrapper label br {
  display: none !important;
}
.madriss-contact-shortcode-wrapper .wpcf7-form-control-wrap {
  width: 100% !important;
  display: block !important;
  position: relative !important;
}
.madriss-contact-shortcode-wrapper input[type="text"],
.madriss-contact-shortcode-wrapper input[type="email"],
.madriss-contact-shortcode-wrapper input[type="tel"],
.madriss-contact-shortcode-wrapper input[type="url"],
.madriss-contact-shortcode-wrapper input[type="number"],
.madriss-contact-shortcode-wrapper select,
.madriss-contact-shortcode-wrapper textarea {
  width: 100% !important;
  background-color: #fff1e5 !important;
  padding: 0.85rem 1.15rem !important;
  border-radius: 0.75rem !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #25190a !important;
  border: 1.5px solid transparent !important;
  outline: none !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  box-sizing: border-box !important;
}
.madriss-contact-shortcode-wrapper input::placeholder,
.madriss-contact-shortcode-wrapper textarea::placeholder {
  color: rgba(80, 69, 61, 0.45) !important;
  font-size: 14px !important;
}
.madriss-contact-shortcode-wrapper textarea {
  min-height: 150px !important;
  resize: vertical !important;
}
.madriss-contact-shortcode-wrapper input[type="text"]:focus,
.madriss-contact-shortcode-wrapper input[type="email"]:focus,
.madriss-contact-shortcode-wrapper input[type="tel"]:focus,
.madriss-contact-shortcode-wrapper select:focus,
.madriss-contact-shortcode-wrapper textarea:focus {
  background-color: #ffffff !important;
  border-color: #99461c !important;
  box-shadow: 0 0 0 3px rgba(153, 70, 28, 0.18) !important;
}
.madriss-contact-shortcode-wrapper input[type="submit"],
.madriss-contact-shortcode-wrapper button[type="submit"] {
  width: 100% !important;
  background-color: #2d1604 !important;
  color: #fff8f4 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  padding: 1.1rem 2rem !important;
  border-radius: 0.75rem !important;
  border: 1px solid transparent !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: 0 4px 14px rgba(45, 22, 4, 0.16) !important;
  margin-top: 0.5rem !important;
  display: block !important;
  text-align: center !important;
}
.madriss-contact-shortcode-wrapper input[type="submit"]:hover,
.madriss-contact-shortcode-wrapper button[type="submit"]:hover {
  background-color: #99461c !important;
  color: #ffffff !important;
  box-shadow: 0 6px 20px rgba(153, 70, 28, 0.28) !important;
  transform: translateY(-1px) !important;
}
.madriss-contact-shortcode-wrapper input[type="submit"]:active,
.madriss-contact-shortcode-wrapper button[type="submit"]:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 8px rgba(153, 70, 28, 0.2) !important;
}
.madriss-contact-shortcode-wrapper .wpcf7-not-valid-tip {
  color: #ba1a1a !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-top: 6px !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  display: block !important;
}
.madriss-contact-shortcode-wrapper input.wpcf7-not-valid,
.madriss-contact-shortcode-wrapper textarea.wpcf7-not-valid {
  border-color: #ba1a1a !important;
  background-color: #fff8f7 !important;
}
.madriss-contact-shortcode-wrapper .wpcf7-response-output {
  border-radius: 0.75rem !important;
  padding: 1rem 1.25rem !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  margin: 1rem 0 0 0 !important;
  box-sizing: border-box !important;
  text-align: center !important;
  border: 1px solid #99461c !important;
  background-color: #fff1e5 !important;
  color: #25190a !important;
}
.madriss-contact-shortcode-wrapper form.sent .wpcf7-response-output {
  border-color: #2d1604 !important;
  background-color: #ffebd5 !important;
  color: #25190a !important;
}
.madriss-contact-shortcode-wrapper form.invalid .wpcf7-response-output,
.madriss-contact-shortcode-wrapper form.unaccepted .wpcf7-response-output,
.madriss-contact-shortcode-wrapper form.failed .wpcf7-response-output {
  border-color: #ba1a1a !important;
  background-color: #ffdad6 !important;
  color: #93000a !important;
}
.madriss-contact-shortcode-wrapper .wpcf7-spinner {
  margin: 12px auto 0 !important;
  display: block !important;
}

@media (min-width: 768px) {
  .madriss-contact-shortcode-wrapper form.wpcf7-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
  }
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:has(span[data-name="your-name"]),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:nth-of-type(1) {
    grid-column: 1 / 2 !important;
  }
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:has(span[data-name="your-email"]),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:nth-of-type(2) {
    grid-column: 2 / 3 !important;
  }
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:has(span[data-name="your-subject"]),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:nth-of-type(3) {
    grid-column: span 2 / span 2 !important;
  }
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:has(span[data-name="your-message"]),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:nth-of-type(4) {
    grid-column: span 2 / span 2 !important;
  }
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:has(input[type="submit"]),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > p:nth-of-type(n+5),
  .madriss-contact-shortcode-wrapper form.wpcf7-form > .wpcf7-response-output {
    grid-column: span 2 / span 2 !important;
  }
}


