/*
Theme Name: Argentina Tango
Theme URI: https://argentinatango.com
Author: Argentina Tango
Author URI: https://argentinatango.com
Description: A custom Classic WordPress theme for Argentina Tango, a Buenos Aires tango tour and travel operator. Provides a Tour Package custom post type, native Posts for the blog, and flexible page templates for a fully editable site.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: argentina-tango
Tags: custom-menu, custom-logo, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

/* -----------------------------------------------------------------------
   1. Design tokens
   ----------------------------------------------------------------------- */
:root {
	--color-primary: #017abe;
	--color-heading: #03181b;
	--color-text: #1a1a1a;
	--color-white: #ffffff;
	--color-light-bg: #ececec;
	--color-offwhite: #f6feff;
	--color-accent: #990000;
	--color-border: #e2e2e2;
	--color-overlay: rgba(3, 24, 27, 0.55);

	--font-heading: "Playfair Display", Georgia, serif;
	--font-body: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
	--font-accent: "Raleway", sans-serif;

	--container-max: 1200px;
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-pill: 32px;
}

/* -----------------------------------------------------------------------
   2. Reset & base
   ----------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--color-text);
	background: var(--color-white);
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-primary);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

a:hover,
a:focus {
	opacity: 0.8;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	color: var(--color-heading);
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 20px;
}

h1 { font-size: 48px; line-height: 1.2; }
h2 { font-size: 38px; line-height: 1.25; }
h3 { font-size: 28px; }
h4 { font-size: 24px; }
h5 { font-size: 20px; }
h6 { font-size: 17px; }

p {
	margin: 0 0 20px;
}

ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 20px;
}

.screen-reader-text,
.skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	width: auto;
	height: auto;
	padding: 12px 20px;
	background: var(--color-primary);
	color: var(--color-white);
	z-index: 10000;
	border-radius: var(--radius-sm);
}

.section-heading {
	text-align: center;
	margin-bottom: 40px;
}

.section-cta {
	text-align: center;
	margin-top: 30px;
}

/* -----------------------------------------------------------------------
   3. Buttons
   ----------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 15px;
	text-transform: capitalize;
	color: var(--color-white);
	background: var(--color-primary);
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-pill);
	padding: 12px 28px;
	cursor: pointer;
	line-height: 1.4;
}

.btn:hover,
.btn:focus {
	opacity: 0.9;
}

.btn-outline {
	background: transparent;
	color: var(--color-primary);
}

.btn-large {
	font-size: 16px;
	padding: 16px 34px;
}

/* Buttons authored through the block editor (Buttons/Button blocks) get
   the same look as .btn, keyed off the "Additional CSS Class" the editor
   sets on the block (e.g. "btn-primary", "btn-outline-light"). */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 15px;
	text-transform: capitalize;
	color: var(--color-white);
	background: var(--color-primary);
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-pill);
	padding: 12px 28px;
	line-height: 1.4;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus {
	opacity: 0.9;
	color: var(--color-white);
}

.wp-block-button__link::after {
	content: "\f061";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 0.85em;
}

.wp-block-button.btn-outline-light .wp-block-button__link {
	background: transparent;
	color: var(--color-white);
	border-color: rgba(255, 255, 255, 0.6);
}

.wp-block-button.btn-outline-light .wp-block-button__link:hover {
	color: var(--color-white);
}

/* -----------------------------------------------------------------------
   4. Header
   ----------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: var(--color-white);
	transition: box-shadow 0.2s ease;
}

.site-header.is-scrolled {
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.site-header-inner {
	max-width: 1600px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 11px 20px;
}

.site-branding img,
.custom-logo {
	width: 169px;
	height: auto;
}

.header-cta {
	display: flex;
	align-items: center;
	gap: 16px;
}

.header-account-link {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	color: var(--color-heading);
	font-size: 16px;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.header-account-link:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.main-navigation {
	flex: 1;
	display: flex;
	justify-content: center;
}

.primary-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px;
}

.submenu-indicator {
	font-weight: 600;
	color: var(--color-primary);
}

.primary-menu > li {
	position: relative;
}

/* Every top-level item has position:relative (needed for its dropdown), so
   without an explicit stacking order later items paint over earlier ones'
   open dropdowns in the overlap - handing :hover to the sibling underneath
   the cursor and closing the menu before it can be clicked. Raising the
   currently-open item above its siblings fixes that. */
.primary-menu > li:hover,
.primary-menu > li:focus-within {
	z-index: 20;
}

.primary-menu > li > a {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	font-size: 15px;
	font-weight: 500;
	text-transform: capitalize;
	color: var(--color-heading);
}

.primary-menu > li > a:hover,
.primary-menu > li.current-menu-item > a,
.primary-menu > li.current-menu-ancestor > a {
	color: var(--color-primary);
	opacity: 1;
}

.primary-menu .submenu-indicator i {
	font-size: 10px;
}

.primary-menu .sub-menu {
	position: absolute;
	z-index: 20;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: var(--color-heading);
	border-radius: var(--radius-sm);
	padding: 16px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.primary-menu > li:hover > .sub-menu,
.primary-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.primary-menu .sub-menu li a {
	display: block;
	padding: 8px 4px;
	color: var(--color-white);
	font-size: 14px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.primary-menu .sub-menu li:last-child a {
	border-bottom: none;
}

.primary-menu .sub-menu li a:hover {
	color: var(--color-primary);
}

.menu-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
}

.menu-toggle-bar {
	width: 26px;
	height: 2px;
	background: var(--color-heading);
}

/* -----------------------------------------------------------------------
   5. Hero bands (page-hero, home-hero)
   ----------------------------------------------------------------------- */
.page-hero {
	position: relative;
	background: var(--color-heading) var(--page-hero-image, none) center/cover no-repeat;
	color: var(--color-white);
	text-align: center;
	padding: 100px 20px;
}

.page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--color-overlay);
}

.page-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 800px;
	margin: 0 auto;
}

.page-hero-title {
	color: var(--color-white);
	margin-bottom: 12px;
}

.page-hero--compact {
	padding: 70px 20px;
	text-align: left;
}

.page-hero--compact .page-hero-inner {
	max-width: var(--container-max);
	margin: 0 auto;
}

.page-hero--compact .page-hero-title {
	margin-bottom: 0;
}

.page-hero-subtitle {
	font-size: 18px;
	opacity: 0.92;
	margin-bottom: 20px;
}

/* Homepage hero: single full-bleed photo with a dark overlay, left-aligned
   text, matching the source site's single background-image hero. */
.home-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 708px;
	background: var(--color-heading) var(--home-hero-image, none) center/cover no-repeat;
	color: var(--color-white);
}

.home-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
}

.home-hero-text {
	position: relative;
	z-index: 1;
	max-width: 620px;
	padding: 60px;
}

.home-hero-title {
	color: var(--color-white);
	font-size: 48px;
	margin-bottom: 20px;
}

.home-hero-subtitle {
	font-size: 17px;
	opacity: 0.9;
	margin-bottom: 30px;
	max-width: 560px;
}

.breadcrumbs {
	font-size: 14px;
	opacity: 0.85;
}

.breadcrumbs a {
	color: var(--color-white);
	text-decoration: underline;
}

.breadcrumbs .sep {
	margin: 0 6px;
}

/* -----------------------------------------------------------------------
   6. Homepage sections
   ----------------------------------------------------------------------- */
.home-intro,
.home-packages,
.home-blog {
	padding: 70px 0;
}

.home-packages {
	background: var(--color-light-bg);
}

/* -----------------------------------------------------------------------
   7. Card grids (packages, posts)
   ----------------------------------------------------------------------- */
.package-grid,
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.package-card,
.post-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.package-card:hover,
.post-card:hover {
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
	transform: translateY(-4px);
	opacity: 1;
}

.package-card-link,
.post-card-link {
	display: block;
	color: inherit;
}

.package-card-media,
.post-card-media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--color-light-bg);
}

.package-card-media img,
.post-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.package-card-duration {
	position: absolute;
	bottom: 10px;
	left: 10px;
	background: var(--color-accent);
	color: var(--color-white);
	font-size: 12px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
}

.package-card-body,
.post-card-body {
	padding: 22px;
}

.package-card-title,
.post-card-title {
	font-size: 20px;
	margin-bottom: 10px;
}

.package-card-excerpt,
.post-card-excerpt {
	font-size: 14px;
	color: var(--color-text);
	margin-bottom: 14px;
}

.package-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	font-weight: 600;
}

.package-card-price {
	color: var(--color-accent);
}

/* -----------------------------------------------------------------------
   8. Single Tour Package
   ----------------------------------------------------------------------- */
.package-single {
	padding: 70px 20px;
}

.package-includes,
.package-itinerary,
.package-book-cta {
	margin-bottom: 60px;
}

.package-includes-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.package-includes-column {
	background: var(--color-light-bg);
	border-radius: var(--radius-md);
	padding: 30px;
}

.check-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 12px;
	font-size: 15px;
}

.check-list i {
	color: var(--color-primary);
	margin-top: 4px;
}

.package-itinerary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}

.package-itinerary-day {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 24px;
}

.package-book-cta {
	text-align: center;
	background: var(--color-heading);
	color: var(--color-white);
	border-radius: var(--radius-md);
	padding: 60px 20px;
}

.package-book-cta .section-heading,
.package-book-cta h2 {
	color: var(--color-white);
}

.package-price {
	font-size: 20px;
	font-weight: 600;
	margin-bottom: 20px;
}

/* -----------------------------------------------------------------------
   9. Single blog post
   ----------------------------------------------------------------------- */
.single-post-layout {
	padding: 60px 20px;
	display: grid;
	grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr);
	gap: 50px;
	align-items: start;
}

.post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	font-size: 14px;
	color: var(--color-primary);
	margin-bottom: 30px;
	font-weight: 500;
}

.post-meta a {
	color: inherit;
}

.entry-content {
	font-size: 16px;
	line-height: 1.8;
}

.entry-content h2,
.entry-content h3 {
	margin-top: 40px;
}

.post-tags {
	margin: 30px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.post-tag {
	background: var(--color-light-bg);
	padding: 6px 16px;
	border-radius: var(--radius-pill);
	font-size: 13px;
}

.share-buttons {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 30px 0;
	padding: 20px 0;
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.share-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 18px;
	border-radius: var(--radius-sm);
	color: var(--color-white);
	font-size: 14px;
	font-weight: 600;
}

.share-button--facebook {
	background: #3b5998;
}

.share-button--twitter {
	background: #1da1f2;
}

.share-button--linkedin {
	background: #0077b5;
}

.share-button:hover {
	opacity: 0.9;
}

.single-post-sidebar {
	background: var(--color-light-bg);
	border-radius: var(--radius-md);
	padding: 24px;
}

.sidebar-post-list {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.sidebar-post-list-item a {
	display: flex;
	align-items: center;
	gap: 14px;
}

.sidebar-post-thumb {
	flex-shrink: 0;
	width: 70px;
	height: 60px;
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.sidebar-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sidebar-post-title {
	font-size: 14px;
	line-height: 1.5;
	color: var(--color-heading);
}

.sidebar-post-list-item a:hover .sidebar-post-title {
	color: var(--color-primary);
}

/* -----------------------------------------------------------------------
   10. Accordion / FAQ panels
   ----------------------------------------------------------------------- */
.accordion-list {
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.accordion-item {
	border: none;
	margin-bottom: 0;
	padding: 0;
}

.accordion-item-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 500;
	text-transform: capitalize;
	color: #000000;
	background: #f7f7f7;
	border: 1px solid #c0c0c0;
	padding: 14px 20px;
	list-style: none;
}

.accordion-item-heading::-webkit-details-marker {
	display: none;
}

.accordion-item-heading::after {
	content: "\002B";
	font-size: 16px;
	flex-shrink: 0;
}

.accordion-item:not([open]) .accordion-item-heading:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.accordion-item[open] .accordion-item-heading {
	background: #990000;
	color: var(--color-white);
}

.accordion-item[open] .accordion-item-heading::after {
	content: "\2212";
}

.accordion-item-body {
	padding: 20px;
	border: 1px solid #c0c0c0;
	border-top: none;
}

.page-template-page-accordion .page-content > h2:first-child {
	text-align: center;
}

/* -----------------------------------------------------------------------
   11. Forms (contact / booking / comments)
   ----------------------------------------------------------------------- */
.contact-page {
	padding: 70px 20px;
	display: flex;
	flex-direction: column;
	gap: 50px;
}

.contact-form-col--full .enquiry-form {
	max-width: none;
}

.contact-info-boxes {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 30px 0;
}

.contact-info-box {
	display: flex;
	align-items: center;
	gap: 16px;
}

.contact-info-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: 20px;
	flex-shrink: 0;
}

.contact-info-box h3 {
	font-size: 16px;
	margin-bottom: 4px;
}

.form-steps {
	display: flex;
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
}

.form-step {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

.form-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 19px;
	left: 50%;
	width: 100%;
	height: 1px;
	background: var(--color-border);
}

.form-step-circle {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid var(--color-primary);
	background: var(--color-white);
	color: var(--color-primary);
	font-weight: 600;
}

.form-step-label {
	color: var(--color-primary);
	font-weight: 600;
}

.form-step.is-active .form-step-circle {
	background: var(--color-primary);
	color: var(--color-white);
}

.enquiry-form {
	max-width: 760px;
	margin: 40px 0 0;
}

.enquiry-form fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

.form-step-actions {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	width: 100%;
	margin-top: 10px;
}

.form-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0 20px;
}

.form-grid.form-step-panel {
	display: none;
}

.form-grid.form-step-panel.is-active {
	display: flex;
}

.form-field {
	margin-bottom: 18px;
	width: 100%;
}

.form-field--w66 {
	width: calc(66% - 10px);
}

.form-field--w50 {
	width: calc(50% - 10px);
}

.form-field--w33 {
	width: calc(33% - 10px);
}

.form-field label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 6px;
}

.form-field .required {
	color: var(--color-accent);
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field input[type="date"],
.form-field select,
.form-field textarea,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: 15px;
	background: var(--color-white);
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
}

.form-field--error input,
.form-field--error textarea {
	border-color: var(--color-accent);
}

.form-field-error {
	display: block;
	color: var(--color-accent);
	font-size: 13px;
	margin-top: 4px;
}

.form-honeypot {
	position: absolute;
	left: -9999px;
}

.form-notice {
	max-width: 760px;
	margin: 0 auto 30px;
	padding: 16px 20px;
	border-radius: var(--radius-sm);
}

.form-notice--success {
	background: #e5f7ee;
	color: #0a6b3c;
}

.form-notice--error {
	background: #fdeaea;
	color: #a11414;
}

/* -----------------------------------------------------------------------
   12. Footer
   ----------------------------------------------------------------------- */
.site-footer {
	background: var(--color-primary);
	color: var(--color-white);
}

.site-footer-inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 70px 20px;
}

.footer-columns {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
}

.footer-logo-box {
	display: inline-block;
	background: var(--color-white);
	border-radius: var(--radius-md);
	padding: 16px 20px;
	margin-bottom: 20px;
}

.footer-tagline {
	font-size: 15px;
	opacity: 0.92;
}

.footer-widget-title,
.footer-column h3 {
	font-family: var(--font-accent);
	font-size: 18px;
	font-weight: 600;
	color: var(--color-white);
	margin: 24px 0 14px;
}

.footer-icon-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
	font-size: 14px;
}

.footer-icon-list a,
.footer-link-list a {
	color: var(--color-white);
}

.footer-link-list li {
	margin-bottom: 10px;
	font-size: 16px;
}

.footer-link-list a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: opacity 0.15s ease, padding-left 0.15s ease;
}

.footer-link-list a::before {
	content: "\f061";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 11px;
	color: var(--color-white);
	opacity: 0.7;
}

.footer-link-list a:hover {
	opacity: 0.85;
	padding-left: 4px;
}

.footer-social-icons {
	display: flex;
	gap: 10px;
	margin: 20px 0;
}

.social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.5);
	color: var(--color-white);
}

.footer-payment-cards {
	max-width: 200px;
	margin-top: 10px;
}

.site-footer-bottom {
	background: var(--color-heading);
	text-align: center;
	padding: 20px;
	font-size: 14px;
}

/* -----------------------------------------------------------------------
   13. Comments
   ----------------------------------------------------------------------- */
.comments-area {
	max-width: 800px;
	margin: 0 auto;
	padding: 40px 20px;
}

.comment-list {
	margin: 30px 0;
}

.comment-body {
	display: flex;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--color-border);
}

.comment-author img {
	border-radius: 50%;
}

.comment-list .children {
	margin-left: 40px;
	list-style: none;
}

/* -----------------------------------------------------------------------
   14. Misc pages (404, archive layout)
   ----------------------------------------------------------------------- */
.error-404-content {
	text-align: center;
	padding: 100px 20px;
}

.archive-layout {
	display: grid;
	grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr);
	gap: 50px;
	padding: 60px 20px;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 40px;
}

.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border-radius: var(--radius-pill);
	background: var(--color-light-bg);
	color: var(--color-heading);
	font-weight: 500;
	text-decoration: none;
}

.nav-links .page-numbers.current {
	background: var(--color-primary);
	color: var(--color-white);
}

.nav-links .page-numbers.dots {
	background: none;
}

.nav-links a.page-numbers:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.nav-links .prev.page-numbers,
.nav-links .next.page-numbers {
	padding: 0 20px;
}

/* -----------------------------------------------------------------------
   15. Responsive
   ----------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.primary-menu {
		position: fixed;
		top: 0;
		right: 0;
		width: 300px;
		height: 100vh;
		background: var(--color-heading);
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		padding: 80px 24px 24px;
		transform: translateX(100%);
		transition: transform 0.25s ease;
		overflow-y: auto;
		z-index: 1000;
	}

	.main-navigation.nav-open .primary-menu {
		transform: translateX(0);
	}

	.primary-menu > li > a {
		color: var(--color-white);
		justify-content: space-between;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}

	.primary-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		display: none;
		background: rgba(255, 255, 255, 0.06);
	}

	.menu-item-has-children.submenu-open .sub-menu {
		display: block;
	}

	.menu-toggle {
		display: flex;
	}

	.package-grid,
	.post-grid,
	.package-includes-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-columns {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.archive-layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	h1 { font-size: 30px; }
	h2 { font-size: 26px; }
	h3 { font-size: 22px; }

	.home-hero-title { font-size: 30px; }

	.page-hero {
		padding: 70px 20px;
	}

	.home-hero {
		min-height: 500px;
	}

	.home-hero-text {
		padding: 60px 24px;
	}

	.package-grid,
	.post-grid,
	.package-includes-grid,
	.footer-columns {
		grid-template-columns: minmax(0, 1fr);
	}

	.site-header-inner {
		flex-wrap: nowrap;
		gap: 10px;
		padding: 10px 16px;
	}

	.site-branding img,
	.custom-logo {
		width: 110px;
	}

	.main-navigation {
		flex: 0 0 auto;
	}

	.header-cta {
		gap: 8px;
	}

	.header-cta .btn {
		padding: 8px 14px;
		font-size: 13px;
		flex-shrink: 0;
	}

	.contact-info-boxes {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   16. Homepage sections
   ----------------------------------------------------------------------- */
.btn-outline-light {
	background: transparent;
	color: var(--color-white);
	border-color: rgba(255, 255, 255, 0.6);
}

.btn-small {
	padding: 8px 18px;
	font-size: 13px;
}

.home-hero-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 16px;
}

.section-eyebrow {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 13px;
	font-weight: 600;
	color: var(--color-primary);
	margin-bottom: 8px;
}

.section-subtitle {
	text-align: center;
	margin-top: -20px;
	margin-bottom: 40px;
	color: var(--color-text);
}

/* Intro / quote section */
.home-intro {
	padding: 80px 0;
}

.home-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 60px;
	align-items: center;
}

.home-intro-media img {
	border-radius: var(--radius-md);
	width: 100%;
}

.home-intro-quote {
	margin: 30px 0;
	padding: 28px 32px;
	background: var(--color-primary);
	border-radius: var(--radius-md);
}

.home-intro-quote p {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 18px;
	color: var(--color-white);
	margin-bottom: 14px;
}

.home-intro-quote cite {
	font-style: normal;
	font-weight: 700;
	font-size: 16px;
	color: var(--color-white);
}

/* As Seen In */
.as-seen-in {
	padding: 60px 0;
	text-align: center;
}

.partner-logos-wrap {
	display: flex;
	align-items: center;
	gap: 20px;
	max-width: 1100px;
	margin: 30px auto 0;
}

.partner-logos-viewport {
	flex: 1;
	overflow: hidden;
}

.partner-logos-track {
	display: flex;
	transition: transform 0.4s ease;
}

.partner-logo-item {
	flex: 0 0 25%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 20px;
}

.partner-logo-item img {
	max-height: 60px;
	width: auto;
}

.partner-nav {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	background: var(--color-white);
	color: var(--color-heading);
	cursor: pointer;
}

.partner-nav:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

@media (max-width: 1024px) {
	.partner-logo-item {
		flex-basis: 33.333%;
	}
}

@media (max-width: 767px) {
	.partner-logo-item {
		flex-basis: 50%;
	}
}

/* Stat counters */
.stats-section {
	padding: 70px 0;
	background: #f7f7f7;
	color: var(--color-text);
}

.stats-content .section-heading {
	text-align: center;
}

/* The block editor wraps a Group block's own children in an extra
   ".wp-block-group__inner-container" div, so the grid has to target that
   wrapper rather than ".stats-grid-content" itself. */
.stats-grid-content > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
	text-align: center;
}

.stat-icon {
	width: 72px;
	height: 72px;
	color: var(--color-primary);
	margin-bottom: 16px;
}

.stat-value {
	display: block;
	font-family: var(--font-heading);
	font-size: 42px;
	font-weight: 700;
	color: var(--color-heading);
}

.stat-item h3 {
	color: var(--color-heading);
	font-size: 20px;
	margin: 8px 0 10px;
}

.stat-item p:last-child {
	font-size: 14px;
	opacity: 0.8;
	margin: 0;
}

/* Popular Packages category grid */
.popular-packages {
	padding: 80px 0;
	background: var(--color-white);
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.category-column {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 378px;
	padding: 20px;
	border-radius: 24px;
	background: var(--color-heading) var(--category-image, none) center/cover no-repeat;
	overflow: hidden;
}

.category-column::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 0%, var(--color-heading) 100%);
}

.category-column h3,
.category-column-list {
	position: relative;
	z-index: 1;
}

.category-column h3 {
	font-size: 20px;
	margin-bottom: 16px;
}

.category-column h3 a {
	color: var(--color-white);
}

.category-column-list li {
	font-size: 14px;
	margin-bottom: 10px;
}

.category-column-list i {
	color: var(--color-white);
}

.category-column-list a {
	color: var(--color-white);
}

.category-column-list a:hover {
	opacity: 0.8;
}

/* Package comparison table */
.package-comparison {
	padding: 60px 0 100px;
	background: #f8fbff;
}

.package-comparison .section-heading {
	color: #0a2540;
	margin-bottom: 10px;
}

.package-comparison .section-subtitle {
	color: #6c7a89;
}

.table-wrapper {
	overflow-x: auto;
	max-width: 1200px;
	margin: 0 auto;
}

.packages-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 640px;
	background: #ffffff;
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.packages-table th,
.packages-table td {
	padding: 18px 15px;
	text-align: center;
	border-bottom: 1px solid #e0e0e0;
	font-size: 15px;
	color: #0a2540;
}

.packages-table thead th {
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 16px;
}

.packages-table td:first-child,
.packages-table th:first-child {
	text-align: left;
	font-weight: 600;
}

.packages-table tbody tr:nth-child(even) {
	background: #f5f8ff;
}

.packages-table tbody tr:hover {
	background: #e6f0ff;
}

.packages-table .btn-outline.btn-small {
	background: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}

/* Instagram */
.instagram-section {
	padding: 80px 0;
	text-align: center;
}

.instagram-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 30px;
	margin-top: 30px;
}

.instagram-embed {
	border: none;
	width: 100%;
	max-width: 400px;
	border-radius: var(--radius-md);
}

/* Planning Your Trip */
.planning-trip {
	padding: 80px 0;
}

.planning-trip-panel {
	background: var(--color-heading);
	border-radius: 24px;
	padding: 80px 60px;
}

.planning-trip-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 30px;
}

.planning-trip-header .section-heading {
	margin: 0;
	text-align: left;
	color: var(--color-white);
}

.planning-trip-scroller {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	padding-bottom: 10px;
	scroll-snap-type: x proximity;
}

.planning-trip-item {
	flex: 0 0 200px;
	scroll-snap-align: start;
	border-radius: var(--radius-md);
	overflow: hidden;
	position: relative;
	display: block;
	height: 240px;
	color: var(--color-white);
}

.planning-trip-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.planning-trip-item span {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 16px;
	background: linear-gradient(to top, rgba(3, 24, 27, 0.85), transparent);
	font-weight: 600;
	font-size: 15px;
}

/* Why Choose Us */
.why-choose-us {
	padding: 80px 0;
	text-align: center;
}

.process-grid-content > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 30px;
	margin-top: 40px;
	text-align: left;
}

.process-step-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--color-primary);
	margin-bottom: 16px;
}

.process-step-icon i {
	font-size: 22px;
	color: var(--color-white);
}

.process-item p {
	font-size: 14px;
	margin: 0;
}

/* Testimonials */
.testimonials-section {
	padding: 80px 0;
	background: var(--color-light-bg);
}

.testimonials-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 40px;
}

.testimonials-header .section-heading {
	margin: 0;
	text-align: left;
}

.testimonials-slider {
	overflow: hidden;
	border-radius: var(--radius-md);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.testimonials-grid {
	display: flex;
	transition: transform 0.4s ease;
}

.testimonial-card {
	flex: 0 0 100%;
	width: 100%;
	background: var(--color-white);
	padding: 40px;
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 30px;
	align-items: center;
}

.testimonial-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 24px;
}

.testimonial-dots button {
	width: 11px;
	height: 11px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--color-border);
	cursor: pointer;
}

.testimonial-dots button.active {
	background: var(--color-primary);
}

.testimonial-card-photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--radius-md);
	overflow: hidden;
}

.testimonial-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.testimonial-card-icon {
	color: var(--color-primary);
	opacity: 0.3;
	font-size: 22px;
}

.testimonial-card-quote {
	font-size: 14px;
	line-height: 1.7;
	flex-grow: 1;
}

.testimonial-card-author strong {
	display: block;
	font-size: 15px;
}

.testimonial-card-author span {
	font-size: 13px;
	color: var(--color-primary);
}

@media (max-width: 1024px) {
	.home-intro-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.stats-grid-content > .wp-block-group__inner-container,
	.category-grid,
	.process-grid-content > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.stats-grid-content > .wp-block-group__inner-container,
	.category-grid,
	.process-grid-content > .wp-block-group__inner-container {
		grid-template-columns: minmax(0, 1fr);
	}

	.testimonial-card {
		grid-template-columns: minmax(0, 1fr);
	}

	.planning-trip-panel {
		padding: 50px 24px;
	}

	.planning-trip-header,
	.testimonials-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.teacher-intro-row {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   17. Teachers
   ----------------------------------------------------------------------- */
.teacher-single {
	padding: 70px 20px;
}

.teacher-intro-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px;
}

.teacher-intro-text {
	flex: 1 1 60%;
	min-width: 0;
}

.teacher-intro-media {
	flex: 1 1 35%;
	min-width: 0;
}

.teacher-intro-media img {
	border-radius: var(--radius-md);
	width: 100%;
}

.teacher-more {
	margin-top: 20px;
}

.teacher-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 20px;
}

.teacher-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	padding: 60px 0;
}

.teacher-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.teacher-card:hover {
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
	transform: translateY(-4px);
	opacity: 1;
}

.teacher-card-link {
	display: block;
	color: inherit;
}

.teacher-card-media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--color-light-bg);
}

.teacher-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.teacher-card-body {
	padding: 20px;
}

.teacher-card-title {
	font-size: 18px;
	margin-bottom: 8px;
}

.teacher-card-excerpt {
	font-size: 14px;
	color: var(--color-text);
}

.testimonial-single {
	padding: 70px 20px;
	max-width: 900px;
}

.testimonial-single .testimonial-card {
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

@media (max-width: 1024px) {
	.teacher-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.teacher-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* -----------------------------------------------------------------------
   18. Package/Service hub pages
   ----------------------------------------------------------------------- */
.package-hub {
	padding: 70px 20px;
}

.package-hub-intro,
.package-hub-notes {
	max-width: 1100px;
	margin: 0 auto 50px;
}

.package-hub-notes {
	margin-bottom: 0;
}

.package-hub-intro-row > .wp-block-group__inner-container,
.package-hub-notes-row > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
	gap: 40px;
}

.package-hub-intro-text,
.package-hub-notes-text {
	flex: 1 1 55%;
	min-width: 0;
}

.package-hub-intro-media,
.package-hub-notes-media {
	flex: 1 1 40%;
	min-width: 0;
}

.package-hub-intro-media img,
.package-hub-notes-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-md);
	display: block;
}

.package-hub-intro-text {
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 32px;
}

.package-hub-intro-text > p:first-child {
	background: var(--color-light-bg);
	border-radius: var(--radius-md);
	padding: 20px 24px;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 18px;
}

.package-hub-cta {
	margin-top: 20px;
}

.package-hub-notes-text h2 {
	margin-bottom: 24px;
}

.package-hub-notes-text ul {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 24px;
}

.package-hub-notes-text ul li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 1.6;
}

.package-hub-notes-text ul li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-primary);
	flex-shrink: 0;
	margin-top: 3px;
}

@media (max-width: 782px) {
	.package-hub-intro-row,
	.package-hub-notes-row {
		flex-direction: column;
	}

	.package-hub-intro-media,
	.package-hub-notes-media {
		width: 100%;
	}

	.contact-page {
		grid-template-columns: minmax(0, 1fr);
	}

	.single-post-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.form-field--w66,
	.form-field--w50,
	.form-field--w33 {
		width: 100%;
	}
}

.package-hub-tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 6px;
	margin-bottom: 60px;
	padding: 13px;
}

.package-hub-tier {
	background: var(--color-primary);
	color: var(--color-white);
	border-radius: 20px;
	padding: 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 16px;
}

.package-hub-tier h3 {
	color: var(--color-white);
	font-size: 17px;
	text-transform: uppercase;
	margin: 0;
}

.package-hub-tier p {
	font-size: 14px;
	margin: 0;
	opacity: 0.9;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

.package-hub-tier--highlight {
	background: var(--color-accent);
}

.btn-tier {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--color-white);
	color: var(--color-heading);
	border-radius: 50px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.btn-tier:hover {
	opacity: 0.9;
}

/* -----------------------------------------------------------------------
   19. Tango Experience detail pages (Tango Class, Milonga Discovery, etc.)
   ----------------------------------------------------------------------- */
.experience-detail-cta {
	max-width: 1100px;
	margin: 40px auto 0;
	background: var(--color-light-bg);
	border-radius: var(--radius-md);
	padding: 32px;
	text-align: center;
}

.experience-detail-cta h2 {
	margin: 0;
}

/* -----------------------------------------------------------------------
   20. About Us page
   ----------------------------------------------------------------------- */
.about-intro-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px;
}

.about-intro-row > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
	gap: 48px;
}

.about-intro-text,
.about-intro-media {
	flex: 1 1 50%;
	min-width: 0;
}

.about-intro-quote {
	margin-top: 24px;
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 32px;
}

.about-intro-quote > .wp-block-group__inner-container > p:first-child {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 18px;
	margin-bottom: 12px;
}

.about-intro-media img {
	width: 100%;
	border-radius: var(--radius-md);
	display: block;
}

.about-cards {
	max-width: 1200px;
	margin: 0 auto 60px;
	background: var(--color-light-bg);
	border-radius: 24px;
	padding: 50px 30px;
}

.about-cards > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.about-card {
	flex: 1 1 calc(25% - 24px);
	min-width: 220px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 28px;
}

.about-card h3 {
	margin-bottom: 12px;
}

.about-card p {
	margin: 0;
}

@media (max-width: 1024px) {
	.about-card {
		flex: 1 1 calc(50% - 24px);
	}
}

@media (max-width: 782px) {
	.about-intro-row > .wp-block-group__inner-container {
		flex-direction: column;
	}

	.about-card {
		flex: 1 1 100%;
	}
}

/* -----------------------------------------------------------------------
   21. Our Services page
   ----------------------------------------------------------------------- */
.services-intro-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px;
}

.services-intro-row > .wp-block-group__inner-container {
	display: flex;
	align-items: flex-start;
	gap: 48px;
}

.services-intro-text,
.services-intro-media {
	flex: 1 1 50%;
	min-width: 0;
}

.services-intro-quote {
	margin-bottom: 24px;
	background: var(--color-light-bg);
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 32px;
	text-align: center;
}

.services-intro-quote > .wp-block-group__inner-container > p:first-child {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 18px;
	margin-bottom: 12px;
}

.services-intro-media img {
	width: 100%;
	border-radius: var(--radius-md);
	display: block;
}

.services-list-section {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px 70px;
}

.services-list-section ul {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 24px 0;
}

.services-list-section ul li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.7;
}

.services-list-section ul li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-primary);
	flex-shrink: 0;
	margin-top: 3px;
}

@media (max-width: 782px) {
	.services-intro-row > .wp-block-group__inner-container {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   22. Jobs page
   ----------------------------------------------------------------------- */
.jobs-intro-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px;
}

.jobs-intro-row > .wp-block-group__inner-container {
	display: flex;
	align-items: center;
	gap: 48px;
}

.jobs-intro-text,
.jobs-intro-media {
	flex: 1 1 50%;
	min-width: 0;
}

.jobs-intro-text ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 20px 0;
}

.jobs-intro-text ul li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.6;
}

.jobs-intro-text ul li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-primary);
	flex-shrink: 0;
	margin-top: 3px;
}

.jobs-intro-media img {
	width: 100%;
	border-radius: var(--radius-md);
	display: block;
}

@media (max-width: 782px) {
	.jobs-intro-row > .wp-block-group__inner-container {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   23. Press page
   ----------------------------------------------------------------------- */
.press-intro-row {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px;
}

.press-intro-row > .wp-block-group__inner-container {
	display: flex;
	align-items: center;
	gap: 48px;
}

.press-intro-text,
.press-intro-media {
	flex: 1 1 50%;
	min-width: 0;
}

.press-intro-text ul {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 20px 0 0;
}

.press-intro-text ul li {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.press-date {
	font-size: 14px;
	font-weight: 600;
	opacity: 0.7;
}

.press-intro-text ul a {
	color: var(--color-primary);
	font-size: 16px;
	line-height: 1.5;
}

.press-intro-text ul a:hover {
	text-decoration: underline;
}

.press-intro-media img {
	width: 100%;
	border-radius: var(--radius-md);
	display: block;
}

@media (max-width: 782px) {
	.press-intro-row > .wp-block-group__inner-container {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   24. Why Us page
   ----------------------------------------------------------------------- */
.whyus-intro-box {
	max-width: 1100px;
	margin: 50px auto;
	background: var(--color-light-bg);
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 40px;
	text-align: center;
}

.whyus-intro-box h2 {
	margin-bottom: 16px;
}

.whyus-cards {
	max-width: 1200px;
	margin: 0 auto 60px;
	background: var(--color-light-bg);
	border-radius: 24px;
	padding: 50px 30px;
}

.whyus-cards > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.whyus-card {
	flex: 1 1 calc(20% - 24px);
	min-width: 180px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 24px;
}

.whyus-card h3 {
	margin-bottom: 10px;
}

.whyus-card p {
	margin: 0;
	font-size: 14px;
}

.whyus-final-section {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px 70px;
	text-align: center;
}

.whyus-final-section ul {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 24px 0 0;
	text-align: left;
}

.whyus-final-section ul li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.7;
}

.whyus-final-section ul li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-primary);
	flex-shrink: 0;
	margin-top: 3px;
}

@media (max-width: 1024px) {
	.whyus-card {
		flex: 1 1 calc(33.333% - 24px);
	}
}

@media (max-width: 782px) {
	.whyus-card {
		flex: 1 1 calc(50% - 24px);
	}
}

@media (max-width: 500px) {
	.whyus-card {
		flex: 1 1 100%;
	}
}

/* -----------------------------------------------------------------------
   25. Testimonials page
   ----------------------------------------------------------------------- */
.testimonials-grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px;
}

.testimonials-grid > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 50px;
}

.testimonial-block {
	flex: 1 1 calc(50% - 25px);
	min-width: 0;
	background: var(--color-light-bg);
	border: 1px solid var(--color-border);
	border-radius: 20px;
	padding: 20px;
}

.testimonial-block p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
}

@media (max-width: 782px) {
	.testimonial-block {
		flex: 1 1 100%;
	}
}

/* -----------------------------------------------------------------------
   26. Accordion page: optional trailing form (Tango Worldwide)
   ----------------------------------------------------------------------- */
.accordion-form {
	margin-top: 40px;
}

.accordion-form-intro {
	font-weight: 600;
	text-transform: uppercase;
	font-size: 14px;
	letter-spacing: 0.03em;
	color: var(--color-heading);
}

/* -----------------------------------------------------------------------
   27. Generic page: text + image intro layout (e.g. Tango Lesson,
   Personal Tango Partner) - reference uses a 50/50 two-column container
   with the image constrained well below full-column width and shadowed,
   stacking to a single column on mobile.
   ----------------------------------------------------------------------- */
.page-text-image {
	margin-top: 20px;
}

.page-text-image > .wp-block-group__inner-container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 40px;
}

.page-text-image-text {
	flex: 1 1 calc(50% - 20px);
	min-width: 0;
}

.page-text-image-text ul {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 16px 0 0;
}

.page-text-image-text ul li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
	line-height: 1.6;
}

.page-text-image-text ul li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-primary);
	flex-shrink: 0;
	margin-top: 3px;
}

.page-text-image-image {
	flex: 1 1 calc(50% - 20px);
	min-width: 0;
	text-align: center;
}

.page-text-image-image .wp-block-image img {
	width: 64%;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
}

@media (max-width: 767px) {
	.page-text-image > .wp-block-group__inner-container {
		flex-direction: column;
	}

	.page-text-image-image .wp-block-image img {
		width: 100%;
	}
}

/* -----------------------------------------------------------------------
   28. Form radio/checkbox groups (Tailor Made Packages)
   ----------------------------------------------------------------------- */
.form-section-heading {
	width: 100%;
	margin: 10px 0 16px;
	font-size: 20px;
}

.form-field-options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}

.form-field-option {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 400 !important;
	margin-bottom: 0 !important;
	width: auto;
}

.form-field-option input {
	width: auto;
}

/* -----------------------------------------------------------------------
   29. Apartments Rental page
   ----------------------------------------------------------------------- */
.rental-intro {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 20px 0;
	text-align: center;
}

.rental-form-heading {
	max-width: 1100px;
	margin: 30px auto 0;
	padding: 0 20px;
	text-align: center;
	font-size: 21px;
}

/* -----------------------------------------------------------------------
   30. Facts About Argentina page
   ----------------------------------------------------------------------- */
.facts-card {
	max-width: 900px;
	margin: 40px auto;
	padding: 30px;
	border-radius: 16px;
	background: linear-gradient(135deg, #f8f9fb, #eef1f5);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	font-family: 'Segoe UI', sans-serif;
}

.facts-title {
	text-align: center;
	font-size: 28px;
	margin-bottom: 25px;
	letter-spacing: 1px;
	color: #2c3e50;
	position: relative;
}

.facts-title::after {
	content: "";
	width: 60px;
	height: 3px;
	background: #0073ff;
	display: block;
	margin: 10px auto 0;
	border-radius: 5px;
}

.facts-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
}

.fact-item {
	background: #ffffff;
	padding: 15px 18px;
	border-radius: 10px;
	transition: 0.3s ease;
	border-left: 4px solid #0073ff;
}

.fact-item span {
	display: block;
	font-weight: 600;
	color: #555;
	font-size: 13px;
	margin-bottom: 5px;
}

.fact-item p {
	margin: 0;
	font-size: 15px;
	color: #222;
}

.fact-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
	border-left-color: #00c6ff;
}

@media (max-width: 768px) {
	.facts-grid {
		grid-template-columns: 1fr;
	}
}

/* -----------------------------------------------------------------------
   31. Useful Information page
   ----------------------------------------------------------------------- */
.info-card {
	max-width: 950px;
	margin: 50px auto;
	padding: 30px;
	border-radius: 18px;
	background: linear-gradient(135deg, #f5f9ff, #eef4ff);
	box-shadow: 0 12px 35px rgba(0, 0, 0, 0.08);
	font-family: 'Segoe UI', sans-serif;
}

.info-title {
	text-align: center;
	font-size: 28px;
	margin-bottom: 30px;
	color: #1a2b4c;
}

.info-section {
	margin-bottom: 30px;
}

.info-section h3 {
	margin-bottom: 15px;
	color: #0073ff;
	font-size: 18px;
	border-left: 4px solid #0073ff;
	padding-left: 10px;
}

.info-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
}

.info-item {
	background: #fff;
	padding: 14px 16px;
	border-radius: 10px;
	border-left: 4px solid #0073ff;
	transition: 0.3s ease;
}

.info-item span {
	display: block;
	font-size: 13px;
	color: #666;
	margin-bottom: 5px;
	font-weight: 600;
}

.info-item p {
	margin: 0;
	font-size: 14px;
	color: #222;
}

.info-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
	border-left-color: #00c6ff;
}

@media (max-width: 768px) {
	.info-grid {
		grid-template-columns: 1fr;
	}
}

/* -----------------------------------------------------------------------
   32. Weather page
   ----------------------------------------------------------------------- */
.weather-embed-wrapper {
	max-width: 1000px;
	width: 100%;
	margin: 40px auto;
	border-radius: 22px;
	overflow: hidden;
	background: #000000;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.3);
	position: relative;
	transition: all 0.3s ease;
}

@media (hover: hover) {
	.weather-embed-wrapper:hover {
		transform: translateY(-6px);
		box-shadow: 0 25px 70px rgba(0, 0, 0, 0.25);
	}
}

.weather-embed-wrapper iframe {
	width: 100%;
	height: 720px;
	border: none;
	display: block;
	position: relative;
	z-index: 2;
}

@media (max-width: 992px) {
	.weather-embed-wrapper {
		margin: 25px 15px;
		border-radius: 18px;
	}

	.weather-embed-wrapper iframe {
		height: 620px;
	}
}

@media (max-width: 768px) {
	.weather-embed-wrapper {
		margin: 18px 10px;
		border-radius: 16px;
	}

	.weather-embed-wrapper iframe {
		height: 520px;
	}
}

@media (max-width: 480px) {
	.weather-embed-wrapper {
		margin: 15px 8px;
		border-radius: 14px;
	}

	.weather-embed-wrapper iframe {
		height: 460px;
	}
}

/* -----------------------------------------------------------------------
   33. Currency Conversion page
   ----------------------------------------------------------------------- */
.currency-wrapper {
	max-width: 1000px;
	margin: 30px auto;
	font-family: "Segoe UI", Arial, sans-serif;
}

.currency-wrapper .top-note {
	background: #f8fafc;
	border-left: 6px solid #2563eb;
	padding: 14px 18px;
	border-radius: 6px;
	margin-bottom: 20px;
	font-size: 14px;
	color: #333;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.currency-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

.currency-table thead {
	background: linear-gradient(135deg, #2563eb, #1e40af);
	color: #fff;
}

.currency-table th {
	padding: 14px;
	text-align: left;
	font-size: 14px;
	letter-spacing: 0.5px;
}

.currency-table td {
	padding: 12px 14px;
	border-bottom: 1px solid #eee;
	font-size: 14px;
}

.currency-table tbody tr:nth-child(even) {
	background: #f9fafb;
}

.currency-table tbody tr:hover {
	background: #e0f2fe;
	transform: scale(1.01);
	transition: 0.2s ease;
}

.currency-table td:nth-child(2) {
	font-weight: bold;
	color: #2563eb;
}

.currency-wrapper .code {
	color: #777;
	font-size: 12px;
	margin-left: 4px;
}

@media (max-width: 768px) {
	.currency-table th,
	.currency-table td {
		font-size: 12px;
		padding: 8px;
	}
}

/* -----------------------------------------------------------------------
   34. Verify Order Details page (Tour Package checkout)
   ----------------------------------------------------------------------- */
.verify-order-page {
	padding: 60px 20px 80px;
}

.verify-order-page .form-notice {
	max-width: none;
}

.verify-order-heading {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 8px 0 20px;
	padding-bottom: 10px;
	font-size: 19px;
	font-weight: 600;
	color: var(--color-heading);
	border-bottom: 2px solid var(--color-border);
}

.verify-order-heading:not(:first-child) {
	margin-top: 36px;
}

.verify-order-heading i {
	color: var(--color-primary);
	font-size: 16px;
}

.verify-order-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 340px);
	align-items: start;
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto;
}

.verify-order-main {
	min-width: 0;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 32px 36px 8px;
	box-shadow: 0 4px 20px rgba(3, 24, 27, 0.05);
}

.package-details-box {
	width: 100%;
	margin: 0 0 8px;
	padding: 20px 20px 20px;
	background: var(--color-offwhite);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
}

.package-details-box .form-field--w100 input {
	max-width: 160px;
}

.package-details-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 40px;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px dashed var(--color-border);
}

.package-details-summary-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.package-details-summary-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #888;
}

.package-details-summary-label i {
	color: var(--color-primary);
}

.package-details-summary-value {
	font-size: 16px;
	font-weight: 600;
	color: var(--color-heading);
}

.package-price-note {
	width: 100%;
	margin: 0 0 18px;
	font-size: 13px;
	line-height: 1.6;
	color: #666;
}

.verify-order-sidebar {
	position: sticky;
	top: 20px;
}

.order-summary-card {
	background: var(--color-white);
	border-radius: var(--radius-md);
	padding: 28px 26px;
	box-shadow: 0 10px 30px rgba(3, 24, 27, 0.1);
	border-top: 4px solid var(--color-primary);
}

.order-summary-card h3 {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 600;
	color: var(--color-heading);
}

.order-summary-card .form-field {
	margin-bottom: 16px;
}

.order-summary-card .booking-review-price {
	margin: 16px 0 20px;
}

.pay-full-toggle {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 2px 0 14px;
	font-size: 13.5px;
	line-height: 1.5;
	color: #555;
	cursor: pointer;
}

.pay-full-toggle input {
	width: 16px;
	height: 16px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--color-primary);
	cursor: pointer;
}

.verify-order-payment-methods {
	margin: 20px 0 4px;
	padding-top: 18px;
	border-top: 1px solid var(--color-border);
}

.verify-order-payment-methods h4 {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #888;
}

.verify-order-payment-methods .wc_payment_methods {
	margin-bottom: 0;
}

.verify-order-payment-methods .wc_payment_method {
	padding: 12px 14px;
}

.order-summary-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-top: 16px;
	padding: 16px 20px;
	font-size: 16px;
}

.order-summary-trust {
	list-style: none;
	margin: 20px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--color-border);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.order-summary-trust li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 12.5px;
	line-height: 1.5;
	color: #666;
}

.order-summary-trust i {
	margin-top: 2px;
	color: var(--color-primary);
	flex-shrink: 0;
}

.order-summary-trust a {
	color: var(--color-primary);
}

@media (max-width: 900px) {
	.verify-order-layout {
		grid-template-columns: 1fr;
	}

	.verify-order-sidebar {
		position: static;
		order: -1;
	}

	.verify-order-main {
		padding: 24px 20px 4px;
	}
}

/* -----------------------------------------------------------------------
   35. Booking Review page (replaces the default WooCommerce Cart page)
   ----------------------------------------------------------------------- */
.booking-review-page {
	padding: 60px 20px 80px;
}

.booking-review-empty {
	max-width: 480px;
	margin: 0 auto;
	padding: 60px 30px;
	text-align: center;
}

.booking-review-empty i {
	font-size: 40px;
	color: var(--color-primary);
	margin-bottom: 16px;
}

.booking-review-empty h2 {
	margin-bottom: 10px;
}

.booking-review-empty p {
	margin-bottom: 26px;
	color: #666;
}

.booking-review-card {
	max-width: 720px;
	margin: 0 auto;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 40px 44px;
	box-shadow: 0 10px 30px rgba(3, 24, 27, 0.08);
}

.booking-review-header {
	text-align: center;
	margin-bottom: 30px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--color-border);
}

.booking-review-header h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-bottom: 8px;
	font-size: 24px;
}

.booking-review-header h2 i {
	color: var(--color-primary);
	font-size: 20px;
}

.booking-review-header p {
	color: #666;
	font-size: 14px;
}

.booking-review-section {
	margin-bottom: 28px;
}

.booking-review-section h3 {
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--color-primary);
	margin-bottom: 14px;
}

.booking-review-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 14px 24px;
	margin: 0;
}

.booking-review-list > div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.booking-review-list dt {
	font-size: 12px;
	color: #888;
}

.booking-review-list dd {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	color: var(--color-heading);
}

.booking-review-price {
	margin: 30px 0;
	padding: 22px 24px;
	background: var(--color-offwhite);
	border-radius: var(--radius-sm);
}

.booking-review-price > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 15px;
	padding: 6px 0;
}

.booking-review-price-due {
	margin-top: 6px;
	padding-top: 14px !important;
	border-top: 1px dashed var(--color-border);
}

.booking-review-price-due span {
	font-weight: 600;
	color: var(--color-heading);
}

.booking-review-price-due em {
	font-style: normal;
	color: #888;
	font-weight: 400;
}

.booking-review-price-due strong {
	font-size: 24px;
	color: var(--color-primary);
}

.booking-review-price p {
	margin: 10px 0 0;
	font-size: 12.5px;
	color: #666;
}

.booking-review-actions {
	display: flex;
	gap: 16px;
	margin-bottom: 26px;
}

.booking-review-actions .btn {
	flex: 1;
	justify-content: center;
}

.booking-review-payment-form {
	display: flex;
	flex: 1;
}

.booking-review-payment-form .btn {
	width: 100%;
	border: none;
	cursor: pointer;
	font-size: inherit;
}

.booking-review-submit {
	display: flex;
	align-items: center;
	gap: 8px;
}

.booking-review-trust {
	margin: 0;
	padding-top: 20px;
	border-top: 1px solid var(--color-border);
}

@media (max-width: 600px) {
	.booking-review-card {
		padding: 28px 22px;
	}

	.booking-review-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.booking-review-actions {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   36. WooCommerce Checkout page - re-skins the block checkout's payment
   gateway selector, form fields, order summary and Place Order button to
   match the rest of the site instead of WooCommerce's bare default look.
   The checkout itself (fields, gateway list, order placement) is still
   entirely WooCommerce's own - only colors/radius/type are touched here,
   never layout, so its behaviour stays intact. Several rules need
   !important since wc-blocks-style-css sets these with equal or higher
   specificity and loads after this stylesheet.
   ----------------------------------------------------------------------- */
.woocommerce-checkout .wc-block-components-checkout-step__title {
	font-family: var(--font-heading);
	font-size: 19px;
	color: var(--color-heading);
}

.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-blocks-components-select__select {
	border-radius: var(--radius-sm) !important;
	border-color: var(--color-border) !important;
	font-family: var(--font-body);
}

.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-blocks-components-select__select:focus {
	border-color: var(--color-primary) !important;
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
}

.woocommerce-checkout .wc-block-components-radio-control__option {
	border-radius: var(--radius-sm) !important;
	border-color: var(--color-border) !important;
}

.woocommerce-checkout .wc-block-components-radio-control__option-checked {
	border-color: var(--color-primary) !important;
	background: var(--color-offwhite);
	box-shadow: none !important;
}

.woocommerce-checkout .wc-block-components-radio-control__input:checked {
	background-color: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
}

.woocommerce-checkout .wc-block-components-payment-method-label {
	font-weight: 600;
	color: var(--color-heading);
}

.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
	border-radius: var(--radius-pill) !important;
	font-family: var(--font-body);
	font-weight: 600;
}

.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus {
	opacity: 0.9;
}

.woocommerce-checkout .wc-block-components-order-summary,
.woocommerce-checkout .wc-block-components-totals-wrapper,
.woocommerce-checkout .wc-block-components-panel {
	border-radius: var(--radius-md);
	border-color: var(--color-border) !important;
}

.woocommerce-checkout .wc-block-components-checkout-order-summary__title,
.woocommerce-checkout .wc-block-components-product-name {
	font-family: var(--font-heading);
}

.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--color-primary);
	font-weight: 700;
	font-size: 20px;
}

/* -----------------------------------------------------------------------
   37. Payment page (page-book-now-payment.php) - the custom gateway picker
   that replaces WooCommerce's Checkout page for this site. Reuses
   WooCommerce's own payment-method markup/classes (wc_payment_methods,
   payment_box, etc.) so third-party gateway plugins that target those
   selectors keep working; only visual styling is added here.
   ----------------------------------------------------------------------- */
.wc_payment_methods {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.wc_payment_method {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 16px 18px;
	margin-bottom: 12px;
}

.wc_payment_method + .wc_payment_method {
	margin-top: 0;
}

.wc_payment_method input.input-radio {
	width: 16px;
	height: 16px;
	margin-right: 8px;
	accent-color: var(--color-primary);
}

.wc_payment_method label {
	font-weight: 600;
	color: var(--color-heading);
	cursor: pointer;
}

.wc_payment_method .payment_box {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--color-border);
	font-size: 14.5px;
	color: #555;
}

.wc_payment_method .payment_box p {
	margin: 0 0 10px;
}

.wc-pay-form .form-row {
	margin-top: 4px;
}

.wc-pay-form #place_order {
	width: 100%;
	justify-content: center;
	display: flex;
	align-items: center;
	gap: 8px;
	border: none;
	cursor: pointer;
	font-size: inherit;
}

.wc-pay-form #place_order:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* -----------------------------------------------------------------------
   38. My Account page - re-skins WooCommerce's classic My Account
   templates (dashboard, orders, addresses, account details, login/
   register, and the custom "My Bookings" tab added in inc/woocommerce.php)
   to match the rest of the site instead of WooCommerce's bare default
   look. Structure/behaviour is untouched, only layout and visual styling.
   ----------------------------------------------------------------------- */
body.woocommerce-account .page-content.container > .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 36px;
	align-items: start;
}

.woocommerce-MyAccount-navigation {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 10px;
	position: sticky;
	top: 20px;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation-link {
	margin-bottom: 2px;
}

.woocommerce-MyAccount-navigation-link a {
	display: block;
	padding: 12px 16px;
	border-radius: var(--radius-sm);
	color: var(--color-heading);
	font-weight: 600;
	font-size: 14.5px;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocommerce-MyAccount-navigation-link a:hover {
	background: var(--color-offwhite);
}

.woocommerce-MyAccount-navigation-link.is-active a {
	background: var(--color-primary);
	color: var(--color-white);
}

.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 8px;
	border-top: 1px solid var(--color-border);
	padding-top: 8px;
}

.woocommerce-MyAccount-content {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 32px 36px;
	box-shadow: 0 4px 20px rgba(3, 24, 27, 0.05);
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-family: var(--font-heading);
	color: var(--color-heading);
	margin-top: 0;
}

.woocommerce-MyAccount-content a {
	color: var(--color-primary);
}

body.woocommerce-account .woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 18px 0;
	font-size: 14.5px;
}

body.woocommerce-account .woocommerce table.shop_table th {
	text-align: left;
	padding: 12px 14px;
	background: var(--color-offwhite);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #888;
	border-bottom: 1px solid var(--color-border);
}

body.woocommerce-account .woocommerce table.shop_table td {
	padding: 14px;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-heading);
}

body.woocommerce-account .woocommerce .button,
body.woocommerce-account .woocommerce .woocommerce-Button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 9px 20px;
	border-radius: var(--radius-pill);
	background: var(--color-primary);
	color: var(--color-white) !important;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

body.woocommerce-account .woocommerce .button:hover,
body.woocommerce-account .woocommerce .woocommerce-Button:hover {
	opacity: 0.9;
}

body.woocommerce-account .woocommerce .woocommerce-pagination {
	margin-top: 16px;
}

body.woocommerce-account .woocommerce .woocommerce-form-row,
body.woocommerce-account .woocommerce .form-row {
	margin-bottom: 18px;
}

body.woocommerce-account .woocommerce label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
	font-size: 13.5px;
	color: var(--color-heading);
}

body.woocommerce-account .woocommerce .woocommerce-Input,
body.woocommerce-account .woocommerce input.input-text,
body.woocommerce-account .woocommerce select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: 14.5px;
}

body.woocommerce-account .woocommerce .woocommerce-Input:focus,
body.woocommerce-account .woocommerce input.input-text:focus,
body.woocommerce-account .woocommerce select:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-primary);
	outline-offset: 1px;
}

body.woocommerce-account .woocommerce fieldset {
	margin: 20px 0;
	padding: 20px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
}

body.woocommerce-account .woocommerce fieldset legend {
	padding: 0 8px;
	font-weight: 700;
	color: var(--color-heading);
}

/* Login/Register (logged-out visit to My Account) */

/* Registration is off by default (see woocommerce_enable_myaccount_registration)
   so this is normally just the Login form on its own - centre it as a
   single professional card instead of a plain heading + full-width form. */
body.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)):not(:has(#customer_login)) {
	max-width: 440px;
	margin: 0 auto;
	text-align: center;
}

body.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)):not(:has(#customer_login)) > h2 {
	text-align: center;
}

/* If registration ever gets switched on, Login/Register sit side by side
   in equal-width cards instead. */
#customer_login.u-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: stretch;
}

#customer_login .u-column1,
#customer_login .u-column2 {
	flex: 1 1 300px;
	min-width: 0;
}

#customer_login h2 {
	margin-bottom: 18px;
}

.woocommerce-form-login,
.woocommerce-form-register {
	text-align: left;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-top: 4px solid var(--color-primary);
	border-radius: var(--radius-md);
	padding: 36px 32px;
	box-shadow: 0 10px 30px rgba(3, 24, 27, 0.08);
}

.woocommerce-form-login .form-row:has(#username),
.woocommerce-form-login .form-row:has(#password),
.woocommerce-form-register .form-row:has(#reg_email) {
	position: relative;
}

.woocommerce-form-login .form-row:has(#username) input,
.woocommerce-form-login .form-row:has(#password) input,
.woocommerce-form-register .form-row:has(#reg_email) input {
	padding-left: 42px;
}

.woocommerce-form-login .form-row:has(#username)::after,
.woocommerce-form-login .form-row:has(#password)::after,
.woocommerce-form-register .form-row:has(#reg_email)::after {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	left: 14px;
	bottom: 13px;
	color: #aaa;
	font-size: 14px;
	pointer-events: none;
}

.woocommerce-form-login .form-row:has(#username)::after,
.woocommerce-form-register .form-row:has(#reg_email)::after {
	content: "\f007";
}

.woocommerce-form-login .form-row:has(#password)::after {
	content: "\f023";
}

.woocommerce-form__input-checkbox {
	width: auto;
	display: inline-block;
	margin-right: 6px;
}

.woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	font-weight: 400;
	font-size: 13.5px;
	margin-bottom: 18px;
}

.woocommerce-form-login .woocommerce-button,
.woocommerce-form-register .woocommerce-button {
	width: 100%;
}

.woocommerce-LostPassword {
	margin: 16px 0 0;
	text-align: center;
	font-size: 13.5px;
}

/* Order status pill (Orders tab) */
.wc-order-status-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
	font-size: 12px;
	font-weight: 700;
	background: #f0f0f1;
	color: #50575e;
	white-space: nowrap;
}

.wc-order-status-badge--processing,
.wc-order-status-badge--completed {
	background: #dff5e1;
	color: #1a6b34;
}

.wc-order-status-badge--on-hold,
.wc-order-status-badge--pending {
	background: #fdf0d5;
	color: #8a5a00;
}

.wc-order-status-badge--cancelled,
.wc-order-status-badge--failed {
	background: #fbe1e1;
	color: #a3232f;
}

.wc-order-status-badge--refunded {
	background: #ececec;
	color: #666;
}

/* Booking status pill (My Bookings tab) - same palette as the wp-admin
   Enquiry list's .enquiry-status-badge (see
   argentina_tango_enquiry_status_admin_css() in inc/custom-post-types.php),
   duplicated here since that CSS only loads in wp-admin. */
.enquiry-status-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
	font-size: 12px;
	font-weight: 700;
	background: #f0f0f1;
	color: #50575e;
	white-space: nowrap;
}

.enquiry-status-badge--in_progress {
	background: #e2ecfb;
	color: #1a4d8f;
}

.enquiry-status-badge--deposit_requested {
	background: #fdf0d5;
	color: #8a5a00;
}

.enquiry-status-badge--confirmed {
	background: #dff5e1;
	color: #1a6b34;
}

.enquiry-status-badge--closed {
	background: #ececec;
	color: #666;
}

.my-bookings {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.my-booking-card {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 20px 22px;
	background: var(--color-offwhite);
}

.my-booking-card-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 14px;
}

.my-booking-card-header h3 {
	margin: 0;
	font-size: 17px;
}

.my-booking-card-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px 24px;
	margin: 0;
}

.my-booking-card-details dt {
	margin: 0 0 2px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #888;
}

.my-booking-card-details dd {
	margin: 0;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--color-heading);
}

.my-booking-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 16px;
	padding: 8px 16px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-pill);
	color: var(--color-primary);
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.my-booking-toggle:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.my-booking-toggle.is-active {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.my-booking-details {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed var(--color-border);
}

.my-booking-details .my-booking-card-details {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

/* Dashboard tab (woocommerce/myaccount/dashboard.php) */
.my-account-welcome {
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--color-border);
}

.my-account-welcome h2 {
	margin: 0 0 8px;
}

.my-account-welcome h2 span {
	color: var(--color-primary);
}

.my-account-welcome p {
	margin: 0;
	color: #666;
}

.my-account-quick-links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 18px;
}

.my-account-quick-link {
	display: block;
	padding: 24px 20px;
	background: var(--color-offwhite);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.my-account-quick-link:hover {
	border-color: var(--color-primary);
	box-shadow: 0 8px 20px rgba(3, 24, 27, 0.08);
	transform: translateY(-2px);
}

.my-account-quick-link i {
	font-size: 22px;
	color: var(--color-primary);
}

.my-account-quick-link h3 {
	margin: 14px 0 6px;
	font-size: 16px;
	color: var(--color-heading);
}

.my-account-quick-link p {
	margin: 0;
	font-size: 13.5px;
	color: #666;
}

@media (max-width: 782px) {
	body.woocommerce-account .page-content.container > .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.woocommerce-MyAccount-navigation {
		position: static;
	}

	.woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
		gap: 4px;
	}

	.woocommerce-MyAccount-navigation-link {
		margin-bottom: 0;
	}

	.woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0;
		border-top: none;
		padding-top: 0;
	}

	.woocommerce-MyAccount-content {
		padding: 24px 20px;
	}

	#customer_login.u-columns {
		flex-direction: column;
	}
}

/* -----------------------------------------------------------------------
   39. Thank You / order-received page - re-skins WooCommerce's default
   checkout/order-received.php + order/order-details*.php templates
   (success banner is a theme override, everything else below is pure
   CSS on top of WooCommerce's stock markup).
   ----------------------------------------------------------------------- */
body.woocommerce-order-received .page-content.container {
	max-width: 900px;
}

.woocommerce-order {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 44px 48px;
	box-shadow: 0 4px 20px rgba(3, 24, 27, 0.05);
}

.argentina-order-success {
	text-align: center;
	padding-bottom: 32px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--color-border);
}

.argentina-order-success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #e8f8ee;
	color: #1fa864;
	font-size: 28px;
	margin-bottom: 18px;
}

.argentina-order-success-title {
	margin: 0 0 10px;
}

.argentina-order-success-text {
	max-width: 480px;
	margin: 0 auto;
	color: #666;
}

.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1px;
	list-style: none;
	margin: 0 0 36px;
	padding: 0;
	background: var(--color-border);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.woocommerce-order-overview li {
	background: var(--color-offwhite);
	padding: 18px 20px;
	text-align: center;
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #888;
}

.woocommerce-order-overview li strong {
	display: block;
	overflow-wrap: break-word;
	margin-top: 6px;
	font-size: 15.5px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--color-heading);
}

.woocommerce-order-details__title,
.woocommerce-column__title {
	font-family: var(--font-heading);
	color: var(--color-heading);
	font-size: 20px;
	margin: 0 0 16px;
}

body.woocommerce-order-received table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 8px;
	font-size: 14.5px;
}

body.woocommerce-order-received table.shop_table th {
	text-align: left;
	padding: 12px 14px;
	background: var(--color-offwhite);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #666;
}

body.woocommerce-order-received table.shop_table td {
	padding: 14px;
	border-bottom: 1px solid var(--color-border);
	vertical-align: top;
}

body.woocommerce-order-received table.shop_table {
	table-layout: fixed;
}

body.woocommerce-order-received table.shop_table th,
body.woocommerce-order-received table.shop_table td {
	overflow-wrap: break-word;
}

body.woocommerce-order-received table.shop_table th:last-child,
body.woocommerce-order-received table.shop_table td:last-child {
	width: 160px;
	text-align: right;
}

body.woocommerce-order-received table.shop_table tfoot th,
body.woocommerce-order-received table.shop_table tfoot td {
	border-bottom: none;
	background: none;
}

body.woocommerce-order-received table.shop_table tfoot tr:first-child th,
body.woocommerce-order-received table.shop_table tfoot tr:first-child td {
	border-top: 1px solid var(--color-border);
	padding-top: 16px;
}

.wc-item-meta {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	font-size: 13.5px;
	color: #666;
}

.wc-item-meta-label {
	color: var(--color-heading);
}

.woocommerce-customer-details {
	margin-top: 40px;
}

.woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}

.woocommerce-customer-details address {
	font-style: normal;
	background: var(--color-offwhite);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 18px 20px;
	line-height: 1.7;
	font-size: 14.5px;
}

.argentina-order-actions {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 40px;
}

@media (max-width: 767px) {
	.woocommerce-order {
		padding: 32px 22px;
	}

	.woocommerce-order-overview {
		grid-template-columns: 1fr;
	}

	.argentina-order-actions .btn {
		width: 100%;
		justify-content: center;
	}

	body.woocommerce-order-received table.shop_table th:last-child,
	body.woocommerce-order-received table.shop_table td:last-child {
		width: 90px;
	}
}
