.ptlf {
	--ptlf-ink              : #17324d;
	--ptlf-muted            : #6f8091;
	--ptlf-blue             : #527fbc;
	--ptlf-green            : #77b856;
	--ptlf-green-dark       : #4f8d31;
	--ptlf-orange           : #e7873b;
	--ptlf-border           : #dfe7ef;
	width                   : 100%;
	color                   : var(--ptlf-ink);
	direction               : rtl;
	font-family             : '2Dana';
	line-height             : 1.5;
	text-align              : right;
	text-rendering          : optimizeLegibility;
	-webkit-font-smoothing  : antialiased;
	-moz-osx-font-smoothing : grayscale;
}

.ptlf,
.ptlf *,
.ptlf *::before,
.ptlf *::after {
	box-sizing : border-box;
}

.ptlf button,
.ptlf input {
	font           : inherit;
	letter-spacing : 0;
}

.ptlf button {
	margin         : 0;
	border-style   : solid;
	appearance     : none;
	text-transform : none;
	white-space    : normal;
}

.ptlf-page {
}

.ptlf-shell {
	width     : 100%;
	max-width : 1184px;
	margin    : 0 auto;
	padding   : 24px 28px;
}

.ptlf-card {
	overflow      : hidden;
	margin-top    : 24px;
	border        : 1px solid #f1f5f9;
	border-radius : 24px;
	background    : #fff;
	box-shadow    : 0 18px 48px rgba(31, 57, 82, 0.1);
}

.ptlf-stage {
	padding : 40px 36px;
}

.ptlf-stage h2,
.ptlf-stage h3,
.ptlf-modal h2,
.ptlf-modal p {
	margin : 0;
}

.ptlf-stage h2 {
	color       : var(--ptlf-ink);
	font-size   : 28px;
	font-weight : 900;
	line-height : 1.5;
}

.ptlf-stage h3 {
	color       : var(--ptlf-ink);
	line-height : 1.5;
}

.ptlf-lead {
	margin      : 8px 0 0;
	color       : var(--ptlf-muted);
	font-size   : 16px;
	line-height : 2;
}

.ptlf-intro {
	padding-top    : 40px;
	padding-bottom : 40px;
}

.ptlf-intro .ptlf-lead {
	max-width  : 576px;
	margin-top : 12px;
}

.ptlf-intro .ptlf-button {
	margin-top : 24px;
}

.ptlf-hint,
.ptlf-field-hint {
	color       : var(--ptlf-muted);
	font-size   : 12px;
	line-height : 1.9;
}

.ptlf-hint {
	margin : 12px 0 0;
}

.ptlf-progress-wrap {
	padding : 24px 28px 0;
}

.ptlf-progress {
	display               : grid;
	grid-template-columns : repeat(3, minmax(0, 1fr));
	gap                   : 12px;
	margin                : 0;
	padding               : 0;
	list-style            : none;
}

.ptlf-progress-item {
	display         : flex;
	min-height      : 48px;
	align-items     : center;
	gap             : 8px;
	justify-content : flex-start;
	border-radius   : 12px;
	background      : #f8fafc;
	padding         : 8px 12px;
	color           : #94a3b8;
	font-size       : 14px;
	font-weight     : 900;
}

.ptlf-progress-item.is-current {
	background : rgba(82, 127, 188, 0.1);
	color      : var(--ptlf-blue);
}

.ptlf-progress-item.is-complete {
	background : rgba(119, 184, 86, 0.1);
	color      : var(--ptlf-green-dark);
}

.ptlf-progress-number {
	display       : grid;
	width         : 28px;
	height        : 28px;
	flex          : 0 0 28px;
	place-items   : center;
	border-radius : 999px;
	background    : #e2e8f0;
	color         : #64748b;
}

.ptlf-progress-item.is-current .ptlf-progress-number {
	background : var(--ptlf-blue);
	color      : #fff;
}

.ptlf-progress-item.is-complete .ptlf-progress-number {
	background : var(--ptlf-green);
	color      : #fff;
}

.ptlf .ptlf-button {
	display         : inline-flex;
	min-height      : 48px;
	align-items     : center;
	justify-content : center;
	gap             : 8px;
	border-radius   : 14px;
	padding         : 12px 20px;
	font-size       : 14px;
	font-weight     : 900;
	line-height     : 1.5;
	cursor          : pointer;
	transition      : 180ms ease;
}

.ptlf .ptlf-button-primary {
	border     : 1px solid var(--ptlf-orange);
	background : var(--ptlf-orange);
	color      : #fff;
	box-shadow : 0 10px 24px rgba(231, 135, 59, 0.23);
}

.ptlf .ptlf-button-primary:hover:not(:disabled),
.ptlf .ptlf-button-primary:focus-visible:not(:disabled) {
	border-color : #d97527;
	background   : #d97527;
	color        : #fff;
	transform    : translateY(-1px);
}

.ptlf .ptlf-button-secondary {
	border     : 1px solid var(--ptlf-border);
	background : #fff;
	color      : var(--ptlf-ink);
}

.ptlf .ptlf-button-secondary:hover:not(:disabled),
.ptlf .ptlf-button-secondary:focus-visible:not(:disabled) {
	border-color : var(--ptlf-blue);
	background   : #fff;
	color        : var(--ptlf-blue);
}

.ptlf .ptlf-button:disabled {
	cursor  : not-allowed;
	opacity : 0.6;
}

.ptlf-actions {
	display    : flex;
	flex-wrap  : wrap;
	gap        : 12px;
	margin-top : 28px;
}

.ptlf-form {
	margin-top : 24px;
}

.ptlf-form-grid {
	display               : grid;
	max-width             : 768px;
	grid-template-columns : repeat(2, minmax(0, 1fr));
	gap                   : 20px;
}

.ptlf-field label {
	display       : block;
	margin-bottom : 8px;
	color         : var(--ptlf-ink);
	font-size     : 14px;
	font-weight   : 900;
}

.ptlf .ptlf-input {
	width         : 100%;
	min-height    : 50px;
	border        : 1px solid #dce5ec;
	border-radius : 13px;
	outline       : none;
	background    : #fbfcfd;
	padding       : 12px 15px;
	color         : var(--ptlf-ink);
	font-size     : 14px;
	transition    : 160ms ease;
}

.ptlf .ptlf-input::placeholder {
	color : #94a3b8;
}

.ptlf .ptlf-input:focus {
	border-color : var(--ptlf-blue);
	box-shadow   : 0 0 0 4px rgba(82, 127, 188, 0.08);
}

.ptlf .ptlf-input.is-error {
	border-color : #dc2626;
}

.ptlf-input-ltr {
	direction  : ltr;
	text-align : left;
}

.ptlf-field-hint {
	margin : 8px 0 0;
}

.ptlf-error,
.ptlf-global-error {
	color       : #b91c1c;
	font-weight : 700;
}

.ptlf-error {
	margin    : 6px 0 0;
	font-size : 12px;
}

.ptlf-global-error {
	margin    : 16px 0 0;
	font-size : 14px;
}

.ptlf-method-grid {
	display               : grid;
	grid-template-columns : repeat(3, minmax(0, 1fr));
	gap                   : 16px;
	margin-top            : 24px;
}

.ptlf-method {
	position      : relative;
	min-height    : 190px;
	border        : 2px solid var(--ptlf-border);
	border-radius : 20px;
	background    : #fff;
	padding       : 20px;
	color         : var(--ptlf-ink);
	text-align    : right;
	cursor        : pointer;
	transition    : 180ms ease;
}

.ptlf-method:hover,
.ptlf-method:focus-visible {
	border-color : #cbd5e1;
	background   : #fff;
	color        : var(--ptlf-ink);
	box-shadow   : 0 8px 20px rgba(31, 57, 82, 0.09);
	transform    : translateY(-2px);
}

.ptlf-method.is-selected {
	border-color : var(--ptlf-green);
	background   : rgba(119, 184, 86, 0.05);
	color        : var(--ptlf-ink);
	box-shadow   : 0 8px 20px rgba(31, 57, 82, 0.09);
}

.ptlf-method-callback.is-selected {
	border-color : var(--ptlf-orange);
	background   : rgba(231, 135, 59, 0.05);
}

.ptlf-method.is-selected:hover,
.ptlf-method.is-selected:focus-visible {
	border-color : var(--ptlf-green);
	background   : rgba(119, 184, 86, 0.05);
}

.ptlf-method-callback.is-selected:hover,
.ptlf-method-callback.is-selected:focus-visible {
	border-color : var(--ptlf-orange);
	background   : rgba(231, 135, 59, 0.05);
}

.ptlf-method-badge {
	position      : absolute;
	top           : 16px;
	left          : 16px;
	border-radius : 999px;
	background    : #f8fafc;
	padding       : 4px 10px;
	color         : var(--ptlf-blue);
	font-size     : 10px;
	font-weight   : 900;
}

.ptlf-method-onsite .ptlf-method-badge {
	color : var(--ptlf-green-dark);
}

.ptlf-method-callback .ptlf-method-badge {
	color : #b75f1c;
}

.ptlf-method-icon {
	display       : grid;
	width         : 48px;
	height        : 48px;
	place-items   : center;
	border-radius : 16px;
	background    : rgba(82, 127, 188, 0.1);
	color         : var(--ptlf-blue);
}

.ptlf-method-onsite .ptlf-method-icon {
	background : rgba(119, 184, 86, 0.15);
	color      : var(--ptlf-green-dark);
}

.ptlf-method-callback .ptlf-method-icon {
	background : rgba(231, 135, 59, 0.15);
	color      : var(--ptlf-orange);
}

.ptlf-method > strong,
.ptlf-method-description,
.ptlf-count {
	display : block;
}

.ptlf-method > strong {
	margin-top  : 16px;
	font-size   : 18px;
	font-weight : 900;
}

.ptlf-method-description {
	margin-top  : 8px;
	color       : var(--ptlf-muted);
	font-size   : 12px;
	line-height : 2;
}

.ptlf-count {
	margin-top  : 12px;
	color       : var(--ptlf-green-dark);
	font-size   : 11px;
	font-weight : 900;
}

.ptlf-count.is-empty {
	color : #94a3b8;
}

.ptlf-notice {
	margin-top    : 20px;
	border        : 1px solid var(--ptlf-border);
	border-radius : 12px;
	padding       : 16px;
	font-size     : 14px;
	line-height   : 1.9;
}

.ptlf-notice-loading {
	display     : flex;
	align-items : center;
	gap         : 8px;
	background  : #f8fafc;
	color       : var(--ptlf-muted);
}

.ptlf-notice-error {
	border-color : #fecaca;
	background   : #fef2f2;
	color        : #b91c1c;
}

.ptlf-notice-error > div {
	display     : flex;
	align-items : flex-start;
	gap         : 8px;
}

.ptlf-notice-callback {
	border-color : #fed7aa;
	background   : #fff7ed;
	color        : #7c2d12;
	font-size    : 12px;
}

.ptlf-small-button {
	margin-top    : 12px;
	border        : 1px solid #b91c1c;
	border-radius : 8px;
	background    : #b91c1c;
	padding       : 8px 16px;
	color         : #fff;
	font-size     : 12px;
	font-weight   : 900;
	cursor        : pointer;
}

.ptlf-small-button:hover,
.ptlf-small-button:focus-visible {
	border-color : #991b1b;
	background   : #991b1b;
	color        : #fff;
}

.ptlf-schedule-header {
	display         : flex;
	align-items     : flex-end;
	justify-content : space-between;
	gap             : 12px;
}

.ptlf-type-badge {
	flex          : 0 0 auto;
	border-radius : 999px;
	background    : rgba(82, 127, 188, 0.1);
	padding       : 8px 12px;
	color         : var(--ptlf-blue);
	font-size     : 12px;
	font-weight   : 900;
}

.ptlf-quick {
	margin-top    : 24px;
	border        : 1px solid var(--ptlf-border);
	border-radius : 16px;
	background    : rgba(248, 250, 252, 0.7);
	padding       : 20px;
}

.ptlf-row-heading {
	display         : flex;
	flex-wrap       : wrap;
	align-items     : center;
	justify-content : space-between;
	gap             : 8px;
}

.ptlf-row-heading strong {
	font-size   : 14px;
	font-weight : 900;
}

.ptlf-row-heading span {
	color     : var(--ptlf-muted);
	font-size : 11px;
}

.ptlf-chip-row {
	font-size  : 12px;
	display    : flex;
	flex-wrap  : wrap;
	gap        : 8px;
	margin-top : 12px;
}

.ptlf-chip {
	border        : 1px solid #d9e5ee;
	border-radius : 12px;
	background    : #fff;
	padding       : 10px 12px;
	color         : var(--ptlf-ink);
	font-size     : 12px;
	font-weight   : 900;
	cursor        : pointer;
	transition    : 160ms ease;
}

.ptlf-chip:hover,
.ptlf-chip:focus-visible {
	border-color : var(--ptlf-blue);
	color        : var(--ptlf-blue);
}

.ptlf-chip.is-selected {
	font-size    : 12px;
	border-color : var(--ptlf-green);
	color        : var(--ptlf-green-dark);
}

.ptlf-date-heading {
	margin-top : 24px;
}

.ptlf-date-rail {
	display          : flex;
	gap              : 8px;
	overflow-x       : auto;
	margin-top       : 12px;
	padding-bottom   : 8px;
	scrollbar-color  : rgba(82, 127, 188, 0.35) transparent;
	scrollbar-width  : thin;
	scroll-snap-type : x proximity;
}

.ptlf-date {
	min-width         : 145px;
	flex              : 0 0 auto;
	border            : 1px solid var(--ptlf-border);
	border-radius     : 16px;
	background        : #fff;
	padding           : 12px;
	color             : var(--ptlf-ink);
	text-align        : center;
	cursor            : pointer;
	scroll-snap-align : start;
	transition        : 160ms ease;
}

.ptlf-date:hover,
.ptlf-date:focus-visible {
	border-color : var(--ptlf-blue);
	background   : #fff;
	color        : var(--ptlf-ink);
}

.ptlf-date.is-selected {
	border-color : var(--ptlf-blue);
	background   : rgba(82, 127, 188, 0.06);
	box-shadow   : 0 0 0 3px rgba(82, 127, 188, 0.07);
}

.ptlf-date strong,
.ptlf-date span,
.ptlf-date small {
	display : block;
}

.ptlf-date strong {
	font-size : 12px;
}

.ptlf-date.is-selected strong {
	color : var(--ptlf-blue);
}

.ptlf-date span {
	margin-top : 4px;
	color      : var(--ptlf-muted);
	font-size  : 11px;
}

.ptlf-date small {
	margin-top  : 4px;
	color       : var(--ptlf-green-dark);
	font-size   : 10px;
	font-weight : 700;
}

.ptlf-day-panel {
	margin-top    : 16px;
	border        : 1px solid var(--ptlf-border);
	border-radius : 16px;
	padding       : 20px;
}

.ptlf-day-header {
	display         : flex;
	align-items     : flex-start;
	justify-content : space-between;
	gap             : 16px;
}

.ptlf-day-header h3 {
	font-size   : 16px;
	font-weight : 900;
}

.ptlf-day-header > div:first-child > span {
	display     : block;
	margin-top  : 4px;
	color       : var(--ptlf-green-dark);
	font-size   : 11px;
	font-weight : 700;
}

.ptlf-segments {
	display   : flex;
	flex-wrap : wrap;
	gap       : 8px;
	font-size : 12px;
}

.ptlf-segment {
	border        : 1px solid var(--ptlf-border);
	border-radius : 999px;
	background    : #fff;
	padding       : 8px 12px;
	color         : var(--ptlf-muted);
	font-size     : 11px;
	font-weight   : 900;
	cursor        : pointer;
	transition    : 160ms ease;
}

.ptlf-segment:hover,
.ptlf-segment:focus-visible {
	border-color : var(--ptlf-blue);
	background   : #fff;
	color        : var(--ptlf-blue);
}

.ptlf-segment.is-selected {
	border-color : var(--ptlf-blue);
	background   : var(--ptlf-blue);
	color        : #fff;
}

.ptlf-time-grid {
	display               : grid;
	grid-template-columns : repeat(6, minmax(0, 1fr));
	gap                   : 8px;
	margin-top            : 20px;
	font-size             : 12px;
}

.ptlf-time {
	min-height    : 44px;
	border        : 1px solid #dce5ec;
	border-radius : 12px;
	background    : #fff;
	padding       : 4px 8px;
	color         : var(--ptlf-ink);
	font-size     : 12px;
	font-weight   : 900;
	cursor        : pointer;
	transition    : 160ms ease;
}

.ptlf-time:hover,
.ptlf-time:focus-visible {
	border-color : var(--ptlf-blue);
	color        : var(--ptlf-blue);
}

.ptlf-time.is-selected {
	border-color : var(--ptlf-green);
	background   : var(--ptlf-green);
	color        : #fff;
}

.ptlf-empty {
	margin        : 20px 0 0;
	border-radius : 12px;
	background    : #f8fafc;
	padding       : 16px;
	color         : var(--ptlf-muted);
	font-size     : 12px;
	text-align    : center;
}

.ptlf-times-toggle {
	display     : flex;
	align-items : center;
	gap         : 4px;
	margin      : 16px auto 0;
	border      : 0;
	background  : transparent;
	padding     : 4px;
	color       : var(--ptlf-blue);
	font-size   : 12px;
	font-weight : 900;
	cursor      : pointer;
}

.ptlf-times-toggle:hover,
.ptlf-times-toggle:focus-visible {
	background : transparent;
	color      : var(--ptlf-blue);
}

.ptlf-onsite-grid {
	display               : grid;
	grid-template-columns : repeat(2, minmax(0, 1fr));
	gap                   : 12px;
	margin-top            : 24px;
}

.ptlf-onsite {
	border        : 1px solid var(--ptlf-border);
	border-radius : 16px;
	background    : #fff;
	padding       : 20px;
	transition    : 160ms ease;
}

.ptlf-onsite.is-selected {
	border-color : var(--ptlf-green);
	background   : rgba(119, 184, 86, 0.045);
}

.ptlf-onsite-main {
	display         : flex;
	align-items     : flex-start;
	justify-content : space-between;
	gap             : 12px;
}

.ptlf-onsite h3 {
	font-size   : 14px;
	font-weight : 900;
}

.ptlf-onsite-meta {
	display    : flex;
	flex-wrap  : wrap;
	gap        : 8px 16px;
	margin-top : 12px;
	color      : var(--ptlf-muted);
	font-size  : 12px;
}

.ptlf-onsite-meta span {
	display     : flex;
	align-items : center;
	gap         : 6px;
}

.ptlf-selected-check {
	display       : grid;
	width         : 32px;
	height        : 32px;
	flex          : 0 0 32px;
	place-items   : center;
	border-radius : 999px;
	background    : var(--ptlf-green);
	color         : #fff;
}

.ptlf-onsite-actions {
	display     : flex;
	flex-wrap   : wrap;
	align-items : center;
	gap         : 8px;
	margin-top  : 16px;
	border-top  : 1px solid #f1f5f9;
	padding-top : 16px;
}

.ptlf-select-button {
	border        : 1px solid var(--ptlf-green);
	border-radius : 12px;
	background    : #fff;
	padding       : 10px 16px;
	color         : var(--ptlf-green-dark);
	font-size     : 12px !important;
	font-weight   : 900;
	cursor        : pointer;
	transition    : 160ms ease;
}

.ptlf-select-button:hover,
.ptlf-select-button:focus-visible {
	background : var(--ptlf-green);
	color      : #fff;
}

.ptlf-icon-button {
	display         : inline-flex;
	width           : 40px;
	height          : 40px;
	align-items     : center;
	justify-content : center;
	border          : 1px solid rgba(82, 127, 188, 0.25);
	border-radius   : 12px;
	background      : rgba(82, 127, 188, 0.08);
	color           : var(--ptlf-blue);
	text-decoration : none;
	cursor          : pointer;
}

.ptlf-icon-button:hover,
.ptlf-icon-button:focus-visible {
	border-color : rgba(82, 127, 188, 0.45);
	background   : rgba(82, 127, 188, 0.14);
	color        : var(--ptlf-blue);
}

.ptlf-summary,
.ptlf-result-grid {
	display               : grid;
	grid-template-columns : repeat(3, minmax(0, 1fr));
	gap                   : 16px;
	border                : 1px solid var(--ptlf-border);
	border-radius         : 16px;
	background            : #f8fafc;
	padding               : 20px;
}

.ptlf-summary {
	margin-top : 24px;
}

.ptlf-summary span,
.ptlf-result-grid span {
	display   : block;
	color     : var(--ptlf-muted);
	font-size : 11px;
}

.ptlf-summary strong,
.ptlf-result-grid strong {
	display     : block;
	margin-top  : 4px;
	color       : var(--ptlf-ink);
	font-size   : 14px;
	font-weight : 900;
}

.ptlf-success {
	padding-top    : 56px;
	padding-bottom : 56px;
	text-align     : center;
}

.ptlf-success .ptlf-lead {
	max-width : 672px;
	margin    : 12px auto 0;
}

.ptlf-success h2 {
	margin-top : 20px;
}

.ptlf-success-icon {
	display       : grid;
	width         : 72px;
	height        : 72px;
	margin        : 0 auto;
	place-items   : center;
	border-radius : 999px;
	background    : rgba(119, 184, 86, 0.15);
	color         : #4f9632;
}

.ptlf-callback-icon {
	background : rgba(231, 135, 59, 0.15);
	color      : var(--ptlf-orange);
}

.ptlf-result-grid {
	max-width  : 900px;
	margin     : 24px auto 0;
	text-align : right;
}

.ptlf-text-success {
	color : var(--ptlf-green-dark) !important;
}

.ptlf-text-callback {
	color : var(--ptlf-orange) !important;
}

.ptlf-placeholder-note {
	max-width     : 768px;
	margin        : 20px auto 0;
	border        : 1px solid rgba(82, 127, 188, 0.2);
	border-radius : 12px;
	background    : rgba(82, 127, 188, 0.07);
	padding       : 16px;
	color         : #315f9d;
	font-size     : 12px;
	line-height   : 1.9;
}

.ptlf-success > .ptlf-button {
	margin-top : 28px;
}

.ptlf-modal-backdrop {
	position        : fixed;
	z-index         : 999999;
	inset           : 0;
	display         : flex;
	align-items     : center;
	justify-content : center;
	background      : rgba(2, 6, 23, 0.55);
	padding         : 16px;
	backdrop-filter : blur(2px);
}

.ptlf-modal {
	width         : 100%;
	max-width     : 512px;
	overflow      : hidden;
	border-radius : 16px;
	background    : #fff;
	color         : var(--ptlf-ink);
	text-align    : right;
	box-shadow    : 0 25px 50px rgba(2, 6, 23, 0.28);
}

.ptlf-modal header {
	display         : flex;
	align-items     : center;
	justify-content : space-between;
	gap             : 16px;
	border-bottom   : 1px solid #f1f5f9;
	padding         : 16px 20px;
}

.ptlf-modal h2 {
	color       : #0f172a;
	font-size   : 16px;
	font-weight : 900;
}

.ptlf-modal header p {
	margin-top : 4px;
	color      : #64748b;
	font-size  : 12px;
}

.ptlf-modal header button {
	display       : grid;
	width         : 36px;
	height        : 36px;
	flex          : 0 0 36px;
	place-items   : center;
	border        : 0;
	border-radius : 9px;
	background    : transparent;
	color         : #64748b;
	cursor        : pointer;
}

.ptlf-modal header button:hover,
.ptlf-modal header button:focus-visible {
	background : #f1f5f9;
	color      : #64748b;
}

.ptlf-address {
	margin        : 20px !important;
	border        : 1px solid rgba(119, 184, 86, 0.25);
	border-radius : 12px;
	background    : rgba(119, 184, 86, 0.1);
	padding       : 16px;
	color         : #334155;
	font-size     : 14px;
	font-weight   : 500;
	line-height   : 2;
}

.ptlf-icon,
.ptlf-icon-sm,
.ptlf-icon-lg,
.ptlf-icon-xl {
	display : block;
	flex    : 0 0 auto;
}

.ptlf-icon {
	width  : 20px;
	height : 20px;
}

.ptlf-icon-sm {
	width  : 16px;
	height : 16px;
}

.ptlf-icon-lg {
	width  : 24px;
	height : 24px;
}

.ptlf-icon-xl {
	width  : 36px;
	height : 36px;
}

.ptlf-spin {
	animation : ptlf-spin 1s linear infinite;
}

.ptlf-noscript {
	border        : 1px solid #fecaca;
	border-radius : 12px;
	background    : #fef2f2;
	padding       : 16px;
	color         : #b91c1c;
	font-family   : '2Dana';
	text-align    : center;
}

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

@media (max-width : 1023px) {
	.ptlf-shell {
		padding-right : 20px;
		padding-left  : 20px;
	}

	.ptlf-method-grid {
		grid-template-columns : 1fr;
	}
}

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

	.ptlf-onsite-grid {
		grid-template-columns : 1fr;
	}
}

@media (max-width : 639px) {
	.ptlf-shell {
		padding : 12px;
	}

	.ptlf-card {
		margin-top    : 20px;
		border-radius : 22px;
	}

	.ptlf-stage {
		padding : 32px 20px;
	}

	.ptlf-stage h2 {
		font-size   : 24px;
		line-height : 32px;
	}

	.ptlf-lead {
		font-size : 14px;
	}

	.ptlf-progress-wrap {
		padding : 20px 16px 0;
	}

	.ptlf-progress {
		gap : 8px;
	}

	.ptlf-progress-item {
		justify-content : center;
		padding         : 8px;
		font-size       : 12px;
	}

	.ptlf-progress-label {
		display : none;
	}

	.ptlf-form-grid,
	.ptlf-summary,
	.ptlf-result-grid {
		grid-template-columns : 1fr;
	}

	.ptlf-button {
		width : 100%;
	}

	.ptlf-schedule-header,
	.ptlf-day-header {
		align-items    : flex-start;
		flex-direction : column;
	}

	.ptlf-date {
		min-width : 124px;
	}

	.ptlf-time-grid {
		grid-template-columns : repeat(3, minmax(0, 1fr));
	}

	.ptlf-quick,
	.ptlf-day-panel,
	.ptlf-onsite {
		padding : 16px;
	}

	.ptlf-success {
		padding-top    : 48px;
		padding-bottom : 48px;
	}
}

@media (prefers-reduced-motion : reduce) {
	.ptlf *,
	.ptlf *::before,
	.ptlf *::after {
		scroll-behavior     : auto !important;
		transition-duration : 0.01ms !important;
	}
}
