/*
Theme Name: 2 More Miles Travel
Theme URI: https://2moremilestravel.com
Author: 2 More Miles Travel
Description: Custom block theme for 2 More Miles Travel — personalized cruise planning. Child theme of Twenty Twenty-Five.
Template: twentytwentyfive
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: two-more-miles
*/

/* ---------- Base ---------- */
:root {
	--tmm-radius-s: 10px;
	--tmm-radius-m: 18px;
	--tmm-radius-l: 28px;
	--tmm-shadow: 0 18px 40px -22px rgba(6, 38, 79, 0.35);
	--tmm-shadow-lift: 0 30px 60px -30px rgba(6, 38, 79, 0.45);
	--tmm-ease: cubic-bezier(.2, .7, .2, 1);
}

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

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

img { height: auto; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--navy);
	outline-offset: 3px;
	border-radius: 4px;
}
:where(.has-navy-background-color, .has-navy-deep-background-color, .tmm-hero, .tmm-footer, .has-navy-sea-gradient-background) :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--wp--preset--color--gold);
}

.screen-reader-text:focus { z-index: 100000; }

.tmm-main { overflow-x: clip; }
.tmm-main > .wp-block-post-content > :first-child { margin-top: 0; }
.tmm-main > .wp-block-post-content > :last-child { margin-bottom: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }

/* ---------- Header ---------- */
.tmm-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .tmm-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tmm-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .tmm-site-header { top: 0; } }

.tmm-header { border-bottom: 1px solid transparent; transition: box-shadow .3s var(--tmm-ease), border-color .3s var(--tmm-ease); }
.tmm-is-scrolled .tmm-header { box-shadow: 0 10px 30px -20px rgba(6, 38, 79, .45); border-bottom-color: var(--wp--preset--color--line); }
.tmm-header__inner { gap: 1rem; }

.tmm-brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--wp--preset--color--navy); }
.tmm-brand:hover { color: var(--wp--preset--color--navy); }
.tmm-brand__mark { width: 52px; height: auto; flex: none; }
.tmm-brand__text { display: flex; flex-direction: column; line-height: 1; }
.tmm-brand__name { font-family: var(--wp--preset--font-family--vollkorn); font-weight: 700; font-size: 1.45rem; letter-spacing: -.01em; }
.tmm-brand__sub { font-family: var(--wp--preset--font-family--manrope); font-weight: 700; font-size: .72rem; letter-spacing: .42em; text-transform: uppercase; color: var(--wp--preset--color--teal-dark); margin-top: .35rem; display: flex; align-items: center; gap: .45rem; }
.tmm-brand__sub::before, .tmm-brand__sub::after { content: ""; height: 2px; width: 14px; background: var(--wp--preset--color--gold); border-radius: 2px; }

.tmm-nav .wp-block-navigation-item__content { text-decoration: none; color: var(--wp--preset--color--ink); padding: .35rem 0; position: relative; }
.tmm-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--wp--preset--color--gold); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--tmm-ease); }
.tmm-nav .wp-block-navigation-item__content:hover::after,
.tmm-nav .current-menu-item > .wp-block-navigation-item__content::after,
.tmm-nav [aria-current="page"]::after { transform: scaleX(1); }
.tmm-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--navy); }

/* The in-menu CTA only appears inside the mobile overlay. */
.tmm-nav .tmm-nav__cta-mobile { display: none; }
.tmm-nav .wp-block-navigation__responsive-container.is-menu-open .tmm-nav__cta-mobile { display: block; }

.tmm-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); padding: .4rem; border-radius: 8px; }
.tmm-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.tmm-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.tmm-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.tmm-nav .is-menu-open .wp-block-navigation__container { gap: 1.1rem !important; }
.tmm-nav .is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-family: var(--wp--preset--font-family--vollkorn); font-size: 1.85rem; font-weight: 500; }
.tmm-nav .is-menu-open .tmm-nav__cta-mobile .wp-block-navigation-item__content { color: var(--wp--preset--color--gold) !important; }
.tmm-nav .wp-block-navigation__responsive-container-close { color: #fff; }

.tmm-header-button .wp-block-button__link { padding: .7rem 1.25rem; font-size: .95rem; box-shadow: 0 8px 20px -12px rgba(209, 149, 24, .9); }
@media (max-width: 420px) {
	.tmm-brand__mark { width: 42px; }
	.tmm-brand__name { font-size: 1.15rem; }
	.tmm-brand__sub { font-size: .6rem; letter-spacing: .32em; }
	.tmm-brand__sub::before, .tmm-brand__sub::after { width: 9px; }
	.tmm-header__actions { gap: .6rem !important; }
	.tmm-header-button .wp-block-button__link { padding: .6rem .9rem; font-size: .85rem; }
}
@media (max-width: 340px) { .tmm-header__cta { display: none; } }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s var(--tmm-ease), box-shadow .2s ease; text-decoration: none; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-tmm-ghost .wp-block-button__link { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .75); }
.wp-block-button.is-style-tmm-ghost .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); border-color: #fff; }
.wp-block-button.is-style-tmm-navy .wp-block-button__link { background: var(--wp--preset--color--navy); color: #fff; }
.wp-block-button.is-style-tmm-navy .wp-block-button__link:hover { background: var(--wp--preset--color--navy-deep); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--navy); border: 2px solid currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--navy); color: #fff; border-color: var(--wp--preset--color--navy); }

/* ---------- Type helpers ---------- */
.is-style-tmm-eyebrow {
	font-size: .8rem !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
	color: var(--wp--preset--color--teal-dark); display: inline-flex; align-items: center; gap: .65rem; margin-bottom: .25rem;
}
.is-style-tmm-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--wp--preset--color--gold); border-radius: 2px; }
:where(.tmm-hero, .has-navy-background-color, .has-navy-deep-background-color, .has-navy-sea-gradient-background) .is-style-tmm-eyebrow { color: var(--wp--preset--color--gold-light); }
.has-text-align-center.is-style-tmm-eyebrow { justify-content: center; display: flex; }

.tmm-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--slate); }
:where(.tmm-hero, .has-navy-background-color, .has-navy-deep-background-color) .tmm-lead { color: rgba(255, 255, 255, .88); }

/* ---------- Hero ---------- */
.tmm-hero { position: relative; isolation: isolate; overflow: hidden; }
.tmm-hero h1 { color: #fff; }
.tmm-hero h1 em { font-style: italic; font-weight: 500; color: var(--wp--preset--color--gold-light); }
.tmm-hero::after {
	content: ""; position: absolute; inset: auto -10% -1px -10%; height: 90px; z-index: -1;
	background: radial-gradient(60% 120% at 50% 100%, rgba(5, 152, 176, .35), transparent 70%);
}
.tmm-hero__panorama { margin: 0 !important; line-height: 0; position: relative; }
.tmm-hero__panorama img { width: 100%; height: clamp(170px, 22vw, 340px); object-fit: cover; object-position: 50% 60%; border-radius: 0 !important; }
.tmm-hero__panorama::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--gold), transparent); z-index: 1; }
.tmm-hero__trust { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; padding: 0; margin: 0; list-style: none; color: rgba(255, 255, 255, .85); font-size: .95rem; }
.tmm-hero__trust li { display: inline-flex; align-items: center; gap: .5rem; }
.tmm-hero__trust li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--gold); }

.tmm-page-hero h1 { font-size: var(--wp--preset--font-size--xx-large); }

/* ---------- Cards ---------- */
.is-style-tmm-card {
	background: #fff; border-radius: var(--tmm-radius-m); box-shadow: var(--tmm-shadow);
	border: 1px solid rgba(220, 227, 234, .7); overflow: hidden;
	transition: transform .35s var(--tmm-ease), box-shadow .35s var(--tmm-ease);
}
.is-style-tmm-card:hover { transform: translateY(-4px); box-shadow: var(--tmm-shadow-lift); }
.is-style-tmm-card > .wp-block-image:first-child { margin: 0; }
.is-style-tmm-card > .wp-block-image:first-child img { border-radius: 0; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.is-style-tmm-card h3 { font-size: 1.45rem; }
.is-style-tmm-card .tmm-card__icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--teal-dark); }
.is-style-tmm-card .tmm-card__icon svg { width: 28px; height: 28px; }
.tmm-card-link a { font-weight: 700; text-decoration: none; color: var(--wp--preset--color--navy); }
.tmm-card-link a::after { content: " →"; transition: margin .2s ease; }
.tmm-card-link a:hover::after { margin-left: .25rem; }

/* Interest cards: whole card is clickable via stretched link. */
.tmm-interest { position: relative; }
.tmm-interest .tmm-card-link a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* ---------- Steps ---------- */
.tmm-steps { counter-reset: tmm-step; }
.tmm-step { position: relative; padding-top: 3.75rem !important; }
.tmm-step::before {
	counter-increment: tmm-step; content: counter(tmm-step);
	position: absolute; top: 1.5rem; left: 1.75rem;
	font-family: var(--wp--preset--font-family--vollkorn); font-weight: 600; font-size: 1.1rem;
	width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center;
	background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-deep);
}

/* ---------- Brand strip (cruise lines) ---------- */
.tmm-line-card { border-top: 4px solid var(--wp--preset--color--teal); }
.tmm-line-card.is-celebrity { border-top-color: var(--wp--preset--color--gold); }

/* ---------- Lists ---------- */
.is-style-tmm-checks { list-style: none; padding-left: 0; }
.is-style-tmm-checks li { position: relative; padding-left: 2rem; margin-bottom: .6rem; }
.is-style-tmm-checks li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--wp--preset--color--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%2300707F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat;
}
:where(.has-navy-background-color, .has-navy-deep-background-color) .is-style-tmm-checks li::before { background-color: rgba(255, 255, 255, .14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23F2D9A0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* ---------- Images ---------- */
.wp-block-image.is-style-tmm-badge img { border-radius: 50% !important; aspect-ratio: 1; object-fit: cover; box-shadow: var(--tmm-shadow-lift); }
.tmm-photo img { border-radius: var(--tmm-radius-l) !important; box-shadow: var(--tmm-shadow-lift); width: 100%; object-fit: cover; }
.tmm-photo--tall img { aspect-ratio: 4 / 5; }
.tmm-photo--wide img { aspect-ratio: 16 / 10; }
.tmm-photo figcaption { margin-top: .75rem; }

/* ---------- Sea band ---------- */
.tmm-sea-band { position: relative; }
.tmm-sea-band .wp-block-cover__image-background { object-position: 50% 50%; }

/* ---------- FAQ ---------- */
.tmm-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.1rem 0; margin: 0; }
.tmm-faq .wp-block-details:first-child { border-top: 1px solid var(--wp--preset--color--line); }
.tmm-faq summary { font-family: var(--wp--preset--font-family--vollkorn); font-weight: 600; font-size: 1.2rem; color: var(--wp--preset--color--navy); cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; }
.tmm-faq summary::-webkit-details-marker { display: none; }
.tmm-faq summary::after {
	content: ""; position: absolute; right: .25rem; top: 50%; width: 1.6rem; height: 1.6rem; margin-top: -.8rem; border-radius: 50%;
	background: var(--wp--preset--color--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 5v10M5 10h10' stroke='%230A3A73' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 60% no-repeat;
	transition: transform .25s var(--tmm-ease);
}
.tmm-faq details[open] summary::after { transform: rotate(45deg); }
.tmm-faq .wp-block-details > :not(summary) { margin-top: .75rem; color: var(--wp--preset--color--slate); }

/* ---------- Notes ---------- */
.tmm-note { border-left: 4px solid var(--wp--preset--color--gold); background: var(--wp--preset--color--sand); padding: 1rem 1.25rem; border-radius: 0 var(--tmm-radius-s) var(--tmm-radius-s) 0; }

/* ---------- Footer ---------- */
.tmm-footer { font-size: 1rem; }
.tmm-footer a { text-decoration: none; }
.tmm-footer a:hover { text-decoration: underline; color: var(--wp--preset--color--gold-light); }
.tmm-footer__heading { color: var(--wp--preset--color--gold-light) !important; font-family: var(--wp--preset--font-family--manrope) !important; font-size: .8rem !important; letter-spacing: .2em; text-transform: uppercase; font-weight: 700 !important; }
.tmm-footer__tagline { font-family: var(--wp--preset--font-family--vollkorn); font-style: italic; color: #fff; }
.tmm-footer__muted { color: rgba(255, 255, 255, .78); }
.tmm-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.tmm-footer__logo img { border-radius: 50%; background: #fff; }
.tmm-footer__rule { opacity: 1; border: 0; height: 1px; margin-top: var(--wp--preset--spacing--50) !important; background-color: rgba(255, 255, 255, .16) !important; }
.tmm-footer__bottom p { margin: 0; color: rgba(255, 255, 255, .75); }
.tmm-contact-list { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .4rem; }

/* ---------- Forms (shared) ---------- */
.tmm-form { --tmm-field-border: #B9C5D2; }
.tmm-form label, .tmm-form legend { font-weight: 600; color: var(--wp--preset--color--ink); display: block; margin-bottom: .4rem; }
.tmm-form legend { padding: 0; }
.tmm-form .tmm-optional { font-weight: 400; color: var(--wp--preset--color--slate); font-size: .9em; }
.tmm-form .tmm-req { color: #A4161A; }
.tmm-form input[type="text"], .tmm-form input[type="email"], .tmm-form input[type="tel"], .tmm-form input[type="number"], .tmm-form select, .tmm-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--wp--preset--color--ink);
	background: #fff; border: 1.5px solid var(--tmm-field-border); border-radius: var(--tmm-radius-s);
	padding: .8rem .95rem; min-height: 3.1rem; transition: border-color .2s ease, box-shadow .2s ease;
}
.tmm-form textarea { min-height: 8rem; resize: vertical; }
.tmm-form select { appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%230A3A73' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right .9rem center / 1.1rem no-repeat; }
.tmm-form input:hover, .tmm-form select:hover, .tmm-form textarea:hover { border-color: var(--wp--preset--color--navy); }
.tmm-form input:focus-visible, .tmm-form select:focus-visible, .tmm-form textarea:focus-visible { border-color: var(--wp--preset--color--navy); box-shadow: 0 0 0 3px rgba(5, 152, 176, .25); outline: 3px solid transparent; }
.tmm-form [aria-invalid="true"] { border-color: #A4161A !important; }
.tmm-form .tmm-help { font-size: .9rem; color: var(--wp--preset--color--slate); margin: .35rem 0 0; }
.tmm-form .tmm-field-error { font-size: .9rem; color: #A4161A; font-weight: 600; margin: .35rem 0 0; }
.tmm-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tmm-choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .6rem; }
.tmm-choice { position: relative; }
.tmm-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tmm-choice span {
	display: flex; align-items: center; gap: .6rem; min-height: 3rem; padding: .6rem .9rem; border: 1.5px solid var(--tmm-field-border); border-radius: var(--tmm-radius-s);
	background: #fff; cursor: pointer; font-weight: 500; transition: border-color .2s ease, background .2s ease;
}
.tmm-choice span::before { content: ""; flex: none; width: 1.1rem; height: 1.1rem; border: 2px solid var(--wp--preset--color--navy); border-radius: 4px; background: #fff center / 80% no-repeat; }
.tmm-choice input[type="radio"] + span::before { border-radius: 50%; }
.tmm-choice input:checked + span { border-color: var(--wp--preset--color--navy); background: var(--wp--preset--color--mist); }
.tmm-choice input:checked + span::before { background-color: var(--wp--preset--color--navy); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.tmm-choice input[type="radio"]:checked + span::before { background-image: radial-gradient(circle, #fff 35%, transparent 38%); }
.tmm-choice input:focus-visible + span { outline: 3px solid var(--wp--preset--color--navy); outline-offset: 2px; }

/* Inquiry form */
.tmm-inquiry { background: #fff; border-radius: var(--tmm-radius-l); box-shadow: var(--tmm-shadow-lift); border: 1px solid var(--wp--preset--color--line); padding: clamp(1.25rem, 4vw, 2.75rem); }
.tmm-inquiry__section { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.75rem; margin-top: 1.75rem; }
.tmm-inquiry__section:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.tmm-inquiry__section > h3 { font-size: 1.35rem; margin: 0 0 1.1rem; display: flex; align-items: center; gap: .65rem; }
.tmm-inquiry__section > h3 span { font-family: var(--wp--preset--font-family--manrope); font-size: .8rem; font-weight: 700; width: 1.8rem; height: 1.8rem; border-radius: 50%; display: inline-grid; place-items: center; background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-deep); flex: none; }
.tmm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; }
.tmm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tmm-span-2 { grid-column: 1 / -1; }
@media (max-width: 680px) { .tmm-grid, .tmm-grid--3 { grid-template-columns: 1fr; } }
.tmm-field { margin: 0; }
.tmm-inquiry__submit { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.tmm-inquiry__submit button { font: inherit; font-weight: 700; font-size: 1.05rem; cursor: pointer; border: 0; border-radius: 999px; padding: 1rem 2rem; background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-deep); transition: background .2s ease, transform .2s var(--tmm-ease); }
.tmm-inquiry__submit button:hover { background: #E3AA33; transform: translateY(-1px); }
.tmm-inquiry__submit button[disabled] { opacity: .6; cursor: not-allowed; transform: none; }
.tmm-inquiry__privacy { font-size: .9rem; color: var(--wp--preset--color--slate); margin: 0; flex: 1 1 260px; }
.tmm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.tmm-alert { border-radius: var(--tmm-radius-m); padding: 1.1rem 1.35rem; margin-bottom: 1.5rem; }
.tmm-alert h2, .tmm-alert h3 { font-size: 1.3rem; margin: 0 0 .4rem; }
.tmm-alert p { margin: .25rem 0; }
.tmm-alert--error { background: #FDECEC; border: 1.5px solid #A4161A; color: #5C0B0E; }
.tmm-alert--error a { color: #5C0B0E; }
.tmm-alert--success { background: var(--wp--preset--color--mist); border: 1.5px solid var(--wp--preset--color--teal-dark); }
.tmm-alert--info { background: var(--wp--preset--color--sand); border: 1.5px dashed var(--wp--preset--color--gold); }

/* Newsletter */
.tmm-newsletter-form { background: #fff; border-radius: var(--tmm-radius-l); box-shadow: var(--tmm-shadow); padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--wp--preset--color--line); }
.tmm-newsletter-form .tmm-grid { margin-bottom: 1rem; }
.tmm-newsletter-form legend { margin-bottom: .6rem; }
.tmm-newsletter-form .tmm-choice-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.tmm-newsletter-form__row { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin-top: 1.1rem; }
.tmm-newsletter-form button { font: inherit; font-weight: 700; cursor: pointer; border: 0; border-radius: 999px; padding: .9rem 1.8rem; background: var(--wp--preset--color--navy); color: #fff; transition: background .2s ease; }
.tmm-newsletter-form button:hover { background: var(--wp--preset--color--navy-deep); }
.tmm-newsletter-form .tmm-help { margin: 0; flex: 1 1 220px; }

/* ---------- Motion (progressive) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.tmm-js .tmm-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--tmm-ease), transform .7s var(--tmm-ease); }
	.tmm-js .tmm-reveal.is-visible { opacity: 1; transform: none; }
	.tmm-js .tmm-reveal-stagger > * { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--tmm-ease), transform .6s var(--tmm-ease); }
	.tmm-js .tmm-reveal-stagger.is-visible > * { opacity: 1; transform: none; }
	.tmm-js .tmm-reveal-stagger.is-visible > :nth-child(2) { transition-delay: .08s; }
	.tmm-js .tmm-reveal-stagger.is-visible > :nth-child(3) { transition-delay: .16s; }
	.tmm-js .tmm-reveal-stagger.is-visible > :nth-child(4) { transition-delay: .24s; }
	.tmm-js .tmm-reveal-stagger.is-visible > :nth-child(5) { transition-delay: .32s; }
}
.editor-styles-wrapper .tmm-reveal, .editor-styles-wrapper .tmm-reveal-stagger > * { opacity: 1 !important; transform: none !important; }

/* ---------- Responsive tweaks ---------- */
@media (max-width: 781px) {
	.tmm-stack-reverse { flex-direction: column-reverse; }
	.tmm-hide-mobile { display: none !important; }
}
