/* Natural theme — glue around the prototype markup */
html{scrollbar-gutter:stable}
body{margin:0;background:#efebe3;color:#1a1a17;font-family:'Hanken Grotesk',sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.nt-root{background:#efebe3;color:#1a1a17;font-family:'Hanken Grotesk',sans-serif;font-size:17px;line-height:1.6;overflow-x:clip}
.nt-root button{cursor:pointer;font-family:inherit}
.nt-root a{color:inherit}
body.admin-bar [data-hdr]{top:32px!important}
@media (max-width:782px){body.admin-bar [data-hdr]{top:46px!important}}

/* two header layouts: desktop from 1024px, phone/tablet below */
header[data-hdr]:not(.nt-hd-phone){display:flex}
@media (max-width:1023px){header.nt-hd-desk{display:none!important}}
@media (min-width:1024px){header.nt-hd-phone,[data-mobmenu]{display:none!important}}

/* home: thermal journey has its own phone layout */
@media (max-width:899px){[data-nt=desk]{display:none!important}}
@media (min-width:900px){[data-nt=phone]{display:none!important}}

/* closed states (the prototype was captured open) */
[data-mega]{clip-path:inset(0 0 100% 0)!important;pointer-events:none!important}
header.nt-mega-open [data-mega]{clip-path:inset(0 0 0% 0)!important;pointer-events:auto!important}
[data-mobmenu]{clip-path:inset(0 0 100% 0)!important;pointer-events:none!important}
body.nt-mob-open [data-mobmenu]{clip-path:inset(0 0 0% 0)!important;pointer-events:auto!important}
.nt-bag-ov{opacity:0;pointer-events:none}
.nt-bag{transform:translateX(102%)}
body.nt-bag-open .nt-bag-ov{opacity:1;pointer-events:auto}
body.nt-bag-open .nt-bag{transform:translateX(0)}
body.nt-lock{overflow:hidden}

/* ---------- WooCommerce pages in the site design ---------- */
.nt-page-title{margin:0 0 clamp(28px,4vw,56px);font-family:'Newsreader',serif;font-weight:300;font-size:clamp(48px,6vw,96px);line-height:1;letter-spacing:-.04em}
.nt-content{font-size:16px}
.nt-content a{text-underline-offset:4px}
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;margin:0 0 24px;padding:16px 20px;background:#f6f2ea;border:1px solid rgba(26,26,23,.16);font-size:15px}
.woocommerce-error{border-color:rgba(179,45,46,.45);color:#8a2324}
.woocommerce-message .button,.woocommerce-info .button{float:right;margin-left:16px}
.nt-root .button,.nt-root button.button,.nt-root input.button,.nt-root #place_order,.nt-root .checkout-button{display:inline-block;border:0;border-radius:0;background:#0d2b33;color:#f3efe7;padding:17px 26px;font:600 12px/1 'Hanken Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .3s}
.nt-root .button:hover,.nt-root #place_order:hover,.nt-root .checkout-button:hover{background:#a35f45}
.nt-root .button:disabled,.nt-root .button.disabled{opacity:.4;cursor:not-allowed}
.nt-root table.shop_table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 28px}
.nt-root table.shop_table th{font:600 11px/1 'Hanken Grotesk',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#a35f45;text-align:left;padding:14px 10px;border-bottom:1px solid #1a1a17}
.nt-root table.shop_table td{padding:20px 10px;border-bottom:1px solid rgba(26,26,23,.14);vertical-align:top}
.nt-root table.shop_table .product-name a{font-family:'Newsreader',serif;font-size:22px;text-decoration:none}
.nt-root table.shop_table td.product-thumbnail img{width:96px;height:72px;object-fit:cover;display:block}
.nt-root table.shop_table .product-remove a{font-size:22px;text-decoration:none;color:#5e5a51}
.nt-root dl.variation{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0;font-size:13.5px;color:#5e5a51}
.nt-root dl.variation dt{font-weight:500}
.nt-root dl.variation dd{margin:0}
.nt-root dl.variation dd p{margin:0}
.nt-root .cart_totals h2,.nt-root #order_review_heading,.nt-root .woocommerce-billing-fields h3,.nt-root .woocommerce-additional-fields h3,.nt-root .woocommerce-order-details__title,.nt-root .woocommerce-column__title{font-family:'Newsreader',serif;font-weight:300;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;margin:0 0 18px}
.nt-root .cart-collaterals{display:flex;justify-content:flex-end}
.nt-root .cart_totals{width:min(460px,100%)}
.nt-root .order-total .amount{font-family:'Newsreader',serif;font-size:32px}
.nt-root .woocommerce form .form-row,.nt-root form.checkout .form-row{margin:0 0 16px;display:flex;flex-direction:column;gap:6px}
.nt-root form .form-row label{font-size:13px;font-weight:500;color:#3d3a34}
.nt-root .woocommerce input[type=text],.nt-root .woocommerce input[type=email],.nt-root .woocommerce input[type=tel],.nt-root .woocommerce input[type=password],.nt-root .woocommerce input[type=number],.nt-root .woocommerce select,.nt-root .woocommerce textarea{width:100%;box-sizing:border-box;padding:14px 16px;border:1px solid rgba(26,26,23,.22);border-radius:0;background:#f6f2ea;font:400 16px/1.4 'Hanken Grotesk',sans-serif;color:#1a1a17}
.nt-root .woocommerce input:focus,.nt-root .woocommerce select:focus,.nt-root .woocommerce textarea:focus{outline:2px solid #0d2b33;outline-offset:-1px}
.nt-root form.checkout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);align-items:start}
.nt-root form.checkout #customer_details{grid-column:1}
.nt-root form.checkout #order_review_heading,.nt-root form.checkout #order_review{grid-column:2}
.nt-root form.checkout #order_review_heading{grid-row:1;align-self:end}
.nt-root form.checkout #order_review{grid-row:2;background:#f6f2ea;border:1px solid rgba(26,26,23,.16);padding:clamp(18px,2.4vw,30px)}
.nt-root form.checkout #customer_details{grid-row:1/span 2}
.nt-root .col2-set .col-1,.nt-root .col2-set .col-2{width:100%}
.nt-root #payment ul.payment_methods{list-style:none;margin:0 0 18px;padding:0}
.nt-root #payment .payment_box{font-size:13.5px;color:#5e5a51;margin:8px 0 0}
.nt-root .woocommerce-privacy-policy-text{font-size:13px;color:#5e5a51}
.nt-root #place_order{width:100%;padding:20px}
.nt-root .woocommerce-order-overview{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px 40px;margin:0 0 32px}
.nt-root .woocommerce-order-overview li{font-size:13px;color:#5e5a51}
.nt-root .woocommerce-order-overview strong{display:block;font-size:18px;color:#1a1a17;font-weight:500}
.nt-root .woocommerce-thankyou-order-received{font-family:'Newsreader',serif;font-size:clamp(28px,3vw,40px);margin:0 0 24px}
.nt-root .wc-item-meta{list-style:none;padding:0;margin:8px 0 0;font-size:13.5px;color:#5e5a51}
.nt-root .wc-item-meta p{display:inline;margin:0}
@media (max-width:899px){
	.nt-root form.checkout{grid-template-columns:minmax(0,1fr)}
	.nt-root form.checkout #customer_details,.nt-root form.checkout #order_review_heading,.nt-root form.checkout #order_review{grid-column:1;grid-row:auto}
	.nt-root table.shop_table_responsive thead{display:none}
	.nt-root table.shop_table_responsive tr{display:block;border-bottom:1px solid rgba(26,26,23,.14);padding:10px 0}
	.nt-root table.shop_table_responsive td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 0}
	.nt-root table.shop_table_responsive td::before{content:attr(data-title);font-size:13px;color:#5e5a51}
	.nt-root table.shop_table_responsive td.product-thumbnail::before,.nt-root table.shop_table_responsive td.product-remove::before{content:none}
}

/* ---------- product page buying form ---------- */
.nt-buy form.cart{display:flex;flex-direction:column;gap:22px;margin:0}
.nt-buy table.variations{border-collapse:collapse;width:100%}
.nt-buy table.variations th,.nt-buy table.variations td{display:block;padding:0;text-align:left}
.nt-buy table.variations th label{font-size:13px;font-weight:500;color:#3d3a34}
.nt-buy table.variations tr{display:flex;flex-direction:column;gap:12px;margin-bottom:6px}
.nt-buy table.variations select.nt-hidden-select{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.nt-buy .reset_variations{font-size:13px;color:#5e5a51;margin-top:8px;display:inline-block}
.nt-pills{display:flex;flex-wrap:wrap;gap:8px}
.nt-pill{padding:14px 20px;border-radius:6px;border:1px solid rgba(26,26,23,.25);background:transparent;color:#1a1a17;font:500 14.5px/1 'Hanken Grotesk',sans-serif;transition:.25s;cursor:pointer}
.nt-pill:hover{border-color:#1a1a17}
.nt-pill.on{background:#1a1a17;border-color:#1a1a17;color:#efebe3}
.nt-buy .woocommerce-variation-price .price{font-family:'Newsreader',serif;font-size:28px}
.nt-buy .woocommerce-variation-description p,.nt-buy .stock{margin:0;font-size:14px;color:#5e5a51}
.nt-buy .woocommerce-variation-add-to-cart,.nt-buy form.cart:not(.variations_form){display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}
.nt-buy .quantity{display:flex;align-items:center;border:1px solid rgba(26,26,23,.2);border-radius:6px}
.nt-buy .quantity input.qty{width:64px;height:56px;border:0;background:transparent;text-align:center;font-size:17px;padding:0}
.nt-buy .single_add_to_cart_button{flex:1 1 220px;max-width:460px;border:0!important;border-radius:6px!important;background:#0d2b33!important;color:#f3efe7!important;padding:20px!important;font:600 12.5px/1 'Hanken Grotesk',sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase!important;cursor:pointer;transition:background .3s}
.nt-buy .single_add_to_cart_button:hover{background:#a35f45!important}
.nt-buy .single_add_to_cart_button.disabled{opacity:.4}
.nt-buy .nb-form{order:-1}
.nt-buy .single_variation_wrap{display:flex;flex-direction:column;gap:16px}

/* checkout overlay below the WordPress admin bar (only shown to logged-in staff) */
body.admin-bar [data-screen-label="Checkout"]{top:32px!important}
@media (max-width:782px){body.admin-bar [data-screen-label="Checkout"]{top:46px!important}}

/* product page on phones: the photo scrolls away instead of sticking over the buying block */
@media (max-width: 899px) {
	.nt-gal { position: relative !important; top: auto !important; height: min(62vh, 520px) !important; }
}

/* Done screen e-ticket: the order number / gift code never breaks; on phones the QR stub goes under the dark panel */
.nt-tk-code{white-space:nowrap}
@media (max-width:600px){
	.nt-tk{grid-template-columns:minmax(0,1fr)!important}
	.nt-tk-main{padding:22px 20px!important;gap:18px!important}
	.nt-tk-main span[style*="font-size: 26px"]{font-size:22px!important}
	.nt-tk-head{gap:10px 16px;flex-wrap:wrap}
	.nt-tk-head>span{white-space:nowrap;letter-spacing:.14em!important}
	.nt-tk-meta{display:flex!important;flex-wrap:wrap;gap:14px 24px!important}
	.nt-tk-meta>div{min-width:0}
	.nt-tk-code{letter-spacing:0}
	.nt-tk-stub{border-left:0!important;border-top:2px dashed rgba(13,43,51,.25)!important;padding:20px!important}
}


/* cookie consent: a small card in the e-ticket's dark teal, bottom-left (full width on phones) */
.nt-consent{position:fixed;left:24px;bottom:24px;z-index:9990;width:min(420px,calc(100vw - 48px));box-sizing:border-box;padding:22px 22px 20px;border-radius:12px;border:1px solid rgba(243,239,231,.22);background:#0d2b33;color:#f3efe7;box-shadow:0 24px 60px -24px rgba(6,20,24,.55),0 0 0 1px rgba(6,20,24,.25);font:400 14.5px/1.55 'Hanken Grotesk',sans-serif;opacity:0;transform:translateY(16px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
.nt-consent.is-on{opacity:1;transform:none}
.nt-consent-k{display:block;margin-bottom:8px;font:600 11px/1 'Hanken Grotesk',sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#d9a088}
.nt-consent-t{margin:0 0 16px;color:rgba(243,239,231,.86)}
.nt-consent-b{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.nt-consent-b button{border:1px solid #f3efe7;border-radius:6px;padding:13px 18px;font:600 11.5px/1 'Hanken Grotesk',sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s}
.nt-consent-yes{background:#f3efe7;color:#0d2b33}
.nt-consent-yes:hover{background:#fff}
.nt-consent-no{background:transparent;color:#f3efe7}
.nt-consent-no:hover{background:rgba(243,239,231,.1)}
.nt-consent-l{margin-left:auto;font-size:13px;color:rgba(243,239,231,.75);text-decoration:underline;text-underline-offset:3px}
.nt-consent-l:hover{color:#f3efe7}
body.nt-consent-open [data-wa]{opacity:0!important;pointer-events:none!important}
@media (max-width:600px){.nt-consent{left:12px;right:12px;bottom:12px;width:auto;padding:18px}.nt-consent-b button{flex:1 1 auto}.nt-consent-l{margin-left:0}}
/* the contact page map until Google Maps is allowed */
.nt-map-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:#e2dccf;color:#3d3a34;font:400 14.5px/1.5 'Hanken Grotesk',sans-serif}
.nt-map-consent p{margin:0;max-width:300px}
.nt-map-consent button{border:0;border-radius:6px;padding:13px 20px;background:#0d2b33;color:#f3efe7;font:600 11.5px/1 'Hanken Grotesk',sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}

/* Pool photo galleries (Pools page) */
.nt-gal { width: 100%; min-width: 0; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.nt-gal img { position: absolute; inset: 0; opacity: 0; transition: opacity .7s cubic-bezier(.2,.7,.2,1); -webkit-user-drag: none; }
.nt-gal img.is-on { opacity: 1; z-index: 1; }
.nt-gal__n, .nt-gal__b { position: absolute; z-index: 2; bottom: 16px; }
.nt-gal__n { left: 16px; padding: 7px 11px; border-radius: 999px; background: rgba(20, 20, 18, .45); color: #f6f2ea; font: 500 11px/1 "Hanken Grotesk", sans-serif; letter-spacing: .14em; font-variant-numeric: tabular-nums; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.nt-gal__b { width: 42px; height: 42px; border: 0; border-radius: 50%; padding: 0; display: grid; place-items: center; cursor: pointer; background: rgba(246, 242, 234, .92); color: #1a1a17; transition: background .25s, transform .25s; }
.nt-gal__b:hover { background: #fff; transform: scale(1.06); }
.nt-gal__b:focus-visible { outline: 2px solid #a35f45; outline-offset: 2px; }
.nt-gal__prev { right: 68px; }
.nt-gal__next { right: 16px; }
@media (max-width: 600px) { .nt-gal__n, .nt-gal__b { bottom: 12px; } .nt-gal__n { left: 12px; } .nt-gal__b { width: 38px; height: 38px; } .nt-gal__prev { right: 58px; } .nt-gal__next { right: 12px; } }
@media (prefers-reduced-motion: reduce) { .nt-gal img, .nt-gal__b { transition: none; } }

/* Spa page: benefit lists inside each spa's text panel */
.nt-benefits { margin-top: 1.4em; padding-top: 1.1em; border-top: 1px solid rgba(243, 239, 231, 0.16); }
.nt-benefits__t { display: block; margin-bottom: 12px; font: 500 11px/1 "Hanken Grotesk", sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: rgb(217, 160, 136); }
.nt-benefits ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nt-benefits li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.45; color: rgb(230, 235, 234); }
.nt-benefits__i { flex: none; width: 22px; height: 22px; margin-top: -1px; border-radius: 4px; display: grid; place-items: center; background: rgba(217, 160, 136, 0.22); color: rgb(240, 196, 176); }

/* Villa page: "In the villa" amenity icons */
.nt-amen { max-width: 520px; }
.nt-amen__t { display: block; margin-bottom: 14px; font: 600 11px/1 "Hanken Grotesk", sans-serif; letter-spacing: 0.24em; text-transform: uppercase; color: rgb(163, 95, 69); }
.nt-amen ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.nt-amen li { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 1.35; color: rgb(61, 58, 52); }
.nt-amen__i { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(163, 95, 69, 0.08); color: rgb(26, 26, 23); }
@media (max-width: 420px) { .nt-amen ul { grid-template-columns: 1fr; } }

/* Home: "Inside Natural" lounge strip */
.nt-amb { display: flex; gap: clamp(12px, 1.6vw, 20px); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.nt-amb::-webkit-scrollbar { display: none; }
.nt-amb figure { flex: 0 0 auto; margin: 0; height: clamp(380px, 44vw, 620px); aspect-ratio: 4 / 5; overflow: hidden; border-radius: 4px; background: rgb(226, 220, 207); scroll-snap-align: start; }
.nt-amb img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 600px) { .nt-amb figure { height: auto; width: 82vw; } }
/* checkout fields: the examples inside empty fields read as examples, not as answers */
#nt-co input::placeholder { color: rgba(26, 26, 23, 0.32); opacity: 1; }
