/*
Theme Name: Flatsome Child
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.5.0
*/

/* =======================================================================
   SPRINKLED WITH GLITTER - design system
   Ink, ivory and champagne. Tokens mirror Customize > Style > Colors
   (primary #8a6e4b, secondary #1c1a1b, success #c8ae83).
   ======================================================================= */

:root{
  --swg-gold:      #8a6e4b;
  --swg-gold-dark: #6f573a;
  --swg-champagne: #c8ae83;
  --swg-ink:       #1c1a1b;
  --swg-body:      #554e4a;
  --swg-ivory:     #f7f3ee;
  --swg-line:      #e7dfd4;
}

/* ---- Base ------------------------------------------------------------ */
body{ color:var(--swg-body); }
h1,h2,h3,h4,h5,h6{ color:var(--swg-ink); letter-spacing:-.008em; }
a{ color:var(--swg-gold); }
a:hover{ color:var(--swg-gold-dark); }
.container{ max-width:1200px; }

/* Flatsome indents every list inside a column - our own lists opt out. */
.col-inner .swg-footer-list li, .col-inner .swg-footer-contact li,
.col-inner .swg-footer-hours li, .col-inner .swg-ticks li,
.col-inner .swg-contact-list li, .col-inner .swg-mega-list li{ margin-left:0; }

/* ---- Text logo ------------------------------------------------------- */
#logo a{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(18px,1.7vw,25px); font-weight:600; line-height:1.1;
  letter-spacing:.07em; color:var(--swg-ink); white-space:nowrap;
  display:inline-block;
}
#logo a:hover{ color:var(--swg-gold); }
@media (max-width:849px){
  #logo a{ font-size:19px; letter-spacing:.05em; }
}

/* ---- Top bar --------------------------------------------------------- */
#top-bar{ font-size:11px; border-bottom:1px solid rgba(200,174,131,.22); }
#top-bar .nav > li > a{ font-size:11px; }
.swg-topbar{
  letter-spacing:.2em; text-transform:uppercase; font-size:10.5px;
  color:rgba(255,255,255,.72);
}
.swg-topbar a{ color:rgba(255,255,255,.92); text-decoration:none; border:0; }
.swg-topbar a:hover{ color:var(--swg-champagne); }
.swg-topbar__sep{ margin:0 14px; color:var(--swg-champagne); opacity:.85; }
#top-bar a:hover{ color:var(--swg-champagne); }
@media (max-width:849px){
  .swg-topbar__hide-sm{ display:none; }
  .swg-topbar{ letter-spacing:.16em; }
}

/* ---- Header ---------------------------------------------------------- */
.header-main{ border-bottom:1px solid var(--swg-line); }
/* Logo left, menu centred in the space that is left, icons right. */
@media (min-width:850px){
  .header-inner .flex-left .header-nav-main{ justify-content:center; width:100%; }
}
.header-nav.nav > li > a{ font-size:12px; letter-spacing:.17em; }
.header-nav.nav > li > a:hover{ color:var(--swg-gold); }
.header-nav.nav > li.active > a{ color:var(--swg-gold); }
.nav-dropdown{ border-color:var(--swg-line); border-radius:6px; padding:14px 0; }
.nav-dropdown > li > a{ font-size:13.5px; letter-spacing:.02em; padding:9px 22px; }
.nav-dropdown > li > a:hover{ color:var(--swg-gold); }
.header .cart-icon strong, .header .wishlist-icon strong{ font-size:10px; }

@media (min-width:850px) and (max-width:1140px){
  #logo a{ font-size:17px; letter-spacing:.05em; }
  .header-inner #logo{ max-width:215px; }
  .header-nav-main.nav > li{ margin:0 4px; }
  .header-nav.nav > li > a{ font-size:10.5px; letter-spacing:.07em; }
  .swg-topbar__hide-sm, .swg-topbar__sep{ display:none; }
  .swg-topbar{ font-size:10px; letter-spacing:.16em; }
}

/* ---- Buttons (pill) -------------------------------------------------- */
.button, button, input[type=submit], .wpcf7-submit{
  letter-spacing:.17em; font-weight:500; font-size:11.5px; border-radius:99px;
}
.button{ padding:0 2.6em; min-height:48px; line-height:48px; }
.button.primary:not(.is-outline){ background:var(--swg-gold); border-color:var(--swg-gold); }
.button.primary:not(.is-outline):hover{ background:var(--swg-gold-dark); border-color:var(--swg-gold-dark); }
.button.is-outline{ color:var(--swg-ink); border-color:var(--swg-ink); }
.button.is-outline:hover{ background:var(--swg-ink); color:#fff; }
.button.is-outline{ border-width:1px; }
.button.white.is-outline{ border-color:rgba(255,255,255,.7); }
.button.white.is-outline:hover{ background:#fff; color:var(--swg-ink); border-color:#fff; }
.button + .button{ margin-left:10px; }
@media (max-width:549px){
  .button + .button{ margin-left:0; }
}

/* Centered call to action under a grid */
.swg-cta{ text-align:center; margin-top:8px; }
.swg-cta .button{ min-width:250px; margin:0; }

/* ---- Hero ------------------------------------------------------------ */
/* Flatsome paints banners with the primary color before the photo loads. */
.banner{ background-color:var(--swg-ink); }
.swg-eyebrow{
  font-size:10.5px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--swg-champagne); margin-bottom:18px; font-weight:500;
}
.swg-eyebrow--dark{ color:var(--swg-gold); }
.swg-hero-title{
  font-size:clamp(2.4rem,4.8vw,4.4rem); line-height:1.03; color:#fff;
  margin-bottom:20px; font-weight:600; letter-spacing:-.015em;
}
.swg-hero-sub{
  font-size:clamp(1rem,1.15vw,1.1rem); line-height:1.7; max-width:31em;
  color:rgba(255,255,255,.88); margin-bottom:30px;
}
.ux-slider-wrapper .flickity-page-dots .dot{
  width:7px; height:7px; background:rgba(255,255,255,.5); border:0; opacity:1;
}
.ux-slider-wrapper .flickity-page-dots .dot.is-selected{ background:var(--swg-champagne); }

/* ---- Reassurance strip ----------------------------------------------- */
.swg-usp-grid{
  display:grid; grid-template-columns:repeat(4,1fr); align-items:stretch;
}
.swg-usp-grid > div{
  padding:4px 30px; text-align:center; border-left:1px solid var(--swg-line);
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
}
.swg-usp-grid > div:first-child{ border-left:0; }
.swg-usp-title{
  font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  margin:0 0 9px; color:var(--swg-ink); font-weight:500;
}
.swg-usp-text{
  font-size:13.5px; line-height:1.7; margin:0; color:var(--swg-body);
  max-width:19em;
}
@media (max-width:849px){
  .swg-usp-grid{ grid-template-columns:repeat(2,1fr); row-gap:30px; }
  .swg-usp-grid > div:nth-child(odd){ border-left:0; }
  .swg-usp-grid > div{ padding:6px 14px; }
}
@media (max-width:359px){
  .swg-usp-grid{ grid-template-columns:1fr; row-gap:26px; }
  .swg-usp-grid > div{ border-left:0; }
}

/* ---- Sections -------------------------------------------------------- */
.section-title-container{ margin-bottom:40px; }
.section-title b{ background-color:transparent; height:0; }
.section-title span{
  font-size:clamp(1.9rem,2.8vw,2.7rem); padding:0; font-weight:600;
  letter-spacing:-.015em;
}
.section-title-normal{ border:0; }
/* Flatsome renders [title sub_text] inline inside the heading span. */
.section-title .sub-title, .section-title small{
  display:block; margin-top:14px; padding-left:0;
  font-family:"Jost",sans-serif; font-size:14.5px; font-weight:400;
  line-height:1.65; letter-spacing:.01em; text-transform:none;
  color:var(--swg-body); opacity:1; max-width:40em;
}
.section-title-center .sub-title{ margin-left:auto; margin-right:auto; }
.dark .section-title .sub-title, .dark .section-title small{ color:rgba(255,255,255,.72); }
.section-title .is-divider{ display:none; }
.section-title-container .section-title + p,
.section-title-container p{ margin-bottom:0; }
.swg-section-title{
  font-size:clamp(1.8rem,2.8vw,2.7rem); line-height:1.14; margin-bottom:18px;
  font-weight:600; letter-spacing:-.015em;
}
.swg-section-title--light{ color:#fff; }
.swg-body{ font-size:1rem; line-height:1.8; margin-bottom:16px; max-width:40em; }
.swg-body--light{ color:rgba(255,255,255,.8); }
.swg-lede{ font-size:1.1rem; line-height:1.8; color:var(--swg-ink); }
.swg-center{ margin-left:auto; margin-right:auto; }

/* ---- Category tiles -------------------------------------------------- */
.swg-tile .ux-banner, .swg-tile .banner{ transition:none; }
.swg-tile-title{
  color:#fff; font-size:1.4rem; line-height:1.2; margin-bottom:7px; font-weight:600;
}
.swg-tile-sub{
  color:var(--swg-champagne); font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; margin:0;
}

/* ---- Tick list ------------------------------------------------------- */
.swg-ticks{ list-style:none; margin:0 0 28px; padding:0; }
.swg-ticks li{ position:relative; padding-left:28px; margin-bottom:13px; line-height:1.6; }
.swg-ticks li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:13px; height:7px; border-left:1px solid var(--swg-gold);
  border-bottom:1px solid var(--swg-gold); transform:rotate(-45deg);
}

/* ---- Numbered steps -------------------------------------------------- */
.swg-step-num{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:2.9rem; line-height:1; color:var(--swg-champagne);
  margin-bottom:14px; font-weight:600;
}
.swg-step-title{
  color:#fff; font-size:1.05rem; margin-bottom:12px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
}
.swg-step-body{ color:rgba(255,255,255,.72); line-height:1.75; max-width:24em; margin:0 auto; }

/* ---- Products -------------------------------------------------------- */
.product-small .box-text{
  padding-top:18px; display:flex; flex-direction:column; min-height:104px;
}
.product-small .product-title{ margin-bottom:8px; }
.product-small .product-title a{
  font-size:13.5px; line-height:1.55; color:var(--swg-ink); font-weight:400;
  letter-spacing:.01em; display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}
.product-small .product-title a:hover{ color:var(--swg-gold); }
.product-small .price-wrapper{ margin-top:auto; }
.product-small .price{ color:var(--swg-ink); font-size:14.5px; font-weight:500; }
.product-small .price del{ color:#777777; font-weight:400; }
.box-image{ border-radius:6px; overflow:hidden; background:var(--swg-ivory); }
.product-small .category{ display:none; }
.badge-container .badge-inner{ background:var(--swg-ink); border-radius:99px; font-size:10px; letter-spacing:.14em; }
.price-wrapper .price ins{ text-decoration:none; }
.product-small .add-to-cart-button a{ font-size:11px; letter-spacing:.16em; }

/* Slider arrows */
.flickity-prev-next-button{
  background:#fff; border:1px solid var(--swg-line); border-radius:99px;
  width:42px; height:42px; box-shadow:none;
}
.flickity-prev-next-button:hover{ background:var(--swg-ink); border-color:var(--swg-ink); }
.flickity-prev-next-button .arrow{ fill:var(--swg-ink); }
.flickity-prev-next-button:hover .arrow{ fill:#fff; }

/* ---- Shop / archive -------------------------------------------------- */
.shop-page-title .page-title-inner{ padding-top:26px; padding-bottom:6px; }
.shop-page-title .shop-page-title-inner h1,
.shop-page-title h1.shop-page-title{ font-size:clamp(1.9rem,3vw,2.7rem); }
.woocommerce-breadcrumb, .breadcrumbs{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#777777;
}
.woocommerce-result-count, .woocommerce-ordering select{ font-size:13px; }
.term-description{ max-width:46em; line-height:1.8; margin-bottom:26px; }

/* ---- Info cards ------------------------------------------------------ */
.swg-card{
  background:#fff; border:1px solid var(--swg-line); border-radius:6px;
  padding:32px 32px 28px;
}
.swg-card--cream{ background:var(--swg-ivory); border-color:transparent; }
.swg-card h3{
  font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  margin-bottom:18px; font-weight:500; color:var(--swg-gold);
}
.swg-card p:last-child{ margin-bottom:0; }
.swg-contact-list{ list-style:none; margin:0; padding:0; }
.swg-contact-list li{ margin-bottom:16px; line-height:1.65; }
.swg-contact-list li:last-child{ margin-bottom:0; }
.swg-contact-list strong{
  display:block; color:#777777; font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; font-weight:500; margin-bottom:4px;
}

/* ---- Opening hours --------------------------------------------------- */
.swg-hours{ width:100%; border-collapse:collapse; margin:0; }
.swg-hours th, .swg-hours td{
  text-align:left; padding:11px 0; border-bottom:1px solid var(--swg-line);
  font-size:14.5px; font-weight:400;
}
.swg-hours td{ text-align:right; color:var(--swg-ink); }
.swg-hours tr:last-child th, .swg-hours tr:last-child td{ border-bottom:0; }
.swg-hours .swg-hours--closed{ color:#777777; }

/* ---- Page titles ----------------------------------------------------- */
.page-wrapper .entry-header{ margin:40px 0 -16px; }
.page-wrapper .entry-title{
  font-size:clamp(1.9rem,3vw,2.7rem); line-height:1.15; font-weight:600;
  text-transform:none; letter-spacing:-.015em; margin:0;
}

/* ---- Legal / long-form pages ----------------------------------------- */
.swg-legal h2{ font-size:1.45rem; margin:40px 0 14px; }
.swg-legal h3{ font-size:1.1rem; margin:28px 0 10px; }
.swg-legal p, .swg-legal li{ line-height:1.85; }
.swg-legal ul, .swg-legal ol{ margin:0 0 20px 18px; }
.swg-legal li{ margin-bottom:9px; }
.swg-updated{ font-size:10.5px; color:#777777; letter-spacing:.24em; text-transform:uppercase; }

/* ---- Tables ---------------------------------------------------------- */
.swg-table{ width:100%; border-collapse:collapse; margin:0 0 26px; font-size:15px; }
.swg-table th, .swg-table td{
  border:1px solid var(--swg-line); padding:14px 16px; text-align:left; vertical-align:top;
}
.swg-table th{
  background:var(--swg-ivory); color:var(--swg-ink); font-weight:500;
  font-size:13px; letter-spacing:.06em;
}

/* ---- Accordion / FAQ ------------------------------------------------- */
.accordion-title{
  font-size:1rem; padding:20px 44px 20px 4px; border-top:1px solid var(--swg-line);
  color:var(--swg-ink); font-weight:500;
}
.accordion-title.active{ color:var(--swg-gold); }
.accordion-title .toggle{ color:var(--swg-gold); opacity:1; }
.accordion-inner{ padding:0 4px 24px; line-height:1.85; }
.accordion{ border-bottom:1px solid var(--swg-line); }

/* ---- Forms ----------------------------------------------------------- */
.swg-form label{ display:block; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--swg-ink); margin-bottom:9px; }
.swg-form input[type=text], .swg-form input[type=email], .swg-form input[type=tel],
.swg-form select, .swg-form textarea{
  width:100%; border:1px solid var(--swg-line); border-radius:6px; box-shadow:none;
  padding:14px 16px; background:#fff; color:var(--swg-ink); margin-bottom:22px;
  font-size:15px;
}
.swg-form textarea{ min-height:160px; }
.swg-form input:focus, .swg-form textarea:focus, .swg-form select:focus{
  border-color:var(--swg-gold); outline:none;
}
.swg-form input[type=submit], .swg-form .wpcf7-submit{
  background:var(--swg-ink); color:#fff; border:0; border-radius:99px;
  padding:16px 40px; letter-spacing:.2em; cursor:pointer; font-weight:500;
  font-size:11.5px; text-transform:uppercase; transition:background .2s ease; width:auto;
}
.swg-form input[type=submit]:hover, .swg-form .wpcf7-submit:hover{ background:var(--swg-gold); }
.wpcf7 form .wpcf7-response-output{
  border-radius:6px; border-width:1px; margin:8px 0 0; padding:13px 16px; font-size:14px;
}
.swg-form-note{ font-size:13px; color:#777777; margin-top:16px; line-height:1.65; }

/* ---- Newsletter strip ------------------------------------------------ */
.swg-news .swg-form{ max-width:420px; margin:0 auto; }
.swg-news .swg-form input[type=email]{ margin-bottom:14px; border-color:transparent; border-radius:99px; text-align:center; }
.swg-news .swg-form input[type=submit], .swg-news .swg-form .wpcf7-submit{
  width:100%; background:var(--swg-champagne); color:var(--swg-ink);
}
.swg-news .swg-form input[type=submit]:hover, .swg-news .swg-form .wpcf7-submit:hover{
  background:#fff;
}
.swg-news-note{ font-size:12px; color:rgba(255,255,255,.5); margin-top:14px; }
.swg-news-note a{ color:rgba(255,255,255,.7); }

/* ---- Mega menu ------------------------------------------------------- */
.swg-mega-head{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--swg-gold); margin-bottom:14px;
}
.swg-mega-list{ list-style:none; margin:0 0 24px; padding:0; }
.swg-mega-list li{ margin-bottom:10px; }
.swg-mega-list a{ color:var(--swg-ink); font-size:14.5px; }
.swg-mega-list a:hover{ color:var(--swg-gold); }

/* ---- Footer ---------------------------------------------------------- */
.swg-footer .row{ margin-bottom:0; }
.swg-footer .col{ padding-bottom:0; }
.swg-footer-trust{
  margin:0; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.66);
}
.swg-footer-dot{ color:var(--swg-champagne); margin:0 16px; }
.swg-footer-brand{
  font-family:"Cormorant Garamond",Georgia,serif;
  color:#fff; font-size:1.7rem; margin:0 0 16px; font-weight:600; letter-spacing:.05em;
}
.swg-footer-rule{
  display:block; width:44px; height:1px; background:var(--swg-champagne);
  margin:0 0 22px;
}
.swg-footer-text{
  color:rgba(255,255,255,.6); line-height:1.85; font-size:14.5px; max-width:29em;
  margin:0 0 26px;
}
.swg-footer-head{
  color:var(--swg-champagne); font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; margin:0 0 20px; font-weight:500;
}
.swg-footer-head--spaced{ margin-top:34px; }
.swg-footer-list, .swg-footer-contact, .swg-footer-hours{ list-style:none; margin:0; padding:0; }
.swg-footer-list li{ margin-bottom:13px; line-height:1.5; }
.swg-footer-list a, .swg-footer-contact a{
  color:rgba(255,255,255,.6); font-size:14.5px; transition:color .2s ease;
}
.swg-footer-list a:hover, .swg-footer-contact a:hover{ color:var(--swg-champagne); }
.swg-footer-contact{ color:rgba(255,255,255,.6); font-size:14.5px; margin:0; }
.swg-footer-contact li{ margin-bottom:18px; line-height:1.6; }
.swg-footer-label{
  display:block; font-size:10px; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.38); margin-bottom:5px;
}
.swg-footer-hours{ max-width:230px; }
.swg-footer-hours li{
  display:flex; justify-content:space-between; gap:20px; margin-bottom:10px;
  font-size:14px; color:rgba(255,255,255,.6); line-height:1.5;
}
.swg-footer-hours .swg-day{ color:#fff; }
.swg-footer-hours .swg-closed{ color:rgba(255,255,255,.38); }
.swg-footer-pay{ color:rgba(255,255,255,.5); font-size:13px; margin:0; line-height:1.75; }
.swg-footer-pay strong{ color:rgba(255,255,255,.7); font-weight:400; }
.swg-footer-legal{ color:rgba(255,255,255,.42); font-size:12.5px; margin:0; line-height:1.9; }
.swg-footer-legal a{ color:rgba(255,255,255,.55); }
.swg-footer-legal a:hover{ color:var(--swg-champagne); }
.swg-footer-legal--right{ text-align:right; }
.absolute-footer{
  background:#151314; color:rgba(255,255,255,.38); font-size:12px;
  padding:16px 0 18px;
}
.absolute-footer a{ color:rgba(255,255,255,.5); }
.absolute-footer a:hover{ color:var(--swg-champagne); }
@media (max-width:849px){
  .swg-footer-trust span{ display:block; }
  .swg-footer-dot{ display:none; }
  .swg-footer-trust{ line-height:2.4; }
  .swg-footer-legal--right{ text-align:left; margin-top:10px; }
  .swg-footer-hours{ max-width:100%; }
}

/* ---- WooCommerce ----------------------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error{ border-radius:6px; }
.product-info .product_title{ font-size:2rem; line-height:1.2; margin-bottom:10px; }
.product-info .price{ color:var(--swg-ink); font-size:1.4rem; }
.product-info .woocommerce-product-details__short-description{ line-height:1.8; }
.product-info .variations td, .product-info .variations th{ padding:8px 0; }
.product-info .variations label{
  font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--swg-ink);
}
.product-info select, .quantity input{ border-radius:6px; }
.swg-product-meta{
  border-top:1px solid var(--swg-line); margin-top:26px; padding-top:22px;
  font-size:13.5px; line-height:1.8; color:var(--swg-body);
}
.swg-product-meta p{ margin-bottom:10px; }
.swg-product-meta strong{ color:var(--swg-ink); font-weight:500; }
.woocommerce-tabs .nav > li > a{ letter-spacing:.16em; font-size:11.5px; }
.product-footer .woocommerce-tabs{ border-top:1px solid var(--swg-line); }

/* ---- Accessibility --------------------------------------------------- */
.screen-reader-text{
  position:absolute!important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--swg-gold); outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

@media only screen and (max-width: 48em) {
  .swg-card{ padding:26px 22px; }
  .swg-footer-text{ max-width:100%; }
  .swg-hero-title{ font-size:clamp(2rem,8vw,2.7rem); }
  .swg-cta .button{ min-width:100%; }
  .section-title-container{ margin-bottom:28px; }
}
