/**
 * Acone Trailer Rentals — front end.
 * Scoped to .atr-* so Woodmart styles stay untouched.
 */

.atr-panel,
.atr-archive,
.atr-details,
.atr-checkout,
.atr-compare-wrap {
	--atr-bg: #0d1520;
	--atr-surface: #17202e;
	--atr-surface-2: #1d2839;
	--atr-line: #26324a;
	--atr-text: #e9eef7;
	--atr-muted: #93a1b8;
	--atr-accent: #2f6fed;
	--atr-accent-soft: rgba(47, 111, 237, .16);
	--atr-go: #3ecf8e;
	--atr-go-soft: rgba(62, 207, 142, .14);
	--atr-warn: #f0b13a;
	--atr-warn-soft: rgba(240, 177, 58, .14);
	--atr-bad: #e5484d;
	--atr-bad-soft: rgba(229, 72, 77, .14);
	--atr-radius: 14px;
	--atr-radius-sm: 10px;
	color: var(--atr-text);
	font-size: 15px;
	line-height: 1.5;
}

/* Light-theme fallback for sites that are not dark. */
.atr-theme-light .atr-panel,
.atr-theme-light .atr-archive,
.atr-theme-light .atr-details,
.atr-theme-light .atr-checkout {
	--atr-bg: #ffffff;
	--atr-surface: #f7f9fc;
	--atr-surface-2: #eef2f8;
	--atr-line: #dde3ed;
	--atr-text: #101828;
	--atr-muted: #5b6472;
}

/* ---------- Shared atoms ---------- */

.atr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 14px 18px;
	border-radius: var(--atr-radius-sm);
	border: 1px solid transparent;
	font-weight: 600;
	font-size: 15px;
	line-height: 1.2;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, opacity .15s ease;
	text-decoration: none;
}

.atr-btn--primary { background: var(--atr-accent); color: #fff; }
.atr-btn--primary:hover { background: #2560d8; color: #fff; }
.atr-btn--ghost { background: transparent; border-color: var(--atr-line); color: var(--atr-text); }
.atr-btn--ghost:hover { border-color: var(--atr-muted); }
.atr-btn--outline { background: var(--atr-accent-soft); border-color: var(--atr-accent); color: #8fb4ff; }
.atr-btn--sm { width: auto; padding: 9px 14px; font-size: 14px; }
.atr-btn[disabled] { opacity: .45; cursor: not-allowed; }
.atr-btn:focus-visible { outline: 2px solid var(--atr-accent); outline-offset: 2px; }

.atr-chip {
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	border-radius: 999px;
	border: 1px solid var(--atr-line);
	background: var(--atr-surface-2);
	font-size: 12.5px;
	font-weight: 500;
	color: var(--atr-text);
	white-space: nowrap;
}
.atr-chip--go { background: var(--atr-go-soft); border-color: transparent; color: var(--atr-go); font-weight: 600; }
.atr-chip--warm { background: var(--atr-warn-soft); border-color: transparent; color: var(--atr-warn); font-weight: 600; }

.atr-link { color: #6ea0ff; text-decoration: none; font-weight: 500; }
.atr-link:hover { text-decoration: underline; }

/* ---------- Booking panel ---------- */

.atr-panel {
	background: var(--atr-surface);
	border: 1px solid var(--atr-line);
	border-radius: 18px;
	padding: 22px;
}

/* Sticky with no scrollbar of its own. atr-sticky.js measures each panel and
   rewrites `top`: panels that fit pin to the top, taller ones get a negative
   offset so they ride up until their bottom is in view and hold there. */
body.atr-sticky .atr-panel,
body.atr-sticky.woocommerce-checkout .woocommerce-checkout-review-order,
body.atr-sticky.woocommerce-checkout #order_review {
	position: -webkit-sticky;
	position: sticky;
	top: var(--atr-sticky-top, 24px);
	align-self: flex-start;
	max-height: none;
	overflow: visible;
}

/* Woodmart's product summary column needs to be top-aligned for sticky to travel. */
body.atr-sticky.atr-rental-product div.product .summary,
body.atr-sticky.atr-rental-product div.product .entry-summary {
	align-self: flex-start;
}

.atr-panel-head { display: flex; align-items: baseline; gap: 6px; }
.atr-panel-head .atr-price { font-size: 34px; font-weight: 700; letter-spacing: -.5px; }
.atr-panel-head .atr-price .woocommerce-Price-amount { color: var(--atr-text); }
.atr-price-unit { color: var(--atr-muted); font-size: 16px; }

.atr-halfday { margin: 8px 0 0; color: var(--atr-go); font-size: 14px; }
.atr-tier-hints { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 16px; color: var(--atr-muted); font-size: 14px; }
.atr-tier-hints .woocommerce-Price-amount { color: var(--atr-muted); }

.atr-panel-label { margin: 20px 0 10px; font-size: 16px; font-weight: 600; }

/* Calendar */
.atr-calendar {
	background: var(--atr-surface-2);
	border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius);
	padding: var(--atr-cal-pad, 12px);
}
.atr-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.atr-cal-title { font-weight: 600; }
.atr-cal-head { margin-left: 0; margin-right: 0; }
.atr-calendar .atr-cal-nav {
	background: none !important;
	border: 0 !important;
	color: var(--atr-muted);
	font-size: 17px !important;
	line-height: 1 !important;
	width: 28px !important;
	height: 28px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	border-radius: 7px;
}
.atr-calendar .atr-cal-nav:hover { background: rgba(255, 255, 255, .06); color: var(--atr-text); }
.atr-calendar .atr-cal-nav[disabled] { opacity: .3; cursor: not-allowed; }

/* Compact grid, flush left. Change --atr-cal-cell to resize every day box;
   the card width follows automatically. */
.atr-calendar {
	--atr-cal-cell: 36px;
	--atr-cal-gap: 3px;
	--atr-cal-pad: 12px;
	width: calc(var(--atr-cal-cell) * 7 + var(--atr-cal-gap) * 6 + var(--atr-cal-pad) * 2 + 2px);
	max-width: 100%;
	margin-left: 0;
	margin-right: auto;
}
.atr-cal-dow, .atr-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: var(--atr-cal-gap);
	justify-content: start;
}
.atr-cal-dow { margin-bottom: 3px; }
.atr-cal-dow span { text-align: center; font-size: 11px; color: var(--atr-muted); line-height: 1.4; }

/* !important beats theme button styling (Woodmart pads every <button>). */
.atr-calendar .atr-day {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: var(--atr-cal-cell) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none;
	aspect-ratio: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 7px;
	border: 1px solid transparent;
	background: none;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	box-shadow: none !important;
	color: var(--atr-text);
	cursor: pointer;
	position: relative;
}
.atr-day--blank { visibility: hidden; }
.atr-day--available { border-color: rgba(62, 207, 142, .35); }
.atr-day--available:hover { background: var(--atr-go-soft); }
.atr-day--returning { border-color: rgba(240, 177, 58, .5); background: var(--atr-warn-soft); }
.atr-day--departing { border-color: rgba(229, 72, 77, .5); background: var(--atr-bad-soft); }
.atr-day--booked,
.atr-day--closed { color: #5d6a80; background: rgba(229, 72, 77, .12); cursor: not-allowed; }
.atr-day--past { color: #46536a; cursor: not-allowed; }
.atr-day--today { box-shadow: inset 0 0 0 1px var(--atr-warn); }
.atr-day--start, .atr-day--end { background: var(--atr-accent); border-color: var(--atr-accent); color: #fff; font-weight: 600; }
.atr-day--between { background: var(--atr-accent-soft); border-color: transparent; }
.atr-day:focus-visible { outline: 2px solid var(--atr-accent); outline-offset: 1px; }

.atr-legend {
	display: flex; flex-wrap: wrap; gap: 5px 10px;
	margin-top: 10px; font-size: 11.5px; color: var(--atr-muted);
	justify-content: flex-start;
	margin-left: 0; margin-right: 0;
}
.atr-legend span { display: inline-flex; align-items: center; gap: 5px; }
.atr-dot { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid currentColor; display: inline-block; }
.atr-dot--available { color: var(--atr-go); }
.atr-dot--returning { color: var(--atr-warn); background: var(--atr-warn); }
.atr-dot--departing { color: var(--atr-bad); background: var(--atr-bad); }
.atr-dot--booked { color: var(--atr-bad); }

/* Date + time row */
.atr-when { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.atr-field-label { display: block; font-size: 13px; color: var(--atr-muted); margin-bottom: 6px; }
.atr-readonly, .atr-select {
	width: 100%;
	background: var(--atr-surface-2);
	border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius-sm);
	padding: 12px 14px;
	color: var(--atr-text);
	font-size: 15px;
}
.atr-select:focus { border-color: var(--atr-accent); outline: none; }

.atr-clear {
	background: none; border: 0; color: var(--atr-bad);
	font-size: 15px; font-weight: 600; padding: 12px 0 0; cursor: pointer;
}

/* Quote breakdown */
.atr-breakdown { margin-top: 18px; border-top: 1px solid var(--atr-line); padding-top: 14px; }
.atr-row { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 14.5px; color: var(--atr-muted); }
.atr-row span:last-child { color: var(--atr-text); white-space: nowrap; }
.atr-row--save, .atr-row--save span:last-child { color: var(--atr-go); }
.atr-row--save .woocommerce-Price-amount { color: var(--atr-go); }
.atr-row--total {
	border-top: 1px solid var(--atr-line);
	margin-top: 8px; padding-top: 12px;
	font-size: 17px; font-weight: 700; color: var(--atr-text);
}
.atr-row--strike { padding-top: 10px; }
.atr-row--strike del { color: var(--atr-muted); }
.atr-save-pill { color: var(--atr-go); font-weight: 600; }
.atr-save-pill .woocommerce-Price-amount { color: var(--atr-go); }

.atr-savings-note {
	display: flex; gap: 10px; align-items: flex-start;
	margin-top: 14px; padding: 12px 14px;
	background: var(--atr-go-soft);
	border: 1px solid rgba(62, 207, 142, .3);
	border-radius: var(--atr-radius-sm);
	font-size: 13.5px; color: #9ff0c8;
}
.atr-savings-note .woocommerce-Price-amount { color: #9ff0c8; }

.atr-error {
	margin-top: 14px; padding: 11px 14px;
	background: var(--atr-bad-soft);
	border: 1px solid rgba(229, 72, 77, .35);
	border-radius: var(--atr-radius-sm);
	color: #ffb4b6; font-size: 14px;
}

.atr-actions { margin-top: 18px; display: grid; gap: 10px; }
.atr-panel-foot { margin: 12px 0 0; text-align: center; color: var(--atr-muted); font-size: 13px; }

/* ---------- Product detail blocks ---------- */

.atr-details { margin-top: 34px; }
.atr-block { margin-bottom: 34px; }
.atr-h2 { font-size: 21px; font-weight: 700; margin: 0 0 14px; }

.atr-included { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.atr-included li { display: flex; gap: 10px; align-items: center; }
.atr-check { color: var(--atr-go); font-weight: 700; }

.atr-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.atr-spec {
	display: flex; justify-content: space-between; gap: 12px;
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius-sm); padding: 14px 16px;
}
.atr-spec-label { color: var(--atr-muted); }
.atr-spec-value { font-weight: 600; }

.atr-spec-links { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 14px; }
.atr-tow-guide {
	margin-top: 12px; padding: 14px 16px;
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius-sm); color: var(--atr-muted); font-size: 14px;
}

.atr-ladder { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.atr-ladder-card {
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius); padding: 18px 14px; text-align: center;
	display: grid; gap: 4px; align-content: start;
}
.atr-ladder-label { color: var(--atr-muted); font-size: 13.5px; }
.atr-ladder-price { font-size: 24px; font-weight: 700; }
.atr-ladder-price .woocommerce-Price-amount { color: var(--atr-text); }
.atr-ladder-note { color: var(--atr-muted); font-size: 13px; }
.atr-ladder-off { color: var(--atr-go); font-weight: 700; font-size: 13px; margin-top: 4px; }

.atr-loyalty {
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius); padding: 20px;
}
.atr-loyalty-intro { color: var(--atr-muted); margin: 0 0 14px; }
.atr-loyalty-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.atr-loyalty-list li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.atr-loyalty-pill {
	min-width: 44px; text-align: center;
	background: var(--atr-accent-soft); color: #8fb4ff;
	border-radius: 999px; padding: 4px 10px; font-size: 13px; font-weight: 700;
}
.atr-loyalty-list li:last-child .atr-loyalty-pill { background: var(--atr-warn-soft); color: var(--atr-warn); }
.atr-loyalty-meta { color: var(--atr-muted); }

/* ---------- Archive ---------- */

.atr-archive { padding: 4px 0; }
.atr-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
.atr-search { position: relative; flex: 1 1 320px; }
.atr-search input {
	width: 100%; padding: 14px 16px 14px 44px;
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius-sm); color: var(--atr-text); font-size: 15px;
}
.atr-search input::placeholder { color: var(--atr-muted); }
.atr-search-icon {
	position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
	width: 18px; height: 18px; fill: none; stroke: var(--atr-muted); stroke-width: 2; stroke-linecap: round;
}
.atr-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.atr-chip-btn {
	padding: 12px 20px; border-radius: var(--atr-radius-sm);
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	color: var(--atr-text); font-size: 15px; font-weight: 500; cursor: pointer;
}
.atr-chip-btn.is-active { background: var(--atr-accent); border-color: var(--atr-accent); color: #fff; }

.atr-compare-banner {
	display: flex; align-items: center; gap: 12px;
	padding: 16px 20px; margin-bottom: 20px;
	background: #eef4ff; border-radius: var(--atr-radius);
	color: #1b4fc0; text-decoration: none; font-size: 15px;
}
.atr-compare-banner strong { color: #123a99; }
.atr-compare-arrow { margin-left: auto; font-size: 20px; }

.atr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
.atr-card {
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius); overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform .15s ease, border-color .15s ease;
}
.atr-card:hover { transform: translateY(-2px); border-color: #33405c; }
.atr-card[hidden] { display: none; }

.atr-card-media { position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; }
.atr-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.atr-badge {
	position: absolute; top: 12px; left: 12px;
	background: var(--atr-go); color: #06301f;
	padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700;
}
.atr-badge--most-popular { background: var(--atr-warn); color: #3a2600; }
.atr-badge--new { background: var(--atr-accent); color: #fff; }
.atr-photocount {
	position: absolute; right: 12px; bottom: 12px;
	background: rgba(0, 0, 0, .62); color: #fff;
	padding: 4px 10px; border-radius: 8px; font-size: 12.5px;
}

.atr-card-body { padding: 16px 18px 18px; display: grid; gap: 10px; }
.atr-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.atr-card-title { font-size: 18px; font-weight: 700; margin: 0; line-height: 1.25; }
.atr-card-title a { color: var(--atr-text); text-decoration: none; }
.atr-card-price { font-size: 26px; font-weight: 700; white-space: nowrap; }
.atr-card-price .woocommerce-Price-amount { color: var(--atr-text); }
.atr-card-price small { font-size: 14px; color: var(--atr-muted); font-weight: 500; }
.atr-card-meta { margin: 0; color: var(--atr-muted); font-size: 14px; }
.atr-card-teaser { margin: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.atr-teaser-was { color: var(--atr-muted); text-decoration: line-through; font-size: 14px; }
.atr-teaser-was .woocommerce-Price-amount { color: var(--atr-muted); }
.atr-teaser-save {
	background: var(--atr-go-soft); color: var(--atr-go);
	padding: 4px 10px; border-radius: 8px; font-size: 13px; font-weight: 700;
}
.atr-teaser-save .woocommerce-Price-amount { color: var(--atr-go); }
.atr-card-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.atr-noresults, .atr-empty { color: var(--atr-muted); padding: 20px 0; }

/* ---------- Compare table ---------- */

.atr-compare-wrap { overflow-x: auto; }
.atr-compare { width: 100%; border-collapse: collapse; min-width: 640px; }
.atr-compare th, .atr-compare td {
	border: 1px solid var(--atr-line); padding: 12px 14px;
	text-align: left; font-size: 14px; vertical-align: middle;
}
.atr-compare thead th { background: var(--atr-surface); text-align: center; }
.atr-compare thead img { width: 100%; max-width: 150px; border-radius: 8px; display: block; margin: 0 auto 8px; }
.atr-compare-name { display: block; font-weight: 600; color: var(--atr-text); }
.atr-compare thead a { text-decoration: none; }
.atr-compare-price { display: block; margin-top: 6px; font-weight: 700; }
.atr-compare tbody th { background: var(--atr-surface); color: var(--atr-muted); font-weight: 500; }

/* ---------- Checkout ---------- */

.atr-checkout { display: grid; gap: 18px; margin: 22px 0; }
.atr-card:not(.atr-archive .atr-card) { }
.atr-checkout .atr-card,
.atr-lookup {
	background: var(--atr-surface); border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius); padding: 20px;
}
.atr-lookup { margin-bottom: 18px; color: var(--atr-text); }
.atr-card-title { font-size: 17px; font-weight: 700; margin: 0 0 8px; }
.atr-card-note { color: var(--atr-muted); font-size: 14px; margin: 0 0 14px; }
.atr-req { color: var(--atr-bad); }

.atr-lookup-row { display: flex; gap: 10px; }
.atr-lookup-row input {
	flex: 1; padding: 13px 14px; border-radius: var(--atr-radius-sm);
	background: var(--atr-surface-2); border: 1px solid var(--atr-line); color: var(--atr-text);
}
.atr-lookup-row .atr-btn { width: auto; padding: 13px 22px; }
.atr-lookup-msg { margin: 10px 0 0; font-size: 14px; color: var(--atr-muted); min-height: 1em; }
.atr-lookup-msg.is-ok { color: var(--atr-go); }
.atr-lookup-msg.is-bad { color: #ff9a9c; }

/* Upload widget */
.atr-upload { display: grid; gap: 12px; }
.atr-dropzone {
	display: grid; gap: 4px; justify-items: center; text-align: center;
	padding: 26px 16px; cursor: pointer;
	border: 1.5px dashed var(--atr-line); border-radius: var(--atr-radius-sm);
	color: var(--atr-muted);
}
.atr-dropzone:hover, .atr-dropzone.is-drag { border-color: var(--atr-accent); background: var(--atr-accent-soft); }
.atr-dropzone-icon { font-size: 22px; }
.atr-dropzone-text { color: var(--atr-text); font-size: 14.5px; }
.atr-dropzone-hint { font-size: 12.5px; }
.atr-upload-status { margin: 0; font-size: 13.5px; min-height: 1em; }
.atr-uploaded { color: var(--atr-go); font-weight: 600; }
.atr-upload-status.is-bad { color: #ff9a9c; }
.atr-upload-thumb { max-width: 120px; border-radius: 8px; margin-top: 8px; display: block; }

/* Radio / checkbox options */
.atr-option, .atr-addon {
	display: flex; align-items: flex-start; gap: 12px;
	padding: 14px 16px; margin-top: 10px;
	border: 1px solid var(--atr-line); border-radius: var(--atr-radius-sm);
	cursor: pointer; background: var(--atr-surface-2);
}
.atr-option.is-selected { border-color: var(--atr-accent); background: var(--atr-accent-soft); }
.atr-option input, .atr-addon input { margin-top: 3px; accent-color: var(--atr-accent); flex: none; }
.atr-option-body, .atr-addon-body { flex: 1; display: grid; gap: 3px; }
.atr-option-title, .atr-addon-title { font-weight: 600; }
.atr-option-desc, .atr-addon-desc { color: var(--atr-muted); font-size: 13.5px; }
.atr-option-price, .atr-addon-price { font-weight: 700; white-space: nowrap; color: var(--atr-accent); }
.atr-option-price .woocommerce-Price-amount, .atr-addon-price .woocommerce-Price-amount { color: inherit; }
.atr-option--tpp .atr-option-body { font-size: 14px; color: var(--atr-text); font-weight: 400; }

/* TPP */
.atr-tpp-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; flex-wrap: wrap; }
.atr-tpp-price { text-align: right; }
.atr-tpp-price strong { font-size: 22px; }
.atr-tpp-price strong .woocommerce-Price-amount { color: var(--atr-text); }
.atr-tpp-price small { color: var(--atr-muted); }
.atr-tpp-rate { display: block; color: var(--atr-muted); font-size: 12.5px; }
.atr-pill { padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.atr-pill--rec { background: var(--atr-go-soft); color: var(--atr-go); }

.atr-tpp-notice {
	margin: 14px 0; padding: 16px;
	background: rgba(240, 177, 58, .1);
	border: 1px solid rgba(240, 177, 58, .38);
	border-radius: var(--atr-radius-sm);
	color: #f4cf8f; font-size: 14px; line-height: 1.55;
}
.atr-tpp-notice strong { color: #ffd88a; }
.atr-exclusions-title { color: var(--atr-bad); font-size: 12px; letter-spacing: .06em; margin: 16px 0 8px; }
.atr-exclusions { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.atr-exclusions li { display: flex; gap: 9px; font-size: 13.5px; color: var(--atr-text); }
.atr-x { color: var(--atr-bad); font-weight: 700; }
.atr-tpp-required { color: var(--atr-bad); font-size: 13px; margin: 12px 0 0; }
.atr-tpp-required.is-hidden { display: none; }

/* Promo */
.atr-promo-row { display: flex; gap: 10px; }
.atr-promo-row input {
	flex: 1; padding: 13px 14px; border-radius: var(--atr-radius-sm);
	background: var(--atr-surface-2); border: 1px solid var(--atr-line); color: var(--atr-text);
}
.atr-promo-row .atr-btn { width: auto; padding: 13px 22px; }
.atr-promo-msg { margin: 10px 0 0; font-size: 14px; min-height: 1em; color: var(--atr-muted); }
.atr-promo-msg.is-ok { color: var(--atr-go); }
.atr-promo-msg.is-bad { color: #ff9a9c; }

/* Agreements */
.atr-checkline { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 14px; font-size: 14px; }
.atr-checkline input { margin-top: 3px; accent-color: var(--atr-accent); flex: none; }
.atr-checkline a { color: #6ea0ff; }
.atr-fineprint { color: var(--atr-muted); font-size: 12.5px; margin: 0; }

/* Payment plan block in the review column */
.atr-payplan { margin: 18px 0; }
.atr-payplan-title { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--atr-muted); margin: 0 0 4px; }
.atr-payplan-split { display: grid; gap: 4px; margin: 12px 0 0; font-size: 14px; }
.atr-split-now { color: var(--atr-go); display: flex; justify-content: space-between; }
.atr-split-later { color: var(--atr-warn); display: flex; justify-content: space-between; }
.atr-split-now .woocommerce-Price-amount { color: var(--atr-go); }
.atr-split-later .woocommerce-Price-amount { color: var(--atr-warn); }

.atr-total-note { display: block; font-weight: 500; font-size: 12.5px; color: #8a93a5; margin-top: 2px; }
.atr-order-row--balance th, .atr-order-row--balance td { color: #b8860b; }

.atr-order-recap { margin-top: 26px; }
.atr-balance-note {
	padding: 13px 16px; border-radius: var(--atr-radius-sm);
	background: rgba(240, 177, 58, .12); border: 1px solid rgba(240, 177, 58, .35);
}

/* ---------- Responsive ---------- */

@media (max-width: 560px) {
	.atr-panel { padding: 16px; }
	.atr-when { grid-template-columns: 1fr; }
	.atr-card-top { flex-direction: column; align-items: flex-start; gap: 4px; }
	.atr-grid { grid-template-columns: 1fr; }
	.atr-lookup-row, .atr-promo-row { flex-direction: column; }
	.atr-lookup-row .atr-btn, .atr-promo-row .atr-btn { width: 100%; }
	.atr-tpp-head { flex-direction: column; }
	.atr-tpp-price { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
	.atr-card, .atr-btn { transition: none; }
	.atr-card:hover { transform: none; }
}

/* ---------- Add-ons on the product page ---------- */

.atr-addons { margin-top: 18px; }
.atr-addons .atr-panel-label { margin-bottom: 8px; }
.atr-addon-list { display: grid; gap: 0; }
.atr-addons .atr-addon,
.atr-modal .atr-addon { margin-top: 8px; }
.atr-addon.is-selected { border-color: var(--atr-accent); background: var(--atr-accent-soft); }
.atr-addon-price small { color: var(--atr-muted); font-weight: 500; }

.atr-more-addons {
	display: flex; align-items: center; justify-content: space-between;
	width: 100%; margin-top: 10px; padding: 12px 14px;
	background: transparent;
	border: 1px dashed var(--atr-line);
	border-radius: var(--atr-radius-sm);
	color: #6ea0ff; font-size: 14.5px; font-weight: 600; cursor: pointer;
}
.atr-more-addons:hover { border-color: var(--atr-accent); background: var(--atr-accent-soft); }
.atr-addons-summary { margin: 10px 0 0; font-size: 13px; color: var(--atr-go); }

/* Popup */
body.atr-modal-open { overflow: hidden; }

.atr-modal {
	position: fixed; inset: 0; z-index: 100000;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.atr-modal[hidden] { display: none; }
.atr-modal-backdrop { position: absolute; inset: 0; background: rgba(5, 9, 16, .72); }
.atr-modal-panel {
	position: relative;
	width: min(560px, 100%);
	max-height: min(80vh, 720px);
	display: flex; flex-direction: column;
	background: var(--atr-surface);
	border: 1px solid var(--atr-line);
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
	overflow: hidden;
}
.atr-modal-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 20px; border-bottom: 1px solid var(--atr-line);
}
.atr-modal-title { margin: 0; font-size: 18px; font-weight: 700; }
.atr-modal-close {
	background: none !important; border: 0 !important; padding: 0 !important;
	width: 32px !important; height: 32px !important; min-height: 0 !important;
	font-size: 24px !important; line-height: 1 !important;
	color: var(--atr-muted); cursor: pointer; border-radius: 8px;
	box-shadow: none !important;
}
.atr-modal-close:hover { background: rgba(255, 255, 255, .07); color: var(--atr-text); }
.atr-modal-body { padding: 6px 20px 18px; overflow-y: auto; overscroll-behavior: contain; }
.atr-modal-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
	padding: 14px 20px; border-top: 1px solid var(--atr-line);
	background: var(--atr-surface-2);
}
.atr-modal-total { color: var(--atr-muted); font-size: 13.5px; }
.atr-modal-foot .atr-btn { width: auto; padding: 11px 26px; }

/* ---------- Agreements inside the review column ---------- */

.atr-agreements--review {
	margin: 0 0 18px;
	padding: 16px;
	background: var(--atr-surface-2);
	border: 1px solid var(--atr-line);
	border-radius: var(--atr-radius-sm);
}
.atr-agreements--review .atr-checkline:last-of-type { margin-bottom: 10px; }

@media (max-width: 900px) {
	body.atr-sticky .atr-panel,
	body.atr-sticky.woocommerce-checkout .woocommerce-checkout-review-order,
	body.atr-sticky.woocommerce-checkout #order_review {
		position: static;
		top: auto !important;
	}
}

@media (max-width: 560px) {
	.atr-modal { padding: 0; align-items: flex-end; }
	.atr-modal-panel { width: 100%; max-height: 88vh; border-radius: 16px 16px 0 0; }
}
