/* ==========================================================================
   House of Fern — global brand stylesheet
   Palette: cream #FAF8F4 · ivory #FFFCF8 · mist #F5F7F3 · soft sage #EEF5ED
            nav #1B221F · sage #8DA98D · gold #D8C48F · moss #2F3A34 · fog #6E766F
   ========================================================================== */

:root {
  --hof-cream: #FAF8F4;
  --hof-ivory: #FFFCF8;
  --hof-mist: #F5F7F3;
  --hof-sagelight: #EEF5ED;
  --hof-ink: #1B221F;
  --hof-sage: #8DA98D;
  --hof-sage-deep: #7c987c;
  --hof-gold: #D8C48F;
  --hof-moss: #2F3A34;
  --hof-fog: #6E766F;
  --hof-paper: #FFFDFB;
  --hof-linen: #DADFD5;
  --hof-shadow: 0 10px 30px rgba(60, 80, 65, .12);
  --hof-shadow-lift: 0 18px 40px rgba(60, 80, 65, .18);
}

/* ---- base ---------------------------------------------------------- */
body {
  font-family: 'Poppins', sans-serif;
  color: var(--hof-moss);
  background:
    radial-gradient(90rem 50rem at 110% -10%, rgba(238, 245, 237, .9) 0%, rgba(238, 245, 237, 0) 60%),
    radial-gradient(70rem 45rem at -15% 20%, rgba(255, 252, 248, .95) 0%, rgba(255, 252, 248, 0) 55%),
    radial-gradient(60rem 40rem at 50% 115%, rgba(245, 247, 243, .9) 0%, rgba(245, 247, 243, 0) 60%),
    var(--hof-cream);
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: .5;
  background-image: radial-gradient(rgba(60, 80, 65, .045) 1px, transparent 1.2px);
  background-size: 26px 26px;
}

h1, h2, h3, h4, h5,
.elementor-heading-title,
.woocommerce-loop-product__title,
.woocommerce div.product .product_title {
  font-family: 'Cormorant Garamond', serif;
  color: var(--hof-moss);
}

::selection { background: rgba(141, 169, 141, .3); }
a { color: var(--hof-sage); text-decoration: none; }
a:hover { color: var(--hof-sage-deep); }

.elementor-button, .elementor-button:hover { text-decoration: none !important; }
.elementor-heading-title a, .elementor-image-box-title a { text-decoration: none; color: inherit; }
.elementor-heading-title a:hover, .elementor-image-box-title a:hover { color: var(--hof-sage); }
.woocommerce-loop-product__link, .wc-block-components-button { text-decoration: none; }

/* image-box media should fill its card */
.hof-card .elementor-image-box-img { width: 100% !important; margin: 0 0 4px !important; }
.hof-card .elementor-image-box-img img { width: 100%; border-radius: 16px; }

/* ---- buttons -------------------------------------------------------- */
.elementor-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wp-element-button, .wc-block-components-button,
.wpcf7 input[type="submit"], .hof-newsform button,
.yith-wcwl-add-to-wishlist a {
  background: var(--hof-sage) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: .75em 1.9em !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: .85rem !important;
  font-weight: 500 !important;
  letter-spacing: .04em;
  box-shadow: var(--hof-shadow);
  transition: all .25s ease !important;
}

.elementor-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wp-element-button:hover, .wc-block-components-button:hover,
.wpcf7 input[type="submit"]:hover, .hof-newsform button:hover,
.yith-wcwl-add-to-wishlist a:hover {
  background: var(--hof-sage-deep) !important;
  transform: translateY(-2px);
  box-shadow: var(--hof-shadow-lift);
  color: #fff !important;
}

.hof-btn-outline .elementor-button {
  background: var(--hof-ivory) !important;
  color: var(--hof-moss) !important;
  border: 1px solid var(--hof-linen) !important;
}

.hof-btn-outline .elementor-button:hover {
  border-color: var(--hof-sage) !important;
  color: var(--hof-sage) !important;
}

/* ---- header / nav ---------------------------------------------------- */
.ehf-header #masthead {
  position: sticky;
  top: 0;
  z-index: 990;
}

.hof-header-sec {
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(216, 196, 143, .25);
}

.hof-header-sec .hfe-site-title a,
.hof-header-sec .elementor-heading-title a,
.hof-header-sec .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif;
  color: #F7F5F1 !important;
  letter-spacing: .02em;
}

.hof-header-sec .hfe-site-title a:hover { color: var(--hof-sage) !important; }

.hof-header-sec .hfe-nav-menu .menu-item a {
  color: #F7F5F1;
  font-size: .86rem;
  letter-spacing: .06em;
  font-weight: 400;
}

.hof-header-sec .hfe-nav-menu .menu-item a:hover,
.hof-header-sec .hfe-nav-menu .menu-item a:focus { color: var(--hof-sage); }
.hof-header-sec .hfe-nav-menu .current-menu-item > a { color: var(--hof-gold); }
.hof-header-sec .hfe-nav-menu-toggle { color: #F7F5F1; border-color: rgba(247,245,241,.4); }

.hof-navicons .elementor-widget-wrap {
  flex-direction: row !important;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
}

.hof-navicons .elementor-widget { width: auto !important; margin-bottom: 0 !important; }

.hof-wish a, .hof-header-sec .hfe-cart-container a.hfe-cart-contents {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 999px;
  color: #F7F5F1;
  background: transparent;
  border: none;
  transition: color .2s ease;
}

.hof-wish a:hover, .hof-header-sec .hfe-cart-container a:hover { color: var(--hof-sage); }
.hof-header-sec .hfe-cart-count { background: var(--hof-gold); color: var(--hof-ink); font-size: 10px; }

/* ---- hero ------------------------------------------------------------ */
.hof-hero { position: relative; overflow: hidden; }

.hof-ghost { position: absolute; top: 46px; left: 0; right: 0; text-align: center; pointer-events: none; }

.hof-ghost .elementor-heading-title {
  font-size: clamp(44px, 9.5vw, 122px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
  color: var(--hof-sage);
  opacity: .12;
  line-height: 1;
}

.hof-fan { margin-top: clamp(76px, 9.7vw, 151px); }

.hof-fan .elementor-column > .elementor-widget-wrap {
  background: var(--hof-paper);
  border: 1px solid var(--hof-linen);
  border-radius: 24px;
  box-shadow: var(--hof-shadow);
  padding: 10px 10px 4px;
  transition: transform .3s ease, box-shadow .3s ease;
}

.hof-fan .elementor-widget-image img { border-radius: 16px; border: 1px solid rgba(218, 223, 213, .7); }
.hof-fan .elementor-heading-title { font-size: 1.15rem; }
.hof-fan-1 > .elementor-widget-wrap { transform: rotate(-9deg) translateY(12px); }
.hof-fan-2 > .elementor-widget-wrap { transform: rotate(-3.5deg) translateY(-6px); z-index: 2; }
.hof-fan-3 > .elementor-widget-wrap { transform: rotate(3.5deg) translateY(-2px); z-index: 2; }
.hof-fan-4 > .elementor-widget-wrap { transform: rotate(9deg) translateY(14px); }

.hof-fan .elementor-column:hover > .elementor-widget-wrap {
  transform: rotate(0) translateY(-8px);
  box-shadow: var(--hof-shadow-lift);
  z-index: 5;
}

/* gentle floating drift, staggered per card */
@keyframes hof-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

.hof-fan .elementor-column { animation: hof-float 7s ease-in-out infinite; }
.hof-fan-2 { animation-delay: -1.8s; }
.hof-fan-3 { animation-delay: -3.5s; }
.hof-fan-4 { animation-delay: -5.2s; }

.hof-h1 .elementor-heading-title { font-size: clamp(2.4rem, 5vw, 3.9rem); font-weight: 600; line-height: 1.1; }
.hof-script .elementor-heading-title { font-family: 'Lora', serif; font-style: italic; color: var(--hof-sage); font-size: clamp(1.9rem, 4vw, 3.1rem); font-weight: 500; line-height: 1.1; }
.hof-eyebrow .elementor-heading-title, .hof-eyebrow p { font-family: 'Lora', serif; font-style: italic; color: var(--hof-sage); font-size: 1.05rem; }
.hof-sub p { color: var(--hof-fog); font-size: .95rem; font-weight: 300; }

/* ---- cards / sections ------------------------------------------------- */
.hof-card .elementor-widget-wrap, .hof-panel {
  background: var(--hof-paper);
  border: 1px solid var(--hof-linen);
  border-radius: 24px;
  box-shadow: var(--hof-shadow);
  transition: transform .3s ease, box-shadow .3s ease;
}

.hof-card .elementor-widget-wrap { padding: 12px 12px 18px; }
.hof-card:hover .elementor-widget-wrap { transform: translateY(-6px); box-shadow: var(--hof-shadow-lift); }
.hof-card .elementor-widget-image img, .hof-card .elementor-image-box-img img { border-radius: 16px; }
.hof-card .elementor-image-box-title { font-size: 1.3rem; margin: 10px 0 2px; }
.hof-card .elementor-image-box-description { color: var(--hof-fog); font-size: .8rem; }

.hof-panel { padding: clamp(24px, 5vw, 56px); }

/* testimonial widget */
.elementor-testimonial-wrapper .elementor-testimonial-content {
  font-size: .92rem; color: var(--hof-moss); line-height: 1.75;
}
.elementor-testimonial-wrapper .elementor-testimonial-name { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; color: var(--hof-moss); }
.elementor-testimonial-wrapper .elementor-testimonial-job { font-family: 'Lora', serif; font-style: italic; font-size: .78rem; color: var(--hof-fog); }
.hof-quote .elementor-widget-container {
  background: var(--hof-paper); border: 1px solid var(--hof-linen); border-radius: 24px;
  box-shadow: var(--hof-shadow); padding: 28px;
}

/* ---- WooCommerce loops ------------------------------------------------ */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  background: var(--hof-paper);
  border: 1px solid var(--hof-linen);
  border-radius: 24px;
  box-shadow: var(--hof-shadow);
  padding: 14px 14px 22px;
  text-align: center;
  transition: transform .3s ease, box-shadow .3s ease;
}

.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--hof-shadow-lift); }
.woocommerce ul.products li.product a img { border-radius: 16px; margin-bottom: .7em; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.3rem; font-weight: 600; padding-top: 0; }
.woocommerce ul.products li.product .price { font-family: 'Lora', serif; font-style: italic; color: var(--hof-fog); font-size: .95rem; }
.woocommerce ul.products li.product .button { margin-top: .8em; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale {
  background: var(--hof-gold); color: var(--hof-ink); border-radius: 999px;
  font-family: 'Poppins', sans-serif; font-size: .7rem; line-height: 2.6;
  min-height: auto; min-width: auto; padding: 0 .9em;
}

.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--hof-gold); }

/* single product */
.woocommerce div.product .product_title { font-size: 2.4rem; }
.woocommerce div.product p.price { font-family: 'Lora', serif; font-style: italic; color: var(--hof-fog); font-size: 1.3rem; }
.woocommerce div.product div.images img { border-radius: 24px; border: 1px solid var(--hof-linen); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--hof-ivory); border-color: var(--hof-linen); border-radius: 14px 14px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--hof-paper); }
.woocommerce div.product form.cart .quantity .qty { border-radius: 999px; border: 1px solid var(--hof-linen); background: var(--hof-ivory); height: 42px; }

/* notices, forms, misc */
.woocommerce-message, .woocommerce-info {
  border-top-color: var(--hof-sage); background: var(--hof-sagelight);
  color: var(--hof-moss); border-radius: 14px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--hof-sage); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  border: 1px solid var(--hof-linen); background: var(--hof-ivory); border-radius: 14px; padding: .6em 1em;
}

/* wishlist (YITH) */
.yith-wcwl-add-to-wishlist { margin-top: .6em; }
table.wishlist_table { background: var(--hof-paper); border: 1px solid var(--hof-linen) !important; border-radius: 24px; overflow: hidden; box-shadow: var(--hof-shadow); }
table.wishlist_table thead th { background: var(--hof-sagelight); border: none; font-family: 'Cormorant Garamond', serif; }
table.wishlist_table td { border-color: var(--hof-mist) !important; }

/* CF7 */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea {
  width: 100%; border: 1px solid var(--hof-linen); background: var(--hof-ivory);
  border-radius: 16px; padding: .75em 1.1em; font-family: 'Poppins', sans-serif; font-size: .9rem;
}
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 2px solid var(--hof-sage); outline-offset: 1px; }
.wpcf7 label { font-size: .82rem; font-weight: 500; }

/* newsletter mini-form */
.hof-newsform form { display: flex; gap: 10px; max-width: 460px; margin: 0 auto; flex-wrap: wrap; justify-content: center; }
.hof-newsform input[type="email"] {
  flex: 1 1 240px; border: 1px solid var(--hof-linen); background: var(--hof-ivory);
  border-radius: 999px; padding: .75em 1.3em; font-size: .88rem;
}
.hof-newsform button { border: none; cursor: pointer; }
.hof-newsform .hof-news-thanks { font-family: 'Lora', serif; font-style: italic; color: var(--hof-sage); }

/* ---- footer ----------------------------------------------------------- */
.hof-footer-sec { border-top: 1px solid rgba(216, 196, 143, .25); }
.hof-footer-sec, .hof-footer-sec p, .hof-footer-sec li { color: rgba(247, 245, 241, .75); font-size: .85rem; }
.hof-footer-sec .elementor-heading-title { color: #F7F5F1; }
.hof-footer-sec a { color: rgba(247, 245, 241, .85); }
.hof-footer-sec a:hover { color: var(--hof-sage); }
.hof-footer-tagline p { font-family: 'Lora', serif; font-style: italic; color: var(--hof-sage) !important; }
.hof-footer-heading .elementor-heading-title { font-family: 'Poppins', sans-serif; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--hof-gold); }
.hof-social a {
  display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center;
  border: 1px solid rgba(247, 245, 241, .25); border-radius: 999px; margin-right: 8px;
  transition: all .25s ease;
}
.hof-social a:hover { border-color: var(--hof-sage); color: var(--hof-sage); transform: translateY(-2px); }
.hof-disclaimer p { font-size: .72rem; color: rgba(247, 245, 241, .5); text-align: center; }

/* ---- decorations ------------------------------------------------------- */
.hof-vine { text-align: center; opacity: .85; }
.hof-sparkle-note { font-family: 'Lora', serif; font-style: italic; color: var(--hof-fog); }

/* timeline (About) */
.hof-timeline { border-left: 1px solid var(--hof-linen); padding-left: 28px; }
.hof-timeline .hof-step-title .elementor-heading-title { color: var(--hof-sage); font-size: 1.5rem; position: relative; }
.hof-timeline .hof-step-title .elementor-heading-title::before {
  content: ''; position: absolute; left: -37px; top: 8px; width: 14px; height: 14px;
  border-radius: 999px; border: 2px solid var(--hof-sage); background: var(--hof-ivory);
}
.hof-stepnum .elementor-heading-title {
  width: 44px; height: 44px; line-height: 44px; border-radius: 999px; background: var(--hof-sagelight);
  color: var(--hof-sage); text-align: center; font-size: 1.25rem; margin: 0 auto;
}

/* ---- motion ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media (max-width: 767px) {
  .hof-ghost .elementor-heading-title { font-size: 9.5vw; }
  .hof-fan .elementor-column > .elementor-widget-wrap { transform: none; }

  /* keep the header on one row: brand — menu toggle — icons */
  .hof-header-sec .elementor-container { display: flex; flex-wrap: nowrap !important; align-items: center; justify-content: space-between; }
  .hof-header-sec .elementor-column { width: auto !important; }
  .hof-header-sec .hfe-nav-menu__toggle { color: #F7F5F1; }
  .hof-header-sec .elementor-heading-title { white-space: nowrap; font-size: 1.2rem; }
}
