/* ---- Theme variables ---- */
.tgte-form {
	--tgte-text:         #1a2332;
	--tgte-muted:        #64748b;
	--tgte-border:       #dde3ec;
	--tgte-bg:           #ffffff;
	--tgte-panel:        #f7f9fc;
	--tgte-accent:       #0f766e;
	--tgte-accent-light: #f0fdfa;
	--tgte-accent-text:  #ffffff;
	--tgte-danger:       #dc2626;
	--tgte-success:      #16a34a;
	color:           var(--tgte-text);
	background:      var(--tgte-bg);
	max-width:       780px;
	margin:          0 auto;
	font-size:       15px;
	line-height:     1.6;
}

.tgte-form > form {
	display:        flex;
	flex-direction: column;
	gap:            20px;
}

/* ---- Step cards ---- */
.tgte-step {
	border:        1.5px solid var(--tgte-border);
	border-radius: 14px;
	background:    var(--tgte-bg);
	overflow:      hidden;
	transition:    border-color 0.2s, box-shadow 0.2s;
}

.tgte-step:not(.tgte-step--locked) {
	border-color: rgba(15, 118, 110, 0.4);
	box-shadow:   0 2px 12px rgba(15, 118, 110, 0.08);
}

.tgte-step--locked {
	opacity:         0.45;
	pointer-events:  none;
	user-select:     none;
}

.tgte-step-head {
	display:         flex;
	align-items:     flex-start;
	gap:             14px;
	padding:         18px 22px;
	background:      var(--tgte-panel);
	border-bottom:   1px solid var(--tgte-border);
}

.tgte-step:not(.tgte-step--locked) .tgte-step-head {
	background:    var(--tgte-accent-light);
	border-bottom-color: rgba(15, 118, 110, 0.12);
}

.tgte-step-badge {
	flex-shrink:      0;
	width:            30px;
	height:           30px;
	border-radius:    50%;
	background:       var(--tgte-border);
	color:            var(--tgte-muted);
	font-weight:      800;
	font-size:        13px;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	margin-top:       2px;
}

.tgte-step:not(.tgte-step--locked) .tgte-step-badge {
	background: var(--tgte-accent);
	color:      var(--tgte-accent-text);
}

.tgte-step-meta {
	display:        flex;
	flex-direction: column;
	gap:            2px;
}

.tgte-step-title {
	margin:      0;
	font-size:   16px;
	font-weight: 700;
	line-height: 1.3;
}

.tgte-step-hint {
	margin:     0;
	font-size:  13px;
	color:      var(--tgte-muted);
}

/* fieldset reset — step-body uses a <fieldset> for steps 2 & 3 */
.tgte-step-body {
	padding:         22px;
	display:         flex;
	flex-direction:  column;
	gap:             16px;
	border:          0;
	margin:          0;
	min-inline-size: auto;
}

/* ---- Two-column grid ---- */
.tgte-grid {
	display:               grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap:                   14px;
}

/* ---- Field wrapper ---- */
.tgte-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.tgte-label {
	font-size:   13px;
	font-weight: 600;
	color:       var(--tgte-text);
}

/* ---- Form controls ---- */
.tgte-form input[type="text"],
.tgte-form input[type="email"],
.tgte-form input[type="tel"],
.tgte-form input[type="date"],
.tgte-form select,
.tgte-form textarea {
	width:       100%;
	border:      1.5px solid var(--tgte-border);
	border-radius: 8px;
	padding:     10px 13px;
	font:        inherit;
	font-size:   15px;
	color:       var(--tgte-text);
	background:  #fff;
	box-sizing:  border-box;
	transition:  border-color 0.15s, box-shadow 0.15s;
}

.tgte-form input:focus,
.tgte-form select:focus,
.tgte-form textarea:focus {
	outline:    none;
	border-color: var(--tgte-accent);
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}

.tgte-form textarea {
	resize:     vertical;
	min-height: 80px;
}

/* ---- Time pills (radio buttons styled as chips) ---- */
.tgte-time-pills {
	display:   flex;
	flex-wrap: wrap;
	gap:       8px;
}

.tgte-time-pill {
	position: relative;
}

.tgte-time-pill input[type="radio"] {
	position:      absolute;
	opacity:       0;
	width:         0;
	height:        0;
	pointer-events: none;
}

.tgte-time-pill label {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	padding:         10px 20px;
	border:          1.5px solid var(--tgte-border);
	border-radius:   8px;
	cursor:          pointer;
	font-size:       15px;
	font-weight:     600;
	background:      #fff;
	transition:      border-color 0.1s, background 0.1s, color 0.1s;
	min-width:       72px;
	white-space:     nowrap;
}

.tgte-time-pill label:hover {
	border-color: var(--tgte-accent);
	color:        var(--tgte-accent);
}

.tgte-time-pill input:checked + label {
	border-color: var(--tgte-accent);
	background:   var(--tgte-accent);
	color:        #fff;
}

.tgte-time-pill input:focus-visible + label {
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.22);
}

/* ---- Availability status pill ---- */
.tgte-avail-status {
	display:     inline-flex;
	align-items: center;
	gap:         9px;
	padding:     9px 16px;
	border-radius: 999px;
	font-size:   13px;
	font-weight: 600;
	border:      1px solid transparent;
	transition:  background 0.2s;
}

.tgte-avail-dot {
	width:        9px;
	height:       9px;
	border-radius: 50%;
	flex-shrink:  0;
}

.tgte-avail-idle {
	background:   var(--tgte-panel);
	color:        var(--tgte-muted);
	border-color: var(--tgte-border);
}
.tgte-avail-idle .tgte-avail-dot { background: var(--tgte-border); }

.tgte-avail-checking {
	background:   var(--tgte-panel);
	color:        var(--tgte-muted);
	border-color: var(--tgte-border);
}
.tgte-avail-checking .tgte-avail-dot {
	background: #94a3b8;
	animation:  tgte-pulse 1.2s ease-in-out infinite;
}

.tgte-avail-available {
	background:   #f0fdf4;
	color:        #15803d;
	border-color: #bbf7d0;
}
.tgte-avail-available .tgte-avail-dot { background: #22c55e; }

.tgte-avail-full {
	background:   #fef2f2;
	color:        #b91c1c;
	border-color: #fecaca;
}
.tgte-avail-full .tgte-avail-dot { background: #ef4444; }

@keyframes tgte-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: 0.2; }
}

/* ---- Passenger counters ---- */
.tgte-passengers {
	display:               grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap:                   20px;
}

.tgte-counter {
	display:    flex;
	flex-direction: column;
	gap:        8px;
	font-size:  14px;
}

.tgte-counter > label {
	font-size:   13px;
	font-weight: 600;
}

.tgte-stepper {
	display:       flex;
	align-items:   stretch;
	border:        1.5px solid var(--tgte-border);
	border-radius: 8px;
	overflow:      hidden;
	height:        46px;
	background:    #fff;
}

.tgte-step-btn {
	flex:            0 0 44px;
	border:          0;
	background:      var(--tgte-panel);
	color:           var(--tgte-text);
	font-size:       21px;
	font-weight:     700;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         0;
	line-height:     1;
	transition:      background 0.1s;
}

.tgte-step-btn:hover:not(:disabled) {
	background: var(--tgte-border);
}

.tgte-step-btn:focus-visible {
	outline:        3px solid rgba(15, 118, 110, 0.3);
	outline-offset: -2px;
}

.tgte-step-btn:disabled {
	opacity: 0.3;
	cursor:  not-allowed;
}

.tgte-stepper input[type="number"] {
	flex:        1 1 auto;
	border:      0;
	border-left: 1.5px solid var(--tgte-border);
	border-right: 1.5px solid var(--tgte-border);
	border-radius: 0;
	text-align:  center;
	min-width:   0;
	padding:     0;
	font-size:   17px;
	font-weight: 700;
	background:  #fff;
	-moz-appearance: textfield;
}

.tgte-stepper input[type="number"]::-webkit-outer-spin-button,
.tgte-stepper input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---- Price card ---- */
.tgte-price-card {
	background:    linear-gradient(135deg, var(--tgte-accent) 0%, #0d9488 100%);
	color:         #fff;
	border-radius: 14px;
	padding:       22px 28px;
	display:       flex;
	align-items:   center;
	justify-content: space-between;
	gap:           24px;
	box-shadow:    0 4px 20px rgba(15, 118, 110, 0.28);
}

.tgte-price-info {
	display:        flex;
	flex-direction: column;
	gap:            3px;
}

.tgte-price-vehicle {
	font-size:   20px;
	font-weight: 800;
	display:     block;
}

.tgte-price-capacity {
	font-size: 13px;
	opacity:   0.8;
}

.tgte-price-total {
	text-align: right;
	flex-shrink: 0;
}

.tgte-price-amount {
	font-size:   32px;
	font-weight: 800;
	display:     block;
	line-height: 1;
}

.tgte-price-detail {
	font-size:    12px;
	opacity:      0.78;
	display:      block;
	margin-top:   4px;
}

/* ---- No-fit notice ---- */
.tgte-no-fit {
	background:    #fef2f2;
	color:         #b91c1c;
	border:        1.5px solid #fecaca;
	border-radius: 12px;
	padding:       14px 18px;
	font-size:     14px;
	font-weight:   500;
}

/* ---- Submit area ---- */
.tgte-submit-area {
	display:        flex;
	flex-direction: column;
	gap:            10px;
}

.tgte-terms-box {
	display:       grid;
	gap:           10px;
	border:        1px solid var(--tgte-border);
	border-radius: 10px;
	background:    #f8fafc;
	padding:       14px 16px;
}

.tgte-coupon-box {
	display: grid;
	gap: 6px;
}

.tgte-coupon-control {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.tgte-coupon-apply {
	border: 1.5px solid var(--tgte-accent);
	border-radius: 8px;
	background: #fff;
	color: var(--tgte-accent);
	padding: 10px 18px;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tgte-coupon-apply:hover,
.tgte-coupon-apply:focus-visible {
	background: #f0fdfa;
}

.tgte-coupon-apply:disabled {
	opacity: .6;
	cursor: wait;
}

.tgte-coupon-status {
	min-height: 20px;
	margin: 0;
	font-size: 13px;
}

.tgte-coupon-status--success {
	color: #047857;
	font-weight: 700;
}

.tgte-coupon-status--error {
	color: #b91c1c;
}

.tgte-terms-text {
	margin:      0;
	color:       var(--tgte-muted);
	font-size:   14px;
	line-height: 1.5;
}

.tgte-terms-check {
	display:     flex;
	align-items: flex-start;
	gap:         10px;
	font-weight: 700;
	line-height: 1.4;
}

.tgte-terms-check input {
	width:      auto;
	margin-top: 3px;
}

.tgte-submit,
.tgte-button {
	border:          0;
	border-radius:   10px;
	background:      var(--tgte-accent);
	color:           var(--tgte-accent-text);
	padding:         15px 24px;
	font-size:       16px;
	font-weight:     700;
	cursor:          pointer;
	width:           100%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             8px;
	position:        relative;
	text-decoration: none;
	transition:      background 0.15s, box-shadow 0.15s, transform 0.1s;
	box-shadow:      0 2px 10px rgba(15, 118, 110, 0.32);
}

.tgte-submit:hover:not(:disabled) {
	background: #0d9488;
	box-shadow: 0 4px 16px rgba(15, 118, 110, 0.38);
	transform:  translateY(-1px);
}

.tgte-submit:active:not(:disabled) {
	transform: translateY(0);
}

.tgte-submit:disabled {
	opacity:    0.5;
	cursor:     not-allowed;
	box-shadow: none;
	transform:  none;
}

.tgte-submit:focus-visible,
.tgte-button:focus-visible {
	outline:        3px solid rgba(15, 118, 110, 0.4);
	outline-offset: 3px;
}

.tgte-submit.tgte-loading {
	padding-right: 50px;
}

.tgte-submit.tgte-loading::after {
	content:        '';
	position:       absolute;
	right:          18px;
	top:            50%;
	margin-top:     -8px;
	width:          16px;
	height:         16px;
	border:         2.5px solid rgba(255, 255, 255, 0.38);
	border-top-color: #fff;
	border-radius:  50%;
	animation:      tgte-spin 0.65s linear infinite;
}

@keyframes tgte-spin {
	to { transform: rotate(360deg); }
}

.tgte-secure-note {
	margin:     0;
	text-align: center;
	font-size:  12px;
	color:      var(--tgte-muted);
}

/* ---- Error message ---- */
.tgte-message {
	background:    #fef2f2;
	color:         var(--tgte-danger);
	border:        1.5px solid #fecaca;
	border-radius: 10px;
	padding:       12px 16px;
	font-size:     14px;
	font-weight:   500;
	display:       none;
}

.tgte-message:not(:empty) {
	display: block;
}

/* ---- Result notices (from Stripe redirect) ---- */
.tgte-notice {
	background:    var(--tgte-panel);
	border:        1.5px solid var(--tgte-border);
	border-radius: 10px;
	padding:       14px 18px;
	font-size:     14px;
	margin-bottom: 4px;
}

.tgte-notice-success {
	background:    #f0fdf4;
	border-color:  #86efac;
	color:         #15803d;
}

/* ---- Honeypot ---- */
.tgte-hp {
	position:  absolute;
	left:      -10000px;
	width:     1px;
	height:    1px;
	overflow:  hidden;
}

/* ---- Auto-appended section on single tour pages ---- */
.tgte-single-booking {
	max-width: 820px;
	margin: 30px auto 60px;
	padding: 0 15px;
}

/* ---- Theme overrides for single tour pages ---- */
body.single-tgte_tour .featured-image,
body.single-tgte_tour .post-thumbnail,
body.single-tgte_tour .wp-post-image,
body.single-tgte_tour .entry-media,
body.single-tgte_tour .entry-meta,
body.single-tgte_tour .post-meta,
body.single-tgte_tour .post-navigation,
body.single-tgte_tour .nav-links,
body.single-tgte_tour .nav-previous,
body.single-tgte_tour .nav-next {
	display: none !important;
}

/* ---- Integrated Tour Hero Header ---- */
.tgte-tour-hero {
	display: flex;
	gap: 20px;
	align-items: center;
	padding: 20px;
	background: #ffffff;
	border: 1.5px solid var(--tgte-border, #dde3ec);
	border-radius: 16px;
	margin-bottom: 24px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.tgte-tour-hero-img {
	flex-shrink: 0;
	width: 180px;
	height: 120px;
	border-radius: 12px;
	overflow: hidden;
}

.tgte-tour-hero-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.tgte-tour-hero-info {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tgte-tour-hero-title {
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	color: var(--tgte-text, #1a2332);
	line-height: 1.35;
}

.tgte-tour-hero-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.tgte-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 14px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
}

.tgte-pill--price {
	background: var(--tgte-accent-light, #f0fdfa);
	color: var(--tgte-accent, #0f766e);
	border: 1px solid rgba(15, 118, 110, 0.25);
}

.tgte-pill--feature {
	background: #f1f5f9;
	color: #475569;
}

@media (max-width: 640px) {
	.tgte-tour-hero {
		flex-direction: column;
		align-items: flex-start;
	}
	.tgte-tour-hero-img {
		width: 100%;
		height: 180px;
	}
}

/* ---- Self-cancellation page ---- */
.tgte-cancel {
	max-width:   720px;
	margin:      48px auto;
	padding:     24px;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size:   15px;
	line-height: 1.6;
}

.tgte-cancel h1 {
	font-size:     24px;
	margin-bottom: 16px;
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
	.tgte-grid {
		grid-template-columns: 1fr;
	}

	.tgte-passengers {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tgte-step-body,
	.tgte-step-head {
		padding: 16px;
	}

	.tgte-price-card {
		flex-direction: column;
		align-items:    flex-start;
		gap:            12px;
		padding:        18px 20px;
	}

	.tgte-price-total {
		text-align: left;
	}

	.tgte-price-amount {
		font-size: 26px;
	}
}

@media (max-width: 380px) {
	.tgte-passengers {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tgte-step,
	.tgte-submit,
	.tgte-form input,
	.tgte-form select,
	.tgte-time-pill label {
		transition: none;
	}

	.tgte-submit.tgte-loading::after,
	.tgte-avail-checking .tgte-avail-dot {
		animation: none;
	}

	.tgte-submit.tgte-loading::after {
		border-top-color: rgba(255, 255, 255, 0.8);
	}
}

/* ---- Inline calendar date picker ---- */
.tgte-cal-picker {
	border:        1.5px solid var(--tgte-border);
	border-radius: 12px;
	background:    #fff;
	overflow:      hidden;
	user-select:   none;
}

.tgte-cal-picker-head {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         12px 16px;
	background:      var(--tgte-panel);
	border-bottom:   1px solid var(--tgte-border);
}

.tgte-cal-nav {
	border:          0;
	background:      transparent;
	cursor:          pointer;
	font-size:       22px;
	line-height:     1;
	color:           var(--tgte-text);
	padding:         4px 10px;
	border-radius:   8px;
	transition:      background 0.15s;
}

.tgte-cal-nav:hover:not(:disabled) {
	background: var(--tgte-border);
}

.tgte-cal-nav:disabled {
	opacity: 0.25;
	cursor:  not-allowed;
}

.tgte-cal-month-label {
	font-size:   15px;
	font-weight: 700;
	color:       var(--tgte-text);
}

.tgte-cal-grid {
	padding: 10px;
}

/* Loading state */
.tgte-cg-loading {
	text-align: center;
	padding:    24px;
	color:      var(--tgte-muted);
	font-size:  13px;
}

/* Day-name header row */
.tgte-cg-heads {
	display:               grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	margin-bottom:         4px;
}

.tgte-cg-head {
	text-align:  center;
	font-size:   11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color:       var(--tgte-muted);
	padding:     4px 0;
	text-transform: uppercase;
}

/* Calendar body */
.tgte-cg-body {
	display:               grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap:                   3px;
}

.tgte-cg-blank {
	min-height: 36px;
}

/* Base day cell — button or div */
.tgte-cg-day {
	width:           100%;
	min-height:      38px;
	border:          1.5px solid transparent;
	border-radius:   8px;
	background:      transparent;
	cursor:          pointer;
	font-size:       13px;
	font-weight:     600;
	color:           var(--tgte-text);
	display:         flex;
	align-items:     center;
	justify-content: center;
	position:        relative;
	transition:      background 0.12s, border-color 0.12s;
	font-family:     inherit;
	padding:         0;
	line-height:     1;
}

.tgte-cg-day:hover:not(.tgte-cg-disabled) {
	background:    var(--tgte-accent-light);
	border-color:  rgba(15, 118, 110, 0.35);
}

/* Today ring */
.tgte-cg-today {
	border-color: var(--tgte-accent) !important;
	color:        var(--tgte-accent);
}

/* Selected */
.tgte-cg-selected {
	background:   var(--tgte-accent) !important;
	border-color: var(--tgte-accent) !important;
	color:        #fff !important;
}

/* Fully booked */
.tgte-cg-full {
	background: #fef2f2;
	color:      #b91c1c;
}

.tgte-cg-full::after {
	content:       'Full';
	position:      absolute;
	bottom:        2px;
	left:          50%;
	transform:     translateX(-50%);
	font-size:     9px;
	font-weight:   700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	opacity:       0.7;
}

/* Partially busy — amber dot */
.tgte-cg-busy::before {
	content:       '';
	position:      absolute;
	bottom:        4px;
	left:          50%;
	transform:     translateX(-50%);
	width:         5px;
	height:        5px;
	border-radius: 50%;
	background:    #f59e0b;
}

/* Disabled (blocked / past / out of range) */
.tgte-cg-disabled {
	color:   var(--tgte-border);
	cursor:  not-allowed;
	background: repeating-linear-gradient(
		135deg,
		transparent,
		transparent 4px,
		rgba(0,0,0,0.05) 4px,
		rgba(0,0,0,0.05) 5px
	);
}

.tgte-cal-selected-display {
	font-size:   14px;
	font-weight: 600;
	color:       var(--tgte-accent);
	margin-top:  8px;
	min-height:  1.4em;
}

/* ---- Passenger name fields ---- */
.tgte-passenger-fields {
	display: grid;
	gap: 10px;
}

.tgte-pax-row {
	display:               grid;
	grid-template-columns: minmax(90px, 160px) 1fr;
	gap:                   12px;
	align-items:           center;
}

.tgte-pax-label {
	font-size:   14px;
	font-weight: 600;
	color:       var(--tgte-text);
}

.tgte-pax-name-grid {
	display:               grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap:                   10px;
}

.tgte-pax-name-grid .screen-reader-text {
	position: absolute;
	width:    1px;
	height:   1px;
	overflow: hidden;
	clip:     rect(1px, 1px, 1px, 1px);
}

.tgte-muted {
	color:     var(--tgte-muted);
	font-size: 14px;
	margin:    0;
}

@media (max-width: 440px) {
	.tgte-pax-row {
		grid-template-columns: 1fr;
	}

	.tgte-pax-name-grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Payment method toggle ---- */
.tgte-pay-methods {
	display:        flex;
	flex-direction: column;
	gap:            12px;
}

.tgte-pay-opts {
	display:               grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap:                   10px;
}

.tgte-pay-opt {
	display:       flex;
	align-items:   flex-start;
	gap:           12px;
	border:        1.5px solid var(--tgte-border);
	border-radius: 12px;
	padding:       14px 16px;
	cursor:        pointer;
	background:    #fff;
	transition:    border-color 0.15s, background 0.15s, box-shadow 0.15s;
	position:      relative;
}

.tgte-pay-opt input[type="radio"] {
	position:      absolute;
	opacity:       0;
	width:         0;
	height:        0;
	pointer-events: none;
}

.tgte-pay-opt:hover {
	border-color: rgba(15, 118, 110, 0.4);
}

.tgte-pay-opt--active {
	border-color: var(--tgte-accent);
	background:   var(--tgte-accent-light);
	box-shadow:   0 0 0 3px rgba(15, 118, 110, 0.12);
}

.tgte-pay-opt-icon {
	width:           36px;
	height:          36px;
	border-radius:   8px;
	background:      var(--tgte-panel);
	display:         flex;
	align-items:     center;
	justify-content: center;
	font-size:       18px;
	flex-shrink:     0;
}

.tgte-pay-opt--active .tgte-pay-opt-icon {
	background: rgba(15, 118, 110, 0.12);
}

.tgte-pay-opt-body {
	display:        flex;
	flex-direction: column;
	gap:            2px;
}

.tgte-pay-opt-title {
	font-size:   14px;
	font-weight: 700;
	color:       var(--tgte-text);
	display:     block;
}

.tgte-pay-opt-desc {
	font-size: 12px;
	color:     var(--tgte-muted);
	display:   block;
}

/* Stripe Card Element container */
.tgte-card-element {
	border:        1.5px solid var(--tgte-border);
	border-radius: 10px;
	padding:       14px 16px;
	background:    #fff;
	transition:    border-color 0.15s, box-shadow 0.15s;
}

.tgte-card-element:focus-within {
	border-color: var(--tgte-accent);
	box-shadow:   0 0 0 3px rgba(15, 118, 110, 0.14);
}

.tgte-card-errors {
	font-size:  13px;
	font-weight: 600;
	color:      var(--tgte-danger);
	min-height: 1em;
	margin-top: 6px;
}

/* ---- Responsive additions ---- */
@media (max-width: 500px) {
	.tgte-pay-opts {
		grid-template-columns: 1fr;
	}

	.tgte-cg-day {
		min-height: 34px;
		font-size:  12px;
	}

	.tgte-cg-full::after {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tgte-cal-nav,
	.tgte-pay-opt,
	.tgte-cg-day {
		transition: none;
	}
}
