/*
Theme Name: Swapwell
Theme URI: https://swapwell.com.au
Description: Swapwell child theme for Hello Elementor. Brand styles, header, footer and swap-style WooCommerce pages.
Author: Swapwell
Template: hello-elementor
Version: 1.0.0
Text Domain: swapwell
*/

:root{
  --sw-stone:#EFE9E1; --sw-paper:#FAF7F2; --sw-white:#FFFFFF; --sw-sage:#E3E8DA; --sw-sand:#D9CDBE; --sw-line:#E2D9CC;
  --sw-bark:#2A2421; --sw-body:#4A413B; --sw-muted:#6B6058; --sw-olive:#4E5B32; --sw-olive-dark:#36401F; --sw-ochre:#B9802F; --sw-ochre-light:#E2B66E;
  --sw-display:'Fraunces', Georgia, 'Times New Roman', serif;
  --sw-text:'Work Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --sw-r:12px; --sw-r-lg:20px; --sw-max:1240px;
  --sw-gutter:max(20px, env(safe-area-inset-left, 0px));
}

html{ -webkit-text-size-adjust:100%; }
body{ background:var(--sw-paper); color:var(--sw-bark); font-family:var(--sw-text); font-size:17px; line-height:1.6; }
h1,h2,h3,h4,h5,h6,.sw-display{ font-family:var(--sw-display); font-weight:500; color:var(--sw-bark); letter-spacing:-0.015em; line-height:1.1; text-wrap:balance; }
h1{ font-size:clamp(36px, 5vw, 60px); }
h2{ font-size:clamp(28px, 3.4vw, 40px); }
h3{ font-size:clamp(21px, 2vw, 26px); }
p{ color:var(--sw-body); }
a{ color:var(--sw-olive); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover,a:focus{ color:var(--sw-olive-dark); }
:focus-visible{ outline:3px solid var(--sw-ochre-light); outline-offset:2px; }
::selection{ background:var(--sw-ochre-light); color:var(--sw-bark); }

.sw-wrap{ max-width:var(--sw-max); margin:0 auto; padding-left:var(--sw-gutter); padding-right:max(20px, env(safe-area-inset-right, 0px)); box-sizing:border-box; }
.site-main{ padding-block:32px 72px; }
.page-header .entry-title{ font-size:clamp(34px, 4.4vw, 52px); margin-bottom:12px; }

/* Buttons */
button, .button, input[type=submit], input[type=button], .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit{
  font-family:var(--sw-text); font-weight:600; font-size:16px; line-height:1.2; border-radius:var(--sw-r); border:0; background:var(--sw-bark); color:var(--sw-paper); padding:14px 24px; cursor:pointer; transition:background .2s ease, transform .2s ease; text-decoration:none;
}
button:hover, .button:hover, input[type=submit]:hover, .wp-element-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{ background:var(--sw-olive); color:var(--sw-white); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce .single_add_to_cart_button, .wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button{
  background:var(--sw-olive) !important; color:var(--sw-white) !important; border-radius:var(--sw-r) !important; font-weight:700 !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce .single_add_to_cart_button:hover, .wc-block-components-button:not(.is-link):hover{ background:var(--sw-olive-dark) !important; }

input[type=text], input[type=email], input[type=search], input[type=tel], input[type=number], input[type=password], input[type=url], textarea, select{
  font-family:var(--sw-text); font-size:16px; border:1px solid var(--sw-sand); border-radius:var(--sw-r); background:var(--sw-white); color:var(--sw-bark); padding:12px 14px;
}

/* The signature strike: used on the old product only */
.sw-strike{ position:relative; display:inline-block; color:var(--sw-muted); white-space:nowrap; }
.sw-strike::after{
  content:""; position:absolute; left:-4%; right:-4%; top:52%; height:0.55em; transform:translateY(-50%); pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 36' preserveAspectRatio='none'%3E%3Cpath d='M4 26 C 80 6, 150 34, 230 18 S 380 4, 450 20 S 560 30, 596 12' fill='none' stroke='%23B9802F' stroke-width='3.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat left center / 100% 100%;
  animation:sw-draw .8s cubic-bezier(.6,0,.2,1) .35s both;
}
@keyframes sw-draw{ from{ clip-path:inset(0 100% 0 0); } to{ clip-path:inset(0 0 0 0); } }
@media (prefers-reduced-motion: reduce){ .sw-strike::after{ animation:none; } }

/* Header */
.sw-header{ position:sticky; top:0; z-index:50; background:var(--sw-paper); border-bottom:1px solid var(--sw-line); }
.admin-bar .sw-header{ top:32px; }
@media (max-width:782px){ .admin-bar .sw-header{ top:0; position:relative; } }
.sw-header__inner{ display:flex; align-items:center; gap:28px; min-height:76px; }
.sw-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--sw-bark); flex-shrink:0; }
.sw-logo:hover{ color:var(--sw-bark); }
.sw-logo svg{ width:34px; height:34px; }
.sw-logo span{ font-family:var(--sw-display); font-size:27px; font-weight:500; letter-spacing:-0.02em; }
.sw-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:24px; }
.sw-nav a{ color:var(--sw-bark); text-decoration:none; font-weight:500; font-size:15px; white-space:nowrap; }
.sw-nav a:hover, .sw-nav .current-menu-item > a{ color:var(--sw-olive); text-decoration:underline; }
.sw-search{ flex:1; max-width:440px; margin-left:auto; display:flex; align-items:center; background:var(--sw-white); border:1px solid var(--sw-sand); border-radius:999px; padding:4px 4px 4px 18px; }
.sw-search:focus-within{ border-color:var(--sw-olive); }
.sw-search input[type=search]{ flex:1; min-width:0; border:0; background:transparent; padding:8px 0; font-size:15px; outline:none; }
.sw-search button{ padding:9px 16px; border-radius:999px; font-size:14px; background:var(--sw-olive); color:var(--sw-white); }
.sw-cart{ display:flex; align-items:center; gap:8px; color:var(--sw-bark); text-decoration:none; font-weight:600; font-size:15px; flex-shrink:0; }
.sw-cart svg{ width:22px; height:22px; }
.sw-cart__count{ min-width:22px; height:22px; border-radius:999px; background:var(--sw-ochre-light); color:var(--sw-bark); font-size:12px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; padding:0 6px; box-sizing:border-box; }
@media (max-width:960px){
  .sw-header__inner{ flex-wrap:wrap; gap:12px 16px; padding-block:12px; min-height:0; }
  .sw-cart{ margin-left:auto; }
  .sw-search{ order:3; flex-basis:100%; max-width:none; margin-left:0; }
  .sw-nav{ order:4; flex-basis:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .sw-nav ul{ gap:20px; padding-bottom:2px; }
  .sw-nav a{ font-size:14px; }
}

/* Footer */
.sw-footer{ background:var(--sw-bark); color:var(--sw-stone); padding-block:56px 32px; margin-top:0; }
.sw-footer a{ color:var(--sw-stone); text-decoration:none; }
.sw-footer a:hover{ color:var(--sw-ochre-light); text-decoration:underline; }
.sw-footer__grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; }
.sw-footer__brand p{ color:#CFC5B9; max-width:36ch; margin-top:12px; }
.sw-footer .sw-logo, .sw-footer .sw-logo:hover{ color:var(--sw-paper); }
.sw-footer h4{ color:var(--sw-ochre-light); font-family:var(--sw-text); font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin:0 0 14px; }
.sw-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.sw-footer__base{ border-top:1px solid #4A413B; margin-top:44px; padding-top:20px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:14px; color:#A89C92; }
@media (max-width:760px){ .sw-footer__grid{ grid-template-columns:1fr; gap:32px; } }

/* Shop grid */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product{ background:var(--sw-white); border:1px solid var(--sw-line); border-radius:var(--sw-r-lg); overflow:hidden; padding:0 0 18px; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease; }
.woocommerce ul.products li.product:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(42,36,33,.08); }
.woocommerce ul.products li.product a img{ margin:0 0 14px; border-radius:0; aspect-ratio:1/1; object-fit:cover; background:var(--sw-stone); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--sw-display); font-weight:500; font-size:21px; line-height:1.2; color:var(--sw-bark); padding:0 18px; margin:4px 0 6px; }
.sw-card-instead{ display:block; padding:0 18px; font-size:13px; font-weight:600; color:var(--sw-muted); letter-spacing:.02em; }
.sw-card-instead s{ text-decoration-color:var(--sw-ochre); text-decoration-thickness:2px; }
.woocommerce ul.products li.product .price{ color:var(--sw-bark); font-weight:600; font-size:16px; padding:0 18px; margin-bottom:12px; }
.woocommerce ul.products li.product .button{ margin:auto 18px 0; text-align:center; font-size:15px; padding:12px 16px; }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale{ background:var(--sw-ochre); color:var(--sw-white); border-radius:999px; min-height:0; line-height:1; padding:8px 12px; font-weight:700; font-size:12px; }
.woocommerce .woocommerce-result-count{ color:var(--sw-muted); font-size:14px; }
.woocommerce .woocommerce-ordering select{ border-radius:999px; padding:10px 16px; }
.woocommerce .woocommerce-breadcrumb{ color:var(--sw-muted); font-size:14px; }
.woocommerce .woocommerce-breadcrumb a{ color:var(--sw-muted); }
.term-description, .woocommerce-products-header__description{ max-width:62ch; }

/* Single product: the swap layout */
.woocommerce div.product .product_title{ font-size:clamp(34px, 4vw, 50px); margin:8px 0 14px; }
.sw-instead{ margin:0 0 4px; display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; }
.sw-instead__label{ font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--sw-olive); }
.sw-instead .sw-strike{ font-family:var(--sw-display); font-size:clamp(22px, 2.4vw, 28px); }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--sw-bark); font-size:24px; font-weight:600; }
.woocommerce div.product .woocommerce-product-details__short-description{ font-size:18px; color:var(--sw-body); }
.sw-why{ background:var(--sw-sage); border-radius:var(--sw-r-lg); padding:20px 22px; margin:22px 0; }
.sw-why h3{ font-size:20px; margin:0 0 12px; }
.sw-why ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.sw-why li{ position:relative; padding-left:30px; color:var(--sw-bark); }
.sw-why li::before{ content:""; position:absolute; left:0; top:.3em; width:18px; height:18px; border-radius:50%; background:var(--sw-olive) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.woocommerce div.product form.cart{ display:flex; flex-wrap:wrap; gap:12px; align-items:stretch; margin:20px 0; }
.woocommerce div.product form.cart .quantity .qty{ height:100%; min-height:54px; width:76px; border-radius:var(--sw-r); }
.woocommerce div.product form.cart .single_add_to_cart_button{ flex:1; min-height:54px; font-size:17px; padding:14px 28px; }
.sw-trust{ list-style:none; margin:4px 0 22px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.sw-trust li{ font-size:13px; font-weight:600; color:var(--sw-olive-dark); background:var(--sw-paper); border:1px solid var(--sw-line); border-radius:999px; padding:7px 12px; }
.woocommerce div.product .product_meta{ font-size:14px; color:var(--sw-muted); }
.woocommerce div.product div.images img{ border-radius:var(--sw-r-lg); background:var(--sw-stone); }
.woocommerce div.product .woocommerce-tabs ul.tabs{ padding:0; border-bottom:1px solid var(--sw-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background:transparent; border:0; border-radius:0; margin:0 24px 0 0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ font-weight:600; color:var(--sw-muted); padding:12px 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ border-bottom:3px solid var(--sw-olive); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--sw-bark); }
.woocommerce div.product .woocommerce-tabs .panel{ max-width:70ch; }
.related.products > h2, .upsells.products > h2{ font-size:clamp(26px, 3vw, 36px); margin:48px 0 20px; }

/* Notices, cart, checkout */
.woocommerce-message, .woocommerce-info{ border-top-color:var(--sw-olive); background:var(--sw-sage); color:var(--sw-bark); border-radius:var(--sw-r); }
.woocommerce-message::before, .woocommerce-info::before{ color:var(--sw-olive); }
.woocommerce-error{ border-radius:var(--sw-r); }
.wc-block-components-title, .wp-block-woocommerce-cart h2, .wp-block-woocommerce-checkout h2{ font-family:var(--sw-display); }
.wc-block-components-totals-wrapper, .wc-block-components-sidebar .wc-block-components-panel{ border-color:var(--sw-line); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input{ border-radius:var(--sw-r) !important; }

/* Elementor helpers for the homepage */
.sw-eyebrow .elementor-heading-title{ font-family:var(--sw-text) !important; font-size:13px !important; font-weight:600 !important; letter-spacing:.16em; text-transform:uppercase; color:var(--sw-olive) !important; }
.sw-hero-search .sw-search{ max-width:620px; margin:0; padding:6px 6px 6px 22px; box-shadow:0 10px 30px rgba(42,36,33,.06); }
.sw-hero-search .sw-search input[type=search]{ font-size:18px; padding:12px 0; }
.sw-hero-search .sw-search button{ font-size:16px; padding:14px 22px; }
.sw-hint{ font-size:14px; color:var(--sw-muted); margin-top:12px; }
.sw-hint a{ color:var(--sw-bark); font-weight:600; }
.sw-rooms{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
.sw-room{ display:flex; flex-direction:column; gap:6px; padding:24px; border-radius:var(--sw-r-lg); background:var(--sw-white); border:1px solid var(--sw-line); text-decoration:none; color:var(--sw-bark); transition:transform .2s ease, border-color .2s ease; }
.sw-room:hover{ transform:translateY(-3px); border-color:var(--sw-olive); color:var(--sw-bark); }
.sw-room strong{ font-family:var(--sw-display); font-weight:500; font-size:26px; }
.sw-room span{ font-size:15px; color:var(--sw-muted); }
.sw-room em{ font-style:normal; font-weight:600; font-size:14px; color:var(--sw-olive); margin-top:8px; }
.sw-steps{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px; counter-reset:sw; }
.sw-step{ counter-increment:sw; }
.sw-step::before{ content:counter(sw); display:inline-flex; width:40px; height:40px; border-radius:50%; align-items:center; justify-content:center; background:var(--sw-ochre-light); color:var(--sw-bark); font-weight:700; margin-bottom:14px; }
.sw-step h3{ margin:0 0 8px; }
.sw-step p{ margin:0; }
@media (max-width:760px){ .sw-rooms, .sw-steps{ grid-template-columns:1fr; } }
