/* ひだまり珈琲 オンラインショップ ショップの部品（build_plugin.py が作る） */

.ec-shop {
  --ec-brand:      #8B5A2B;   --ec-brand-dark: #6E4520;
  --ec-text:       #333333;
  --ec-muted:      #6B6B6B;
  --ec-line:       #E5E0DA;
  --ec-bg-soft:    #F8F5F1;
  --ec-radius:     10px;

  max-width: 1040px;
  margin: 0 auto;
  padding: 24px 20px 72px;
  color: var(--ec-text);
}

.ec-shop .breadcrumb {
  font-size: 13px;
  color: var(--ec-muted);
  margin-bottom: 20px;
}
.ec-shop .breadcrumb a { color: var(--ec-muted); text-decoration: none; }
.ec-shop .breadcrumb a:hover { text-decoration: underline; }
.ec-shop .breadcrumb span { margin: 0 6px; }

.ec-shop .page-head { margin-bottom: 28px; }
.ec-shop .page-title {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 700;
  letter-spacing: .02em;
  margin: 0 0 8px;
}
.ec-shop .page-lead { font-size: 14px; color: var(--ec-muted); margin: 0; }

.ec-shop .woocommerce a.button.alt,
.ec-shop .woocommerce button.button.alt,
.ec-shop .woocommerce input.button.alt,
.ec-shop .woocommerce #place_order {
  background: var(--ec-brand);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 14px 28px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-shadow: none;
  box-shadow: 0 2px 8px rgba(139, 90, 43, .22);
  transition: background .2s, transform .1s;
}
.ec-shop .woocommerce a.button.alt:hover,
.ec-shop .woocommerce button.button.alt:hover,
.ec-shop .woocommerce input.button.alt:hover,
.ec-shop .woocommerce #place_order:hover {
  background: var(--ec-brand-dark);
  color: #fff;
}
.ec-shop .woocommerce a.button.alt:active,
.ec-shop .woocommerce button.button.alt:active { transform: translateY(1px); }

.ec-shop .woocommerce a.button,
.ec-shop .woocommerce button.button,
.ec-shop .woocommerce input.button {
  background: #fff;
  color: var(--ec-text);
  border: 1px solid var(--ec-line);
  border-radius: 999px;
  padding: 11px 22px;
  font-weight: 600;
}

.ec-shop .woocommerce .wc-proceed-to-checkout { padding: 16px 0 0; }
.ec-shop .woocommerce .wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; }

.ec-shop .woocommerce table.shop_table {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
.ec-shop .woocommerce table.shop_table th {
  background: var(--ec-bg-soft);
  font-size: 13px;
  font-weight: 700;
  color: var(--ec-muted);
  padding: 12px 14px;
  border: none;
}
.ec-shop .woocommerce table.shop_table td {
  padding: 16px 14px;
  border: none;
  border-top: 1px solid var(--ec-line);
  vertical-align: middle;
}
.ec-shop .woocommerce table.shop_table .product-name a {
  color: var(--ec-text);
  font-weight: 700;
  text-decoration: none;
}
.ec-shop .woocommerce table.shop_table .variation,
.ec-shop .woocommerce .wc-item-meta {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ec-muted);
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}
.ec-shop .woocommerce .wc-item-meta li p { display: inline; margin: 0; }

.ec-shop .woocommerce .cart_totals h2,
.ec-shop .woocommerce-checkout #order_review_heading {
  font-size: 18px;
  font-weight: 700;
  margin: 32px 0 12px;
}
.ec-shop .woocommerce .order-total .amount { font-size: 20px; color: var(--ec-brand); }

.ec-shop form.checkout label .required { text-decoration: none; border: 0; font-size: 11px; font-weight: 700; color: #fff; background: var(--ec-brand); padding: 1px 6px; border-radius: 3px; margin-left: 6px; vertical-align: 1px; }
.ec-shop form.checkout label .optional { font-size: 11px; color: var(--ec-muted, #666); border: 1px solid var(--ec-line, #ccc); padding: 0 6px; border-radius: 3px; margin-left: 6px; vertical-align: 1px; }
.ec-shop .ec-guest-note { margin: 0 0 16px; padding: 12px 16px; background: #f6f7f7; border-left: 4px solid var(--ec-brand); font-size: 14px; }
.ec-shop form.checkout .form-row .description { font-size: 12px; color: var(--ec-muted, #666); margin-top: 4px; }

.woocommerce-Price-currencySymbol { font-size: max(.5em, 10px); margin-left: .06em; font-weight: inherit; }   @media (min-width: 769px) {
  .ec-shop .woocommerce .col2-set { display: block; }
  .ec-shop .woocommerce .col2-set .col-1,
  .ec-shop .woocommerce .col2-set .col-2 { width: 100%; float: none; }
}

.ec-shop .woocommerce form .form-row label {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
}
.ec-shop .woocommerce form .form-row input.input-text,
.ec-shop .woocommerce form .form-row textarea,
.ec-shop .woocommerce form .form-row select,
.ec-shop .woocommerce .select2-container .select2-selection--single {
  border: 1px solid var(--ec-line);
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 16px;   line-height: 1.5;
  height: auto;
}
.ec-shop .woocommerce form .form-row input.input-text:focus,
.ec-shop .woocommerce form .form-row textarea:focus {
  border-color: var(--ec-brand);
  outline: 2px solid rgba(139, 90, 43, .18);
}

.ec-shop .woocommerce #payment {
  background: var(--ec-bg-soft);
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius);
}
.ec-shop .woocommerce #payment ul.payment_methods { border-bottom: 1px solid var(--ec-line); }
.ec-shop .woocommerce #payment ul.payment_methods li { padding: 6px 0; }
.ec-shop .woocommerce #payment div.payment_box {
  background: #fff;
  border: 1px solid var(--ec-line);
  border-radius: 8px;
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--ec-text);
}
.ec-shop .woocommerce #payment div.payment_box::before { display: none; }

.ec-shop .woocommerce-message,
.ec-shop .woocommerce-info,
.ec-shop .woocommerce-error {
  border-top: none;
  border-left: 4px solid var(--ec-brand);
  background: var(--ec-bg-soft);
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.8;
}
.ec-shop .woocommerce-error { border-left-color: #C0392B; background: #FDF2F1; }
.ec-shop .woocommerce-message::before,
.ec-shop .woocommerce-info::before,
.ec-shop .woocommerce-error::before { display: none; }

.ec-shop .ec-shop-note {
  margin-top: 36px;
  padding: 18px 20px;
  background: var(--ec-bg-soft);
  border-radius: var(--ec-radius);
  font-size: 13px;
  line-height: 1.9;
  color: var(--ec-muted);
}
.ec-shop .ec-shop-note ul { margin: 0; padding-left: 1.1em; }
.ec-shop .ec-shop-note a { color: var(--ec-brand); }

.ec-shop .float-buy,          .ec-shop .cta-fixed { display: none; }

@media (max-width: 768px) {
  .ec-shop { padding: 16px 14px 56px; }
  .ec-shop .woocommerce table.shop_table td { padding: 12px 10px; }
  .ec-shop .woocommerce a.button.alt,
  .ec-shop .woocommerce button.button.alt,
  .ec-shop .woocommerce #place_order { width: 100%; padding: 16px 20px; }
}

.ec-shop .ec-pay-note{display:block;font-size:12.5px;color:var(--ec-muted);font-weight:500;line-height:1.9;margin-top:6px}
.ec-shop .woocommerce #payment div.payment_box.payment_method_komoju_credit_card{display:none !important}

.ec-shop .form-row.ec-hide, .ec-shop #billing_country_field, .ec-shop #shipping_country_field { display: none !important; }
.ec-shop .woocommerce-shipping-destination { display: none; }
.ec-shop table.cart img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid rgba(0,0,0,.08); }
@media (max-width: 768px) {
  .ec-shop table.shop_table_responsive tr.cart_item td.product-name { text-align: left !important; }
  .ec-shop table.shop_table_responsive tr.cart_item td.product-name::before { display: none; }
  .ec-shop table.shop_table_responsive tr.cart_item td.product-thumbnail { display: block; text-align: left !important; padding-bottom: 0; }
  .ec-shop table.shop_table_responsive tr.cart_item td.product-thumbnail::before { display: none; }
  .ec-shop table.shop_table_responsive tr.cart_item dl.variation { text-align: left; }
  .ec-shop table.shop_table_responsive tr.cart_item td.product-remove { text-align: right !important; }
}
.ec-shop dl.variation { margin: 6px 0 0; font-size: 12.5px; color: var(--ec-muted, #666); line-height: 1.9; }
.ec-shop dl.variation dt { font-weight: 700; float: left; margin-right: 6px; clear: both; }
.ec-shop dl.variation dd { margin: 0; }

.ec-final { margin: 4px 0 22px; padding: 18px 20px 8px; background: #fff; border: 1px solid var(--ec-brand); border-radius: var(--ec-radius); }
.ec-final h3 { font-size: 19px; margin: 0 0 6px; color: var(--ec-brand); }
.ec-final .rules { width: 100%; border-collapse: collapse; font-size: 13.5px; line-height: 1.8; }
.ec-final .rules th, .ec-final .rules td { padding: 8px 0; border-top: 1px solid var(--ec-line); text-align: left; vertical-align: top; }
.ec-final .rules th { width: 9em; padding-right: 14px; word-break: auto-phrase; }
.ec-final .rules td strong { font-size: 17px; }
.ec-final .rules a { text-decoration: underline; }
.ec-shop .nw, .ec-final .nw { display: inline-block; white-space: nowrap; }
@media (max-width: 700px) {
  .ec-final { padding: 14px 14px 6px; }
  .ec-final .rules th { width: 7em; }
}


.ec-shop.ec-in-theme { box-sizing: border-box; }
.ec-shop.ec-in-theme *, .ec-shop.ec-in-theme *::before, .ec-shop.ec-in-theme *::after { box-sizing: border-box; }
.ec-shop .breadcrumb a { color: var(--ec-muted); }
.ec-shop img { max-width: 100%; height: auto; }

.ec-shop ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px 24px; list-style: none; margin: 0 0 32px; padding: 0; }
.ec-shop ul.products::before, .ec-shop ul.products::after { display: none; }
.ec-shop ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0; text-align: left; }
.ec-shop ul.products li.product a { text-decoration: none; color: var(--ec-text); }
.ec-shop ul.products li.product img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--ec-radius); margin: 0 0 12px; background: var(--ec-bg-soft); }
.ec-shop ul.products li.product .woocommerce-loop-product__title { font-size: 16px; font-weight: 700; line-height: 1.6; margin: 0 0 6px; padding: 0; }
.ec-shop ul.products li.product .price { display: block; font-size: 17px; font-weight: 700; color: var(--ec-text); margin: 0 0 12px; letter-spacing: 0; }
.ec-shop ul.products li.product .button { display: inline-block; margin: 0; }
.ec-shop .woocommerce-result-count { font-size: 13px; color: var(--ec-muted); }
.ec-shop .woocommerce-ordering select { font-size: 14px; padding: 6px 10px; border: 1px solid var(--ec-line); border-radius: 8px; }

.ec-shop div.product { margin-bottom: 40px; }
.ec-shop div.product .product_title { font-size: clamp(22px, 3.4vw, 30px); line-height: 1.5; margin: 0 0 12px; }
.ec-shop div.product p.price, .ec-shop div.product span.price { font-size: 26px; font-weight: 700; color: var(--ec-text); letter-spacing: 0; margin: 0 0 16px; }
.ec-shop div.product form.cart { margin: 20px 0 24px; }
.ec-shop div.product form.cart .single_add_to_cart_button { background: var(--ec-brand); color: #fff; border: none; border-radius: 999px; padding: 14px 32px; font-size: 16px; font-weight: 700; }
.ec-shop div.product form.cart .single_add_to_cart_button:hover { background: var(--ec-brand-dark); color: #fff; }
.ec-shop div.product form.cart .single_add_to_cart_button.disabled { opacity: .5; }
.ec-shop div.product table.variations th, .ec-shop div.product table.variations td { padding: 6px 8px 6px 0; vertical-align: middle; }
.ec-shop div.product table.variations select { font-size: 16px; padding: 8px 12px; border: 1px solid var(--ec-line); border-radius: 8px; min-width: 160px; }
.ec-shop div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 16px; }
.ec-shop div.product .woocommerce-tabs ul.tabs li { border-radius: 8px 8px 0 0; }
.ec-shop .quantity input.qty { font-size: 16px; padding: 8px; width: 4.5em; border: 1px solid var(--ec-line); border-radius: 8px; }
.ec-shop .product_meta { font-size: 13px; color: var(--ec-muted); }

.ec-shop .shop-legal-table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.9; margin: 0 0 32px; }
.ec-shop .shop-legal-table th, .ec-shop .shop-legal-table td { border-top: 1px solid var(--ec-line); padding: 14px 12px; text-align: left; vertical-align: top; }
.ec-shop .shop-legal-table th { width: 13em; background: var(--ec-bg-soft); font-weight: 700; }
.ec-shop .shop-doc h2, .ec-shop h2#shipping { font-size: 19px; line-height: 1.6; margin: 32px 0 10px; }
.ec-shop .shop-doc p, .ec-shop .shop-doc li { font-size: 15px; line-height: 1.95; }
@media (max-width: 700px) {
  .ec-shop .shop-legal-table th, .ec-shop .shop-legal-table td { display: block; width: auto; }
  .ec-shop .shop-legal-table th { border-bottom: none; padding-bottom: 4px; }
  .ec-shop .shop-legal-table td { border-top: none; padding-top: 4px; }
}

.ec-shop-legal { margin: 40px 0 0; padding: 16px 0 0; border-top: 1px solid var(--ec-line, #E3E8EE); font-size: 13px; line-height: 2; color: var(--ec-muted, #6B7684); }
.ec-shop-legal a { color: inherit; text-decoration: underline; }
.ec-shop-legal span { margin: 0 8px; }

.ec-shop-band { box-sizing: border-box; width: 100%; color: #333333; }
.ec-shop-band__inner { box-sizing: border-box; max-width: 1040px; margin: 0 auto; padding: 24px 20px 4px; }
.ec-shop-band .breadcrumb { font-size: 13px; color: #6B6B6B; margin: 0 0 12px; }
.ec-shop-band .breadcrumb a { color: inherit; text-decoration: none; }
.ec-shop-band .breadcrumb a:hover { text-decoration: underline; }
.ec-shop-band .breadcrumb span { margin: 0 6px; }
.ec-shop-band .page-title { font-size: clamp(24px, 4vw, 32px); font-weight: 700; letter-spacing: .02em; line-height: 1.4; margin: 0 0 8px; color: inherit; }
.ec-overlay-clear .ec-shop-band { background: #8B5A2B; color: #fff; }
.ec-overlay-clear .ec-shop-band .breadcrumb { color: rgba(255, 255, 255, .85); }
.ec-overlay-clear .ec-shop-band__inner { padding-bottom: 28px; }
.ec-overlay-header .ec-shop.ec-in-theme { padding-top: 32px; }
@media (max-width: 768px) { .ec-shop-band__inner { padding: 16px 14px 4px; } }
