.dg-menu-toggle { display:none; }
@media (max-width:1024px) {
  .elementor-6 .elementor-element.elementor-element-86969d8 {
    flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:0; padding:14px 22px; position:relative;
  }
  .elementor-6 .elementor-element.elementor-element-4e9a93a {
    width:calc(100% - 60px); max-width:300px; gap:0; padding:0; min-width:0;
  }
  .elementor-6 .elementor-element.elementor-element-2f19d7f img { width:230px; max-width:100%; }
  .elementor-6 .elementor-element.elementor-element-c77fa41 {
    font-size:12px; line-height:1.5; margin:0; padding:0 0 0 8px;
  }
  .elementor-6 .elementor-element-c77fa41 p { margin:0; font-size:12px!important; line-height:1.5!important; }
  .elementor-6 .dg-menu-toggle {
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    flex:none; gap:5px; width:46px; height:46px; padding:10px; margin:0;
    border:1px solid #243e3240; border-radius:3px; background:#243E32; color:#fff;
    box-shadow:none; cursor:pointer;
  }
  .dg-menu-toggle span { display:block; width:22px; height:2px; background:currentColor; }
  .dg-menu-open .dg-menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .dg-menu-open .dg-menu-toggle span:nth-child(2) { opacity:0; }
  .dg-menu-open .dg-menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .elementor-6 .dg-menu-ready .elementor-element-a263623 { display:none; }
  .elementor-6 .dg-menu-open .elementor-element-a263623 {
    display:flex; width:100%; flex-direction:column; align-items:stretch; gap:8px;
    padding:18px 0 4px; margin:14px 0 0; border-top:1px solid #243e3226;
  }
  .elementor-6 .elementor-element-a263623 .elementor-widget-button { width:100%; margin:0; }
  .elementor-6 .elementor-element-a263623 .elementor-button {
    display:flex; justify-content:flex-start; width:100%; box-sizing:border-box;
    padding:15px 18px; font-size:16px; line-height:1.4;
  }
  .dg-menu-toggle:focus-visible { outline:3px solid #88734c; outline-offset:4px; }
}
@media (max-width:767px) {
  .elementor .e-con { min-width:0; }
  .elementor-95 .elementor-element.elementor-element-a4fa4d7 { width:100%; }
  .elementor-95 .elementor-element.elementor-element-79fdcb5 {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; width:100%;
  }
  .elementor-95 .elementor-element-79fdcb5 > .elementor-widget-image { width:100%; }
  .elementor-95 .elementor-element-79fdcb5 .elementor-widget-image img {
    width:100%; height:74px; object-fit:cover;
  }
  .bp-custom-product .variations, .bp-custom-product .variations tbody,
  .bp-custom-product .variations tr, .bp-custom-product .variations td,
  .bp-custom-product .variations th { display:block; width:100%; box-sizing:border-box; }
  .bp-custom-product .variations select { max-width:100%; width:100%; }
  .bp-custom-product .single_variation_wrap { width:100%; min-width:0; }
}

/* Equal-width chapter navigation on phones. */
@media (max-width:767px) {
 .elementor-48 .elementor-element.elementor-element-e86e54e { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-left:16px; padding-right:16px; }
 .elementor-48 .elementor-element-e86e54e > .elementor-widget-button { width:100%; min-width:0; margin:0; }
 .elementor-48 .elementor-element-e86e54e .elementor-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; padding:12px 4px!important; font-size:clamp(12px,3.2vw,14px)!important; line-height:1.3; white-space:nowrap; box-sizing:border-box; }
}

/* Left-align the final invitation on phones. */
@media (max-width:767px) {
 .elementor-48 .elementor-element.elementor-element-b9891db { flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:24px; padding:40px 24px; text-align:left; }
 .elementor-48 .elementor-element-b9891db > .elementor-widget { width:100%; margin:0; text-align:left; align-self:flex-start; }
 .elementor-48 .elementor-element-5225156 .elementor-heading-title { text-align:left; line-height:1.2; }
 .elementor-48 .elementor-element-34bf4e4 .elementor-button { margin-inline:0; }
}

/* Keep whole words in the village section heading on phones. */
@media (max-width:767px) {
 .elementor-48 .elementor-element-408d084 .elementor-heading-title { word-break:normal!important; overflow-wrap:normal!important; -webkit-hyphens:none!important; hyphens:none!important; }
}

/* Author name before copyright on phones. */
@media (max-width:767px) {
 .elementor-19 .elementor-element-5164a19 > .elementor-element-d9bb347 { order:1; }
 .elementor-19 .elementor-element-5164a19 > .elementor-element-aee1c59 { order:2; }
}

/* Persistent header cart and responsive checkout. */
.elementor-6 .dg-header-cart { display:flex; flex:0 0 46px; align-items:center; justify-content:center; width:46px; height:46px; box-sizing:border-box; color:#fff!important; background:#243e32; border-radius:3px; text-decoration:none; }
.elementor-6 .dg-header-cart:hover { background:#365747; }
.elementor-6 .dg-header-cart:focus-visible { outline:2px solid #927b4f; outline-offset:3px; }
@media(min-width:1025px) {
 .elementor-6 .elementor-element.elementor-element-86969d8 { gap:16px; }
 .elementor-6 .elementor-element.elementor-element-4e9a93a { flex:1; min-width:220px; }
 .elementor-6 .elementor-element.elementor-element-a263623 { width:auto; flex:0 1 auto; }
}
@media(max-width:1024px) {
 .elementor-6 .elementor-element.elementor-element-4e9a93a { width:calc(100% - 110px); max-width:none; order:0; }
 .elementor-6 .dg-header-cart { order:1; margin-left:auto; margin-right:8px; }
 .elementor-6 .dg-menu-toggle { order:2; }
 .elementor-6 .elementor-element.elementor-element-a263623 { order:3; }
}
body.woocommerce-checkout form.checkout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:48px; row-gap:0; grid-template-rows:min-content 1fr; align-items:start; }
body.woocommerce-checkout form.checkout:before, body.woocommerce-checkout form.checkout:after { display:none; }
body.woocommerce-checkout form.checkout #customer_details { grid-column:1; grid-row:1 / 3; width:100%; float:none; margin:0; }
body.woocommerce-checkout #customer_details > .col-1, body.woocommerce-checkout #customer_details > .col-2 { width:100%; float:none; margin:0 0 32px; padding:0; }
body.woocommerce-checkout form.checkout #order_review_heading { grid-column:2; grid-row:1; margin:0; padding:28px 28px 20px; background:#e9e7dc; }
body.woocommerce-checkout form.checkout #order_review { grid-column:2; grid-row:2; width:100%; float:none; margin:0; padding:0 28px 28px; box-sizing:border-box; background:#e9e7dc; min-width:0; }
body.woocommerce-checkout #order_review table { width:100%; margin-top:0; }
body.woocommerce-checkout #payment { width:100%; box-sizing:border-box; }
@media(max-width:767px) {
 body.woocommerce-checkout form.checkout { display:block; }
 body.woocommerce-checkout form.checkout #order_review_heading { padding:24px 18px 18px; }
 body.woocommerce-checkout form.checkout #order_review { padding:0 18px 24px; }
 .elementor-48 #book-preview .elementor-button { white-space:normal; line-height:1.5; }
}

/* Distinct cart action with the same desktop height as navigation buttons. */
.elementor-6 .dg-header-cart { position:relative; background:#466b57; }
.elementor-6 .dg-header-cart:hover { background:#365747; }
.elementor-6 .dg-cart-count { position:absolute; top:-6px; right:-6px; display:flex; align-items:center; justify-content:center; min-width:21px; height:21px; padding:0 4px; box-sizing:border-box; border:2px solid #f7f5ee; border-radius:999px; background:#e9e7dc; color:#243e32; font:600 12px/1 Arial,sans-serif; }
@media(min-width:1025px) { .elementor-6 .dg-header-cart { height:55px; flex-basis:55px; width:55px; } }

/* Editorial cart layout. */
body.woocommerce-cart .page_content_wrap { background:#f7f5ee; padding-top:64px; padding-bottom:80px; }
body.woocommerce-cart .entry-content > .woocommerce { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:32px; align-items:start; }
body.woocommerce-cart .woocommerce-notices-wrapper, .dg-cart-intro { grid-column:1 / -1; }
body.woocommerce-cart .woocommerce-notices-wrapper:empty { display:none; }
.dg-cart-intro { max-width:760px; margin-bottom:12px; }
.dg-cart-intro .dg-cart-eyebrow { color:#8d7950; font-size:13px; letter-spacing:.1em; margin:0 0 18px; }
.dg-cart-intro h1 { font-family:Georgia,serif; font-size:48px; font-weight:400; line-height:1.15; color:#243e32; margin:0 0 20px; }
.dg-cart-intro p { font-size:17px; line-height:1.8; color:#647367; margin:0; }
body.woocommerce-cart .woocommerce-cart-form { min-width:0; margin:0; }
body.woocommerce-cart table.cart { border:0; margin:0; width:100%; display:block; }
body.woocommerce-cart table.cart thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
body.woocommerce-cart table.cart tbody { display:block; }
body.woocommerce-cart table.cart tr.cart_item { display:grid; grid-template-columns:100px minmax(0,1fr) 105px; grid-template-rows:auto auto; gap:18px 22px; position:relative; padding:32px 28px; background:#fffdf7; border:1px solid #deded2; border-radius:6px; margin-bottom:20px; align-items:center; }
body.woocommerce-cart table.cart tr.cart_item td { display:block!important; border:0!important; padding:0!important; background:transparent!important; width:auto; text-align:left!important; }
body.woocommerce-cart table.cart tr.cart_item td:before { display:none; }
body.woocommerce-cart table.cart .product-thumbnail { grid-column:1; grid-row:1 / 3; }
body.woocommerce-cart table.cart .product-thumbnail img { width:100px!important; height:auto!important; max-height:160px; object-fit:contain; box-shadow:0 7px 16px #243e321a; }
body.woocommerce-cart table.cart .product-name { grid-column:2 / 4; grid-row:1; padding-right:20px!important; font-size:19px; line-height:1.5; }
body.woocommerce-cart table.cart .product-name a { color:#243e32; }
body.woocommerce-cart table.cart .product-price { display:none!important; }
body.woocommerce-cart table.cart .product-quantity { grid-column:2; grid-row:2; }
body.woocommerce-cart table.cart .product-subtotal { grid-column:3; grid-row:2; font-size:20px; font-weight:600; color:#243e32; }
body.woocommerce-cart table.cart .product-remove { position:absolute; top:8px; right:8px; }
body.woocommerce-cart table.cart .product-remove a { width:30px; height:30px; line-height:30px; color:#647367!important; font-size:22px; border-radius:50%; }
body.woocommerce-cart table.cart .product-remove a:hover { color:#fff!important; background:#466b57; }
body.woocommerce-cart table.cart .quantity { width:104px!important; height:44px; border:1px solid #d4d8ce; background:#f7f5ee; }
body.woocommerce-cart table.cart .quantity input.qty { height:42px; width:100%; padding:0 30px; line-height:42px; }
body.woocommerce-cart table.cart .quantity .q_inc, body.woocommerce-cart table.cart .quantity .q_dec { height:42px; line-height:42px; }
body.woocommerce-cart table.cart tr:has(td.actions) { display:block; }
body.woocommerce-cart table.cart td.actions { display:block; border:0; padding:0; background:transparent; text-align:right; }
body.woocommerce-cart table.cart td.actions button { background:transparent!important; color:#243e32!important; border:1px solid #b9c1b4!important; padding:13px 20px!important; border-radius:3px; }
body.woocommerce-cart .cart-collaterals { width:100%; min-width:0; }
body.woocommerce-cart .cart-collaterals .cart_totals { width:100%; float:none; padding:30px; box-sizing:border-box; background:#e9e7dc; border-radius:6px; }
body.woocommerce-cart .cart_totals h2 { font-family:Georgia,serif; font-size:29px; font-weight:400; color:#243e32; margin:0 0 24px; }
body.woocommerce-cart .cart_totals table { border:0; margin:0; }
body.woocommerce-cart .cart_totals table th, body.woocommerce-cart .cart_totals table td { padding:18px 0; font-size:15px; background:transparent; border:0; border-bottom:1px solid #243e3224; vertical-align:top; }
body.woocommerce-cart .cart_totals table th { width:32%; font-weight:500; padding-right:16px; }
body.woocommerce-cart .cart_totals .order-total th, body.woocommerce-cart .cart_totals .order-total td { font-size:22px; color:#243e32; border-bottom:0; }
body.woocommerce-cart .cart_totals .shipping-calculator-button { color:#466b57; text-decoration:underline; text-underline-offset:3px; }
body.woocommerce-cart .wc-proceed-to-checkout { padding:22px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display:block; margin:0; padding:18px 12px!important; font-size:16px; line-height:1.5; background:#243e32!important; color:#fff!important; border-radius:3px; text-align:center; }
body.woocommerce-cart .return-to-shop, body.woocommerce-cart .cart-empty { grid-column:1 / -1; }
@media(max-width:900px) {
 body.woocommerce-cart .entry-content > .woocommerce { grid-template-columns:1fr; gap:24px; }
 body.woocommerce-cart .page_content_wrap { padding-top:36px; padding-bottom:48px; }
 .dg-cart-intro h1 { font-size:36px; }
}
@media(max-width:480px) {
 body.woocommerce-cart table.cart tr.cart_item { grid-template-columns:76px minmax(0,1fr); padding:28px 18px 22px; gap:18px; }
 body.woocommerce-cart table.cart .product-thumbnail { grid-column:1; grid-row:1 / 3; }
 body.woocommerce-cart table.cart .product-thumbnail img { width:76px!important; }
 body.woocommerce-cart table.cart .product-name { grid-column:2; font-size:16px; padding-right:0!important; }
 body.woocommerce-cart table.cart .product-quantity { grid-column:2; grid-row:2; }
 body.woocommerce-cart table.cart .product-subtotal { grid-column:1 / -1; grid-row:3; text-align:right!important; border-top:1px solid #deded2!important; padding-top:14px!important; }
 body.woocommerce-cart .cart-collaterals .cart_totals { padding:22px 18px; }
 body.woocommerce-cart .cart_totals table td:before { color:#243e32; }
}
/* Brand-coloured WooCommerce notices retain error/success semantics. */
.woocommerce .woocommerce-info, .woocommerce .woocommerce-message, .woocommerce .woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-error { background:#eeece2!important; color:#243e32!important; border-top-color:#718569!important; box-shadow:none!important; border-radius:3px; font-size:15px; line-height:1.7; }
.woocommerce-info:before, .woocommerce-message:before { color:#466b57!important; }
.woocommerce-error { border-top-color:#a65d48!important; }
.woocommerce-error:before { color:#a65d48!important; }
.woocommerce-info a, .woocommerce-message a, .woocommerce-error a { color:#365747!important; text-decoration:underline; }
.wc-block-components-notice-banner.is-info, .wc-block-components-notice-banner.is-success { background:#eeece2!important; border-color:#718569!important; color:#243e32!important; }
.wc-block-components-notice-banner.is-info > svg, .wc-block-components-notice-banner.is-success > svg { background:#466b57!important; }
body.woocommerce-checkout #ship-to-different-address { margin:24px 0 20px; padding:16px 18px; background:#eeece2; border:1px solid #d9ddcf; border-radius:3px; font-family:inherit; font-size:16px!important; font-weight:400!important; line-height:1.5; color:#365747; }
body.woocommerce-checkout #ship-to-different-address label, body.woocommerce-checkout #ship-to-different-address span { font-size:16px!important; font-weight:400!important; line-height:1.5; }
body.woocommerce-checkout #ship-to-different-address input { accent-color:#466b57; }

body.woocommerce-cart table.cart tr.cart_item td.product-price { display:none!important; }
body.woocommerce-cart table.cart .quantity { display:flex; box-sizing:border-box; }
body.woocommerce-cart table.cart .quantity input.qty { flex:1 1 0; width:0; min-width:0; padding:0!important; text-align:center; border:0; background:transparent; }
body.woocommerce-cart table.cart .quantity .q_inc, body.woocommerce-cart table.cart .quantity .q_dec { flex:0 0 30px; width:30px; justify-content:center; align-items:center; }

/* Theme mobile wrapper must preserve the product card grid. */
body.woocommerce-cart table.cart tr.cart_item td.mobile_cell { display:contents!important; }

body.woocommerce-cart table.cart tr.cart_item td.mobile_cell > table, body.woocommerce-cart table.cart tr.cart_item td.mobile_cell > table > tbody, body.woocommerce-cart table.cart tr.cart_item td.mobile_cell > table > tbody > tr { display:contents!important; }
body.woocommerce-checkout .woocommerce-additional-fields > h3 { font-family:inherit!important; font-size:19px!important; font-weight:500!important; line-height:1.4; color:#365747; margin:24px 0 14px; }

/* Checkout order button follows the site palette. */
body.woocommerce-checkout #payment #place_order { background:#243e32!important; color:#fff!important; border-color:#243e32!important; }
body.woocommerce-checkout #payment #place_order:hover, body.woocommerce-checkout #payment #place_order:focus-visible { background:#365747!important; color:#fff!important; border-color:#365747!important; }

/* Center desktop navigation and cart vertically in the header. */
@media(min-width:1025px) {
 .elementor-6 .elementor-element.elementor-element-86969d8 { align-items:center!important; }
 .elementor-6 .elementor-element.elementor-element-a263623 { align-items:center!important; }
}

/* Give cart and checkout controls room on small screens. */
@media (max-width: 480px) {
 body.woocommerce-checkout .woocommerce form .form-row-first, body.woocommerce-checkout .woocommerce form .form-row-last { width:100%; float:none; }
 body.woocommerce-checkout #order_review { padding-left:10px; padding-right:10px; }
 body.woocommerce-checkout #payment { padding:12px!important; }
 body.woocommerce-checkout #payment .payment_box { padding-left:0!important; padding-right:0!important; }
 body.woocommerce-checkout #order_review table th, body.woocommerce-checkout #order_review table td { padding:12px 6px; }
 body.woocommerce-checkout #order_review table .product-name { width:60%; }
 body.woocommerce-checkout #order_review table .amount { white-space:nowrap; }
 body.woocommerce-checkout #place_order { width:100%; padding:15px 10px!important; font-size:15px; }
 body.woocommerce-checkout .woocommerce-privacy-policy-text { font-size:14px; line-height:1.65; }
 body.woocommerce-checkout .input-text, body.woocommerce-checkout select, body.woocommerce-checkout .select2-selection { font-size:16px!important; }
 body.woocommerce-cart .cart_totals #shipping_method { text-align:left; clear:both; padding-top:10px; }
 body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { white-space:normal; padding:16px 10px!important; font-size:16px; }
}

@media (max-width:480px) {
 body.woocommerce-checkout #payment .wcpay-upe-element { padding:0!important; }
 body.woocommerce-checkout #payment fieldset.wc-payment-form { margin-left:0; margin-right:0; min-width:0; }
}
