/* ==========================================================================
   Pour Toujours — Calculateur de budget de mariage (budget/template.php)
   Mêmes repères que les formulaires du répertoire : cartes menthe, Helvetica, sans ombre.
   ========================================================================== */

.ptb {
	/* Le conteneur du thème est en flex : sans ça, la page prend la largeur de son contenu (1240 px). */
	flex: 1 1 100%;
	width: 100%;
	--ptb-ink: #183030;
	--ptb-muted: #526354;
	--ptb-green: #2f6b55;
	--ptb-mint: #f3faf6;
	--ptb-mint-2: #e3f0e8;
	--ptb-rose: #f7aea1;
	--ptb-rose-tint: #fdf0ed;
	--ptb-red: #b3261e;
	--ptb-line: rgba(24, 48, 48, 0.12);
}

.ptb h1,
.ptb h2,
.ptb h3 {
	color: var(--ptb-ink);
	font-weight: 800;
	letter-spacing: -0.015em;
}

.ptb h2 {
	font-size: var(--pt-h2);
	line-height: 1.15;
}

.ptb-eyebrow {
	margin: 0 0 10px !important;
	color: #a0574a;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Liens dans le texte : même soulignement saumon que le répertoire (.pf-link). */
.ptb-prose a,
.ptb-more a,
.ptb-faq__item p a {
	color: var(--ptb-ink);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--ptb-rose);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	transition: text-decoration-color 0.15s;
}

.ptb-prose a:hover,
.ptb-more a:hover,
.ptb-faq__item p a:hover {
	text-decoration-color: var(--ptb-ink);
}

/* --- Haut de page : titre et formulaire côte à côte -------------------- */

.ptb-hero {
	padding: 40px 0 56px;
	background: var(--ptb-mint);
}

.ptb-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
	gap: 48px;
	align-items: start;
}

.ptb-crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
	color: var(--ptb-muted);
	font-size: 14px;
}

.ptb-crumbs a {
	color: inherit;
	text-decoration: none;
}

.ptb-crumbs a:hover {
	color: var(--ptb-ink);
	text-decoration: underline;
}

.ptb-hero h1 {
	margin: 0 0 16px;
	font-size: var(--pt-h1);
	line-height: 1.05;
}

.ptb-hero__lead {
	max-width: 560px;
	margin: 0 0 22px !important;
	color: var(--ptb-muted);
	font-size: 18px;
	line-height: 1.55;
}

.ptb-hero__points li {
	position: relative;
	margin: 0 0 8px;
	padding-left: 26px;
	font-size: 16px;
}

.ptb-hero__points li::before {
	content: "";
	position: absolute;
	top: 6px;
	left: 2px;
	width: 12px;
	height: 7px;
	border-bottom: 2px solid var(--ptb-green);
	border-left: 2px solid var(--ptb-green);
	transform: rotate(-45deg);
}

.ptb-card {
	padding: 22px;
	border: 1px solid var(--ptb-mint-2);
	border-radius: 20px;
	background: #fff;
}

.ptb-form__carte {
	overflow: hidden;
	margin: 0 0 16px;
	border-radius: 16px;
	background: var(--ptb-mint);
}

.ptb-form__row {
	display: block;
	margin: 0;
	padding: 12px 16px 10px;
	cursor: text;
}

.ptb-form__row + .ptb-form__row {
	border-top: 1px solid var(--ptb-mint-2);
}

.ptb-form__row > span:first-child {
	display: block;
	color: var(--ptb-muted);
	font-size: 13px;
	font-weight: 700;
}

.ptb-form__row:focus-within {
	background: var(--ptb-mint-2);
	box-shadow: inset 3px 0 0 var(--ptb-green);
}

.ptb-form__row:focus-within > span:first-child {
	color: var(--ptb-green);
}

.ptb-form__input {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.ptb .ptb-form__input input {
	flex: 1;
	min-width: 0;
	min-height: 40px;
	margin: 0;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	color: var(--ptb-ink);
	font: inherit;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.ptb .ptb-form__input input::placeholder {
	color: #a3b0aa;
	font-weight: 700;
}

.ptb-form__input > span {
	color: var(--ptb-muted);
	font-size: 15px;
	font-weight: 700;
}

.ptb-form__row small {
	display: block;
	color: var(--ptb-muted);
	font-size: 13px;
}

.ptb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: var(--pt-btn-h);
	padding: 0 var(--pt-btn-pad);
	border: 0;
	border-radius: 999px;
	background: var(--ptb-rose);
	color: var(--ptb-ink);
	font: inherit;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: var(--pt-btn-ls);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.ptb-button:hover {
	background: var(--pt-btn-hover);
}

.ptb-button:disabled {
	opacity: 0.6;
	cursor: progress;
}

.ptb a.ptb-button {
	color: var(--ptb-ink);
	text-decoration: none;
}

.ptb-button--dark,
.ptb a.ptb-button--dark {
	width: auto;
	background: var(--ptb-ink);
	color: #fff;
}

.ptb-button--dark:hover {
	background: #0b1616;
}

.ptb-form-status:not(:empty) {
	margin: 12px 0 0;
	color: var(--ptb-red);
	font-size: 14px;
	font-weight: 700;
}

/* Préparation (2,9 s au premier calcul, voulue). */
.ptb-loader {
	margin: 16px 0 0;
	padding: 18px;
	border-radius: 16px;
	background: var(--ptb-mint);
}

.ptb-loader[hidden] {
	display: none;
}

.ptb-loader__label {
	margin: 0 0 4px !important;
	color: var(--ptb-green);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ptb-loader__message {
	margin: 0 0 12px !important;
	font-size: 18px;
	font-weight: 800;
}

.ptb-loader__track {
	overflow: hidden;
	height: 8px;
	border-radius: 4px;
	background: var(--ptb-mint-2);
}

.ptb-loader__bar {
	width: 0;
	height: 100%;
	border-radius: 4px;
	background: var(--ptb-green);
	transition: width 0.6s ease;
}

/* --- Résultats ---------------------------------------------------------- */

.ptb-results-wrap {
	padding: 0;
}

.ptb-results {
	padding: 40px 0 0;
	scroll-margin-top: 90px;
}

.ptb-results[hidden] {
	display: none;
}

.ptb-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	overflow: hidden;
	border-radius: 16px;
	background: var(--ptb-mint);
}

.ptb-summary__item {
	padding: 16px 18px;
}

.ptb-summary__item + .ptb-summary__item {
	border-left: 1px solid var(--ptb-mint-2);
}

.ptb-summary__item span {
	display: block;
	color: var(--ptb-muted);
	font-size: 13px;
	font-weight: 700;
}

.ptb-summary__item strong {
	display: block;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.ptb-summary__item--status.is-over {
	background: var(--ptb-rose-tint);
}

.ptb-summary__item--status.is-over strong,
.ptb-summary__item--status.is-over span {
	color: var(--ptb-red);
}

.ptb-summary__item--status.is-under strong {
	color: var(--ptb-green);
}

.ptb-progress-wrap {
	margin: 16px 0 0;
}

.ptb-progress-meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 6px;
	color: var(--ptb-muted);
	font-size: 14px;
	font-weight: 700;
}

.ptb-progress {
	overflow: hidden;
	height: 8px;
	border-radius: 4px;
	background: var(--ptb-mint-2);
}

.ptb-progress__bar {
	width: 0;
	height: 100%;
	background: var(--ptb-green);
}

.ptb-progress__bar.is-over {
	background: var(--ptb-red);
}

.ptb-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 18px 0 0;
}

.ptb-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--pt-btn-h-sm);
	padding: 0 var(--pt-btn-pad-sm);
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--ptb-ink);
	color: var(--ptb-ink);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: var(--pt-btn-ls);
	line-height: 1;
	cursor: pointer;
}

.ptb-action:hover {
	background: var(--ptb-mint);
}

.ptb-saved {
	margin: 0 0 0 auto !important;
	color: var(--ptb-muted);
	font-size: 13px;
}

.ptb-text-button,
.ptb .pt-budget-text-button {
	margin-left: 4px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ptb-ink);
	font: inherit;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}

.ptb-notice:not(:empty) {
	margin: 12px 0 0;
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--ptb-mint);
	color: var(--ptb-green);
	font-size: 14px;
	font-weight: 700;
}

.ptb-cats {
	margin: 36px 0 0;
}

.ptb-cats__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 16px;
}

.ptb-cats__head h2 {
	margin: 0 0 6px;
}

.ptb-cats__head p:not(.ptb-eyebrow) {
	color: var(--ptb-muted);
	font-size: 15px;
}

.ptb-cats__labels,
.ptb .pt-budget-category {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 190px 70px;
	gap: 16px;
	align-items: center;
}

.ptb-cats__labels {
	padding: 0 16px 8px;
	color: var(--ptb-muted);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ptb-cats__labels span:last-child {
	text-align: right;
}

.ptb-cats__list {
	overflow: hidden;
	border: 1px solid var(--ptb-mint-2);
	border-radius: 16px;
}

.ptb .pt-budget-category {
	padding: 12px 16px;
}

.ptb .pt-budget-category + .pt-budget-category {
	border-top: 1px solid var(--ptb-mint-2);
}

.ptb .pt-budget-category__name strong {
	display: block;
	font-size: 16px;
}

.ptb .pt-budget-category__recommendation,
.ptb .pt-budget-category__note,
.ptb .pt-budget-category__per-guest {
	display: block;
	color: var(--ptb-muted);
	font-size: 13px;
}

.ptb .pt-budget-category__edited {
	color: #a0574a;
	font-weight: 700;
}

.ptb .pt-budget-category__per-guest {
	color: var(--ptb-green);
	font-weight: 700;
}

.ptb .pt-budget-category__per-guest small {
	display: block;
	color: var(--ptb-red);
}

.ptb .pt-budget-category__input-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0 14px;
	border-radius: 12px;
	background: var(--ptb-mint);
}

.ptb .pt-budget-category__input-wrap:focus-within {
	background: var(--ptb-mint-2);
	box-shadow: inset 3px 0 0 var(--ptb-green);
}

.ptb .pt-budget-category__input {
	flex: 1;
	width: 100%;
	min-width: 0;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	color: var(--ptb-ink);
	font: inherit;
	font-size: 17px;
	font-weight: 700;
	text-align: right;
	-moz-appearance: textfield;
}

.ptb .pt-budget-category__input::-webkit-outer-spin-button,
.ptb .pt-budget-category__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ptb .pt-budget-category__suffix {
	color: var(--ptb-muted);
	font-weight: 700;
}

.ptb .pt-budget-category__share {
	text-align: right;
	font-size: 15px;
}

.ptb-cats__note {
	margin: 14px 0 0 !important;
	color: var(--ptb-muted);
	font-size: 14px;
}

/* Prochaine étape : l'échéancier. */
.ptb-next {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	margin: 28px 0 0;
	padding: 22px 24px;
	border-radius: 16px;
	background: var(--ptb-mint);
}

.ptb-next > div {
	flex: 1 1 380px;
}

.ptb-next__title {
	margin: 0 0 4px !important;
	font-size: 20px;
	font-weight: 800;
}

.ptb-next p:not(.ptb-eyebrow):not(.ptb-next__title) {
	color: var(--ptb-muted);
	font-size: 15px;
}

.ptb-button--compact {
	min-height: var(--pt-btn-h-sm);
	padding: 0 var(--pt-btn-pad-sm);
	font-size: 15px;
}

/* Barre collante : ce qui reste à allouer, toujours visible pendant qu'on ajuste. */
.ptb-sticky {
	position: sticky;
	bottom: 0;
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin: 20px 0 0;
	padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
	border-radius: 16px 16px 0 0;
	background: var(--ptb-ink);
	color: #fff;
}

.ptb-sticky__figures {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	align-items: baseline;
}

.ptb-sticky__status {
	font-size: 17px;
	font-weight: 800;
}

.ptb-sticky.is-over .ptb-sticky__status {
	color: var(--ptb-rose);
}

.ptb-sticky__allocated {
	color: #b9c8c1;
	font-size: 14px;
}

.ptb-sticky__balance {
	min-height: 40px;
	padding: 0 16px;
	border: 0;
	border-radius: 999px;
	background: var(--ptb-rose);
	color: var(--ptb-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
}

.ptb-sticky__balance[hidden] {
	display: none;
}

.ptb .pt-budget-sticky__balance-short {
	display: none;
}

/* --- Après le calcul : le planificateur --------------------------------- */

.ptb-app {
	margin: 56px 0 0;
	padding: 56px 0;
	background: var(--ptb-mint);
}

.ptb-app[hidden] {
	display: none;
}

.ptb-app__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.ptb-app h2 {
	margin: 0 0 14px;
}

.ptb-app__copy > p:not(.ptb-eyebrow):not(.ptb-app__meta) {
	margin: 0 0 18px;
	color: var(--ptb-muted);
}

.ptb-app__strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	overflow: hidden;
	margin: 0 0 22px;
	border-radius: 14px;
	background: #fff;
}

.ptb-app__strip div {
	padding: 12px 14px;
}

.ptb-app__strip div + div {
	border-left: 1px solid var(--ptb-mint-2);
}

.ptb-app__strip span {
	display: block;
	color: var(--ptb-muted);
	font-size: 12px;
	font-weight: 700;
}

.ptb-app__strip strong {
	font-size: 17px;
}

.ptb-app__meta {
	margin: 10px 0 0 !important;
	color: var(--ptb-muted);
	font-size: 14px;
}

.ptb-app__visual img {
	width: 100%;
	border-radius: 20px;
}

/* --- Sections de contenu (visibles dès l'arrivée) ----------------------- */

.ptb-section {
	padding: var(--pt-section) 0;
}

.ptb-results-wrap + .ptb-section,
.ptb-app + .ptb-section {
	margin-top: 0;
}

.ptb-section__head {
	max-width: 720px;
	margin: 0 0 24px;
}

.ptb-section__head h2 {
	margin: 0 0 10px;
}

.ptb-section__head > p:not(.ptb-eyebrow) {
	color: var(--ptb-muted);
}

.ptb-split {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 48px;
	align-items: start;
}

.ptb-prose p {
	margin: 0 0 14px;
}

.ptb-forgotten__status {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	align-items: baseline;
	margin: 0 0 14px;
	font-size: 15px;
}

.ptb-forgotten__status span {
	color: var(--ptb-muted);
}

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

.ptb-cost {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 56px;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid var(--ptb-mint-2);
	border-radius: 14px;
	background: var(--ptb-mint);
	font-size: 15px;
	cursor: pointer;
}

.ptb-cost input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--ptb-green);
}

.ptb-cost:has(input:checked) {
	border-color: var(--ptb-green);
	background: var(--ptb-mint-2);
}

.ptb-cost:has(input:checked) span {
	color: var(--ptb-green);
	font-weight: 700;
}

.ptb-forgotten__remaining {
	margin: 16px 0 0;
	padding: 14px 18px;
	border-radius: 14px;
	background: var(--ptb-rose-tint);
}

.ptb-forgotten__remaining.is-complete {
	background: var(--ptb-mint-2);
}

.ptb-forgotten__remaining p {
	margin: 2px 0 0 !important;
	color: var(--ptb-muted);
	font-size: 14px;
}

.ptb-more {
	margin: 16px 0 0 !important;
	font-weight: 700;
}

.ptb-info,
.ptb-faq {
	background: var(--ptb-mint);
}

.ptb-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--ptb-mint-2);
	border-radius: 16px;
}

.ptb-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.ptb-table th,
.ptb-table td {
	padding: 11px 16px;
	border: 0;
	border-bottom: 1px solid var(--ptb-mint-2);
	text-align: right;
	white-space: nowrap;
}

.ptb-table tbody tr:last-child th,
.ptb-table tbody tr:last-child td {
	border-bottom: 0;
}

.ptb-table th:first-child {
	position: sticky;
	left: 0;
	background: #fff;
	text-align: left;
}

.ptb-table thead th {
	background: var(--ptb-mint);
	font-size: 14px;
	font-weight: 800;
}

.ptb-table thead th:first-child {
	background: var(--ptb-mint);
}

.ptb-table tbody th {
	font-weight: 700;
}

.ptb-table td:nth-child(2) {
	color: var(--ptb-muted);
}

/* --- Tablette et téléphone ---------------------------------------------- */

@media (max-width: 960px) {
	.ptb-hero__grid,
	.ptb-app__grid,
	.ptb-split {
		grid-template-columns: 1fr;
		gap: 28px;
	}

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

	.ptb-summary__item:nth-child(3) {
		border-left: 0;
	}

	.ptb-summary__item:nth-child(n+3) {
		border-top: 1px solid var(--ptb-mint-2);
	}

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

@media (max-width: 640px) {

	.ptb-hero {
		padding: 20px 0 32px;
	}

	.ptb-crumbs {
		margin-bottom: 18px;
	}

	.ptb-hero__lead {
		font-size: 16px;
	}

	.ptb-hero__points {
		display: none;
	}

	.ptb-card {
		padding: 14px;
	}

	.ptb-summary__item {
		padding: 12px 14px;
	}

	.ptb-summary__item strong {
		font-size: 21px;
	}

	.ptb-saved {
		margin-left: 0 !important;
		width: 100%;
	}

	.ptb-cats__labels {
		display: none;
	}

	.ptb .pt-budget-category {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px 12px;
		padding: 12px 14px;
	}

	.ptb .pt-budget-category__name {
		grid-column: 1 / -1;
	}

	.ptb .pt-budget-category__share {
		min-width: 48px;
	}

	.ptb-sticky {
		margin-left: -16px;
		margin-right: -16px;
		border-radius: 0;
	}

	.ptb .pt-budget-sticky__balance-long {
		display: none;
	}

	.ptb .pt-budget-sticky__balance-short {
		display: inline;
	}

	.ptb-app,
	.ptb-section {
		padding: 44px 0;
	}

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

	.ptb-app__strip div:nth-child(3) {
		border-left: 0;
	}

	.ptb-app__strip div:nth-child(n+3) {
		border-top: 1px solid var(--ptb-mint-2);
	}

	.ptb-button--dark {
		width: 100%;
	}

	.ptb-costs {
		grid-template-columns: 1fr;
	}

	.ptb-table th,
	.ptb-table td {
		padding: 10px 12px;
		font-size: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ptb-loader__bar {
		transition: none;
	}
}

/* Après une mise à jour : les chiffres principaux s'allument brièvement en rose pâle. */
@keyframes ptb-maj {
	from {
		background-color: #fbd9d1;
	}
}

.is-updated .ptb-summary,
.is-updated .ptt-status-grid,
.is-updated .ptt-countdown {
	animation: ptb-maj 1.6s ease-out;
}

.ptt-countdown {
	border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
	.is-updated .ptb-summary,
	.is-updated .ptt-status-grid,
	.is-updated .ptt-countdown {
		animation: none;
	}
}

/* --- Impression : une page propre (repris de l'ancienne page) ------------ */

#pt-budget-print-sheet {
  display: none;
}

/* Feuille imprimée : même langage que l'aide-mémoire du palais de justice (en-tête logo, cartes, listes compactes). */
@media print {
  @page {
    size: letter;
    margin: 14mm 16mm;
  }

  body.pt-budget-printing > *:not(#pt-budget-print-sheet) {
    display: none !important;
  }

  body.pt-budget-printing {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.pt-budget-printing > #pt-budget-print-sheet {
    display: block !important;
    color: #183030;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 9pt;
    line-height: 1.4;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  #pt-budget-print-sheet h1,
  #pt-budget-print-sheet h2,
  #pt-budget-print-sheet h3,
  #pt-budget-print-sheet p,
  #pt-budget-print-sheet ul {
    margin: 0;
    letter-spacing: normal !important;
    word-spacing: normal !important;
  }

  #pt-budget-print-sheet .pt-print-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 8pt;
    border-bottom: 0.6pt solid #183030;
  }

  #pt-budget-print-sheet .pt-print-logo {
    display: block;
    width: 112pt;
    height: auto;
  }

  #pt-budget-print-sheet .pt-print-head p {
    color: #a0574a;
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.12em !important;
    text-transform: uppercase;
  }

  #pt-budget-print-sheet h1 {
    margin: 14pt 0 2pt;
    font-size: 15pt;
    font-weight: 800;
    line-height: 1.2;
  }

  #pt-budget-print-sheet .pt-print-meta {
    color: #526354;
    font-size: 8pt;
  }

  #pt-budget-print-sheet .pt-print-summary {
    display: flex;
    gap: 6pt;
    margin: 10pt 0 0;
  }

  #pt-budget-print-sheet .pt-print-summary div {
    flex: 1;
    padding: 6pt 8pt;
    border: 0.6pt solid #c9d2cd;
    border-radius: 5pt;
  }

  #pt-budget-print-sheet .pt-print-summary div.is-key {
    border-color: #f7aea1;
    background: #fdf0ed;
  }

  #pt-budget-print-sheet .pt-print-summary span {
    display: block;
    color: #a0574a;
    font-size: 6.5pt;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #pt-budget-print-sheet .pt-print-summary strong {
    display: block;
    margin: 2pt 0 0;
    font-size: 10.5pt;
    font-weight: 800;
    line-height: 1.25;
  }

  #pt-budget-print-sheet .pt-print-h2 {
    margin: 14pt 0 6pt;
    padding: 0 0 3pt;
    border-bottom: 0.6pt solid #e3f0e8;
    font-size: 8pt;
    font-weight: 800;
    letter-spacing: 0.08em !important;
    text-transform: uppercase;
  }

  #pt-budget-print-sheet .pt-print-h2 span {
    color: #8a968f;
    font-weight: 400;
    letter-spacing: 0 !important;
    text-transform: none;
  }

  /* Listes : case dessinée, cochée si c'est fait. */
  #pt-budget-print-sheet .pt-print-list {
    padding: 0;
    list-style: none;
  }

  #pt-budget-print-sheet .pt-print-list li {
    position: relative;
    margin: 0 0 2.5pt;
    padding: 0 0 0 12pt;
    font-size: 8.5pt;
    line-height: 1.35;
    break-inside: avoid;
  }

  #pt-budget-print-sheet .pt-print-list li::before {
    content: "";
    position: absolute;
    top: 1.5pt;
    left: 0;
    width: 6pt;
    height: 6pt;
    border: 0.6pt solid #183030;
    border-radius: 1pt;
  }

  #pt-budget-print-sheet .pt-print-list li.is-fait {
    color: #526354;
  }

  #pt-budget-print-sheet .pt-print-list li.is-fait::before {
    background: #183030;
  }

  #pt-budget-print-sheet .pt-print-list--cols,
  #pt-budget-print-sheet .pt-print-list--inline {
    columns: 2;
    column-gap: 18pt;
  }

  #pt-budget-print-sheet .pt-print-footer {
    margin: 14pt 0 0;
    padding: 6pt 0 0;
    border-top: 0.6pt solid #c9d2cd;
    color: #8a968f;
    font-size: 7pt;
    line-height: 1.4;
  }

  /* Tableau compact, en-tête vert pâle, montants alignés à droite. */
  #pt-budget-print-sheet table {
    width: 100%;
    border-collapse: collapse;
    font-size: 8.5pt;
  }

  #pt-budget-print-sheet table,
  #pt-budget-print-sheet th,
  #pt-budget-print-sheet td {
    border: 0 !important;
  }

  #pt-budget-print-sheet th,
  #pt-budget-print-sheet td {
    padding: 3.5pt 6pt;
    border-bottom: 0.5pt solid #e3f0e8 !important;
    text-align: right;
    font-variant-numeric: tabular-nums;
  }

  #pt-budget-print-sheet thead th {
    background: #f3faf6;
    color: #526354;
    font-size: 6.5pt;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #pt-budget-print-sheet th:first-child,
  #pt-budget-print-sheet td:first-child {
    text-align: left;
  }

  #pt-budget-print-sheet tbody th {
    font-weight: 700;
  }

  #pt-budget-print-sheet tbody th small {
    display: block;
    color: #8a968f;
    font-size: 7pt;
    font-weight: 400;
  }

  #pt-budget-print-sheet td:nth-child(3),
  #pt-budget-print-sheet td:nth-child(4) {
    color: #526354;
  }

  #pt-budget-print-sheet tfoot th,
  #pt-budget-print-sheet tfoot td {
    border-top: 0.8pt solid #183030 !important;
    border-bottom: 0 !important;
    font-weight: 800;
  }

  #pt-budget-print-sheet tr {
    break-inside: avoid;
  }
}


/* Lien « notre méthode » sous le titre de la FAQ des outils. */
.ptb .ptb-methode {
	margin: 14px 0 0;
	color: var(--ptb-muted);
	font-size: 15px;
	line-height: 1.5;
}

.ptb .ptb-methode a {
	color: var(--ptb-ink);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--ptb-rose);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}


/* ==========================================================================
   Tes données vs l'info générale (Seb, 2026-10-18) : tout ce qui est calculé pour la personne est dans un cadre
   foncé avec le badge « Calculé pour toi »; l'info générale commence après un séparateur explicite.
   Utilisé par l'échéancier et le calculateur de budget (la page du palais de justice a sa propre version, .ptp-perso).
   ========================================================================== */

.ptb .pt-perso {
	padding: 26px 28px;
	border: 2px solid var(--ptb-ink);
	border-radius: 22px;
	background: #fff;
}

.ptb .pt-perso__tete {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	margin: 0 0 16px;
}

.ptb .pt-perso__titre {
	margin: 8px 0 0;
	font-size: var(--pt-h3, 22px);
}

.ptb .pt-badge {
	display: inline-block;
	margin: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--ptb-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ptb .pt-perso__changer {
	color: var(--ptb-ink);
	font-size: 15px;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--ptb-rose);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.ptb .pt-separateur {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 36px 0 0;
	color: var(--ptb-muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ptb .pt-separateur::before,
.ptb .pt-separateur::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--ptb-line);
}

/* Budget : le séparateur n'apparaît qu'avec les résultats. */
.ptb .ptb-results[hidden] + .pt-separateur {
	display: none;
}

/* Échéancier : les sections personnelles perdent leur propre largeur et leurs fonds dans le cadre. */
.ptb .pt-perso-wrap {
	padding-top: 32px;
	padding-bottom: 8px;
}

.ptb .pt-perso .ptg-wrap {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.ptb .pt-perso .ptt-block {
	padding: 22px 0;
	border-top: 1px solid var(--ptb-line);
	background: transparent;
}

.ptb .pt-perso .ptt-block.ptt-intro {
	padding-top: 4px;
	border-top: 0;
}

@media (max-width: 640px) {
	.ptb .pt-perso {
		padding: 20px 16px;
		border-radius: 18px;
	}
}

/* Un peu d'air entre le haut de page et le cadre des résultats du budget. */
.ptb .ptb-results.pt-perso {
	margin-top: 28px;
}


/* « Continue avec ton mariage » : les autres outils, déjà remplis avec ce qu'on sait (outils/pt-profil.js). */
.ptb .pt-suite {
	margin: 24px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--ptb-line);
}

.ptb .pt-suite:empty {
	display: none;
}

.ptb .pt-suite__titre {
	margin: 0 0 10px;
	color: var(--ptb-muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ptb .pt-suite__liens {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ptb .pt-suite__liens a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--ptb-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ptb-ink);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color 0.15s;
}

.ptb .pt-suite__liens a:hover {
	border-color: var(--ptb-ink);
}

.ptb .pt-suite__liens a::after {
	content: "→";
	margin-left: 8px;
}

.ptb .pt-suite__liens .pt-suite__app {
	border-color: var(--ptb-rose);
	background: var(--ptb-rose);
}
