/*
 * DomainSouq design system.
 *
 * One file, in this order: tokens → base and type → layout → components → header → footer →
 * marketing sections → WordPress block overrides. The plugin (domainsouq-core) reads the same
 * tokens through var(--ds-*, fallback), so a colour or radius is decided here once.
 *
 * Rules:
 * - Nothing says left or right. Spacing, alignment, borders and positions use logical
 *   properties, so this one file serves Arabic (RTL) and English (LTR). The only mirrored things
 *   are direction-bearing icons (.ds-flip).
 * - Never letter-spacing and never uppercase: both break or mean nothing in Arabic.
 * - Radius rule: controls (buttons, inputs) --ds-radius-md, surfaces (cards, tables, the search
 *   bar) --ds-radius-lg, large bands --ds-radius-xl, pills only for badges and toggles.
 * - Colour roles (brand 4.0 "Souq Night", theme 2.0.0). Deep Navy is the brand and the structure:
 *   the header, the footer, dark bands, headings. Action Blue is for what the visitor can do next:
 *   primary buttons, the search button, links, active and selected states, focus. It reads at
 *   5.75:1 under white text and as text on white (the old Primary Blue was 4.1:1). Action Blue
 *   Dark is its hover/pressed state. Soft Blue is the light tint for badges, icon tiles and
 *   selected rows. Blue on Navy is for accents and blue text on Deep Navy only.
 * - Deal Amber is the warm accent: deals, savings, offers, limited-time promotions, and (as
 *   Premium Gold, the same family) premium names. Amber is never a button and never an error.
 *   Text in amber uses --ds-amber-text (6.3:1 on white).
 * - Red is for errors only, always with an icon or a word. Never a promotion, never a brand
 *   colour. Never reintroduce red, green, teal or purple as a brand colour.
 * - Status colours are not brand colours: green means "available / paid / done" (text and small
 *   marks only, never a button), a burnt orange with a warning icon means "warning".
 * - Motion is 150-300ms, eases out, and only runs for visitors who have not asked for reduced
 *   motion. Nothing is ever hidden waiting for a script or an animation.
 */

/* ==== 1. Tokens ============================================================ */

:root {
	/* Colour: brand palette (brand 4.0 "Souq Night"). Each colour has one job (see the rules at the top). */
	--ds-navy: var(--wp--preset--color--ink, #071b3a);              /* Deep Navy: brand, header, footer, headings, dark sections */
	--ds-navy-2: var(--wp--preset--color--ink-2, #12305c);           /* hover on navy, raised surfaces on dark bands */
	--ds-navy-deep: var(--wp--preset--color--navy-deep, #051530);    /* footer */
	--ds-blue: var(--wp--preset--color--go, #0b5fd9);                /* Action Blue: primary buttons, search, links, active states, focus (5.75:1) */
	--ds-blue-deep: var(--wp--preset--color--go-deep, #0849ad);      /* Action Blue Dark: hover/pressed (8.2:1 under white) */
	--ds-blue-light: var(--wp--preset--color--go-bright, #5ab0ff);   /* Blue on Navy: accents and blue text on Deep Navy only (7.4:1) */
	--ds-blue-soft: var(--wp--preset--color--teal-tint, #eaf2ff);    /* Soft Blue: badges, icon tiles, selected rows */
	--ds-blue-line: #c4dbff;                                          /* borders on Soft Blue */
	--ds-blue-on-dark: var(--ds-blue-light);
	/* Deal Amber: deals, savings, offers, promotions. Never a button, never an error. */
	--ds-amber: var(--wp--preset--color--promo, #f5a623);            /* fills, bars, ribbons (Deep Navy text on it: 8.45:1) */
	--ds-amber-strong: #e08e00;                                       /* borders and marks on white (3:1 non-text) */
	--ds-amber-text: #8a5300;                                         /* amber that reads as text (6.3:1 on white, 5.8:1 on its tint) */
	--ds-amber-tint: #fff4de;
	--ds-amber-line: #f7d595;
	--ds-on-amber: var(--ds-navy);
	/* Old promo names (brand 3.0 "Promo Red") now mean Deal Amber, so every offer mark follows. */
	--ds-promo: var(--ds-amber);
	--ds-promo-text: var(--ds-amber-text);
	--ds-promo-tint: var(--ds-amber-tint);
	/* Premium Gold: the same warm family, a step deeper; premium names and marketplace value. */
	--ds-gold: var(--wp--preset--color--saffron, #e8a317);            /* Deep Navy text on it: 7.9:1 */
	--ds-gold-text: #7a4e00;                                          /* 7.2:1 on white */
	--ds-gold-tint: var(--wp--preset--color--saffron-tint, #fff7e6);
	/* Status colours: not brand colours, used only for what they say */
	--ds-success: #067647;                                            /* available, paid, done (text and marks only) */
	--ds-success-mark: #17b26a;
	--ds-success-tint: #ecfdf3;
	--ds-warning: #dc6803;
	--ds-warning-text: #b54708;                                       /* 5.4:1 on white; always with the warning icon */
	--ds-warning-tint: #fef6ee;
	--ds-danger: var(--wp--preset--color--danger, #c62828);          /* errors only: always with an icon or a word */
	--ds-danger-tint: #fdecea;
	--ds-danger-on-dark: #ff7a75;                                      /* error marks on Deep Navy (toasts) */
	--ds-info: var(--ds-blue);
	--ds-info-tint: var(--ds-blue-soft);

	--ds-text: #172033;                                               /* Primary text (headings use Deep Navy) */
	--ds-heading: var(--ds-navy);
	--ds-muted: var(--wp--preset--color--muted, #647084);            /* Muted text: 5:1 on white, 4.6:1 on the page background */
	--ds-subtle: var(--ds-muted);
	--ds-border: var(--wp--preset--color--line, #dde3ea);
	--ds-border-strong: #c5ced9;
	--ds-surface: var(--wp--preset--color--paper, #fff);
	--ds-surface-2: var(--wp--preset--color--surface, #f4f6f9);      /* Page background */
	--ds-mist: var(--wp--preset--color--mist, #ebeff5);
	--ds-mist-2: #dfe6ef; /* hover on mist */
	--ds-background: var(--ds-surface-2);
	--ds-focus: var(--ds-blue); /* 4.1:1 on white, so the ring is visible (WCAG 1.4.11 needs 3:1) */
	--ds-focus-on-dark: var(--ds-blue-light);
	/* Text and lines on Deep Navy (header, footer, dark bands) */
	--ds-on-dark-1: #e4eaf3;                                          /* links */
	--ds-on-dark-2: #c3cedf;                                          /* body text */
	--ds-on-dark-3: #9aa9c0;                                          /* quiet notes (7:1) */
	--ds-on-dark-line: rgba(255, 255, 255, 0.12);
	--ds-on-dark-hover: rgba(255, 255, 255, 0.08);

	/* Old colour names, kept so the plugin and saved content keep working. --ds-red* (brand 2.0)
	   meant "action", so it points at the blue system; promotions use --ds-promo*. New code uses
	   the names above. */
	--ds-red: var(--ds-blue);
	--ds-red-deep: var(--ds-blue-deep);
	--ds-red-soft: var(--ds-blue-soft);
	--ds-red-line: var(--ds-blue-line);
	--ds-red-on-dark: var(--ds-blue-on-dark);
	--ds-emerald: var(--ds-blue);
	--ds-emerald-deep: var(--ds-blue-deep);
	--ds-emerald-bright: var(--ds-blue);
	--ds-mint: var(--ds-blue-soft);
	--ds-teal: var(--ds-blue);
	--ds-teal-deep: var(--ds-blue-deep);
	--ds-teal-tint: var(--ds-blue-soft);
	--ds-saffron: var(--ds-gold);
	--ds-saffron-text: var(--ds-gold-text);
	--ds-saffron-tint: var(--ds-gold-tint);

	/* Type */
	/* Inter for Latin (also the domain names and prices on Arabic pages), IBM Plex Sans Arabic for Arabic. */
	--ds-font: var(--wp--preset--font-family--ui, "Inter", "IBM Plex Sans Arabic", "Segoe UI", Tahoma, system-ui, sans-serif);
	--ds-text-hero: clamp(2.375rem, 1.45rem + 3.9vw, 4rem);          /* home hero: 38 -> 64px */
	--ds-text-display: clamp(2.125rem, 1.5rem + 2.7vw, 3.5rem);
	--ds-text-h1: clamp(1.875rem, 1.5rem + 1.4vw, 2.625rem);
	--ds-text-h2: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem);
	--ds-text-h3: 1.25rem;
	--ds-text-lead: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
	--ds-text-body: 1rem;
	--ds-text-sm: 0.9375rem;
	--ds-text-xs: 0.8125rem;
	--ds-text-price: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);          /* the big price on a result or a deal */
	--ds-leading-body: 1.55;
	--ds-leading-heading: 1.15;
	--ds-weight-hero: 800;
	--ds-weight-heading: 700;
	--ds-tracking-display: -0.025em; /* Latin only (see :lang(ar) below): Arabic is never letter-spaced */

	/* Space (4px steps) */
	--ds-space-1: 0.25rem;
	--ds-space-2: 0.5rem;
	--ds-space-3: 0.75rem;
	--ds-space-4: 1rem;
	--ds-space-5: 1.25rem;
	--ds-space-6: 1.5rem;
	--ds-space-8: 2rem;
	--ds-space-10: 2.5rem;
	--ds-space-12: 3rem;
	--ds-space-16: 4rem;
	--ds-space-20: 5rem;
	--ds-space-24: 6rem;
	--ds-section: clamp(3.5rem, 2.25rem + 4.5vw, 6.5rem);

	/* Shape */
	--ds-radius-sm: 6px;
	--ds-radius-md: 10px;
	--ds-radius-lg: 14px;
	--ds-radius-xl: 20px;
	--ds-radius-pill: 999px;
	--ds-border-w: 1px;
	--ds-shadow-xs: 0 1px 2px rgba(7, 27, 58, 0.05);
	--ds-shadow-sm: 0 1px 2px rgba(7, 27, 58, 0.04), 0 4px 12px rgba(7, 27, 58, 0.06);
	--ds-shadow-md: 0 2px 6px rgba(7, 27, 58, 0.05), 0 16px 40px rgba(7, 27, 58, 0.1);
	--ds-shadow-lg: 0 4px 10px rgba(7, 27, 58, 0.06), 0 28px 64px rgba(7, 27, 58, 0.16);
	--ds-shadow-blue: 0 8px 20px rgba(11, 95, 217, 0.28);           /* under a primary button on hover */
	--ds-shadow-amber: 0 10px 28px rgba(224, 142, 0, 0.22);         /* under a deal card on hover */
	/* Elevation: 1 = resting card, 2 = lifted (hover, sticky bars), 3 = floating (menus, dialogs, toasts) */
	--ds-elev-1: var(--ds-shadow-sm);
	--ds-elev-2: var(--ds-shadow-md);
	--ds-elev-3: var(--ds-shadow-lg);
	--ds-lift: -3px; /* how far a card rises on hover */
	--ds-ring: 0 0 0 4px rgba(11, 95, 217, 0.18);
	/* Motion */
	--ds-ease: cubic-bezier(0.2, 0, 0, 1);
	--ds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ds-dur-1: 150ms; /* colour, small state changes */
	--ds-dur-2: 200ms; /* hover lift, toggles */
	--ds-dur-3: 300ms; /* panels, toasts, reveals */
	--ds-fast: var(--ds-dur-1);

	/* Controls: buttons and fields share one height so they line up in a row */
	--ds-control-sm: 2.25rem;
	--ds-control: 2.875rem;
	--ds-control-lg: 3.25rem;

	/* Layout */
	--ds-container-wide: 80rem; /* 1280px: marketing, prices, header, footer */
	--ds-container: 75rem;      /* 1200px: cart, checkout, account, search results */
	--ds-container-prose: 48rem;
	--ds-gutter: clamp(1rem, 0.6rem + 1.6vw, 1.5rem); /* 16px on phones */
	--ds-header-h: 4.5rem;

	/* Icons used as CSS masks (one definition each; the colour comes from currentColor/background) */
	--ds-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E");
	--ds-icon-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m7 7 10 10M17 7 7 17'/%3E%3C/svg%3E");
	--ds-icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.8 2.8 5.7 6.3.9-4.6 4.4 1.1 6.2L12 17.1 6.4 20l1.1-6.2L2.9 9.4l6.3-.9z'/%3E%3C/svg%3E");
	--ds-icon-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.6V4.5a1 1 0 0 1 1-1h8.1l8 8a1 1 0 0 1 0 1.4l-8.1 8.1a1 1 0 0 1-1.4 0z'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.6' fill='black'/%3E%3C/svg%3E");
	--ds-icon-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3z'/%3E%3C/svg%3E");
	--ds-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");

	/* Old names, kept so nothing that still uses them breaks */
	--ds-ink: var(--ds-navy);
	--ds-ink-2: var(--ds-navy-2);
	--ds-paper: var(--ds-surface);
	--ds-line: var(--ds-border);
	--ds-go: var(--ds-blue);
	--ds-go-deep: var(--ds-blue-deep);
	--ds-r-md: var(--ds-radius-lg);
	--ds-r-lg: var(--ds-radius-xl);
	--ds-wide: var(--ds-container-wide);
}
/* Arabic: a step larger and looser (its letterforms read smaller at the same size), weight 700 at
   most (the Arabic font stops there), and never letter-spaced. */
:root:lang(ar) {
	--ds-text-hero: clamp(2.375rem, 1.55rem + 3.5vw, 3.875rem);
	--ds-text-h1: clamp(1.9375rem, 1.55rem + 1.45vw, 2.75rem);
	--ds-text-h2: clamp(1.6875rem, 1.35rem + 1.25vw, 2.375rem);
	--ds-text-h3: 1.3125rem;
	--ds-leading-body: 1.85;
	--ds-leading-heading: 1.45;
	--ds-weight-hero: 700;
	--ds-tracking-display: 0;
}
@media (max-width: 1023px) { :root { --ds-header-h: 3.75rem; } }

/* ==== 2. Base and type ===================================================== */

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	/* In-page links (/#faq, #pricing) stop below the sticky header. */
	scroll-padding-block-start: calc(var(--ds-header-h) + var(--wp-admin--admin-bar--height, 0px) + var(--ds-space-4));
}
body {
	-webkit-tap-highlight-color: transparent;
	background: var(--ds-background);
	color: var(--ds-text);
	font-family: var(--ds-font);
	font-size: 1rem;
	line-height: var(--ds-leading-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
:lang(ar) body { font-size: 1.0625rem; } /* Arabic letterforms need the extra pixel to read as easily */
/* Arabic has no italics. Emphasis is weight, not slant. */
:lang(ar) em, :lang(ar) i, :lang(ar) cite, :lang(ar) address { font-style: normal; font-weight: 600; }

h1, h2, h3, h4, h5, h6 { color: var(--ds-heading); font-weight: var(--ds-weight-heading); line-height: var(--ds-leading-heading); letter-spacing: 0; text-wrap: balance; }
h1, h2 { letter-spacing: var(--ds-tracking-display); } /* tighter Latin display type; 0 in Arabic */
h1 { font-size: var(--ds-text-h1); }
h2 { font-size: var(--ds-text-h2); }
h3 { font-size: var(--ds-text-h3); font-weight: 600; }
h4 { font-size: var(--ds-text-body); font-weight: 600; }
p, li { text-wrap: pretty; }
a { color: var(--ds-blue-deep); text-underline-offset: 0.2em; text-decoration-thickness: 1px; transition: color var(--ds-fast); }
a:hover { color: var(--ds-navy); }
small { font-size: var(--ds-text-xs); }
strong, b { font-weight: 600; }

:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
img, svg { max-width: 100%; }
a, button, summary, label, input[type="submit"] { touch-action: manipulation; } /* no double-tap zoom delay on phones */
/* The page behind the phone menu or a dialog does not scroll. Phones only: their scrollbars overlay, so nothing shifts. */
@media (max-width: 1023px) { html:has(dialog:modal) { overflow: hidden; } }
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main { flex: 1 0 auto; }
/* No block gap between the navy header and the page: on the gray page background it would show as a strip. */
.wp-site-blocks > main, .wp-site-blocks > footer { margin-block-start: 0; }

/* Domain names, codes and prices are always Latin and left-to-right, even inside Arabic text. */
.ds-domain, code { direction: ltr; unicode-bidi: isolate; display: inline-block; }
.ds-num { font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
/* Prices: Inter's tabular figures, so columns of prices line up and a changing total does not jiggle. */
.ds-price { font-variant-numeric: tabular-nums; font-feature-settings: "tnum", "cv11"; direction: ltr; unicode-bidi: isolate; white-space: nowrap; font-weight: 700; color: var(--ds-heading); }

.ds-display { font-size: var(--ds-text-display); line-height: 1.1; letter-spacing: var(--ds-tracking-display); }
:lang(ar) .ds-display { line-height: 1.35; }
.ds-lead { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-lead); line-height: var(--ds-leading-body); }
.ds-eyebrow { margin: 0 0 var(--ds-space-2); color: var(--ds-blue-deep); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-meta { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }

/* Screen-reader-only text, on every page (the header switchers and plugin widgets use it). */
.dsq-sr, .ds-sr, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* ==== 3. Layout ============================================================ */

/*
 * Containers: width is the screen minus a gutter on each side, up to a maximum. At 1440px the
 * content is 1280px wide (marketing) or 1200px (app pages); at 1920px it stops growing.
 */
.ds-container {
	box-sizing: border-box;
	width: min(100% - 2 * var(--ds-gutter), var(--ds-container-wide));
	max-width: none;
	margin-inline: auto;
	padding-inline: 0;
}
.ds-container.ds-container--app { width: min(100% - 2 * var(--ds-gutter), var(--ds-container)); }
.ds-container.ds-narrow { width: min(100% - 2 * var(--ds-gutter), var(--ds-container-prose)); }
.ds-center { justify-content: center; margin-block-start: var(--ds-space-8); }

.ds-section { padding-block: var(--ds-section); }
.ds-section--tint { background: var(--ds-surface); border-block: 1px solid var(--ds-border); } /* white band on the gray page */
.ds-section--tight { padding-block: calc(var(--ds-section) * 0.6); }
.ds-section__head { max-width: 42rem; margin: 0 auto var(--ds-space-10); text-align: center; }
.ds-section__head .ds-lead { margin-block-start: var(--ds-space-3); }
.ds-section__title { margin: 0 auto var(--ds-space-10); max-width: 26em; text-align: center; }
.ds-section__head .ds-section__title { margin-block-end: 0; }

/* Page header: one look for every inner page (prices, transfer, cart, checkout, account). */
.ds-page-header { padding-block: clamp(2rem, 1.4rem + 2.4vw, 3.25rem) clamp(1.5rem, 1rem + 1.6vw, 2.25rem); }
.ds-page-header__title, .ds-page-title { margin: 0; font-size: var(--ds-text-h1); }
.ds-page-header .ds-lead { max-width: 44rem; margin-block-start: var(--ds-space-3); }
.ds-page-header--tint { background: var(--ds-surface); border-block-end: 1px solid var(--ds-border); }

/* Default page template: the page title lines up with whatever width its content uses. */
.ds-page { padding-block: clamp(2rem, 1.4rem + 2.4vw, 3rem) var(--ds-section); }
.ds-page > .ds-page-title { box-sizing: border-box; max-width: var(--ds-container-prose); margin: 0 auto var(--ds-space-6); }
/* Plugin app pages (cart, checkout, account) are alignwide: the title takes the app width. */
.ds-page:has(.dsq-app) > .ds-page-title { max-width: var(--ds-container); }
.ds-page:has(.dsq-acct--auth) > .ds-page-title { max-width: 70rem; }
.ds-page .wp-block-post-content > .alignwide { max-width: var(--ds-container); }
.ds-page .wp-block-post-content > .dsq-acct--auth { max-width: 70rem; }

/* ==== 4. Components ========================================================= */

/* ---- 4.1 Buttons ----------------------------------------------------------
 * .ds-button + one variant (--primary blue, --secondary navy, --outline, --ghost, --danger) and
 * optionally a size (--sm, --lg) and --block. WordPress's own button block and the log-in form's
 * submit button get the same look, so there is one button on the whole site.
 * Loading: add .is-loading (or aria-busy="true"); the label stays and a spinner appears.
 */
.ds-button,
.wp-block-button .wp-block-button__link,
.dsq-acct input[type="submit"] {
	--_bg: var(--ds-navy);
	--_fg: #fff;
	--_bd: transparent;
	--_bg-hover: var(--ds-navy-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ds-space-2);
	box-sizing: border-box;
	min-height: var(--ds-control);
	margin: 0;
	padding-block: 0;
	padding-inline: 1.25rem;
	border: 1.5px solid var(--_bd);
	border-radius: var(--ds-radius-md);
	background: var(--_bg);
	color: var(--_fg);
	font: inherit;
	font-size: var(--ds-text-sm);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color var(--ds-fast) var(--ds-ease), border-color var(--ds-fast) var(--ds-ease), color var(--ds-fast) var(--ds-ease), box-shadow var(--ds-fast) var(--ds-ease), transform var(--ds-fast) var(--ds-ease);
}
.ds-button:hover,
.wp-block-button .wp-block-button__link:hover,
.dsq-acct input[type="submit"]:hover { background: var(--_bg-hover); color: var(--_fg); }
.ds-button:active,
.wp-block-button .wp-block-button__link:active { transform: translateY(1px); }
.ds-button:focus-visible,
.wp-block-button .wp-block-button__link:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ds-button svg { flex: none; width: 1.15em; height: 1.15em; }

.ds-button--primary, .wp-block-button.is-style-go .wp-block-button__link, .dsq-acct #dsq-signup .ds-button { --_bg: var(--ds-blue); --_bg-hover: var(--ds-blue-deep); }
.ds-button--primary:hover, .wp-block-button.is-style-go .wp-block-button__link:hover, .dsq-acct #dsq-signup .ds-button:hover { box-shadow: var(--ds-shadow-blue); }
@media (prefers-reduced-motion: no-preference) { .ds-button--primary:hover:not(:disabled, .is-loading) { transform: translateY(-1px); } }
.ds-button--secondary { --_bg: var(--ds-navy); --_bg-hover: var(--ds-navy-2); }
.ds-button--outline, .wp-block-button.is-style-outline .wp-block-button__link { --_bg: transparent; --_fg: var(--ds-navy); --_bd: var(--ds-border-strong); --_bg-hover: var(--ds-surface-2); }
.ds-button--outline:hover, .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--ds-navy); }
.ds-button--ghost { --_bg: transparent; --_fg: var(--ds-blue-deep); --_bg-hover: var(--ds-blue-soft); padding-inline: 0.75rem; }
.ds-button--ghost:hover { color: var(--ds-navy); }
.ds-button--danger { --_bg: transparent; --_fg: var(--ds-muted); --_bd: transparent; --_bg-hover: var(--ds-danger-tint); padding-inline: 0.75rem; }
.ds-button--danger:hover { color: var(--ds-danger); } /* quiet until pointed at, so it never competes with the blue primary action */
.ds-button--light, .wp-block-button.is-style-saffron .wp-block-button__link { --_bg: #fff; --_fg: var(--ds-navy); --_bg-hover: var(--ds-mist); }

.ds-button--sm { min-height: var(--ds-control-sm); padding-inline: 0.9rem; font-size: var(--ds-text-xs); }
.ds-button--lg { min-height: var(--ds-control-lg); padding-inline: 1.6rem; font-size: 1rem; }
.ds-button--xl { min-height: 3.75rem; padding-inline: 2rem; border-radius: var(--ds-radius-lg); font-size: 1.0625rem; }
.ds-button--block { display: flex; width: 100%; }

.ds-button:disabled, .ds-button[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; transform: none; }
.ds-button.is-loading, .ds-button[aria-busy="true"] { cursor: progress; pointer-events: none; }
.ds-button.is-loading::before, .ds-button[aria-busy="true"]::before {
	content: "";
	flex: none;
	width: 1em;
	height: 1em;
	border: 2px solid currentColor;
	border-inline-end-color: transparent;
	border-radius: 50%;
	animation: ds-spin 0.7s linear infinite;
}
@keyframes ds-spin { to { transform: rotate(360deg); } }
/* Done (2.0.0): a button that finished its job ("Added", "Saved") turns status green with a tick. */
.ds-button.is-done { --_bg: var(--ds-success); --_bg-hover: var(--ds-success); --_fg: #fff; --_bd: transparent; pointer-events: none; }
.ds-button.is-done::before { content: ""; flex: none; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--ds-icon-check) center / contain no-repeat; mask: var(--ds-icon-check) center / contain no-repeat; }
@media (prefers-reduced-motion: no-preference) { .ds-button.is-done { animation: ds-bump var(--ds-dur-3) var(--ds-ease-out); } }
@keyframes ds-bump { 0% { transform: scale(0.96); } 60% { transform: scale(1.03); } 100% { transform: scale(1); } }

/* A button that looks like a link (remove coupon, small inline actions). */
.ds-link, .dsq-link-btn { display: inline; margin: 0; padding: 0; border: 0; background: none; color: var(--ds-blue-deep); font: inherit; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.ds-link:hover, .dsq-link-btn:hover { color: var(--ds-navy); }

/* ---- 4.2 Form fields -----------------------------------------------------
 * Every input on the site: one height, border, radius and focus ring. :where() keeps this at
 * zero specificity, so a component (the search bar) can still restyle its own input.
 */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="search"], select, textarea { font: inherit; color: var(--ds-text); }
:where(.wp-site-blocks, .editor-styles-wrapper) :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="search"], select, textarea) {
	box-sizing: border-box;
	max-width: 100%;
	min-height: var(--ds-control);
	margin: 0;
	padding-block: 0.55rem;
	padding-inline: 0.9rem;
	border: 1.5px solid var(--ds-border);
	border-radius: var(--ds-radius-md);
	background-color: var(--ds-surface);
	font-size: 1rem; /* 16px or more: phones do not zoom into the field */
	line-height: 1.4;
	transition: border-color var(--ds-fast), box-shadow var(--ds-fast);
}
:where(.wp-site-blocks) :where(select) {
	-webkit-appearance: none;
	appearance: none;
	padding-inline-end: 2.4rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23647084' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 0.7rem auto;
	background-position: right 0.9rem center;
	cursor: pointer;
}
:where([dir="rtl"]) :where(.wp-site-blocks) :where(select:not([dir="ltr"])) { background-position: left 0.9rem center; }
:where(.wp-site-blocks) :where(textarea) { min-height: 7rem; }
:where(.wp-site-blocks) :where(input, select, textarea):hover { border-color: var(--ds-border-strong); }
:where(.wp-site-blocks) :where(input, select, textarea):focus { outline: none; border-color: var(--ds-blue); box-shadow: var(--ds-ring); }
:where(.wp-site-blocks) :where(input, select, textarea)[aria-invalid="true"] { border-color: var(--ds-danger); }
:where(.wp-site-blocks) :where(input, select, textarea)[aria-invalid="true"]:focus { box-shadow: 0 0 0 4px rgba(198, 40, 40, 0.18); }
:where(.wp-site-blocks) :where(input, select, textarea):disabled,
:where(.wp-site-blocks) :where(input[readonly]) { background-color: var(--ds-surface-2); color: var(--ds-muted); cursor: not-allowed; }
:where(.wp-site-blocks) :where(input, textarea)::placeholder { color: var(--ds-subtle); opacity: 1; }
:where(.wp-site-blocks) :where(input[type="checkbox"], input[type="radio"]) { flex: none; width: 1.15rem; height: 1.15rem; margin: 0; vertical-align: middle; accent-color: var(--ds-blue); cursor: pointer; }

/* A field = label + control + hint/error. Use .ds-field on the wrapper. */
.ds-field { display: flex; flex-direction: column; gap: 0.4rem; margin: 0; min-width: 0; }
.ds-field > label, .ds-label { color: var(--ds-text); font-size: var(--ds-text-sm); font-weight: 600; line-height: 1.4; }
.ds-field > input, .ds-field > select, .ds-field > textarea, .ds-field__control > input { width: 100%; }
.ds-optional { color: var(--ds-muted); font-weight: 400; }
.ds-hint { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-xs); line-height: 1.5; }
.ds-error, .dsq-field-error { display: flex; align-items: flex-start; gap: 0.35rem; margin: 0; color: var(--ds-danger); font-size: var(--ds-text-xs); font-weight: 600; line-height: 1.5; }
.ds-error::before, .dsq-field-error::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 1.05rem; height: 1.05rem; margin-block-start: 0.1rem; border-radius: 50%; background: var(--ds-danger); color: #fff; font-size: 0.7rem; font-weight: 700; line-height: 1; }
.ds-fields { display: grid; gap: var(--ds-space-5) var(--ds-space-4); }
.ds-fields--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-fields .ds-field--full { grid-column: 1 / -1; }
@media (max-width: 600px) { .ds-fields--2 { grid-template-columns: 1fr; } }
.ds-check { display: inline-flex; align-items: center; gap: 0.6rem; font-weight: 500; cursor: pointer; }

/* Password field with a show/hide button (added by the plugin's ui.js). */
.ds-password { position: relative; display: block; }
.ds-password > input { width: 100%; padding-inline-end: 4.75rem; }
.ds-password__toggle { position: absolute; inset-block: 0.3rem; inset-inline-end: 0.3rem; min-height: 0; padding-inline: 0.7rem; border: 0; border-radius: var(--ds-radius-sm); background: transparent; color: var(--ds-blue-deep); font: inherit; font-size: var(--ds-text-xs); font-weight: 600; cursor: pointer; }
.ds-password__toggle:hover { background: var(--ds-mist); color: var(--ds-navy); }

/* ---- 4.3 Cards ----------------------------------------------------------- */
.ds-card { box-sizing: border-box; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-xs); }
.ds-card--flush { padding: 0; overflow: hidden; }
.ds-card--muted { background: var(--ds-surface-2); box-shadow: none; }
.ds-card__title { margin: 0 0 var(--ds-space-1); font-size: var(--ds-text-h3); font-weight: 600; }
.ds-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); margin-block-end: var(--ds-space-5); }
.ds-card__head > :is(h2, h3) { margin: 0; font-size: var(--ds-text-h3); font-weight: 600; }
.ds-card__sub { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }
/* Cards that lead somewhere rise a little on hover (2.0.0); still cards for reduced motion, just no movement. */
.ds-card--link, .ds-card--hover { transition: border-color var(--ds-dur-2) var(--ds-ease), box-shadow var(--ds-dur-2) var(--ds-ease), transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-card--link:hover, .ds-card--hover:hover, .ds-card--link:focus-within, .ds-card--hover:focus-within { border-color: var(--ds-border-strong); box-shadow: var(--ds-elev-2); }
@media (prefers-reduced-motion: no-preference) { .ds-card--link:hover, .ds-card--hover:hover { transform: translateY(var(--ds-lift)); } }
.ds-card--raised { box-shadow: var(--ds-elev-1); }
.ds-card--deal { background: linear-gradient(180deg, var(--ds-amber-tint), var(--ds-surface) 70%); border-color: var(--ds-amber-line); }
.ds-card--deal:hover { border-color: var(--ds-amber-strong); box-shadow: var(--ds-shadow-amber); }
.ds-card--dark { background: var(--ds-navy); border-color: var(--ds-navy-2); color: var(--ds-on-dark-2); }
.ds-card--dark :is(h2, h3, h4, .ds-card__title) { color: #fff; }

/* ---- 4.4 Alerts (info, success, warning, error) --------------------------- */
.ds-alert {
	--_c: var(--ds-navy-2);
	--_bg: var(--ds-info-tint);
	display: flex;
	align-items: flex-start;
	gap: var(--ds-space-3);
	margin: 0 0 var(--ds-space-5);
	padding: 0.85rem 1rem;
	background: var(--_bg);
	border: 1px solid color-mix(in srgb, var(--_c) 22%, transparent);
	border-radius: var(--ds-radius-md);
	color: var(--ds-text);
	font-size: var(--ds-text-sm);
	line-height: 1.55;
}
.ds-alert::before { content: ""; flex: none; width: 1.25rem; height: 1.25rem; margin-block-start: 0.1rem; background: var(--_c); -webkit-mask: var(--_icon) center / contain no-repeat; mask: var(--_icon) center / contain no-repeat; }
.ds-alert { --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-6h2Zm0-8h-2V7h2Z'/%3E%3C/svg%3E"); }
.ds-alert--success { --_c: var(--ds-success); --_bg: var(--ds-success-tint); --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.2 14.2-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4Z'/%3E%3C/svg%3E"); }
.ds-alert--warning { --_c: var(--ds-warning-text); --_bg: var(--ds-warning-tint); --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 1 21h22L12 2Zm1 16h-2v-2h2Zm0-4h-2v-4h2Z'/%3E%3C/svg%3E"); }
.ds-alert--error { --_c: var(--ds-danger); --_bg: var(--ds-danger-tint); --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-2h2Zm0-4h-2V7h2Z'/%3E%3C/svg%3E"); }
.ds-alert > :first-child { margin-block-start: 0; }
.ds-alert > :last-child { margin-block-end: 0; }
.ds-alert p { margin: 0; }
.ds-alert ul { margin: 0.35rem 0 0; padding-inline-start: 1.1rem; }
.ds-alert strong { font-weight: 600; }

/* ---- 4.5 Badges: status is icon/dot + word, never colour alone ------------ */
.ds-badge, .dsq-badge {
	--_c: var(--ds-muted);
	--_bg: var(--ds-mist);
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.2rem 0.65rem;
	border-radius: var(--ds-radius-pill);
	background: var(--_bg);
	color: var(--ds-text);
	font-size: var(--ds-text-xs);
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
}
.ds-badge::before, .dsq-badge::before { content: ""; flex: none; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--_c); }
.ds-badge--success, .dsq-badge--active { --_c: var(--ds-success-mark); --_bg: var(--ds-success-tint); color: var(--ds-success); }
.ds-badge--warning, .dsq-badge--warn { --_c: var(--ds-warning); --_bg: var(--ds-warning-tint); color: var(--ds-warning-text); }
.ds-badge--premium { --_c: var(--ds-gold); --_bg: var(--ds-gold-tint); color: var(--ds-gold-text); }
.ds-badge--danger, .dsq-badge--danger { --_c: var(--ds-danger); --_bg: var(--ds-danger-tint); color: var(--ds-danger); }
.ds-badge--info { --_c: var(--ds-navy-2); --_bg: var(--ds-info-tint); color: var(--ds-navy-2); }
.ds-badge--plain::before { display: none; }
/*
 * Domain badges (2.0.0). Each says its state in a word and an icon, never colour alone:
 * Available (green tick), Taken (muted cross), Premium (gold, star), Sale / Offer (amber, tag),
 * Regional (soft blue, globe: an Arab country extension).
 */
.ds-badge--available, .ds-badge--taken, .ds-badge--premium, .ds-badge--sale, .ds-badge--offer, .ds-badge--regional { gap: 0.3rem; }
:is(.ds-badge--available, .ds-badge--taken, .ds-badge--premium, .ds-badge--sale, .ds-badge--offer, .ds-badge--regional)::before { width: 0.85rem; height: 0.85rem; border-radius: 0; background: currentColor; -webkit-mask: var(--_icon) center / contain no-repeat; mask: var(--_icon) center / contain no-repeat; }
.ds-badge--available { --_bg: var(--ds-success-tint); --_icon: var(--ds-icon-check); color: var(--ds-success); }
.ds-badge--taken { --_bg: var(--ds-mist); --_icon: var(--ds-icon-x); color: var(--ds-muted); }
.ds-badge--premium { --_bg: var(--ds-gold); --_icon: var(--ds-icon-star); color: var(--ds-on-amber); }
.ds-badge--sale { --_bg: var(--ds-amber); --_icon: var(--ds-icon-tag); color: var(--ds-on-amber); }
.ds-badge--offer { --_bg: var(--ds-amber-tint); --_icon: var(--ds-icon-tag); color: var(--ds-amber-text); box-shadow: inset 0 0 0 1px var(--ds-amber-line); }
.ds-badge--regional { --_bg: var(--ds-blue-soft); --_icon: var(--ds-icon-globe); color: var(--ds-blue-deep); }
.ds-tag { display: inline-flex; align-items: center; padding: 0.05rem 0.5rem; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 500; line-height: 1.6; white-space: nowrap; }

/* ---- 4.6 Tables: sentence-case heads; on phones each row becomes a card --- */
.ds-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--ds-text-sm); font-variant-numeric: tabular-nums; }
.ds-table th, .ds-table td { padding: 0.85rem 1.1rem; border-block-end: 1px solid var(--ds-border); text-align: start; vertical-align: middle; }
.ds-table thead th { background: var(--ds-surface-2); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 600; white-space: nowrap; }
.ds-table tbody tr:last-child > * { border-block-end: 0; }
.ds-table tbody tr { transition: background-color var(--ds-fast); }
.ds-table tbody tr:hover { background: var(--ds-surface-2); }
.ds-table .ds-table__end { text-align: end; }
.ds-table-wrap { background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); overflow: hidden; }
@media (max-width: 640px) {
	.ds-table--stack thead { display: none; }
	.ds-table--stack, .ds-table--stack tbody, .ds-table--stack tr, .ds-table--stack td, .ds-table--stack th { display: block; width: auto; }
	.ds-table--stack tr { padding: 0.9rem 1rem; border-block-end: 1px solid var(--ds-border); }
	.ds-table--stack tbody tr:last-child { border-block-end: 0; }
	.ds-table--stack td, .ds-table--stack th { padding: 0.2rem 0; border: 0; }
	.ds-table--stack td[data-label]::before { content: attr(data-label) " "; color: var(--ds-muted); font-size: var(--ds-text-xs); }
	.ds-table--stack .ds-table__end { text-align: start; margin-block-start: 0.5rem; }
}

/* ---- 4.7 Empty state ----------------------------------------------------- */
.ds-empty { display: flex; flex-direction: column; align-items: center; gap: var(--ds-space-3); padding: clamp(2rem, 1.5rem + 3vw, 3.5rem) var(--ds-space-6); text-align: center; background: var(--ds-surface); border: 1px dashed var(--ds-border-strong); border-radius: var(--ds-radius-lg); }
.ds-empty { background: radial-gradient(90% 70% at 50% 0%, var(--ds-blue-soft), var(--ds-surface) 65%); }
/* 2.0.0: the icon is drawn as a small illustration: a soft disc, a dashed orbit and two dots (blue and amber). */
.ds-empty__icon { position: relative; display: grid; place-items: center; width: 4.5rem; height: 4.5rem; margin-block-end: var(--ds-space-2); border-radius: 50%; background: linear-gradient(145deg, #fff, var(--ds-blue-soft)); box-shadow: 0 8px 20px rgba(11, 95, 217, 0.14), inset 0 0 0 1px var(--ds-blue-line); color: var(--ds-blue); }
.ds-empty__icon::before { content: ""; position: absolute; inset: -0.75rem; border: 1.5px dashed var(--ds-blue-line); border-radius: 50%; }
.ds-empty__icon::after { content: ""; position: absolute; inset-block-start: -0.55rem; inset-inline-end: 0.15rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--ds-amber); box-shadow: -3.6rem 4.4rem 0 -0.12rem var(--ds-blue-light); }
html[dir="rtl"] .ds-empty__icon::after { box-shadow: 3.6rem 4.4rem 0 -0.12rem var(--ds-blue-light); }
@media (prefers-reduced-motion: no-preference) { .ds-empty__icon::before { animation: ds-orbit 24s linear infinite; } }
@keyframes ds-orbit { to { transform: rotate(360deg); } }
.ds-empty__icon svg { width: 1.75rem; height: 1.75rem; }
.ds-empty__title { margin: var(--ds-space-1) 0 0; font-size: var(--ds-text-h3); font-weight: 600; }
.ds-empty p { max-width: 30rem; margin: 0; color: var(--ds-muted); }
.ds-empty .ds-button { margin-block-start: var(--ds-space-2); }
.ds-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ds-space-3); }
.ds-empty__actions .ds-button { margin-block-start: var(--ds-space-2); }

/* ---- 4.8 Steps (cart → details → payment) -------------------------------- */
.ds-steps-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-2) var(--ds-space-3); margin: 0 0 var(--ds-space-6); padding: 0; list-style: none; font-size: var(--ds-text-sm); }
.ds-steps-bar li { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; color: var(--ds-muted); font-weight: 500; }
.ds-steps-bar li + li::before { content: ""; width: clamp(1rem, 3vw, 2.5rem); height: 1px; margin-inline-end: var(--ds-space-1); background: var(--ds-border-strong); }
.ds-steps-bar__n { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border: 1.5px solid var(--ds-border-strong); border-radius: 50%; font-size: var(--ds-text-xs); font-weight: 700; font-variant-numeric: tabular-nums; }
.ds-steps-bar [aria-current="step"] { color: var(--ds-text); font-weight: 600; }
.ds-steps-bar [aria-current="step"] .ds-steps-bar__n { border-color: var(--ds-navy); background: var(--ds-navy); color: #fff; }
.ds-steps-bar .is-done { color: var(--ds-success); }
.ds-steps-bar .is-done .ds-steps-bar__n { border-color: var(--ds-success); background: var(--ds-success); color: #fff; }
.ds-steps-bar .ds-steps-bar__n svg { width: 0.9rem; height: 0.9rem; }

/* ---- 4.9 Skeleton loading ------------------------------------------------- */
.ds-skeleton { display: inline-block; min-width: 4rem; height: 0.9em; border-radius: var(--ds-radius-sm); background: linear-gradient(90deg, var(--ds-mist) 0%, var(--ds-surface-2) 50%, var(--ds-mist) 100%); background-size: 200% 100%; vertical-align: middle; }
@media (prefers-reduced-motion: no-preference) { .ds-skeleton { animation: ds-shimmer 1.3s ease-in-out infinite; } }
@keyframes ds-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* ---- 4.10 Tabs (2.0.0) ------------------------------------------------------
 * .ds-tabs > [role=tab] (or <a>/<button> with aria-selected / aria-current). An underline that
 * slides under the chosen tab; a row that scrolls sideways on phones instead of wrapping.
 */
.ds-tabs { display: flex; gap: var(--ds-space-1); margin: 0 0 var(--ds-space-6); padding: 0; border-block-end: 1px solid var(--ds-border); overflow-x: auto; scrollbar-width: none; list-style: none; contain: inline-size; } /* its width comes from the page, never from its tabs, so a long row scrolls instead of widening a grid column */
.ds-tabs::-webkit-scrollbar { display: none; }
.ds-tabs > *, .ds-tabs__tab { position: relative; flex: none; display: inline-flex; align-items: center; gap: var(--ds-space-2); min-height: 2.75rem; margin: 0; padding: 0 var(--ds-space-4); border: 0; background: none; color: var(--ds-muted); font: inherit; font-size: var(--ds-text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; transition: color var(--ds-dur-1); }
.ds-tabs > *::after, .ds-tabs__tab::after { content: ""; position: absolute; inset-inline: var(--ds-space-3); inset-block-end: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--ds-blue); transform: scaleX(0); transition: transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-tabs > *:hover, .ds-tabs__tab:hover { color: var(--ds-navy); }
.ds-tabs > [aria-selected="true"], .ds-tabs > [aria-current], .ds-tabs__tab[aria-selected="true"], .ds-tabs__tab[aria-current], .ds-tabs .is-active { color: var(--ds-navy); }
.ds-tabs > [aria-selected="true"]::after, .ds-tabs > [aria-current]::after, .ds-tabs__tab[aria-selected="true"]::after, .ds-tabs__tab[aria-current]::after, .ds-tabs .is-active::after { transform: scaleX(1); }
/* Pill variant: a segmented control (prices filter, term picker). */
.ds-tabs--pill { gap: 0.25rem; padding: 0.25rem; border: 0; border-radius: var(--ds-radius-pill); background: var(--ds-mist); width: max-content; max-width: 100%; contain: none; }
.ds-tabs--pill > *, .ds-tabs--pill .ds-tabs__tab { min-height: 2.25rem; padding-inline: var(--ds-space-4); border-radius: var(--ds-radius-pill); transition: background-color var(--ds-dur-2), color var(--ds-dur-1), box-shadow var(--ds-dur-2); }
.ds-tabs--pill > *::after, .ds-tabs--pill .ds-tabs__tab::after { display: none; }
.ds-tabs--pill > :is([aria-selected="true"], [aria-current], [aria-pressed="true"], .is-active) { background: var(--ds-surface); color: var(--ds-navy); box-shadow: var(--ds-shadow-xs); }

/* ---- 4.11 Switch (2.0.0): a checkbox that looks like a toggle ---------------
 * <label class="ds-switch"><input type="checkbox" role="switch"> <span>Label</span></label>.
 * On is Deep Navy (blue is kept for the next action, so a screen of switches never turns all blue).
 */
.ds-switch { display: inline-flex; align-items: center; gap: var(--ds-space-3); cursor: pointer; font-weight: 500; }
.ds-switch input[type="checkbox"] { -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 2.75rem; height: 1.5rem; margin: 0; border: 0; border-radius: var(--ds-radius-pill); background: var(--ds-border-strong); cursor: pointer; transition: background-color var(--ds-dur-2) var(--ds-ease); }
.ds-switch input[type="checkbox"]::before { content: ""; position: absolute; inset-block-start: 0.1875rem; inset-inline-start: 0.1875rem; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(7, 27, 58, 0.25); transition: transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-switch input[type="checkbox"]:checked { background: var(--ds-navy); }
.ds-switch input[type="checkbox"]:checked::before { transform: translateX(1.25rem); }
[dir="rtl"] .ds-switch input[type="checkbox"]:checked::before { transform: translateX(-1.25rem); }
.ds-switch input[type="checkbox"]:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ds-switch input[type="checkbox"]:disabled { opacity: 0.5; cursor: not-allowed; }

/* ---- 4.12 Accordion (2.0.0): <details class="ds-accordion"> -----------------
 * Works without a script. The answer slides open where the browser can animate to height:auto.
 */
.ds-accordion { border-block-end: 1px solid var(--ds-border); }
.ds-accordion > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); padding-block: var(--ds-space-5); color: var(--ds-heading); font-size: var(--ds-text-body); font-weight: 600; list-style: none; cursor: pointer; transition: color var(--ds-dur-1); }
.ds-accordion > summary::-webkit-details-marker { display: none; }
.ds-accordion > summary::after { content: ""; flex: none; width: 1.25rem; height: 1.25rem; background: currentColor; -webkit-mask: var(--ds-icon-chevron) center / contain no-repeat; mask: var(--ds-icon-chevron) center / contain no-repeat; transition: transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-accordion[open] > summary::after { transform: rotate(180deg); }
.ds-accordion > summary:hover { color: var(--ds-blue); }
.ds-accordion__body { padding-block-end: var(--ds-space-5); color: var(--ds-muted); }
@supports (interpolate-size: allow-keywords) {
	@media (prefers-reduced-motion: no-preference) {
		.ds-accordion { interpolate-size: allow-keywords; }
		.ds-accordion::details-content { block-size: 0; overflow: clip; transition: block-size var(--ds-dur-3) var(--ds-ease-out), content-visibility var(--ds-dur-3) allow-discrete; }
		.ds-accordion[open]::details-content { block-size: auto; }
	}
}

/* ---- 4.13 Carousel (2.0.0): a row that snaps, never hides content -----------
 * .ds-carousel > .ds-carousel__track > items. Swipe, scroll, or the optional
 * [data-ds-carousel-prev/next] buttons (theme.js). Without the script it is a scrollable row.
 */
.ds-carousel { position: relative; min-width: 0; max-width: 100%; } /* a scrolling row never widens the column it sits in */
.ds-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: var(--ds-carousel-item, minmax(16rem, 1fr)); gap: var(--ds-space-4); margin: 0; padding: var(--ds-space-1) var(--ds-space-1) var(--ds-space-4); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--ds-space-1); scrollbar-width: thin; scrollbar-color: var(--ds-border-strong) transparent; list-style: none; }
.ds-carousel__track > * { scroll-snap-align: start; min-width: 0; }
@media (prefers-reduced-motion: no-preference) { .ds-carousel__track { scroll-behavior: smooth; } }
.ds-carousel__nav { display: flex; gap: var(--ds-space-2); }
.ds-carousel__btn { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 1px solid var(--ds-border-strong); border-radius: 50%; background: var(--ds-surface); color: var(--ds-navy); cursor: pointer; transition: background-color var(--ds-dur-1), border-color var(--ds-dur-1), opacity var(--ds-dur-1); }
.ds-carousel__btn:hover { border-color: var(--ds-navy); background: var(--ds-surface-2); }
.ds-carousel__btn:disabled { opacity: 0.35; cursor: default; }
.ds-carousel__btn svg { width: 1.1rem; height: 1.1rem; }
.ds-section--dark .ds-carousel__btn, .ds-carousel--dark .ds-carousel__btn { border-color: var(--ds-on-dark-line); background: var(--ds-navy-2); color: #fff; }

/* ---- 4.14 Toasts (2.0.0) -----------------------------------------------------
 * <div class="ds-toasts" aria-live="polite"> holds .ds-toast items; they slide in from the
 * bottom (the end corner on wide screens) and are dark, so they read over any page.
 */
.ds-toasts { position: fixed; z-index: 90; inset-block-end: max(var(--ds-space-4), env(safe-area-inset-bottom)); inset-inline: var(--ds-space-4); display: flex; flex-direction: column; align-items: center; gap: var(--ds-space-2); pointer-events: none; }
@media (min-width: 700px) { .ds-toasts { inset-inline-start: auto; align-items: flex-end; } }
.ds-toast { display: flex; align-items: center; gap: var(--ds-space-3); max-width: 26rem; padding: 0.75rem 1rem; border-radius: var(--ds-radius-md); background: var(--ds-navy); color: #fff; font-size: var(--ds-text-sm); font-weight: 500; box-shadow: var(--ds-elev-3); pointer-events: auto; }
.ds-toast::before { content: ""; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--ds-success-mark); -webkit-mask: var(--ds-icon-check) center / 0.8rem no-repeat, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: var(--ds-icon-check) center / 0.8rem no-repeat exclude, linear-gradient(#000 0 0); }
.ds-toast--error::before { background: var(--ds-danger-on-dark); -webkit-mask: var(--ds-icon-x) center / 0.75rem no-repeat, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: var(--ds-icon-x) center / 0.75rem no-repeat exclude, linear-gradient(#000 0 0); }
.ds-toast a { color: var(--ds-blue-light); font-weight: 600; }
@media (prefers-reduced-motion: no-preference) { .ds-toast { animation: ds-toast-in var(--ds-dur-3) var(--ds-ease-out); } }
@keyframes ds-toast-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } }

/* ---- 4.15 Sticky bottom bar (2.0.0): a summary + one action that stays in reach ---- */
.ds-stickybar { position: sticky; z-index: 40; inset-block-end: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); margin-block-start: var(--ds-space-6); padding: var(--ds-space-3) var(--ds-space-4); padding-block-end: max(var(--ds-space-3), env(safe-area-inset-bottom)); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg) var(--ds-radius-lg) 0 0; background: color-mix(in srgb, var(--ds-surface) 94%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); box-shadow: 0 -8px 24px rgba(7, 27, 58, 0.08); }
.ds-stickybar__info { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ds-stickybar__label { color: var(--ds-muted); font-size: var(--ds-text-xs); }
.ds-stickybar__value { color: var(--ds-heading); font-size: 1.125rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---- 4.16 Payment-method logos (2.0.0): the methods really accepted, nothing more ---- */
.ds-paylogos { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.ds-paylogos li { display: inline-grid; place-items: center; width: 2.75rem; height: 1.75rem; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); background: #fff; }
.ds-paylogos svg { display: block; width: 2.125rem; height: 1.25rem; }
.ds-paylogos--dark li { border-color: transparent; }
.ds-paylogos__note { display: inline-flex; align-items: center; gap: var(--ds-space-2); color: var(--ds-muted); font-size: var(--ds-text-xs); }

/* ---- 4.17 Illustrated empty state (2.0.0) ------------------------------------
 * .ds-empty with a .ds-empty__art inline SVG (drawn in currentColor + tokens), above the title.
 */
.ds-empty__art { display: block; width: clamp(7rem, 20vw, 9.5rem); height: auto; margin-block-end: var(--ds-space-1); color: var(--ds-blue); }
.ds-empty--art { border-style: solid; border-color: var(--ds-border); background: radial-gradient(120% 80% at 50% 0%, var(--ds-blue-soft), var(--ds-surface) 60%); }

/* ---- 4.18 Reveal on scroll (2.0.0) -------------------------------------------
 * .ds-reveal fades a section up as it enters the screen, with CSS scroll-driven animations only:
 * no script, so nothing can stay hidden if a script fails, and browsers without the feature (or
 * visitors who asked for reduced motion) simply see the section.
 */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.ds-reveal { animation: ds-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
	}
}
@keyframes ds-reveal { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* ---- 4.19 Countdown (2.0.0): "Ends in 2d 04:13:09", filled in by theme.js from data-ds-ends ---- */
.ds-countdown { display: inline-flex; align-items: center; gap: var(--ds-space-2); color: var(--ds-amber-text); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-countdown__time { font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; }
.ds-countdown__unit { display: inline-grid; place-items: center; min-width: 2.25rem; padding: 0.15rem 0.35rem; border-radius: var(--ds-radius-sm); background: var(--ds-navy); color: #fff; font-size: var(--ds-text-xs); font-variant-numeric: tabular-nums; }

/* ==== 5. Header ============================================================ */

.ds-header { position: relative; z-index: 50; background: var(--ds-navy); border-block-end: 1px solid var(--ds-on-dark-line); color: #fff; }
.ds-header .ds-header__inner { min-height: var(--ds-header-h); }
/*
 * Sticky and frosted at every width. The phone menu and the language dialog are modal <dialog>s,
 * which sit in the top layer, so backdrop-filter cannot trap them. A header saved in the Site
 * Editor before theme 1.6.0 still uses WordPress's own phone menu, which backdrop-filter would
 * trap, so it stays sticky-and-frosted on desktop only (it has no .ds-menu-btn).
 */
.ds-header:has(.ds-menu-btn) { position: sticky; inset-block-start: var(--wp-admin--admin-bar--height, 0px); }
@supports (backdrop-filter: blur(8px)) { .ds-header:has(.ds-menu-btn) { background: rgba(7, 27, 58, 0.94); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); } }
@media (max-width: 600px) { .ds-header:has(.ds-menu-btn) { inset-block-start: 0; } } /* WordPress's admin bar scrolls away on phones */
@media (min-width: 1024px) {
	.ds-header { position: sticky; inset-block-start: var(--wp-admin--admin-bar--height, 0px); }
	@supports (backdrop-filter: blur(8px)) { .ds-header { background: rgba(7, 27, 58, 0.94); backdrop-filter: saturate(1.4) blur(8px); } }
}
/* A soft shadow appears once the page scrolls (browsers with scroll-driven animations; the border is enough elsewhere). */
@supports (animation-timeline: scroll()) {
	.ds-header { animation: ds-header-lift linear both; animation-timeline: scroll(root); animation-range: 0 4rem; }
}
@keyframes ds-header-lift { to { box-shadow: 0 6px 20px rgba(7, 27, 58, 0.22); } }

.ds-header__inner {
	display: flex;
	align-items: center;
	gap: var(--ds-space-4) var(--ds-space-6);
	min-height: var(--ds-header-h);
	padding-block: var(--ds-space-2);
}
.ds-header__inner > * { margin: 0 !important; } /* beats the flow layout's block gap */
.ds-brand { display: flex; align-items: center; gap: 0.6rem; flex: none; }
/* Logo: a wide wordmark (960x143), sized by height so the width follows. */
.ds-logo { display: inline-flex; line-height: 0; border-radius: var(--ds-radius-sm); }
.ds-logo img { display: block; width: auto; height: 2.25rem; max-width: none; }
@media (min-width: 1024px) and (max-width: 1279px) { .ds-header .ds-logo img { height: 1.875rem; } }

.ds-nav { flex: 1 1 auto; font-size: var(--ds-text-sm); }
.ds-nav .wp-block-navigation__container { gap: 2px; }
.ds-nav .wp-block-navigation-item__content { position: relative; display: inline-flex; align-items: center; min-height: 2.5rem; padding-inline: 0.85rem; border-radius: var(--ds-radius-md); color: var(--ds-on-dark-1); font-weight: 500; text-decoration: none; white-space: nowrap; transition: color var(--ds-fast), background-color var(--ds-fast); }
.ds-nav .wp-block-navigation-item__content:hover { color: #fff; background: var(--ds-on-dark-hover); }
.ds-nav .wp-block-navigation-item__content[aria-current="page"] { color: #fff; font-weight: 600; }
/* The active page: a short blue bar on the header's bottom edge. */
.ds-nav .wp-block-navigation-item__content[aria-current="page"]::after { content: ""; position: absolute; inset-inline: 0.85rem; inset-block-end: calc((var(--ds-header-h) - 2.5rem) / -2); height: 3px; border-start-start-radius: 3px; border-start-end-radius: 3px; background: var(--ds-blue); }
@media (min-width: 1024px) and (max-width: 1279px) {
	.ds-header__inner { column-gap: var(--ds-space-4) !important; }
	.ds-nav .wp-block-navigation-item__content { padding-inline: 0.6rem; }
	.ds-nav .wp-block-navigation-item__content[aria-current="page"]::after { inset-inline: 0.6rem; }
}
/*
 * Mega menus (2.0.0): Domains and Services open a full-width panel under the header. Built on
 * <details>, so they open with a click or Enter/Space without any script; theme.js adds hover on
 * mouse pointers, Escape, closing on an outside click and one-open-at-a-time.
 */
.ds-mega-nav { display: flex; }
.ds-mega-nav__list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.ds-mega-nav__item { margin: 0; }
.ds-mega-nav__link { position: relative; display: inline-flex; align-items: center; gap: 0.3rem; min-height: 2.5rem; padding-inline: 0.85rem; border-radius: var(--ds-radius-md); color: var(--ds-on-dark-1); font-weight: 500; text-decoration: none; white-space: nowrap; list-style: none; cursor: pointer; transition: color var(--ds-dur-1), background-color var(--ds-dur-1); }
.ds-mega-nav__link::-webkit-details-marker { display: none; }
.ds-mega-nav__link:hover, .ds-mega[open] > .ds-mega-nav__link { color: #fff; background: var(--ds-on-dark-hover); }
.ds-mega-nav__link[aria-current="page"], .ds-mega-nav__link.is-current { color: #fff; font-weight: 600; }
.ds-mega-nav__link[aria-current="page"]::after, .ds-mega-nav__link.is-current::after { content: ""; position: absolute; inset-inline: 0.85rem; inset-block-end: calc((var(--ds-header-h) - 2.5rem) / -2); height: 3px; border-start-start-radius: 3px; border-start-end-radius: 3px; background: var(--ds-blue-light); }
.ds-mega__chevron { width: 0.95rem; height: 0.95rem; opacity: 0.75; transition: transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-mega[open] .ds-mega__chevron { transform: rotate(180deg); }
.ds-mega__panel { position: absolute; z-index: 60; inset-inline: 0; inset-block-start: 100%; padding-block: var(--ds-space-6) var(--ds-space-8); border-block-start: 1px solid var(--ds-border); background: var(--ds-surface); color: var(--ds-text); box-shadow: 0 24px 48px rgba(7, 27, 58, 0.18); }
@media (prefers-reduced-motion: no-preference) { .ds-mega[open] .ds-mega__panel { animation: ds-mega-in var(--ds-dur-2) var(--ds-ease-out); } }
@keyframes ds-mega-in { from { opacity: 0; transform: translateY(-6px); } }
.ds-mega__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--ds-space-6) var(--ds-space-8); align-items: start; }
.ds-mega--domains .ds-mega__inner { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(16rem, 0.9fr); }
.ds-mega--domains .ds-mega__group:first-child .ds-mega__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--ds-space-2); }
.ds-mega:not(.ds-mega--domains) .ds-mega__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 20rem)); gap: var(--ds-space-2); }
.ds-mega__title { margin: 0 0 var(--ds-space-3); padding-inline: var(--ds-space-3); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 600; }
.ds-mega__links { margin: 0; padding: 0; list-style: none; }
.ds-mega__links li { margin: 0; }
.ds-mega__link { display: flex; align-items: flex-start; gap: var(--ds-space-3); padding: var(--ds-space-3); border-radius: var(--ds-radius-md); color: var(--ds-text); text-decoration: none; transition: background-color var(--ds-dur-1); }
.ds-mega__link:hover, .ds-mega__link:focus-visible { background: var(--ds-surface-2); color: var(--ds-text); }
.ds-header .ds-mega__panel :focus-visible { outline-color: var(--ds-focus); }
.ds-mega__icon { flex: none; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); transition: background-color var(--ds-dur-1), color var(--ds-dur-1); }
.ds-mega__icon svg { width: 1.25rem; height: 1.25rem; }
.ds-mega__link:hover .ds-mega__icon { background: var(--ds-blue); color: #fff; }
.ds-mega__link[aria-current="page"] .ds-mega__icon { background: var(--ds-blue); color: #fff; }
.ds-mega__text { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.ds-mega__label { color: var(--ds-heading); font-size: var(--ds-text-sm); font-weight: 600; line-height: 1.35; }
.ds-mega__desc { color: var(--ds-muted); font-size: var(--ds-text-xs); line-height: 1.45; }
.ds-mega__tlds { grid-column: 1 / -1; }
.ds-mega__tlds .ds-mega__title { padding-inline: 0; }
.ds-mega__chips { display: flex; flex-wrap: wrap; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.ds-mega__chip { display: inline-block; padding: 0.35rem 0.85rem; border: 1px solid var(--ds-border); border-radius: 999px; color: var(--ds-heading); font-size: var(--ds-text-sm); font-weight: 600; text-decoration: none; transition: background-color var(--ds-dur-1), border-color var(--ds-dur-1); }
.ds-mega__chip:hover, .ds-mega__chip:focus-visible { border-color: var(--ds-blue); background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-mega__feature { display: flex; flex-direction: column; gap: var(--ds-space-3); padding: var(--ds-space-5); border-radius: var(--ds-radius-lg); background: var(--ds-navy); color: var(--ds-on-dark-2); background-image: radial-gradient(120% 90% at 100% 0%, rgba(90, 176, 255, 0.22), transparent 60%); }
.ds-mega__feature-title { margin: 0; color: #fff; font-size: 1.0625rem; font-weight: 700; }
.ds-mega__search { display: flex; gap: var(--ds-space-2); margin: 0; }
.ds-mega__search input[type="search"] { flex: 1 1 auto; min-width: 0; border-color: transparent; text-align: start; }
.ds-mega__search .ds-button { flex: none; width: var(--ds-control); padding: 0; }
.ds-mega__feature-note { margin: 0; color: var(--ds-on-dark-3); font-size: var(--ds-text-xs); }
.ds-header .ds-mega__feature :focus-visible { outline-color: var(--ds-focus-on-dark); }
@media (min-width: 1024px) and (max-width: 1279px) {
	.ds-mega-nav__list { gap: 0; }
	.ds-mega-nav__link { padding-inline: 0.4rem; gap: 0.15rem; font-size: 0.8125rem; }
	.ds-mega-nav__link[aria-current="page"]::after, .ds-mega-nav__link.is-current::after { inset-inline: 0.4rem; }
	.ds-mega--domains .ds-mega__inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
	.ds-mega--domains .ds-mega__feature { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; }
	.ds-mega--domains .ds-mega__search { flex: 1 1 18rem; }
}

/*
 * Compact on scroll (2.0.0, wide screens): the bar and the logo shrink a little over the first
 * 120px of scrolling, with a scroll-driven animation (no script; browsers without it keep the full bar).
 */
@supports (animation-timeline: scroll()) {
	@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
		.ds-header .ds-header__inner { animation: ds-header-compact linear both; animation-timeline: scroll(root); animation-range: 0 120px; }
		.ds-header .ds-header__inner .ds-logo img { animation: ds-logo-compact linear both; animation-timeline: scroll(root); animation-range: 0 120px; }
	}
}
@keyframes ds-header-compact { to { min-height: 3.75rem; } }
@keyframes ds-logo-compact { to { height: 1.875rem; } }

/* Phone overlay menu */
/* No "display" here: WordPress decides when the menu button shows (phones only). */
.ds-nav .wp-block-navigation__responsive-container-open,
.ds-nav .wp-block-navigation__responsive-container-close { align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ds-radius-md); color: var(--ds-navy); }
.ds-nav .wp-block-navigation__responsive-container-open { color: #fff; }
.ds-nav .wp-block-navigation__responsive-container-open:hover { background: var(--ds-on-dark-hover); }
.ds-nav .wp-block-navigation__responsive-container.is-menu-open { padding: var(--ds-space-6) var(--ds-gutter); background: #fff; }
.ds-nav .is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; }
.ds-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-block-end: 1px solid var(--ds-mist); }
.ds-nav .is-menu-open .wp-block-navigation-item__content { width: 100%; min-height: 3.25rem; padding-inline: 0; color: var(--ds-navy); font-size: 1.15rem; }
.ds-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after { display: none; }

/*
 * Preferences (currency + language) read as one unit; actions (cart, account) follow.
 * All header controls share one height, --ds-ctl.
 */
.ds-header { --ds-ctl: 2.375rem; }
.ds-header__prefs, .ds-header__actions { display: flex; align-items: center; gap: var(--ds-space-2); flex: none; }
.ds-header__prefs > *, .ds-header__actions > * { margin: 0 !important; }
.ds-header__prefs p { margin: 0; }
.ds-header__actions .wp-block-buttons { margin: 0; }
/* Controls on the navy bar; the phone menu panel inside the header is white and keeps the light-page look. */
.ds-header :focus-visible { outline-color: var(--ds-focus-on-dark); }
.ds-header .ds-drawer :focus-visible { outline-color: var(--ds-focus); }

.ds-icon-btn { position: relative; display: inline-grid; place-items: center; width: var(--ds-ctl); height: var(--ds-ctl); margin: 0; padding: 0; border: 0; border-radius: var(--ds-radius-md); background: transparent; color: var(--ds-navy); font: inherit; text-decoration: none; cursor: pointer; transition: background-color var(--ds-fast); }
.ds-icon-btn:hover { background: var(--ds-surface-2); color: var(--ds-navy); }
.ds-icon-btn svg { width: 1.35rem; height: 1.35rem; }
.ds-header__actions .ds-icon-btn, .ds-header__actions .ds-icon-btn:hover { color: #fff; }
.ds-header__actions .ds-icon-btn:hover { background: var(--ds-on-dark-hover); }
.ds-icon-btn:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ds-account-btn { box-sizing: border-box; display: inline-flex; align-items: center; gap: 0.5rem; min-height: var(--ds-ctl); padding-inline: 1rem; border: 1.5px solid rgba(255, 255, 255, 0.32); border-radius: var(--ds-radius-md); background: transparent; color: #fff; font-size: var(--ds-text-sm); font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap; transition: border-color var(--ds-fast), background-color var(--ds-fast); }
.ds-account-btn:hover { border-color: rgba(255, 255, 255, 0.5); background: var(--ds-on-dark-hover); color: #fff; }
.ds-account-btn svg { width: 1.15rem; height: 1.15rem; }
.ds-account-btn[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--ds-blue); }
.ds-header__cart { position: relative; }
@media (min-width: 1024px) and (max-width: 1279px) {
	.ds-header .ds-account-btn { width: var(--ds-ctl); padding: 0; justify-content: center; }
	.ds-header .ds-account-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

/* Language: a two-option segmented toggle. */
.ds-lang ul { display: flex; gap: 2px; margin: 0; padding: 3px; list-style: none; background: var(--ds-on-dark-hover); border-radius: var(--ds-radius-md); box-sizing: border-box; min-height: var(--ds-ctl); align-items: center; }
.ds-lang li { margin: 0; }
.ds-lang a { display: inline-flex; align-items: center; min-height: calc(var(--ds-ctl) - 6px); padding-inline: 0.75rem; border-radius: 7px; color: var(--ds-on-dark-2); font-size: var(--ds-text-xs); font-weight: 600; line-height: 1; text-decoration: none; transition: background-color var(--ds-fast), color var(--ds-fast), box-shadow var(--ds-fast); }
.ds-lang a:hover { color: #fff; }
.ds-lang a[aria-current] { color: var(--ds-navy); background: #fff; box-shadow: var(--ds-shadow-xs); }

/*
 * Currency: a native <select> that matches the language toggle. Currency codes are Latin, so
 * the select is always LTR and the chevron sits on the right in both languages. This is the one
 * deliberate physical position in the file.
 */
.dsq-currency { display: inline-flex; margin: 0; }
.dsq-currency select,
.ds-header .dsq-currency select {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	min-height: var(--ds-ctl, 2.375rem);
	margin: 0;
	padding-block: 0;
	padding-inline: 0.8rem 1.9rem;
	border: 0;
	border-radius: var(--ds-radius-md);
	background-color: var(--ds-mist);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23071b3a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 0.65rem auto;
	background-position: right 0.75rem center;
	color: var(--ds-navy);
	font: inherit;
	font-size: var(--ds-text-xs);
	font-weight: 600;
	line-height: 1;
	direction: ltr;
	cursor: pointer;
	transition: background-color var(--ds-fast);
}
.dsq-currency select:hover { background-color: var(--ds-mist-2); }
.dsq-currency select:focus { box-shadow: var(--ds-ring); }
.dsq-currency noscript button { margin-inline-start: 0.4rem; }
.ds-header .dsq-currency select { background-color: var(--ds-on-dark-hover); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); color: #fff; }
.ds-header .dsq-currency select:hover { background-color: rgba(255, 255, 255, 0.14); }
.ds-header .dsq-currency option { color: var(--ds-text); }

/*
 * Language + currency: one button in the header opens a dialog with both choices
 * (DomainSouq Core's domainsouq/preferences block).
 */
.dsq-prefs { display: inline-flex; }
.dsq-prefs__trigger { display: inline-flex; align-items: center; gap: 0.45rem; min-height: var(--ds-ctl); margin: 0; padding-inline: 0.8rem; border: 0; border-radius: var(--ds-radius-md); background: var(--ds-mist); color: var(--ds-navy); font: inherit; font-size: var(--ds-text-xs); font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer; transition: background-color var(--ds-fast); }
.dsq-prefs__trigger:hover { background: var(--ds-mist-2); }
.ds-header__prefs .dsq-prefs__trigger { background: var(--ds-on-dark-hover); color: #fff; }
.ds-header__prefs .dsq-prefs__trigger:hover { background: rgba(255, 255, 255, 0.14); }
.dsq-prefs__trigger:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.dsq-prefs__trigger svg { flex: none; width: 1.1rem; height: 1.1rem; }
.dsq-prefs__sep { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0.5; }

.dsq-prefs__dialog, .ds-dialog { box-sizing: border-box; width: min(100% - 2rem, 34rem); max-height: calc(100dvh - 2rem); margin: auto; padding: 0; border: 0; border-radius: var(--ds-radius-lg); background: var(--ds-surface); color: var(--ds-text); box-shadow: var(--ds-shadow-md); overflow: auto; }
.dsq-prefs__dialog::backdrop, .ds-dialog::backdrop { background: rgba(7, 27, 58, 0.18); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
@media (prefers-reduced-motion: no-preference) {
	.dsq-prefs__dialog[open], .ds-dialog[open] { animation: ds-pop 0.18s var(--ds-ease, ease-out); }
}
@keyframes ds-pop { from { opacity: 0; transform: translateY(8px) scale(0.98); } }
.dsq-prefs__form { position: relative; padding: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem) clamp(1.25rem, 1rem + 1.5vw, 2rem) clamp(1.25rem, 1rem + 1vw, 1.5rem); }
.dsq-prefs__close, .ds-dialog__close { position: absolute; inset-block-start: 0.85rem; inset-inline-end: 0.85rem; display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; margin: 0; padding: 0; border: 0; border-radius: var(--ds-radius-md); background: transparent; color: var(--ds-subtle); cursor: pointer; transition: background-color var(--ds-fast), color var(--ds-fast); }
.dsq-prefs__close:hover, .ds-dialog__close:hover { background: var(--ds-surface-2); color: var(--ds-navy); }
.dsq-prefs__close:focus-visible, .ds-dialog__close:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.dsq-prefs__close svg, .ds-dialog__close svg { width: 1.25rem; height: 1.25rem; }
.dsq-prefs__group { min-inline-size: 0; margin: 0 0 var(--ds-space-8); padding: 0; border: 0; }
.dsq-prefs__title { margin: 0 0 var(--ds-space-5); padding: 0; color: var(--ds-navy); font-size: 1.125rem; font-weight: 600; line-height: 1.3; }
.dsq-prefs__options { display: grid; gap: var(--ds-space-3); }
.dsq-prefs__options--lang { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 24rem; margin-inline: auto; }
.dsq-prefs__options--cur { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dsq-prefs__opt { position: relative; display: block; margin: 0; }
.dsq-prefs__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.dsq-prefs__opt span { display: flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 3rem; padding-inline: 0.5rem; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); background: var(--ds-surface); box-shadow: var(--ds-shadow-xs); color: var(--ds-navy); font-size: 1rem; font-weight: 500; line-height: 1.2; text-align: center; pointer-events: none; transition: border-color var(--ds-fast), box-shadow var(--ds-fast), background-color var(--ds-fast); }
.dsq-prefs__opt span svg { display: none; flex: none; width: 1.15rem; height: 1.15rem; color: var(--ds-blue); stroke-width: 2.6; }
.dsq-prefs__opt:hover span { border-color: var(--ds-border-strong); background: var(--ds-surface-2); }
.dsq-prefs__opt input:checked + span { border-color: var(--ds-blue); background: var(--ds-blue-soft); box-shadow: 0 0 0 1px var(--ds-blue); font-weight: 700; }
.dsq-prefs__opt input:checked + span svg { display: inline-block; }
.dsq-prefs__opt input:focus-visible + span { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.dsq-prefs__apply { margin-block-start: var(--ds-space-2); }
@media (max-width: 420px) { .dsq-prefs__options--cur { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Any other dialog (.ds-dialog: the contact page's chat choice) shares the box, backdrop, close button and phone sheet above. */
.ds-dialog__body { position: relative; padding: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem) clamp(1.25rem, 1rem + 1.5vw, 2rem) clamp(1.25rem, 1rem + 1vw, 1.5rem); }
.ds-dialog__title { margin: 0 0 var(--ds-space-5); padding-inline-end: 2.5rem; color: var(--ds-navy); font-size: 1.125rem; font-weight: 600; line-height: 1.3; }

/*
 * Below 1024px: one row (logo, then language, cart, account and the menu button). The menu
 * itself opens as a panel from the inline end (.ds-drawer). Phones drop the language button and
 * the account label from the row; both are in the panel.
 */
.ds-menu-btn { display: none !important; }
@media (max-width: 1023px) {
	.ds-header:has(.ds-menu-btn) .ds-nav { display: none; }
	.ds-header__inner { gap: var(--ds-space-3); padding-block: 0; }
	.ds-header__inner > .ds-brand { margin-inline-end: auto !important; }
	.ds-header__actions { gap: var(--ds-space-1); }
	.ds-menu-btn { display: inline-grid !important; }
	.ds-header .ds-logo img { height: 2.25rem; }
}
@media (max-width: 599px) {
	.ds-header { --ds-ctl: 2.75rem; } /* 44px touch targets */
	.ds-header__inner { gap: var(--ds-space-2); }
	.ds-header__actions { gap: 0; }
	.ds-header:has(.ds-menu-btn) .ds-header__prefs { display: none; }
	.ds-account-btn { width: var(--ds-ctl); padding: 0; justify-content: center; border-color: transparent; background: transparent; color: #fff; }
	.ds-account-btn:hover { border-color: transparent; background: var(--ds-on-dark-hover); color: #fff; }
	.ds-account-btn[aria-current="page"] { border-color: transparent; background: rgba(90, 176, 255, 0.24); color: #fff; box-shadow: none; }
	.ds-account-btn svg { width: 1.35rem; height: 1.35rem; }
	.ds-account-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	/* Width-led: screen minus gutters, three 44px buttons and gaps, divided by the logo ratio (~7:1), so the row fits down to 320px. */
	.ds-header .ds-logo img { height: clamp(1.25rem, (100vw - 11.25rem) / 7.1, 1.875rem); }
}

/* Old-style header (saved in the Site Editor before 1.6.0): two rows on tablets, as before. */
@media (max-width: 1023px) {
	.ds-header:not(:has(.ds-menu-btn)) .ds-header__inner { flex-wrap: wrap; row-gap: 0; padding-block: var(--ds-space-2) 0; }
	.ds-header:not(:has(.ds-menu-btn)) .ds-nav { order: 2; flex: 1 1 auto; }
	.ds-header:not(:has(.ds-menu-btn)) .ds-header__actions { order: 3; }
	.ds-header:not(:has(.ds-menu-btn)) .ds-header__prefs { order: 4; flex: 1 0 100%; justify-content: flex-end; padding-block: var(--ds-space-2); border-block-start: 1px solid var(--ds-on-dark-line); }
}

/* ---- Menu panel (below 1024px) --------------------------------------------
 * A modal <dialog> that slides in from the inline end: search, the menu with icons, then
 * language/currency and the account button pinned to the bottom.
 */
.ds-drawer {
	--_from: 100%;
	box-sizing: border-box;
	position: fixed;
	inset-block: 0;
	inset-inline: auto 0;
	width: min(100%, 26rem);
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--ds-surface);
	color: var(--ds-text);
	box-shadow: var(--ds-shadow-md);
	flex-direction: column;
	overflow: hidden;
	overscroll-behavior: contain;
}
html[dir="rtl"] .ds-drawer { --_from: -100%; }
.ds-drawer[open] { display: flex; }
.ds-drawer::backdrop { background: rgba(7, 27, 58, 0.4); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
@media (prefers-reduced-motion: no-preference) {
	.ds-drawer[open] { animation: ds-drawer-in 0.3s var(--ds-ease); }
	.ds-drawer[open]::backdrop { animation: ds-fade 0.3s ease-out; }
}
@keyframes ds-drawer-in { from { transform: translateX(var(--_from)); } }
@keyframes ds-fade { from { opacity: 0; } }

.ds-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); flex: none; min-height: var(--ds-header-h); padding-inline: var(--ds-gutter); border-block-end: 1px solid var(--ds-border); }
.ds-drawer__head .ds-logo img { display: block; width: auto; height: 1.75rem; max-width: none; }
.ds-drawer__close { background: var(--ds-surface-2); }
.ds-drawer__close:hover { background: var(--ds-mist); }

.ds-drawer__body { flex: 1 1 auto; padding: var(--ds-space-5) var(--ds-gutter); overflow-y: auto; overscroll-behavior: contain; }
.ds-drawer__search { display: flex; gap: var(--ds-space-2); margin: 0 0 var(--ds-space-5); }
.ds-drawer__search input[type="search"] { flex: 1 1 auto; min-width: 0; min-height: var(--ds-control-lg); -webkit-appearance: none; appearance: none; text-align: start; unicode-bidi: plaintext; }
.ds-drawer__search input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
.ds-drawer__search .ds-button { flex: none; width: var(--ds-control-lg); min-height: var(--ds-control-lg); padding: 0; }
.ds-drawer__search .ds-button svg { width: 1.3rem; height: 1.3rem; }

.ds-drawer__nav { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.ds-drawer__group { margin: var(--ds-space-5) 0 var(--ds-space-2); padding-inline: var(--ds-space-2); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 600; }
.ds-drawer__body > nav > .ds-drawer__group:first-child { margin-block-start: 0; }
.ds-drawer__nav + .ds-drawer__nav { margin-block-start: var(--ds-space-4); padding-block-start: var(--ds-space-4); border-block-start: 1px solid var(--ds-border); } /* Help, after the groups */
.ds-drawer__nav li { margin: 0; }
.ds-drawer__nav a { display: flex; align-items: center; gap: var(--ds-space-3); min-height: 3.5rem; padding-inline: var(--ds-space-2) var(--ds-space-3); border-radius: var(--ds-radius-md); color: var(--ds-navy); font-size: 1.0625rem; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background-color var(--ds-fast); }
.ds-drawer__nav a:hover, .ds-drawer__nav a:active { background: var(--ds-surface-2); color: var(--ds-navy); }
.ds-drawer__nav a[aria-current="page"] { background: var(--ds-blue-soft); color: var(--ds-blue-deep); }
.ds-drawer__icon { flex: none; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); border: 1px solid transparent; box-sizing: border-box; } /* same tiles as the desktop menu panel */
.ds-drawer__nav a[aria-current="page"] .ds-drawer__icon { border-color: var(--ds-blue); background: var(--ds-blue); color: #fff; }
.ds-drawer__icon svg { width: 1.25rem; height: 1.25rem; }
.ds-drawer__label { flex: 1 1 auto; min-width: 0; }
.ds-drawer__chevron { flex: none; display: inline-flex; color: var(--ds-subtle); }
.ds-drawer__chevron svg { width: 1.1rem; height: 1.1rem; }

.ds-drawer__foot { display: grid; gap: var(--ds-space-3); flex: none; padding: var(--ds-space-4) var(--ds-gutter) max(var(--ds-space-4), env(safe-area-inset-bottom)); border-block-start: 1px solid var(--ds-border); background: var(--ds-surface-2); }
.ds-drawer__foot .dsq-prefs { display: flex; }
.ds-drawer__foot .dsq-prefs__trigger { flex: 1 1 auto; justify-content: flex-start; gap: 0.6rem; min-height: var(--ds-control-lg); padding-inline: var(--ds-space-4); border: 1px solid var(--ds-border); background: var(--ds-surface); font-size: var(--ds-text-sm); }
.ds-drawer__foot .dsq-prefs__trigger:hover { border-color: var(--ds-border-strong); background: var(--ds-surface); }
@media (min-width: 600px) { .ds-drawer__foot .dsq-prefs { display: none; } } /* the header shows it from 600px */

/* Phones: the language and currency dialog is a bottom sheet. */
@media (max-width: 599px) {
	.dsq-prefs__dialog, .ds-dialog { width: 100%; max-width: 100%; max-height: calc(100dvh - 3rem); margin-block: auto 0; margin-inline: 0; border-end-start-radius: 0; border-end-end-radius: 0; border-start-start-radius: var(--ds-radius-xl); border-start-end-radius: var(--ds-radius-xl); padding-block-end: env(safe-area-inset-bottom); }
	.dsq-prefs__form { padding-block-start: var(--ds-space-8); }
	.dsq-prefs__group { margin-block-end: var(--ds-space-6); }
}
@media (max-width: 599px) and (prefers-reduced-motion: no-preference) {
	.dsq-prefs__dialog[open], .ds-dialog[open] { animation: ds-sheet 0.3s var(--ds-ease); }
}
@keyframes ds-sheet { from { transform: translateY(100%); } }

/* ==== 6. Footer ============================================================ */

.ds-footer { position: relative; margin-block-start: 0; background: var(--ds-navy-deep); color: var(--ds-on-dark-3); font-size: var(--ds-text-sm); }
/* 2.0.0: a thin blue-to-amber line where the page meets the footer. */
.ds-footer::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: linear-gradient(90deg, var(--ds-blue), var(--ds-blue-light) 55%, var(--ds-amber)); opacity: 0.9; }
html[dir="rtl"] .ds-footer::before { background: linear-gradient(270deg, var(--ds-blue), var(--ds-blue-light) 55%, var(--ds-amber)); }
.ds-footer a { color: var(--ds-on-dark-1); text-decoration: none; }
.ds-footer a { transition: color var(--ds-dur-1); }
.ds-footer a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--ds-blue-on-dark); text-underline-offset: 0.25em; }
.ds-footer :focus-visible { outline-color: var(--ds-focus-on-dark); }
.ds-footer__inner { padding-block: clamp(2.5rem, 2rem + 3vw, 4rem) var(--ds-space-6); }
.ds-footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr)); gap: var(--ds-space-8); }
.ds-footer bdi { unicode-bidi: isolate; }
.ds-footer__grid > * { margin: 0 !important; }
.ds-footer__brand { display: flex; flex-direction: column; gap: var(--ds-space-3); }
.ds-footer__brand .ds-brand { gap: 0.55rem; }
.ds-footer__brand .ds-logo img { height: 2.25rem; }
.ds-footer a.ds-logo:hover { text-decoration: none; }
.ds-footer__brand p { margin: 0; max-width: 22rem; line-height: 1.7; }
.ds-footer__social { display: flex; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.ds-footer__social a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; }
.ds-footer__social a:hover { border-color: var(--ds-blue-on-dark); text-decoration: none; }
.ds-footer__social svg { width: 1.125rem; height: 1.125rem; }
.ds-footer__title { margin: 0 0 var(--ds-space-4); color: #fff; font-size: var(--ds-text-sm); font-weight: 600; }
.ds-links { margin: 0; padding: 0; list-style: none; }
.ds-links li { margin-block-end: var(--ds-space-2); }

/* Sitemap page (theme 2.1.0): the plugin's domainsouq/sitemap block, one card per group. */
.ds-sitemap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--ds-space-6); }
.ds-sitemap__group { padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); }
.ds-sitemap__title { margin: 0 0 var(--ds-space-3); padding-block-end: var(--ds-space-3); border-block-end: 1px solid var(--ds-border); font-size: var(--ds-text-h3); font-weight: 600; }
.ds-sitemap__list, .ds-sitemap__sub { margin: 0; padding: 0; list-style: none; }
.ds-sitemap__list > li { margin-block-end: var(--ds-space-2); }
.ds-sitemap__sub { display: flex; flex-wrap: wrap; gap: var(--ds-space-1) var(--ds-space-3); margin-block-start: var(--ds-space-2); padding-inline-start: var(--ds-space-4); font-size: var(--ds-text-sm); }
.ds-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ds-space-2) var(--ds-space-6); margin-block-start: var(--ds-space-10) !important; padding-block-start: var(--ds-space-5); border-block-start: 1px solid rgba(255, 255, 255, 0.12); font-size: var(--ds-text-xs); }
.ds-footer__bottom p, .ds-footer__legal { margin: 0; }
.ds-footer__pay { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-3); flex-basis: 100%; }
.ds-footer__pay-label { color: var(--ds-on-dark-3); font-size: var(--ds-text-xs); }
@media (min-width: 1081px) { .ds-footer__pay { flex-basis: auto; } }
.ds-footer__secure { display: flex; align-items: flex-start; gap: 0.5rem; }
.ds-footer__secure::before { content: ""; flex: none; width: 1rem; height: 1rem; margin-block-start: 0.15em; background: var(--ds-blue-on-dark); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; }
/* Link groups are <details>: plain columns on wider screens (theme.js keeps them open), collapsible on phones. */
.ds-footer__col > summary { display: block; list-style: none; cursor: default; }
.ds-footer__col > summary::-webkit-details-marker { display: none; }
.ds-footer__col > summary:focus-visible { outline-offset: 4px; border-radius: var(--ds-radius-sm); }
.ds-footer__chevron { display: none; }
@media (max-width: 1080px) { .ds-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-6); } .ds-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 760px) {
	.ds-footer__inner { padding-block: var(--ds-space-10) var(--ds-space-6); }
	.ds-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.ds-footer__brand { padding-block-end: var(--ds-space-6); }
	.ds-footer__col { border-block-start: 1px solid rgba(255, 255, 255, 0.1); }
	.ds-footer__col:last-child { border-block-end: 1px solid rgba(255, 255, 255, 0.1); }
	div.ds-footer__col { padding-block: var(--ds-space-5) var(--ds-space-3); } /* old markup without <details> */
	.ds-footer__col > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); min-height: 3.5rem; cursor: pointer; }
	.ds-footer__col > summary .ds-footer__title { margin: 0; font-size: 1rem; }
	.ds-footer__chevron { display: block; flex: none; width: 1.25rem; height: 1.25rem; color: var(--ds-on-dark-3); transition: transform 0.2s var(--ds-ease); }
	.ds-footer__col[open] .ds-footer__chevron { transform: rotate(180deg); }
	.ds-footer__col .ds-links { padding-block-end: var(--ds-space-3); }
	.ds-footer__col .ds-links li { margin: 0; }
	.ds-footer__col .ds-links a { display: block; padding-block: 0.5rem; }
	.ds-footer__bottom { flex-direction: column; gap: var(--ds-space-3); margin-block-start: var(--ds-space-6) !important; padding-block-start: 0; border-block-start: 0; }
}
/* Opening a group slides it open where the browser can animate to height:auto. */
@supports selector(::details-content) {
	@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
		.ds-footer { interpolate-size: allow-keywords; }
		.ds-footer__col::details-content { block-size: 0; overflow-y: clip; transition: block-size 0.25s var(--ds-ease), content-visibility 0.25s allow-discrete; }
		.ds-footer__col[open]::details-content { block-size: auto; }
	}
}

/* ==== 7. Marketing sections ================================================ */

/* ---- Section heads ----
 * Centred by default; .ds-section__head--split puts the title on the start side and one link
 * (.ds-section__more) on the end side, which reads better above a grid of cards.
 */
.ds-kicker { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0 0 var(--ds-space-3); color: var(--ds-blue-deep); font-size: var(--ds-text-sm); font-weight: 600; line-height: 1.4; }
.ds-kicker::before { content: ""; flex: none; width: 1.25rem; height: 2px; border-radius: 2px; background: var(--ds-blue); }
.ds-section__head .ds-section__title { margin-inline: auto; }
.ds-section__head--split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--ds-space-4) var(--ds-space-8); max-width: none; text-align: start; }
.ds-section__head--split > * { margin: 0 !important; }
.ds-section__head--split .ds-section__title { margin: 0; max-width: 22em; text-align: start; }
.ds-section__head--split .ds-lead { max-width: 40rem; }
.ds-section__more { display: inline-flex; align-items: center; gap: 0.35rem; flex: none; color: var(--ds-blue-deep); font-size: var(--ds-text-sm); font-weight: 600; text-decoration: none; }
.ds-section__more:hover { color: var(--ds-navy); text-decoration: underline; }
.ds-section__more svg { width: 1.1rem; height: 1.1rem; }
.ds-section__more .ds-flip { display: inline-flex; }
.ds-section--dark { background: var(--ds-navy); color: var(--ds-on-dark-2); }
.ds-section--dark :is(h2, h3) { color: #fff; }
.ds-section--dark .ds-lead { color: var(--ds-on-dark-2); }
.ds-section--dark .ds-kicker { color: var(--ds-blue-on-dark); }
.ds-section--dark .ds-section__more { color: #fff; }
.ds-section--dark .ds-section__more:hover { color: #fff; text-decoration-color: var(--ds-blue-on-dark); }
.ds-section--dark :focus-visible { outline-color: var(--ds-focus-on-dark); }

/* ---- Hero ----
 * Inner pages (search, transfer, WHOIS, extension pages): light gray with a quiet lattice.
 * Home (.ds-hero--home): Deep Navy, the search bar as the one bright surface on the screen.
 */
.ds-hero { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(180deg, var(--ds-surface) 0%, var(--ds-surface-2) 100%); border-block-end: 1px solid var(--ds-border); }
/* A quiet eight-point-star lattice. It is symmetric, so it reads the same in both directions. */
.ds-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23071b3a' stroke-opacity='.05' stroke-width='1.2'%3E%3Crect x='18' y='18' width='36' height='36'/%3E%3Crect x='18' y='18' width='36' height='36' transform='rotate(45 36 36)'/%3E%3Ccircle cx='36' cy='36' r='3.5'/%3E%3C/g%3E%3C/svg%3E");
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 85%);
	mask-image: linear-gradient(to bottom, #000 0%, transparent 85%);
}
.ds-hero__inner { padding-block: clamp(3rem, 2rem + 5vw, 6rem) clamp(2.5rem, 2rem + 3vw, 4.5rem); text-align: center; }
.ds-hero--page .ds-hero__inner { padding-block: clamp(2.25rem, 1.75rem + 3vw, 3.75rem) clamp(2rem, 1.5rem + 2vw, 3rem); }
.ds-hero__title { max-width: 18em; margin: 0 auto; font-size: var(--ds-text-display); line-height: 1.1; }
:lang(ar) .ds-hero__title { line-height: 1.35; }
.ds-hero--page .ds-hero__title { font-size: var(--ds-text-h1); }
.ds-hero__lead { max-width: 40rem; margin: var(--ds-space-4) auto var(--ds-space-8); color: var(--ds-muted); font-size: var(--ds-text-lead); }
.ds-hero--page .ds-hero__lead { margin-block-end: var(--ds-space-6); }
.ds-hero__popular { margin-block-start: var(--ds-space-8); }
.ds-hero__note { margin: 0 0 var(--ds-space-3); color: var(--ds-muted); font-size: var(--ds-text-sm); }
/* Search page: results get the app width, starting right under the bar. */
.ds-hero--search { overflow: visible; }
.ds-hero--search .ds-hero__inner { padding-block-end: var(--ds-section); }

/* Home hero */
.ds-hero--home { background: var(--ds-navy); border-block-end: 0; color: var(--ds-on-dark-2); }
.ds-hero--home::before {
	background-image:
		radial-gradient(ellipse 60% 55% at 50% -10%, rgba(90, 176, 255, 0.26), transparent 70%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.028' stroke-width='1.2'%3E%3Crect x='18' y='18' width='36' height='36'/%3E%3Crect x='18' y='18' width='36' height='36' transform='rotate(45 36 36)'/%3E%3Ccircle cx='36' cy='36' r='3.5'/%3E%3C/g%3E%3C/svg%3E");
	-webkit-mask-image: none;
	mask-image: none;
}
.ds-hero--home .ds-hero__inner { padding-block: clamp(3.5rem, 2rem + 6vw, 7rem) clamp(3rem, 2rem + 4vw, 5.5rem); }
.ds-hero--home .ds-hero__title { color: #fff; max-width: 16em; }
.ds-hero--home .ds-hero__lead { color: var(--ds-on-dark-2); }
.ds-hero--home .ds-hero__note { color: var(--ds-on-dark-3); }
.ds-hero__kicker { display: inline-flex; align-items: center; gap: 0.6rem; margin: 0 0 var(--ds-space-6); padding-block: 0.4rem; padding-inline: 0.7rem 0.9rem; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: var(--ds-radius-pill); background: rgba(255, 255, 255, 0.05); color: var(--ds-on-dark-1); font-size: var(--ds-text-sm); font-weight: 500; line-height: 1.4; }
.ds-hero__kicker::before { content: ""; flex: none; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--ds-blue); box-shadow: 0 0 0 4px rgba(90, 176, 255, 0.28); }
.ds-hero--home .dsq-search { max-width: 52rem; }
.ds-hero--home .dsq .dsq-form { padding: 0.5rem; border-color: transparent; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), var(--ds-shadow-lg); }
.ds-hero--home .dsq .dsq-form:hover { border-color: transparent; }
.ds-hero--home .dsq .dsq-form:focus-within { border-color: var(--ds-blue); box-shadow: 0 0 0 4px rgba(90, 176, 255, 0.4), var(--ds-shadow-lg); }
.ds-hero--home .dsq .dsq-input { min-height: 3.5rem; font-size: 1.25rem; }
.ds-hero--home .dsq .dsq-submit { min-height: 3.5rem; min-width: 9rem; font-size: 1.0625rem; }
.ds-hero__modes { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ds-space-2) var(--ds-space-6); margin: var(--ds-space-5) 0 0; padding: 0; list-style: none; }
.ds-hero__mode { display: inline-flex; align-items: center; gap: 0.45rem; padding-block: 0.4rem; border-block-end: 2px solid transparent; color: var(--ds-text); font-size: var(--ds-text-sm); font-weight: 600; text-decoration: none; }
.ds-hero__mode svg { width: 1.1rem; height: 1.1rem; }
.ds-hero--home .dsq-form__hint { color: var(--ds-on-dark-3); }
/* Popular extensions under the bar: quiet glass chips on navy. */
.ds-hero--home .dsq.dsq-chips li { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.12); color: #fff; }
.ds-hero--home .dsq.dsq-chips a { color: #fff; }
.ds-hero--home .dsq.dsq-chips li:has(a):hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.24); }
.ds-hero--home .dsq .dsq-chip__price { color: var(--ds-on-dark-2); }
.ds-hero--home .dsq .dsq-chip__dot { color: var(--ds-blue-on-dark); }
.ds-hero--home .ds-trust { color: var(--ds-on-dark-2); }
.ds-hero--home .ds-trust svg { color: var(--ds-blue-on-dark); }
.ds-hero--home :focus-visible { outline-color: var(--ds-focus-on-dark); }

.ds-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ds-space-3) var(--ds-space-8); margin: var(--ds-space-8) 0 0; padding: 0; list-style: none; color: var(--ds-muted); font-size: var(--ds-text-sm); }
.ds-trust li { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; }
.ds-trust svg { flex: none; width: 1.1rem; height: 1.1rem; color: var(--ds-blue); }

/*
 * Home hero, theme 1.21.0: the promises sit right under the search bar (reassurance where the
 * decision is made), then six extensions as glass tiles with their price and renewal price.
 * A second, softer glow and a fade at the foot give the navy depth without an image.
 */
.ds-hero--home::after { content: ""; position: absolute; inset: auto 0 0; z-index: -1; height: 40%; background: radial-gradient(ellipse 45% 70% at 50% 120%, rgba(90, 176, 255, 0.16), transparent 70%); pointer-events: none; }
.ds-hero--home .ds-trust { margin-block-start: var(--ds-space-5); }
.ds-hero--home .ds-hero__popular { max-width: 76rem; margin: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem) auto 0; }
.ds-hero--home .ds-hero__note { margin-block-end: var(--ds-space-4); }
.ds-hero--home .dsq.dsq-tiles { grid-template-columns: repeat(auto-fit, minmax(0, 11.75rem)); justify-content: center; gap: var(--ds-space-3); text-align: start; } /* fewer than six on sale: the row stays centred */
.ds-hero--home .dsq .dsq-tile__link { padding: 0.85rem 0.95rem; background: rgba(255, 255, 255, 0.045); border-color: rgba(255, 255, 255, 0.12); color: #fff; box-shadow: none; }
.ds-hero--home .dsq .dsq-tile__link:hover { background: rgba(255, 255, 255, 0.09); border-color: rgba(90, 176, 255, 0.55); color: #fff; }
.ds-hero--home .dsq .dsq-tile__link:focus-visible { outline-color: var(--ds-focus-on-dark); }
.ds-hero--home .dsq-tile__head { margin-block-end: 0.3rem; }
.ds-hero--home .dsq .dsq-tile__tld { font-size: 1.25rem; }
.ds-hero--home .dsq-tile__dot { color: var(--ds-blue-on-dark); }
.ds-hero--home .dsq-tile__label { display: none; } /* the hero keeps to name, price, renewal */
.ds-hero--home .dsq-tile__price > .ds-num { font-size: 1rem; }
.ds-hero--home :is(.dsq-tile__per, .dsq-tile__renew, .dsq-tile__note) { color: var(--ds-on-dark-3); }
.ds-hero--home .dsq-tile__renew .ds-num { color: var(--ds-on-dark-1); }
@media (max-width: 1279px) { .ds-hero--home .dsq.dsq-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 48rem; margin-inline: auto; } } /* six tiles: 3 + 3, never 4 + 2 */
/* Phones: one swipeable row instead of three rows of tiles. */
@media (max-width: 600px) {
	.ds-hero--home .ds-hero__popular { margin-inline: calc(-1 * var(--ds-gutter)); }
	.ds-hero--home .ds-hero__note { padding-inline: var(--ds-gutter); }
	.ds-hero--home .dsq.dsq-tiles { display: flex; gap: var(--ds-space-2); overflow-x: auto; padding-inline: var(--ds-gutter); padding-block-end: var(--ds-space-2); scroll-snap-type: x mandatory; scroll-padding-inline: var(--ds-gutter); scrollbar-width: none; }
	.ds-hero--home .dsq.dsq-tiles::-webkit-scrollbar { display: none; }
	.ds-hero--home .dsq-tile { flex: 0 0 9.5rem; scroll-snap-align: start; }
}

/* ---- Extensions (home): regional first, then global, as tiles ---- */
.ds-ext-group { margin: 0; }
.ds-ext-group + .ds-ext-group { margin-block-start: var(--ds-space-10); }
.ds-ext-group:not(:has(.dsq-tiles)) { display: none; } /* nothing on sale in this group */
.ds-ext-group__title { display: flex; align-items: center; gap: var(--ds-space-3); margin: 0 0 var(--ds-space-4); color: var(--ds-navy); font-size: var(--ds-text-body); font-weight: 600; }
.ds-ext-group__title::after { content: ""; flex: 1; height: 1px; background: var(--ds-border); }
.ds-ext-group .dsq.dsq-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ds-ext-group .dsq .dsq-tile__link { background: var(--ds-surface-2); }
.ds-ext-group .dsq .dsq-tile__link:hover { background: var(--ds-surface); }
@media (max-width: 1023px) { .ds-ext-group .dsq.dsq-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
	.ds-ext-group .dsq.dsq-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-space-2); }
	.ds-ext-group .dsq .dsq-tile__link { padding: 0.8rem 0.85rem; }
	.ds-ext-group .dsq-tile__head { flex-direction: column; align-items: flex-start; margin-block-end: 0.3rem; }
	.ds-ext-group .dsq .dsq-tile__tld { font-size: 1.2rem; }
	.ds-ext-group .dsq-tile__price > .ds-num { font-size: 1rem; }
}
.ds-ext-note { margin-block-start: var(--ds-space-6); }
.ds-section__head--split .ds-section__more { flex: 0 1 auto; max-width: min(22rem, 100%); } /* wraps on narrow phones instead of widening the page */

/* ---- Price promise (home): four promises beside a worked example ---- */
.ds-promise__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: center; }
.ds-promise__grid > * { margin: 0 !important; }
.ds-promise__text .ds-section__title { margin: 0; max-width: 18em; text-align: start; }
.ds-promise__text .ds-lead { max-width: 36rem; margin-block-start: var(--ds-space-3); }
.ds-promise__list, .ds-manage__list { display: grid; gap: var(--ds-space-5); margin: var(--ds-space-8) 0 0; padding: 0; list-style: none; }
.ds-promise__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-space-6) var(--ds-space-8); }
.ds-promise__list li, .ds-manage__list li { display: flex; align-items: flex-start; gap: var(--ds-space-4); margin: 0; }
.ds-promise__list .ds-icon, .ds-manage__list .ds-icon { flex: none; width: 2.5rem; height: 2.5rem; }
.ds-promise__list .ds-icon svg, .ds-manage__list .ds-icon svg { width: 1.25rem; height: 1.25rem; }
.ds-promise__list h3, .ds-manage__list h3 { margin: 0.15rem 0 0.2rem; font-size: 1rem; font-weight: 600; }
.ds-promise__list p, .ds-manage__list p { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }
.ds-promise__example { position: relative; isolation: isolate; }
/* A soft blue halo behind the example, so it reads as the thing to look at. */
.ds-promise__example::before { content: ""; position: absolute; inset: -12% -8%; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgba(11, 95, 217, 0.12), transparent); }
.ds-promise__example .dsq-receipt { max-width: 28rem; margin-inline: auto; }
.ds-promise__example:not(:has(.dsq-receipt)) { display: none; }
.ds-promise__grid:not(:has(.dsq-receipt)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 960px) {
	.ds-promise__grid { grid-template-columns: minmax(0, 1fr); }
	.ds-promise__example .dsq-receipt { margin-inline: 0; }
}
@media (max-width: 600px) { .ds-promise__list { grid-template-columns: minmax(0, 1fr); } }

/* ---- Domain management (home): features beside a drawn account ---- */
.ds-manage__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: center; }
.ds-manage__grid > * { margin: 0 !important; }
.ds-manage__text .ds-section__title { margin: 0; max-width: 18em; text-align: start; }
.ds-manage__text .ds-lead { max-width: 36rem; margin-block-start: var(--ds-space-3); }
.ds-manage__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-space-6) var(--ds-space-8); }
/* The drawing: placeholder names, hidden from screen readers (the list says the same in words). */
.ds-mock { position: relative; isolation: isolate; padding-block: var(--ds-space-8) var(--ds-space-16); padding-inline: var(--ds-space-6) 0; }
.ds-mock::before { content: ""; position: absolute; inset-block: 0 var(--ds-space-8); inset-inline: 0 var(--ds-space-10); z-index: -1; border-radius: var(--ds-radius-xl); background: var(--ds-navy); background-image: radial-gradient(ellipse 70% 60% at 30% 0%, rgba(90, 176, 255, 0.32), transparent 70%); }
.ds-mock__window { overflow: hidden; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-lg); }
.ds-mock__bar { display: flex; align-items: center; gap: var(--ds-space-2); padding: var(--ds-space-4) var(--ds-space-5); border-block-end: 1px solid var(--ds-border); }
.ds-mock__title { color: var(--ds-navy); font-weight: 700; }
.ds-mock__count { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding-inline: 0.35rem; border-radius: var(--ds-radius-pill); background: var(--ds-mist); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 600; }
.ds-mock__search { flex: 0 1 9rem; height: 1.9rem; margin-inline-start: auto; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); background: var(--ds-surface-2); }
.ds-mock__rows { margin: 0; padding: 0; list-style: none; }
.ds-mock__row { display: flex; align-items: center; gap: var(--ds-space-3); margin: 0; padding: var(--ds-space-4) var(--ds-space-5); }
.ds-mock__row + .ds-mock__row { border-block-start: 1px solid var(--ds-border); }
.ds-mock__globe { flex: none; display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-mock__globe svg { width: 1.1rem; height: 1.1rem; }
.ds-mock__name { display: flex; flex-direction: column; align-items: flex-start; gap: 0.2rem; min-width: 0; }
.ds-mock__name .ds-domain { color: var(--ds-navy); font-weight: 600; }
.ds-mock__renew { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin-inline-start: auto; color: var(--ds-muted); font-size: var(--ds-text-xs); white-space: nowrap; }
.ds-mock__switch { position: relative; width: 2.1rem; height: 1.2rem; border-radius: var(--ds-radius-pill); background: var(--ds-border-strong); }
.ds-mock__switch::after { content: ""; position: absolute; inset-block-start: 0.15rem; inset-inline-start: 0.15rem; width: 0.9rem; height: 0.9rem; border-radius: 50%; background: #fff; box-shadow: var(--ds-shadow-xs); }
.ds-mock__switch.is-on { background: var(--ds-blue); }
.ds-mock__switch.is-on::after { inset-inline-start: auto; inset-inline-end: 0.15rem; }
.ds-mock__toast { position: absolute; inset-block-end: 0; inset-inline-end: var(--ds-space-4); display: flex; align-items: center; gap: var(--ds-space-3); padding: var(--ds-space-3) var(--ds-space-4); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); box-shadow: var(--ds-shadow-md); font-size: var(--ds-text-sm); }
.ds-mock__toast strong { display: block; color: var(--ds-navy); line-height: 1.3; }
.ds-mock__toast .ds-domain { color: var(--ds-muted); font-size: var(--ds-text-xs); }
.ds-mock__tick { flex: none; display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--ds-success-tint); color: var(--ds-success); }
.ds-mock__tick svg { width: 1rem; height: 1rem; }
@media (max-width: 960px) {
	.ds-manage__grid { grid-template-columns: minmax(0, 1fr); }
	.ds-mock { max-width: 34rem; }
}
@media (max-width: 600px) {
	.ds-manage__list { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-5); }
	.ds-mock { padding-block: var(--ds-space-5) var(--ds-space-16); padding-inline-start: var(--ds-space-3); }
	.ds-mock::before { inset-inline-end: var(--ds-space-6); }
	.ds-mock__search { display: none; }
	.ds-mock__row { padding: var(--ds-space-3) var(--ds-space-4); }
	.ds-mock__renew > span:first-child { display: none; }
}

/* ---- Services (home): hosting, email, SSL, only what is on sale ---- */
.ds-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ds-space-5); }
.ds-services--1 { grid-template-columns: minmax(0, 1fr); max-width: 40rem; margin-inline: auto; }
.ds-services--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 56rem; margin-inline: auto; }
.ds-service, .ds-tool { box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: var(--ds-space-3); padding: var(--ds-space-6); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); color: var(--ds-text); text-decoration: none; transition: border-color var(--ds-fast), box-shadow var(--ds-fast), transform var(--ds-fast) var(--ds-ease); }
.ds-service:hover, .ds-tool:hover { border-color: var(--ds-blue); box-shadow: var(--ds-shadow-sm); color: var(--ds-text); }
@media (prefers-reduced-motion: no-preference) { .ds-service:hover, .ds-tool:hover { transform: translateY(-2px); } }
.ds-service:focus-visible, .ds-tool:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ds-service > .ds-icon { flex: none; }
.ds-service__body { display: grid; gap: var(--ds-space-1); }
.ds-service__title, .ds-tool__title { margin: var(--ds-space-1) 0 0; font-size: var(--ds-text-h3); }
.ds-service__text, .ds-tool__text { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }
.ds-service__more, .ds-tool__more { display: inline-flex; align-items: center; gap: 0.35rem; margin-block-start: auto; padding-block-start: var(--ds-space-2); color: var(--ds-blue-deep); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-service__more svg, .ds-tool__more svg { width: 1.1rem; height: 1.1rem; }
.ds-service__more .ds-flip, .ds-tool__more .ds-flip { display: inline-flex; }
.ds-service:hover .ds-service__more, .ds-tool:hover .ds-tool__more { color: var(--ds-navy); }
/* One service alone reads as a row: icon, text, link. */
.ds-services--1 .ds-service { flex-direction: row; align-items: center; gap: var(--ds-space-5); }
.ds-services--1 .ds-service__more { margin-block-start: 0; margin-inline-start: auto; padding-block-start: 0; white-space: nowrap; }
@media (max-width: 900px) { .ds-services, .ds-services--2 { grid-template-columns: minmax(0, 1fr); max-width: 40rem; margin-inline: auto; } }
@media (max-width: 600px) { .ds-services--1 .ds-service { flex-direction: column; align-items: flex-start; } .ds-services--1 .ds-service__more { margin-inline-start: 0; } }

/* ---- Free tools (home): name generator, appraisal, WHOIS ---- */
.ds-tools__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ds-space-5); }
.ds-tool { background: var(--ds-surface-2); border-color: transparent; }
.ds-tool:hover { background: var(--ds-surface); }
.ds-tool__icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--ds-radius-lg); background: var(--ds-navy); color: var(--ds-blue-on-dark); }
.ds-tool__icon svg { width: 1.4rem; height: 1.4rem; }
@media (max-width: 900px) { .ds-tools__grid { grid-template-columns: minmax(0, 1fr); max-width: 40rem; margin-inline: auto; } }

/* ---- Trust bar under the home hero: four promises with icons ---- */
.ds-trustbar { background: var(--ds-surface); border-block-end: 1px solid var(--ds-border); }
.ds-trustbar__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.ds-trustbar__item { display: flex; align-items: flex-start; gap: var(--ds-space-3); margin: 0; padding: var(--ds-space-6) var(--ds-space-5); }
.ds-trustbar__item + .ds-trustbar__item { border-inline-start: 1px solid var(--ds-border); }
.ds-trustbar__item:first-child { padding-inline-start: 0; }
.ds-trustbar__item:last-child { padding-inline-end: 0; }
.ds-trustbar__icon { flex: none; display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-trustbar__icon svg { width: 1.25rem; height: 1.25rem; }
.ds-trustbar__item strong { display: block; color: var(--ds-navy); font-size: var(--ds-text-sm); font-weight: 600; line-height: 1.4; }
.ds-trustbar__item span:not(.ds-trustbar__icon) { display: block; margin-block-start: 0.15rem; color: var(--ds-muted); font-size: var(--ds-text-xs); line-height: 1.5; }
@media (max-width: 1023px) {
	.ds-trustbar__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ds-trustbar__item:nth-child(n) { padding-inline: 0 var(--ds-space-4); border-inline-start: 0; }
	.ds-trustbar__item:nth-child(even) { padding-inline: var(--ds-space-5) 0; border-inline-start: 1px solid var(--ds-border); }
	.ds-trustbar__item:nth-child(n + 3) { border-block-start: 1px solid var(--ds-border); }
}
@media (max-width: 600px) {
	.ds-trustbar__list { grid-template-columns: minmax(0, 1fr); }
	.ds-trustbar__item:nth-child(n) { padding: var(--ds-space-4) 0; border-inline-start: 0; }
	.ds-trustbar__item:nth-child(n + 2) { border-block-start: 1px solid var(--ds-border); }
}

/* ---- Features (home: domain management) ---- */
.ds-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--ds-space-5); }
.ds-features--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .ds-features--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ds-feature { margin: 0; padding: var(--ds-space-6); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); transition: border-color var(--ds-fast), box-shadow var(--ds-fast), transform var(--ds-fast) var(--ds-ease); }
.ds-feature:hover { border-color: var(--ds-border-strong); box-shadow: var(--ds-shadow-sm); }
.ds-feature h3 { margin: var(--ds-space-4) 0 var(--ds-space-2); }
.ds-feature p { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }

/* Contact page (DomainSouq Core's domainsouq/contact block): feature cards with the action at the foot. */
.dsq-contact__card { display: flex; flex-direction: column; align-items: flex-start; }
.ds-feature p.dsq-contact__address { margin-block-start: var(--ds-space-3); color: var(--ds-navy); font-weight: 600; overflow-wrap: anywhere; }
.dsq-contact__action { margin-block-start: auto; padding-block-start: var(--ds-space-5); }
.dsq-chat__note:not([hidden]) { display: block; margin-block-start: var(--ds-space-3); }
.dsq-chat__options { display: grid; gap: var(--ds-space-3); }
.dsq-chat__opt { display: flex; align-items: center; gap: var(--ds-space-4); min-height: 4.25rem; padding: var(--ds-space-3) var(--ds-space-4); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); background: var(--ds-surface); box-shadow: var(--ds-shadow-xs); color: var(--ds-navy); text-decoration: none; transition: border-color var(--ds-fast), background-color var(--ds-fast); }
.dsq-chat__opt:hover { border-color: var(--ds-blue); background: var(--ds-blue-soft); color: var(--ds-navy); }
.dsq-chat__opt:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.dsq-chat__opt .ds-icon { flex: none; }
.dsq-chat__label { display: grid; gap: 0.15rem; }
.dsq-chat__label strong { font-size: 1rem; }
.dsq-chat__label small { color: var(--ds-muted); font-size: var(--ds-text-xs); }
.ds-icon { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-icon svg { width: 1.4rem; height: 1.4rem; }
/* Only icons that carry a direction are mirrored. */
html[dir="rtl"] .ds-flip svg, html[dir="rtl"] svg.ds-flip { transform: scaleX(-1); }

/* ---- Numbered steps (home "how it works", transfer page) ---- */
.ds-steps { counter-reset: step; position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--ds-space-8); margin: 0; padding: 0; list-style: none; }
.ds-step { counter-increment: step; position: relative; margin: 0; padding-block-start: 3.75rem; }
.ds-step::before {
	content: counter(step);
	position: absolute;
	z-index: 1;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--ds-blue-line);
	border-radius: 50%;
	background: var(--ds-blue-soft);
	color: var(--ds-blue-deep);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	box-sizing: border-box;
}
/* A thin line joins the numbers on wide screens. */
@media (min-width: 900px) {
	.ds-steps:not(.ds-steps--list) .ds-step:not(:last-child)::after { content: ""; position: absolute; inset-block-start: 1.25rem; inset-inline: 3.25rem calc(-1 * var(--ds-space-8) + 0.75rem); height: 1px; background: var(--ds-border-strong); }
}
.ds-step h3 { margin: 0 0 var(--ds-space-1); }
.ds-step p { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }
/* Vertical variant: number beside the text. */
.ds-steps--list { grid-template-columns: 1fr; gap: var(--ds-space-5); }
.ds-steps--list .ds-step { padding-block-start: 0; padding-inline-start: 3.5rem; min-height: 2.5rem; }

/* ---- Transfer band (home): text and steps beside a call to action ---- */
.ds-transfer { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center; padding: clamp(1.75rem, 1rem + 3vw, 3.5rem); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-xl); }
.ds-transfer > * { margin: 0 !important; }
.ds-transfer__text h2 { margin: 0 0 var(--ds-space-3); font-size: var(--ds-text-h2); }
.ds-transfer__text > p:not(.ds-kicker) { margin: 0 0 var(--ds-space-6); color: var(--ds-muted); }
.ds-transfer__text .wp-block-buttons { gap: var(--ds-space-3); margin: 0; }
.ds-transfer .ds-steps--list { gap: var(--ds-space-4); }
.ds-transfer__card { padding: clamp(1.25rem, 1rem + 1.5vw, 2rem); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-sm); }
.ds-transfer__card h3 { margin: 0 0 var(--ds-space-5); font-size: var(--ds-text-h3); }
.ds-transfer__card .ds-step { min-height: 2.5rem; }
.ds-transfer__card .ds-step h4 { margin: 0; padding-block-start: 0.5rem; font-size: 1rem; font-weight: 600; line-height: 1.5; }
.ds-transfer__card .ds-step:not(:last-child)::after { content: ""; position: absolute; inset-inline-start: calc(1.25rem - 0.5px); inset-block: 2.5rem calc(-1 * var(--ds-space-4)); width: 1px; background: var(--ds-blue-line); }
@media (max-width: 900px) { .ds-transfer { grid-template-columns: minmax(0, 1fr); } }

/* ---- FAQ ---- */
.ds-faq { display: grid; gap: var(--ds-space-3); max-width: var(--ds-container-prose); margin-inline: auto; }
.ds-faq-layout { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.ds-faq-layout > * { margin: 0 !important; }
.ds-faq-layout .ds-faq { max-width: none; margin: 0; }
.ds-faq-layout__head .ds-section__title { margin: 0 0 var(--ds-space-3); max-width: none; text-align: start; }
.ds-faq-layout__head p:not(.ds-kicker) { margin: 0 0 var(--ds-space-5); color: var(--ds-muted); }
@media (min-width: 901px) { .ds-faq-layout__head { position: sticky; inset-block-start: calc(var(--ds-header-h) + var(--ds-space-8)); } }
@media (max-width: 900px) { .ds-faq-layout { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-6); } }
.ds-faq .wp-block-details { margin: 0; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); transition: border-color var(--ds-fast), box-shadow var(--ds-fast); }
.ds-faq .wp-block-details:hover { border-color: var(--ds-border-strong); }
.ds-faq .wp-block-details[open] { border-color: var(--ds-border-strong); box-shadow: var(--ds-shadow-xs); }
.ds-faq .wp-block-details summary { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); padding: var(--ds-space-4) var(--ds-space-5); color: var(--ds-navy); font-weight: 600; cursor: pointer; list-style: none; border-radius: var(--ds-radius-lg); }
.ds-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ds-faq .wp-block-details summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--ds-mist); color: var(--ds-navy); font-size: 1.2rem; line-height: 1; font-weight: 400; transition: background-color var(--ds-fast), color var(--ds-fast); }
.ds-faq .wp-block-details[open] summary::after { content: "\2212"; background: var(--ds-blue); color: #fff; }
.ds-faq .wp-block-details > :not(summary) { margin: 0; padding: 0 var(--ds-space-5) var(--ds-space-5); color: var(--ds-muted); }

/* ---- Call-to-action band ---- */
.ds-cta { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-space-6); padding: clamp(1.75rem, 1.25rem + 2.5vw, 3rem); border-radius: var(--ds-radius-xl); background: var(--ds-navy); color: #fff; }
.ds-cta::before { content: ""; position: absolute; z-index: -1; inset-block: -40% auto; inset-inline-end: -10%; width: 28rem; height: 28rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(90, 176, 255, 0.3), transparent); pointer-events: none; }
.ds-cta > * { margin: 0 !important; }
.ds-cta__text { flex: 1 1 24rem; }
.ds-cta h2 { margin: 0 0 var(--ds-space-2); color: #fff; font-size: var(--ds-text-h2); }
.ds-cta p { max-width: 38rem; margin: 0; color: var(--ds-on-dark-2); }
.ds-cta .wp-block-buttons { margin: 0; }
.ds-cta :focus-visible { outline-color: var(--ds-focus-on-dark); }
/* Final call to action on the home page: a centred band with its own search bar. */
.ds-cta--search { display: block; padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); text-align: center; }
.ds-cta--search::before { inset-block: -55% auto; inset-inline: 50% auto; width: 46rem; height: 30rem; transform: translateX(-50%); }
.ds-cta--search > * { margin-inline: auto !important; }
.ds-cta--search h2 { max-width: 20em; }
.ds-cta--search > p { margin-block-start: var(--ds-space-3) !important; }
.ds-cta--search .dsq-search { max-width: 44rem; margin-block-start: var(--ds-space-8) !important; }
.ds-cta .ds-alert { max-width: none; color: var(--ds-text); text-align: start; }
.ds-cta--search .dsq .dsq-form { border-color: transparent; box-shadow: var(--ds-shadow-lg); }
.ds-cta--search .dsq .dsq-form:focus-within { border-color: var(--ds-blue); box-shadow: 0 0 0 4px rgba(90, 176, 255, 0.4), var(--ds-shadow-lg); }
.ds-cta--search .dsq-form__hint { color: var(--ds-on-dark-3); text-align: center; }

/* ---- Transfer page layout ---- */
.ds-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; }
.ds-split > * { margin: 0 !important; }
.ds-split__title { margin: 0 0 var(--ds-space-6); font-size: var(--ds-text-h2); }
@media (max-width: 900px) { .ds-split { grid-template-columns: 1fr; } }

.ds-checklist { margin: 0 0 var(--ds-space-8); padding-inline-start: 1.5rem; }
.ds-checklist li { margin-block-end: var(--ds-space-2); }

/* ---- Phones: tighter rhythm, icon beside text, full-width actions ---- */
@media (max-width: 600px) {
	.ds-hero__inner { padding-block: var(--ds-space-10); }
	.ds-hero--home .ds-hero__inner { padding-block: var(--ds-space-12) var(--ds-space-10); }
	.ds-hero__kicker { margin-block-end: var(--ds-space-5); font-size: var(--ds-text-xs); }
	.ds-hero--home .dsq .dsq-form { padding: 0.375rem; }
	.ds-hero--home .dsq .dsq-input { min-height: 3rem; font-size: 1.0625rem; }
	.ds-hero--home .dsq .dsq-submit { min-height: 3rem; min-width: 0; }
	.ds-hero__lead { margin-block: var(--ds-space-3) var(--ds-space-6); }
	.ds-hero__popular { margin-block-start: var(--ds-space-6); }
	.ds-trust { flex-direction: column; align-items: center; gap: var(--ds-space-2); margin-block-start: var(--ds-space-6); }
	.ds-section__head, .ds-section__title { margin-block-end: var(--ds-space-6); }
	.ds-section__head--split { align-items: flex-start; }

	.ds-features, .ds-features--3 { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-3); }
	.ds-feature { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--ds-space-4); padding: var(--ds-space-5); }
	.ds-feature > .ds-icon { grid-row: span 2; }
	.ds-feature.dsq-contact__card { display: flex; }
	.dsq-contact__card h3 { margin-block-start: var(--ds-space-3); }
	.dsq-contact__action, .dsq-contact__action > .ds-button { width: 100%; box-sizing: border-box; }
	.ds-feature h3 { margin: 0.4rem 0 var(--ds-space-1); }

	.ds-steps { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-6); }
	.ds-step { padding-block-start: 0; padding-inline-start: 3.5rem; min-height: 2.5rem; }
	.ds-step h3 { padding-block-start: 0.3rem; }

	.ds-transfer { padding: var(--ds-space-6) var(--ds-space-5); }
	.ds-transfer__text .wp-block-buttons, .ds-transfer__text .wp-block-button { width: 100%; }
	.ds-transfer__text .wp-block-button__link { width: 100%; min-height: var(--ds-control-lg); }

	.ds-faq .wp-block-details summary { padding: var(--ds-space-4); font-size: 1rem; }
	.ds-faq .wp-block-details > :not(summary) { padding: 0 var(--ds-space-4) var(--ds-space-4); }

	.ds-cta { gap: var(--ds-space-5); padding: var(--ds-space-8) var(--ds-space-5); }
	.ds-cta .wp-block-buttons, .ds-cta .wp-block-button, .ds-center > .wp-block-button { width: 100%; }
	.ds-cta .wp-block-button__link, .ds-center .wp-block-button__link { width: 100%; min-height: var(--ds-control-lg); font-size: 1rem; }
}

/* ==== 7b. Home page 2.0.0 ===================================================
 * One structure in both languages: hero, trust strip, deals, popular extensions, why DomainSouq
 * (alternating rows with a live drawing), marketplace carousel, services row, tools bento,
 * transfer timeline, FAQ accordion, final search. Sections vary their layout so no two neighbours
 * look alike; motion is slow, small and switched off for reduced motion.
 */

/* ---- Hero: bigger type, a drifting lattice and a wandering glow ---- */
.ds-hero--home .ds-hero__title { font-size: var(--ds-text-hero); font-weight: var(--ds-weight-hero); letter-spacing: var(--ds-tracking-display); line-height: 1.05; max-width: 14em; }
:lang(ar) .ds-hero--home .ds-hero__title { line-height: 1.3; }
.ds-hero--home .ds-hero__lead { font-size: clamp(1.0625rem, 1rem + 0.45vw, 1.3125rem); }
@media (prefers-reduced-motion: no-preference) {
	.ds-hero--home::before { animation: ds-drift 90s linear infinite; }
	.ds-hero--home::after { animation: ds-glow 18s ease-in-out infinite alternate; }
}
@keyframes ds-drift { to { background-position: 0 0, 72px 144px; } }
@keyframes ds-glow { from { transform: translateX(-12%) scale(1); opacity: 0.8; } to { transform: translateX(12%) scale(1.15); opacity: 1; } }
.ds-hero--home .dsq-search { max-width: 54rem; }
@media (min-width: 601px) {
	.ds-hero--home .dsq .dsq-input { min-height: 3.75rem; font-size: 1.25rem; }
	.ds-hero--home .dsq .dsq-submit { min-height: 3.75rem; min-width: 10rem; border-radius: var(--ds-radius-md); font-size: 1.0625rem; }
}

/* Fill chips: glass buttons on navy; a click only puts the extension into the search box (theme.js). */
.ds-hero--home .ds-hero__popular { max-width: 54rem; margin: var(--ds-space-5) auto 0; }
.dsq.dsq-fills { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.dsq-fills li { margin: 0; }
.dsq-fill { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0.05rem; min-height: 3rem; margin: 0; padding: 0.4rem 0.85rem; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: var(--ds-radius-md); background: rgba(255, 255, 255, 0.05); color: #fff; font: inherit; text-align: start; cursor: pointer; transition: background-color var(--ds-dur-1), border-color var(--ds-dur-1), transform var(--ds-dur-2) var(--ds-ease-out); }
.dsq-fill:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(90, 176, 255, 0.6); }
@media (prefers-reduced-motion: no-preference) { .dsq-fill:hover { transform: translateY(-2px); } .dsq-fill:active { transform: translateY(0) scale(0.98); } }
.dsq-fill:focus-visible { outline: 3px solid var(--ds-focus-on-dark); outline-offset: 2px; }
.dsq-fill.is-picked { border-color: var(--ds-blue-light); background: rgba(90, 176, 255, 0.16); }
.dsq-fill__top { display: inline-flex; align-items: baseline; gap: 0.45rem; }
.dsq-fill__tld { font-size: 1.0625rem; font-weight: 700; line-height: 1.2; direction: ltr; unicode-bidi: isolate; }
.dsq-fill__dot { color: var(--ds-blue-light); }
.dsq-fill__price .ds-num { font-weight: 600; font-size: var(--ds-text-sm); }
.dsq-fill__renew { color: var(--ds-on-dark-3); font-size: 0.75rem; line-height: 1.3; white-space: nowrap; }
.dsq-fill__renew .ds-num { color: var(--ds-on-dark-2); }
@media (max-width: 600px) {
	.ds-hero--home .ds-hero__popular { margin-inline: calc(-1 * var(--ds-gutter)); }
	.dsq.dsq-fills { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; padding-inline: var(--ds-gutter); padding-block-end: var(--ds-space-1); scroll-snap-type: x proximity; scrollbar-width: none; }
	.dsq.dsq-fills::-webkit-scrollbar { display: none; }
	.dsq-fills li { flex: none; scroll-snap-align: start; }
}

/* ---- Trust strip: one compact row of four, under the hero ---- */
.ds-trustbar .ds-trustbar__item { align-items: center; padding-block: var(--ds-space-5); }
.ds-trustbar__icon { width: 2.25rem; height: 2.25rem; }
@media (max-width: 1023px) and (min-width: 601px) { .ds-trustbar .ds-trustbar__item { align-items: flex-start; } }
@media (max-width: 600px) {
	/* Phones: a row that swipes, not four stacked rows. */
	.ds-trustbar .ds-container { width: 100%; }
	.ds-trustbar__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-inline: var(--ds-gutter); }
	.ds-trustbar__list::-webkit-scrollbar { display: none; }
	.ds-trustbar .ds-trustbar__item:nth-child(n) { flex: 0 0 78%; padding: var(--ds-space-4) var(--ds-space-4) var(--ds-space-4) 0; border-block-start: 0; scroll-snap-align: start; }
	.ds-trustbar .ds-trustbar__item:nth-child(n + 2) { padding-inline-start: var(--ds-space-4); border-inline-start: 1px solid var(--ds-border); }
}

/* ---- Deals: a warm band ---- */
.dsq-promo-band { background: linear-gradient(180deg, var(--ds-surface-2), #fff9ef); }
.dsq-promo-band .ds-kicker { color: var(--ds-amber-text); }
.dsq-promo-band .ds-kicker::before { background: var(--ds-amber); }
.dsq-promo-band .dsq-promo-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 26rem)); gap: var(--ds-space-5); }

/* ---- Popular extensions: one set of eight tiles, bigger ---- */
.ds-popular .dsq.dsq-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-4); }
.ds-popular .dsq .dsq-tile__link { position: relative; overflow: hidden; padding: 1.25rem 1.35rem; background: var(--ds-surface-2); border-color: transparent; }
.ds-popular .dsq .dsq-tile__link::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: var(--ds-blue); transform: scaleX(0); transform-origin: var(--_from, left); transition: transform var(--ds-dur-3) var(--ds-ease-out); }
html[dir="rtl"] .ds-popular .dsq .dsq-tile__link::before { --_from: right; }
.ds-popular .dsq .dsq-tile__link:hover { background: var(--ds-surface); border-color: var(--ds-border); box-shadow: var(--ds-elev-2); }
.ds-popular .dsq .dsq-tile__link:hover::before { transform: scaleX(1); }
.ds-popular .dsq .dsq-tile__tld { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem); letter-spacing: -0.01em; }
.ds-popular .dsq-tile__price > .ds-num { font-size: 1.25rem; }
@media (max-width: 1023px) { .ds-popular .dsq.dsq-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .ds-popular .dsq .dsq-tile__link { padding: 1rem; } .ds-popular .dsq-tile__head { flex-direction: column; align-items: flex-start; } }

/* ---- Why DomainSouq: two alternating rows in one section ---- */
.ds-why { overflow-x: clip; background: linear-gradient(180deg, var(--ds-surface-2), var(--ds-surface) 55%, var(--ds-surface-2)); } /* clip: the halos never widen the page */
.ds-why__rows { display: grid; gap: clamp(4rem, 2.5rem + 6vw, 8rem); }
.ds-why__rows > * { margin: 0 !important; }
.ds-why .dsq.dsq-receipt { transform: rotate(-1.2deg); }
html[dir="rtl"] .ds-why .dsq.dsq-receipt { transform: rotate(1.2deg); }
@media (max-width: 960px) { .ds-why .dsq.dsq-receipt, html[dir="rtl"] .ds-why .dsq.dsq-receipt { transform: none; } .ds-why__row--flip .ds-mock { } }
.ds-why .ds-promise__example::before { inset: -6% -4%; }

/* The drawing plays a short loop: the third domain's auto-renew switches on, then "DNS record saved" slides in. */
@media (prefers-reduced-motion: no-preference) {
	.ds-mock--live .ds-mock__row:last-child .ds-mock__switch { animation: ds-mock-switch 9s var(--ds-ease) infinite; }
	.ds-mock--live .ds-mock__row:last-child .ds-mock__switch::after { animation: ds-mock-knob 9s var(--ds-ease) infinite; }
	.ds-mock--live .ds-mock__toast { animation: ds-mock-toast 9s var(--ds-ease-out) infinite; }
	.ds-mock--live .ds-mock__row:last-child { animation: ds-mock-row 9s ease infinite; }
}
@keyframes ds-mock-switch { 0%, 18% { background: var(--ds-border-strong); } 22%, 92% { background: var(--ds-blue); } 96%, 100% { background: var(--ds-border-strong); } }
@keyframes ds-mock-knob { 0%, 18% { inset-inline-start: 0.15rem; } 22%, 92% { inset-inline-start: calc(100% - 1.05rem); } 96%, 100% { inset-inline-start: 0.15rem; } }
@keyframes ds-mock-row { 0%, 16% { background: transparent; } 20%, 30% { background: var(--ds-blue-soft); } 40%, 100% { background: transparent; } }
@keyframes ds-mock-toast { 0%, 34% { opacity: 0; transform: translateY(14px); } 40%, 86% { opacity: 1; transform: none; } 92%, 100% { opacity: 0; transform: translateY(8px); } }

/* ---- Marketplace: a dark band whose cards move sideways ---- */
.dsq-market-band { position: relative; isolation: isolate; overflow: hidden; }
.dsq-market-band::before { content: ""; position: absolute; z-index: -1; inset-block-start: -30%; inset-inline-end: -10%; width: 40rem; height: 40rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(232, 163, 23, 0.14), transparent); pointer-events: none; }
.dsq-market-band .ds-kicker { color: var(--ds-gold); }
.dsq-market-band .ds-kicker::before { background: var(--ds-gold); }

/* ---- Services: a compact row (icon, words, link) ---- */
.ds-services-band .ds-service { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: var(--ds-space-4); row-gap: var(--ds-space-2); padding: var(--ds-space-5); }
.ds-services-band .ds-service > .ds-icon { grid-row: span 2; }
.ds-services-band .ds-service__title { margin: 0; font-size: 1.0625rem; }
.ds-services-band .ds-service__more { grid-column: 2; margin: 0; padding: 0; }
.ds-services-band .ds-services--1 .ds-service { display: grid; }

/* ---- Transfer: four steps on a connected timeline ---- */
.ds-transfer { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-8); background: linear-gradient(135deg, var(--ds-surface) 40%, var(--ds-blue-soft)); }
html[dir="rtl"] .ds-transfer { background: linear-gradient(225deg, var(--ds-surface) 40%, var(--ds-blue-soft)); }
.ds-transfer__text { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--ds-space-8); align-items: end; }
.ds-transfer__text > :not(.wp-block-buttons) { grid-column: 1; }
.ds-transfer__text > .wp-block-buttons { grid-column: 2; grid-row: 1 / span 3; align-self: end; }
.ds-transfer__text > p:not(.ds-kicker) { margin-block-end: 0; }
.ds-transfer__card { padding: 0; background: none; border: 0; box-shadow: none; }
.ds-transfer__card h3 { margin-block-end: var(--ds-space-6); color: var(--ds-muted); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-timeline { counter-reset: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-5); margin: 0; padding: 0; list-style: none; }
.ds-timeline__step { position: relative; display: flex; flex-direction: column; gap: var(--ds-space-3); margin: 0; }
.ds-timeline__n { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--ds-surface); border: 2px solid var(--ds-blue); color: var(--ds-blue); font-size: 1.125rem; font-weight: 800; font-variant-numeric: tabular-nums; box-shadow: 0 0 0 6px var(--ds-surface); }
.ds-timeline__step:last-child .ds-timeline__n { background: var(--ds-blue); color: #fff; }
/* The line from one number to the next (start to end in both directions). */
.ds-timeline__step:not(:last-child)::after { content: ""; position: absolute; inset-block-start: 1.5rem; inset-inline-start: 3rem; inset-inline-end: calc(-1 * var(--ds-space-5)); height: 2px; background: linear-gradient(90deg, var(--ds-blue), var(--ds-blue-line)); }
html[dir="rtl"] .ds-timeline__step:not(:last-child)::after { background: linear-gradient(270deg, var(--ds-blue), var(--ds-blue-line)); }
.ds-timeline__title { margin: 0; color: var(--ds-heading); font-size: 1rem; font-weight: 600; line-height: 1.4; }
@media (max-width: 900px) {
	.ds-transfer__text { grid-template-columns: minmax(0, 1fr); }
	.ds-transfer__text > .wp-block-buttons { grid-column: 1; grid-row: auto; margin-block-start: var(--ds-space-5) !important; }
	.ds-timeline { grid-template-columns: minmax(0, 1fr); gap: var(--ds-space-5); }
	.ds-timeline__step { flex-direction: row; align-items: center; gap: var(--ds-space-4); }
	.ds-timeline__step:not(:last-child)::after { inset-block: 3rem calc(-1 * var(--ds-space-5)); inset-inline: calc(1.5rem - 1px) auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--ds-blue), var(--ds-blue-line)); }
}

/* ---- FAQ: an accordion (chevron, open item marked in blue); the markup stays core/details for FAQPage ---- */
.ds-faq .wp-block-details summary::after { content: ""; width: 1.75rem; height: 1.75rem; background: var(--ds-mist) var(--ds-icon-chevron) center / 1rem no-repeat; transition: transform var(--ds-dur-2) var(--ds-ease-out), background-color var(--ds-dur-1); }
.ds-faq .wp-block-details[open] summary::after { content: ""; background-color: var(--ds-blue-soft); transform: rotate(180deg); }
.ds-faq .wp-block-details[open] { border-color: var(--ds-blue-line); box-shadow: inset 3px 0 0 var(--ds-blue), var(--ds-shadow-xs); }
html[dir="rtl"] .ds-faq .wp-block-details[open] { box-shadow: inset -3px 0 0 var(--ds-blue), var(--ds-shadow-xs); }
.ds-faq .wp-block-details summary:hover { color: var(--ds-blue); }
@supports (interpolate-size: allow-keywords) {
	@media (prefers-reduced-motion: no-preference) {
		.ds-faq .wp-block-details { interpolate-size: allow-keywords; }
		.ds-faq .wp-block-details::details-content { block-size: 0; overflow: clip; transition: block-size var(--ds-dur-3) var(--ds-ease-out), content-visibility var(--ds-dur-3) allow-discrete; }
		.ds-faq .wp-block-details[open]::details-content { block-size: auto; }
	}
}

/* ---- Final search: the hero's lattice, once more ---- */
.ds-cta--search { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.035' stroke-width='1.2'%3E%3Crect x='18' y='18' width='36' height='36'/%3E%3Crect x='18' y='18' width='36' height='36' transform='rotate(45 36 36)'/%3E%3Ccircle cx='36' cy='36' r='3.5'/%3E%3C/g%3E%3C/svg%3E"); }
.ds-cta--search h2 { font-size: var(--ds-text-display); font-weight: var(--ds-weight-hero); letter-spacing: var(--ds-tracking-display); }
:lang(ar) .ds-cta--search h2 { font-weight: 700; }

/* Search page (2.0.0): once results are on screen, the landing content below them (popular extensions,
   how to choose, why us, FAQ, closing call to action) steps aside; it is back when there are none. */
.ds-main:has(.ds-hero--search .dsq-results:not([hidden])) > section:not(.ds-hero, .dsq-promos),
.ds-main:has(.ds-hero--search .dsq-results:not([hidden])) > .wp-block-group:not(.ds-hero, .dsq-promos) { display: none; }
/* 2.18.2: the headline and the intro line step aside too while results are shown (the search bar stays). */
.ds-hero--search:has(.dsq-results:not([hidden])) .ds-hero__title,
.ds-hero--search:has(.dsq-results:not([hidden])) .ds-hero__lead { display: none; }

/* ==== 7c. Inner pages 2.0.0 =================================================
 * The pieces every inner page shares (page header, feature cards, numbered steps, the split
 * layout, prose), so each page gets the new look without page-specific rules.
 */

/* Page header and inner-page hero: a soft blue wash with the lattice and a warm dot, bolder titles. */
.ds-page-header, .ds-hero--page { position: relative; isolation: isolate; overflow: hidden; }
.ds-page-header::after, .ds-hero--page::after { content: ""; position: absolute; z-index: -1; inset-block-start: -40%; inset-inline-end: -8%; width: 34rem; height: 34rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(11, 95, 217, 0.12), transparent); pointer-events: none; }
.ds-page-header--tint { background: linear-gradient(180deg, var(--ds-surface), var(--ds-blue-soft) 260%); }
.ds-page-header__title, .ds-hero--page .ds-hero__title { font-weight: 800; letter-spacing: var(--ds-tracking-display); }
:lang(ar) :is(.ds-page-header__title, .ds-hero--page .ds-hero__title) { font-weight: 700; }
.ds-page-header .ds-eyebrow, .ds-page-header .ds-kicker { color: var(--ds-blue); }

/* 404: large numerals, the zero drawn as a ring with an amber dot. */
.ds-404 { display: flex; justify-content: center; gap: 0.1em; margin: 0 0 var(--ds-space-4); color: var(--ds-navy); font-size: clamp(5rem, 3rem + 10vw, 9rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; direction: ltr; }
.ds-404__zero { position: relative; color: transparent; width: 0.72em; }
.ds-404__zero::before { content: ""; position: absolute; inset: 0.1em 0.04em; border: 0.14em solid var(--ds-blue); border-radius: 50%; }
.ds-404__zero::after { content: ""; position: absolute; inset-block-start: 0.08em; inset-inline-end: 0; width: 0.18em; height: 0.18em; border-radius: 50%; background: var(--ds-amber); }

/* Feature cards: a lift on hover, the icon tile fills in, a thin accent grows along the top. */
.ds-feature { position: relative; overflow: hidden; transition: border-color var(--ds-dur-2), box-shadow var(--ds-dur-2), transform var(--ds-dur-2) var(--ds-ease-out); }
.ds-feature::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: linear-gradient(90deg, var(--ds-blue), var(--ds-blue-light)); transform: scaleX(0); transform-origin: var(--_from, left); transition: transform var(--ds-dur-3) var(--ds-ease-out); }
html[dir="rtl"] .ds-feature::before { --_from: right; }
.ds-feature:hover { border-color: var(--ds-border-strong); box-shadow: var(--ds-elev-2); }
.ds-feature:hover::before { transform: scaleX(1); }
@media (prefers-reduced-motion: no-preference) { .ds-feature:hover { transform: translateY(var(--ds-lift)); } }
.ds-feature > .ds-icon { transition: background-color var(--ds-dur-2), color var(--ds-dur-2); }
.ds-feature:hover > .ds-icon { background: var(--ds-blue); color: #fff; }

/* Numbered steps: filled numbers on a gradient, the joining line in blue. */
.ds-step::before { border: 0; background: linear-gradient(145deg, var(--ds-blue), var(--ds-navy-2)); color: #fff; box-shadow: 0 6px 14px rgba(11, 95, 217, 0.25); }
@media (min-width: 900px) { .ds-steps:not(.ds-steps--list) .ds-step:not(:last-child)::after { height: 2px; background: linear-gradient(90deg, var(--ds-blue-line), var(--ds-border)); } }

/* Split pages (transfer, WHOIS): the form side reads as the thing to use. */
.ds-split > .ds-card, .ds-split .dsq-transfer-form, .ds-split .dsq-whois { box-shadow: var(--ds-elev-1); }

/* Long text (legal pages, articles on page.html): a calm reading column. */
.ds-page .wp-block-post-content > :is(h2, h3) { margin-block: var(--ds-space-10) var(--ds-space-3); scroll-margin-block-start: calc(var(--ds-header-h) + var(--ds-space-6)); }
.ds-page .wp-block-post-content > h2 { padding-block-start: var(--ds-space-6); border-block-start: 1px solid var(--ds-border); font-size: var(--ds-text-h2); }
.ds-page .wp-block-post-content > :is(p, ul, ol) { color: var(--ds-text); line-height: var(--ds-leading-body); }
.ds-page .wp-block-post-content > :is(ul, ol) li { margin-block-end: var(--ds-space-2); }
.ds-page .wp-block-post-content > p a { text-decoration-color: var(--ds-blue-line); text-decoration-thickness: 2px; }
.ds-page .wp-block-post-content > p a:hover { text-decoration-color: currentColor; }

/* ---- Checkout (2.0.0): a distraction-free header and a minimal footer ---- */
.ds-header--checkout .ds-checkout-head { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-4); min-height: var(--ds-header-h); }
.ds-checkout-head__secure { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--ds-on-dark-2); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-checkout-head__secure svg { width: 1.1rem; height: 1.1rem; color: var(--ds-success-mark); }
.ds-checkout-head__back { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.5rem; padding-inline: 0.85rem; border: 1.5px solid rgba(255, 255, 255, 0.28); border-radius: var(--ds-radius-md); color: #fff; font-size: var(--ds-text-sm); font-weight: 600; text-decoration: none; transition: background-color var(--ds-dur-1), border-color var(--ds-dur-1); }
.ds-checkout-head__back:hover { background: var(--ds-on-dark-hover); border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.ds-checkout-head__back svg { width: 1rem; height: 1rem; }
@media (min-width: 700px) { .ds-checkout-head__secure { margin-inline-start: auto; } }
@media (max-width: 699px) { .ds-checkout-head__secure { display: none; } .ds-header--checkout .ds-logo img { height: 1.75rem; } }
.ds-footer--minimal .ds-footer-min { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-space-4) var(--ds-space-6); padding-block: var(--ds-space-8); font-size: var(--ds-text-xs); }
.ds-footer-min__legal { margin: 0; }
.ds-footer-min__links { display: flex; flex-wrap: wrap; gap: var(--ds-space-2) var(--ds-space-5); margin: 0; padding: 0; list-style: none; }
.ds-footer-min__links li { margin: 0; }

/* ==== 8. Posts, pages and WordPress blocks ================================== */

.ds-posts .wp-block-post-template { display: grid; gap: var(--ds-space-5); margin: 0; padding: 0; list-style: none; }
.ds-post-card { padding: var(--ds-space-6); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); }
.ds-post-card h2 { margin: 0 0 var(--ds-space-1); font-size: var(--ds-text-h3); }
.ds-post-card h2 a { color: var(--ds-navy); text-decoration: none; }
.ds-post-card p { margin: var(--ds-space-2) 0 0; color: var(--ds-muted); }
.ds-featured img { border-radius: var(--ds-radius-lg); }
.wp-block-post-content { line-height: var(--ds-leading-body); }
.wp-block-post-content :where(p, li) a { text-decoration: underline; }
.wp-block-query-pagination { margin-block-start: var(--ds-space-8); gap: var(--ds-space-4); }
.wp-block-search__input { min-height: var(--ds-control); }
.wp-block-search__button { min-height: var(--ds-control); border-radius: var(--ds-radius-md); }

/* ==== 7c. Home page refresh, theme 2.7.0 ====================================
 * A light, bright hero (soft blue wash, an amber glow, a dotted field and a few floating example
 * names), a moving announcement bar, a brands strip, and colour-coded icon tiles. Same tokens, no
 * new brand colours. Motion is slow and off for visitors who asked for reduced motion.
 */

/* ---- Light hero ---- */
.ds-hero--home { background: linear-gradient(180deg, #e3eeff 0%, #f1f6ff 58%, var(--ds-surface-2) 100%); border-block-end: 1px solid var(--ds-border); color: #3a4860; }
.ds-hero--home::before {
	background-image:
		radial-gradient(ellipse 50% 62% at 10% -5%, rgba(11, 95, 217, 0.17), transparent 70%),
		radial-gradient(ellipse 42% 55% at 94% 8%, rgba(245, 166, 35, 0.22), transparent 70%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Ccircle cx='2' cy='2' r='1.2' fill='%230b5fd9' fill-opacity='.14'/%3E%3C/svg%3E");
	background-size: auto, auto, 26px 26px;
	-webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
	animation: none;
}
.ds-hero--home::after { background: radial-gradient(ellipse 45% 70% at 50% 120%, rgba(11, 95, 217, 0.10), transparent 70%); }
.ds-hero--home .ds-hero__title { color: var(--ds-navy); }
.ds-hero--home .ds-hero__mode { color: var(--ds-navy); opacity: 1; }
.ds-hero--home .ds-hero__mode:hover { color: var(--ds-blue); }
.ds-hero--home .ds-hero__mode.is-current { border-block-end-color: var(--ds-blue); color: var(--ds-navy); }
.ds-hero--home .ds-hero__lead { color: #3a4860; }
.ds-hero--home .ds-hero__note, .ds-hero--home .dsq-form__hint { color: #4b5a73; }
.ds-hero--home .dsq .dsq-form { border-color: var(--ds-blue-line); box-shadow: 0 1px 0 rgba(7, 27, 58, 0.04), 0 18px 40px -16px rgba(11, 95, 217, 0.35); }
.ds-hero--home .dsq .dsq-form:hover { border-color: var(--ds-blue); }
.ds-hero--home .dsq .dsq-form:focus-within { border-color: var(--ds-blue); box-shadow: 0 0 0 4px rgba(11, 95, 217, 0.22), 0 18px 40px -16px rgba(11, 95, 217, 0.35); }
.ds-hero--home .dsq.dsq-chips li { background: #fff; border-color: var(--ds-border); color: var(--ds-navy); }
.ds-hero--home .dsq.dsq-chips a { color: var(--ds-navy); }
.ds-hero--home .dsq.dsq-chips li:has(a):hover { background: #fff; border-color: var(--ds-blue); }
.ds-hero--home .dsq .dsq-chip__price { color: var(--ds-muted); }
.ds-hero--home .dsq .dsq-chip__dot, .ds-hero--home .dsq-tile__dot, .ds-hero--home .dsq-fill__dot { color: var(--ds-blue); }
.ds-hero--home .dsq .dsq-tile__link { background: #fff; border-color: var(--ds-border); color: var(--ds-navy); box-shadow: var(--ds-shadow-sm); }
.ds-hero--home .dsq .dsq-tile__link:hover { background: #fff; border-color: var(--ds-blue); color: var(--ds-navy); }
.ds-hero--home .dsq .dsq-tile__link:focus-visible, .ds-hero--home :focus-visible, .dsq-fill:focus-visible { outline-color: var(--ds-focus); }
.ds-hero--home :is(.dsq-tile__per, .dsq-tile__renew, .dsq-tile__note) { color: var(--ds-muted); }
.ds-hero--home .dsq-tile__renew .ds-num { color: var(--ds-navy); }
.ds-hero--home .dsq-fill { background: #fff; border-color: var(--ds-border); color: var(--ds-navy); }
.ds-hero--home .dsq-fill:hover { background: #fff; border-color: var(--ds-blue); }
.ds-hero--home .dsq-fill.is-picked { background: var(--ds-blue-soft); border-color: var(--ds-blue); }
.ds-hero--home .dsq-fill__renew { color: var(--ds-muted); }
.ds-hero--home .dsq-fill__renew .ds-num { color: var(--ds-navy); }
.ds-hero--home .ds-trust { color: #3a4860; }
.ds-hero--home .ds-trust svg { color: var(--ds-success); }

/* Floating example names: decoration only, wide screens only. */
.ds-hero__deco { display: none; }
@media (min-width: 1280px) {
	.ds-hero__deco { display: block; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
	.ds-deco { position: absolute; display: inline-flex; align-items: center; gap: 0.6rem; background: #fff; border: 1px solid var(--ds-blue-line); color: var(--ds-navy); box-shadow: 0 14px 30px -14px rgba(7, 27, 58, 0.28); }
	.ds-deco--pill { padding: 0.45rem 1.05rem; border-radius: var(--ds-radius-pill); font-size: 1.125rem; font-weight: 700; }
	.ds-deco--card { padding: 0.65rem 0.95rem; border-radius: var(--ds-radius-lg); font-size: var(--ds-text-sm); line-height: 1.3; }
	.ds-deco--card strong { display: block; font-size: 0.9375rem; }
	.ds-deco--card small { display: block; color: var(--ds-success); font-weight: 600; font-size: 0.75rem; }
	.ds-deco__tick { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--ds-success-tint); color: var(--ds-success); }
	.ds-deco__tick--lock { background: var(--ds-blue-soft); color: var(--ds-blue); }
	.ds-deco__tick svg { width: 1rem; height: 1rem; }
	.ds-deco--card:has(.ds-deco__tick--lock) small { color: var(--ds-muted); }
	.ds-deco--globe { padding: 0.8rem; border-radius: 50%; color: var(--ds-blue); }
	.ds-deco--globe svg { width: 2rem; height: 2rem; }
	.ds-deco--1 { inset-block-start: 16%; inset-inline-start: 3%; }
	.ds-deco--2 { inset-block-start: 44%; inset-inline-start: 9%; }
	.ds-deco--3 { inset-block-start: 68%; inset-inline-start: 4%; }
	.ds-deco--4 { inset-block-start: 14%; inset-inline-end: 6%; color: var(--ds-blue); }
	.ds-deco--5 { inset-block-start: 38%; inset-inline-end: 3%; }
	.ds-deco--6 { inset-block-start: 62%; inset-inline-end: 5%; }
}
@media (min-width: 1280px) and (prefers-reduced-motion: no-preference) {
	.ds-deco { animation: ds-bob 7s ease-in-out infinite alternate; }
	.ds-deco--2, .ds-deco--5 { animation-duration: 9s; animation-delay: -3s; }
	.ds-deco--3, .ds-deco--6 { animation-duration: 8s; animation-delay: -5s; }
}
@keyframes ds-bob { from { transform: translateY(-6px); } to { transform: translateY(8px); } }

/* ---- Announcement bar ---- */
.ds-announce { position: relative; display: flex; align-items: center; background: linear-gradient(90deg, var(--ds-blue-deep), var(--ds-blue)); color: #fff; font-size: var(--ds-text-sm); line-height: 1.4; }
.ds-announce[hidden], .ds-announce.is-closed { display: none; }
.ds-announce__viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent); }
.ds-announce__track { display: flex; width: max-content; }
.ds-announce__list { display: flex; flex: none; margin: 0; padding: 0; list-style: none; }
.ds-announce__item { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; padding-block: 0.55rem; white-space: nowrap; }
.ds-announce__item a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.45); text-underline-offset: 3px; }
.ds-announce__item a:hover { text-decoration-color: #fff; }
.ds-announce__item a:focus-visible, .ds-announce__btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ds-announce__tag { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--ds-amber); color: var(--ds-on-amber); }
.ds-announce__tag svg { width: 0.9rem; height: 0.9rem; }
.ds-announce__item.is-offer { font-weight: 600; }
.ds-announce__sep { display: inline-block; width: 0.3rem; height: 0.3rem; margin-inline: 1.75rem; border-radius: 50%; background: rgba(255, 255, 255, 0.55); }
.ds-announce__controls { flex: none; display: inline-flex; align-items: center; gap: 0.15rem; padding-inline: 0.5rem; }
.ds-announce__btn { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; padding: 0; border: 0; border-radius: var(--ds-radius-sm); background: transparent; color: #fff; cursor: pointer; }
.ds-announce__btn:hover { background: rgba(255, 255, 255, 0.16); }
.ds-announce__btn[hidden] { display: none; }
.ds-announce__btn svg { width: 1rem; height: 1rem; }
.ds-announce__play, .ds-announce.is-paused .ds-announce__pause { display: none; }
.ds-announce.is-paused .ds-announce__play { display: inline; }
@media (min-width: 1px) and (prefers-reduced-motion: no-preference) {
	.ds-announce__track { animation: ds-marquee 55s linear infinite; }
	[dir="rtl"] .ds-announce__track { animation-name: ds-marquee-rtl; }
	.ds-announce:hover .ds-announce__track, .ds-announce:focus-within .ds-announce__track, .ds-announce.is-paused .ds-announce__track { animation-play-state: paused; }
}
@keyframes ds-marquee { to { transform: translateX(-50%); } }
@keyframes ds-marquee-rtl { to { transform: translateX(50%); } }
/* Reduced motion: no scrolling; the messages wrap, one copy only. */
@media (prefers-reduced-motion: reduce) {
	.ds-announce__track { width: auto; }
	.ds-announce__list { flex-wrap: wrap; justify-content: center; padding-inline: var(--ds-gutter); }
	.ds-announce__list[aria-hidden="true"], .ds-announce [data-ds-announce-pause] { display: none; }
	.ds-announce__viewport { -webkit-mask-image: none; mask-image: none; }
	.ds-announce__item:last-child .ds-announce__sep { display: none; }
}

/* ---- Colour and icons in the sections ---- */
.ds-why { background: var(--ds-surface); }
.ds-services-band { background: linear-gradient(180deg, var(--ds-surface) 0%, var(--ds-blue-soft) 100%); }
.ds-services-band .ds-service > .ds-icon { width: 3.25rem; height: 3.25rem; border-radius: var(--ds-radius-lg); }
.ds-services-band .ds-service > .ds-icon svg { width: 1.6rem; height: 1.6rem; }
.ds-services .ds-service:nth-child(3n+2) > .ds-icon, .ds-tools__grid .ds-tool:nth-child(3n+2) .ds-tool__icon, .ds-promise__list li:nth-child(even) .ds-icon, .ds-manage__list li:nth-child(3n+2) .ds-icon { background: var(--ds-amber-tint); color: var(--ds-amber-text); }
.ds-services .ds-service:nth-child(3n+3) > .ds-icon, .ds-tools__grid .ds-tool:nth-child(3n+3) .ds-tool__icon, .ds-manage__list li:nth-child(3n+3) .ds-icon { background: var(--ds-navy); color: var(--ds-blue-light); }
.ds-services .ds-service:hover { border-color: var(--ds-blue); box-shadow: var(--ds-shadow-md, var(--ds-shadow-sm)); }
/* WordPress's block gap sits between top-level blocks: none between the bar and the header. */
.ds-announce { margin-block: 0; }
.wp-site-blocks > .ds-announce + *, .ds-announce + .ds-header { margin-block-start: 0; }

/* ==== 7d. Home page rhythm, theme 2.8.0 ====================================
 * The extension prices become a Deep Navy band (light, navy, light: the page stops reading as one
 * long grey-and-white scroll), the free tools get small drawings of their result, and the closing
 * search band picks up the hero's dotted field. Home page only (body.home).
 */
.home .ds-popular { background: var(--ds-navy); border-block-color: transparent; color: var(--ds-on-dark-2); }
.home .ds-popular :is(h2, h3) { color: #fff; }
.home .ds-popular .ds-lead { color: var(--ds-on-dark-2); }
.home .ds-popular .ds-kicker { color: var(--ds-blue-on-dark); }
.home .ds-popular .ds-kicker::before { background: var(--ds-blue-on-dark); }
.home .ds-popular .ds-section__more { color: #fff; }
.home .ds-popular .ds-section__more:hover { color: #fff; text-decoration-color: var(--ds-blue-on-dark); }
.home .ds-popular .ds-hint { color: var(--ds-on-dark-3); }
.home .ds-popular :focus-visible { outline-color: var(--ds-focus-on-dark); }
.home .ds-popular .dsq .dsq-tile__link { background: var(--ds-surface); }

/* Closing search band: the hero's dotted field and an amber glow. */
.ds-cta--search { background-image: radial-gradient(ellipse 45% 70% at 92% 0%, rgba(245, 166, 35, 0.22), transparent 70%), radial-gradient(ellipse 50% 70% at 8% 100%, rgba(90, 176, 255, 0.28), transparent 70%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Ccircle cx='2' cy='2' r='1.2' fill='%23ffffff' fill-opacity='.10'/%3E%3C/svg%3E"); }

/* FAQ: the first five questions, the rest behind a button (theme.js adds data-collapsed; without JavaScript every question shows). */
.ds-faq[data-collapsed] .ds-faq__extra { display: none; }
.ds-faq__toggle { justify-self: start; margin-block-start: var(--ds-space-2); padding: 0.6rem 1.1rem; border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-pill); background: var(--ds-surface); color: var(--ds-navy); font: inherit; font-size: var(--ds-text-sm); font-weight: 600; cursor: pointer; transition: border-color var(--ds-fast), background-color var(--ds-fast); }
.ds-faq__toggle:hover { border-color: var(--ds-blue); background: var(--ds-blue-soft); }
.ds-faq__toggle:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ds-faq__toggle[hidden] { display: none; }

/* Polish: every home card lifts the same way, with motion only when allowed. */
@media (prefers-reduced-motion: no-preference) {
	.home .dsq .dsq-tile__link, .home .ds-promise__list li, .home .ds-timeline__step { transition: transform var(--ds-fast) var(--ds-ease), box-shadow var(--ds-fast), border-color var(--ds-fast); }
	.home .dsq .dsq-tile__link:hover { transform: translateY(-3px); }
}

/* Extension groups (2.9.0): a title and one line beside the tiles; light text on the navy band. */
.ds-ext-group__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ds-space-1) var(--ds-space-4); margin-block-end: var(--ds-space-4); }
.ds-ext-group__head .ds-ext-group__title { flex: none; margin: 0; }
.ds-ext-group__head .ds-ext-group__title::after { content: none; }
.ds-ext-group__text { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); }
.ds-ext-group + .ds-ext-group { margin-block-start: var(--ds-space-8); }
.home .ds-popular .ds-ext-group__title { color: #fff; }
.home .ds-popular .ds-ext-group__text { color: var(--ds-on-dark-3); }

/* ==== Free tools (2.9.1): three equal cards, a preview panel on top, the words below ==== */
.ds-tools { background: var(--ds-surface); border-block: 1px solid var(--ds-border); }
.ds-tools__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-tools .ds-tool { padding: 0; gap: 0; overflow: hidden; align-items: stretch; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-xl); box-shadow: var(--ds-shadow-sm); }
.ds-tools .ds-tool:hover { border-color: var(--ds-blue); background: var(--ds-surface); box-shadow: var(--ds-elev-2, var(--ds-shadow-sm)); }
.ds-tool__panel { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; min-height: 12.5rem; padding: var(--ds-space-6); overflow: hidden; pointer-events: none; }
.ds-tool__panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.1' fill='%230b5fd9' fill-opacity='.16'/%3E%3C/svg%3E"); }
.ds-tool__panel--names { flex-wrap: wrap; align-content: center; gap: 0.6rem; background: linear-gradient(145deg, var(--ds-navy) 0%, #0d2a57 100%); }
.ds-tool__panel--names::before { background-image: radial-gradient(ellipse 70% 80% at 100% 0%, rgba(90, 176, 255, 0.35), transparent 70%), radial-gradient(ellipse 60% 60% at 0% 100%, rgba(245, 166, 35, 0.18), transparent 70%); }
.ds-tool__panel--bars { background: linear-gradient(145deg, var(--ds-blue-soft), #fff); }
.ds-tool__panel--record { background: linear-gradient(145deg, var(--ds-amber-tint), #fff); }
.ds-tool__panel--record::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='2' cy='2' r='1.1' fill='%23e08e00' fill-opacity='.2'/%3E%3C/svg%3E"); }
.ds-namechip { display: inline-flex; align-items: center; gap: 0.45rem; margin: 0; padding: 0.5rem 0.95rem 0.5rem 0.6rem; border-radius: var(--ds-radius-pill); background: #fff; color: var(--ds-navy); font-size: var(--ds-text-sm); font-weight: 600; box-shadow: 0 10px 22px -12px rgba(0, 0, 0, 0.55); }
.ds-namechip svg { flex: none; box-sizing: border-box; width: 1.25rem; height: 1.25rem; padding: 0.22rem; border-radius: 50%; background: var(--ds-success-tint); color: var(--ds-success); }
.ds-tool__panel--bars svg { width: min(100%, 15rem); height: auto; overflow: visible; }
.ds-tool__panel--bars .bars rect { fill: var(--ds-blue-line); }
.ds-tool__panel--bars .bars rect.is-hi { fill: var(--ds-blue); }
.ds-tool__panel--bars .trend { fill: none; stroke: var(--ds-amber-strong); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 6 5; }
.ds-tool__panel--bars .dot { fill: var(--ds-amber); stroke: #fff; stroke-width: 2; }
.ds-record { display: grid; gap: 0.7rem; width: min(100%, 15rem); padding: 1rem 1.1rem; border: 1px solid var(--ds-amber-line); border-radius: var(--ds-radius-lg); background: #fff; box-shadow: 0 14px 28px -16px rgba(7, 27, 58, 0.35); }
.ds-record__top { display: flex; align-items: center; gap: 0.55rem; padding-block-end: 0.7rem; border-block-end: 1px solid var(--ds-border); font-size: var(--ds-text-sm); }
.ds-record__top svg { flex: none; width: 1.2rem; height: 1.2rem; color: var(--ds-blue); }
.ds-record__top b { color: var(--ds-navy); font-weight: 700; }
.ds-record__top .ds-badge { margin-inline-start: auto; }
.ds-skel { display: flex; align-items: center; gap: 0.7rem; }
.ds-skel b { flex: none; width: 2.5rem; height: 0.5rem; border-radius: 4px; background: var(--ds-blue-line); }
.ds-skel i { display: block; height: 0.5rem; border-radius: 4px; background: var(--ds-border-strong); }
.ds-tool__body { display: grid; gap: var(--ds-space-2); padding: var(--ds-space-6); }
.ds-tool__head { display: flex; align-items: center; gap: var(--ds-space-3); }
.ds-tools .ds-tool__icon { flex: none; width: 2.5rem; height: 2.5rem; border-radius: var(--ds-radius-md); background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-tools .ds-tool:nth-child(2) .ds-tool__icon { background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-tools .ds-tool:nth-child(3) .ds-tool__icon { background: var(--ds-amber-tint); color: var(--ds-amber-text); }
.ds-tools .ds-tool:nth-child(1) .ds-tool__icon { background: var(--ds-navy); color: var(--ds-blue-light); }
.ds-tools .ds-tool__title { margin: 0; font-size: var(--ds-text-h3); }
.ds-tools .ds-tool__text { margin: 0; }
.ds-tools .ds-tool__more { margin-block-start: var(--ds-space-2); padding: 0; }
@media (prefers-reduced-motion: no-preference) {
	.ds-tool__panel--names .ds-namechip { animation: ds-bob 6s ease-in-out infinite alternate; }
	.ds-tool__panel--names .ds-namechip:nth-child(2) { animation-delay: -2s; } .ds-tool__panel--names .ds-namechip:nth-child(3) { animation-delay: -4s; } .ds-tool__panel--names .ds-namechip:nth-child(4) { animation-delay: -1s; } .ds-tool__panel--names .ds-namechip:nth-child(5) { animation-delay: -3s; }
	.ds-tool__panel--bars .bars rect { transform-box: fill-box; transform-origin: bottom; animation: ds-grow 1.1s var(--ds-ease) both; }
	.ds-tool__panel--bars .bars rect:nth-child(2) { animation-delay: 0.08s; } .ds-tool__panel--bars .bars rect:nth-child(3) { animation-delay: 0.16s; } .ds-tool__panel--bars .bars rect:nth-child(4) { animation-delay: 0.24s; } .ds-tool__panel--bars .bars rect:nth-child(5) { animation-delay: 0.32s; }
}
@keyframes ds-grow { from { transform: scaleY(0.15); } }
@media (max-width: 900px) { .ds-tools__grid { grid-template-columns: minmax(0, 1fr); max-width: 32rem; } .ds-tool__panel { min-height: 11rem; } }

/* ---- WordPress hosting page: proof strip, technology logos, pillars (theme 2.15.0) ---- */
.ds-hx-proof { padding-block-end: var(--ds-space-8); }
.ds-hx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-4); margin: 0; padding: 0; list-style: none; }
.ds-hx-stat { display: flex; align-items: flex-start; gap: var(--ds-space-3); margin: 0; padding: var(--ds-space-5); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-xs); }
.ds-hx-stat__value { display: block; color: var(--ds-navy); font-size: var(--ds-text-h2); font-weight: 700; line-height: 1.1; }
.ds-hx-stat strong { display: block; margin-block-start: 0.15rem; color: var(--ds-navy); font-size: var(--ds-text-sm); font-weight: 600; }
.ds-hx-stat span:not(.ds-trustbar__icon) { display: block; margin-block-start: 0.2rem; color: var(--ds-muted); font-size: var(--ds-text-xs); line-height: 1.5; }
.ds-hx-logos__label { margin-block: var(--ds-space-10) var(--ds-space-4); color: var(--ds-muted); font-size: var(--ds-text-xs); font-weight: 600; letter-spacing: 0.06em; text-align: center; text-transform: uppercase; }
.ds-hx-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--ds-space-4) var(--ds-space-10); margin: 0; padding: 0; list-style: none; }
.ds-hx-logo { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; color: var(--ds-navy); opacity: 0.8; font-size: var(--ds-text-lg, 1.125rem); font-weight: 700; transition: opacity var(--ds-fast); }
.ds-hx-logo:hover { opacity: 1; }
.ds-hx-logo svg { flex: none; }
.ds-hx-logos__note { margin-block: var(--ds-space-5) 0; color: var(--ds-muted); font-size: var(--ds-text-xs); text-align: center; }
.ds-hx-pillars__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ds-space-5); margin-block-start: var(--ds-space-8); }
.ds-hx-pillar { padding: var(--ds-space-6); background: var(--ds-navy-2); border: 1px solid var(--ds-on-dark-line); border-radius: var(--ds-radius-lg); }
.ds-hx-pillar h3 { margin: 0 0 var(--ds-space-4); }
.ds-hx-ticks { display: grid; gap: var(--ds-space-3); margin: 0; padding: 0; list-style: none; }
.ds-hx-ticks li { position: relative; margin: 0; padding-inline-start: 1.75rem; color: var(--ds-on-dark-1); font-size: var(--ds-text-sm); line-height: 1.5; }
.ds-hx-ticks li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.25rem; width: 1rem; height: 1rem; border-radius: 50%; background: var(--ds-blue-light); }
.ds-hx-ticks li::after { content: ""; position: absolute; inset-inline-start: 0.36rem; inset-block-start: 0.44rem; width: 0.28rem; height: 0.5rem; border: solid var(--ds-navy); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ds-hx-pillars__note { margin-block: var(--ds-space-6) 0; color: var(--ds-on-dark-3); font-size: var(--ds-text-xs); }
@media (max-width: 960px) { .ds-hx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ds-hx-pillars__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .ds-hx-stats { grid-template-columns: minmax(0, 1fr); } .ds-hx-logos { gap: var(--ds-space-4) var(--ds-space-6); } }

/* ---- WordPress hosting page: hero with shop mockup, speed path, WooCommerce, ease, 24/7 support (theme 2.17.0) ---- */
.ds-hx-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: var(--ds-space-10); align-items: center; }
.ds-hx-hero__copy > :last-child { margin-block-end: 0; }
.ds-hx-visual { position: relative; padding: var(--ds-space-4) var(--ds-space-6) var(--ds-space-6); }
.ds-hx-browser { overflow: hidden; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-lg); }
.ds-hx-browser__bar { display: flex; align-items: center; gap: 0.4rem; padding: 0.7rem 0.9rem; background: #eef2f7; border-block-end: 1px solid var(--ds-border); }
.ds-hx-browser__bar i { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #c9d3e0; }
.ds-hx-browser__url { display: inline-flex; align-items: center; gap: 0.4rem; margin-inline-start: 0.6rem; padding: 0.2rem 0.8rem; background: var(--ds-surface); border-radius: 999px; color: var(--ds-muted); font-size: 0.75rem; direction: ltr; }
.ds-hx-browser__url svg { color: var(--ds-success); }
.ds-hx-browser__body { padding: var(--ds-space-4); }
.ds-hx-shop__head { display: flex; align-items: center; gap: var(--ds-space-3); margin-block-end: var(--ds-space-3); }
.ds-hx-shop__logo { width: 4rem; height: 1rem; border-radius: 4px; background: var(--ds-navy); }
.ds-hx-shop__nav { display: flex; gap: 0.5rem; margin-inline-start: auto; }
.ds-hx-shop__nav i { width: 1.6rem; height: 0.4rem; border-radius: 3px; background: #d5deea; }
.ds-hx-shop__cart { position: relative; display: inline-flex; color: var(--ds-navy); }
.ds-hx-shop__cart em { position: absolute; inset-block-start: -0.45rem; inset-inline-end: -0.55rem; display: grid; place-items: center; min-width: 1rem; height: 1rem; border-radius: 50%; background: var(--ds-amber); color: var(--ds-navy); font-size: 0.65rem; font-style: normal; font-weight: 700; }
.ds-hx-shop__banner { display: grid; gap: 0.45rem; margin-block-end: var(--ds-space-3); padding: var(--ds-space-4); background: linear-gradient(120deg, var(--ds-navy), var(--ds-navy-2)); border-radius: 10px; }
.ds-hx-shop__banner .ds-hx-shop__l { background: rgba(255, 255, 255, 0.35); }
.ds-hx-shop__banner .ds-hx-shop__l--lg { inline-size: 70%; height: 0.8rem; background: #fff; }
.ds-hx-shop__banner .ds-hx-shop__pill { inline-size: 4.5rem; background: var(--ds-amber); }
.ds-hx-shop__l { display: block; inline-size: 85%; height: 0.5rem; border-radius: 3px; background: #d5deea; }
.ds-hx-shop__l--sm { inline-size: 50%; }
.ds-hx-shop__pill { display: block; inline-size: 100%; height: 1.4rem; border-radius: 6px; background: var(--ds-blue); }
.ds-hx-shop__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ds-space-3); }
.ds-hx-prod { display: grid; gap: 0.4rem; padding: 0.55rem; border: 1px solid var(--ds-border); border-radius: 10px; }
.ds-hx-prod__img { display: block; aspect-ratio: 1 / 0.8; border-radius: 7px; }
.ds-hx-prod__img--a { background: linear-gradient(135deg, #cfe4ff, #8fbdf5); }
.ds-hx-prod__img--b { background: linear-gradient(135deg, #ffe9c2, #f5c36b); }
.ds-hx-prod__img--c { background: linear-gradient(135deg, #d9f2e4, #9bd8b6); }
.ds-hx-badge { position: absolute; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.9rem; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: 999px; box-shadow: var(--ds-shadow-md); color: var(--ds-navy); font-size: var(--ds-text-sm); font-weight: 700; }
.ds-hx-badge svg { flex: none; }
.ds-hx-badge--speed { inset-block-start: 0; inset-inline-end: 0; }
.ds-hx-badge--speed svg { color: var(--ds-amber-text); }
.ds-hx-badge--ssl { inset-block-end: 3rem; inset-inline-start: 0; }
.ds-hx-badge--ssl svg { color: var(--ds-success); }
.ds-hx-badge--help { inset-block-end: 0; inset-inline-end: 1.5rem; }
.ds-hx-badge--help svg { color: var(--ds-blue); }
.ds-hx-lead { max-inline-size: 42rem; margin: 0; color: var(--ds-muted); font-size: var(--ds-text-lead); }
.ds-hx-speed .ds-section__head { margin-block-end: var(--ds-space-8); }
.ds-hx-path { display: flex; align-items: stretch; justify-content: space-between; gap: var(--ds-space-2); margin: 0; padding: var(--ds-space-6); list-style: none; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-sm); }
.ds-hx-path__node { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: var(--ds-space-2); margin: 0; text-align: center; color: var(--ds-navy); font-size: var(--ds-text-sm); }
.ds-hx-path__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-hx-path__node:nth-child(5) .ds-hx-path__icon { background: var(--ds-amber); color: var(--ds-navy); }
.ds-hx-path__node:last-child .ds-hx-path__icon { background: var(--ds-navy); color: #fff; }
.ds-hx-path__arrow { flex: 0 0 2rem; align-self: center; margin: 0 0 1.4rem; height: 2px; background: repeating-linear-gradient(90deg, var(--ds-blue) 0 6px, transparent 6px 11px); position: relative; }
.ds-hx-path__arrow::after { content: ""; position: absolute; inset-inline-end: 0; inset-block-start: -4px; width: 8px; height: 8px; border: solid var(--ds-blue); border-width: 2px 2px 0 0; transform: rotate(45deg); }
[dir="rtl"] .ds-hx-path__arrow::after { transform: rotate(-135deg); }
.ds-hx-path__note { margin-block: var(--ds-space-3) var(--ds-space-8); color: var(--ds-muted); font-size: var(--ds-text-xs); text-align: center; }
.ds-hx-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-5); margin: 0; padding: 0; list-style: none; }
.ds-hx-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-hx-tile { margin: 0; padding: var(--ds-space-6); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.ds-hx-tile:hover { transform: translateY(-3px); box-shadow: var(--ds-shadow-md); }
.ds-hx-tile h3 { margin: var(--ds-space-4) 0 var(--ds-space-2); font-size: var(--ds-text-h3); }
.ds-hx-tile p { margin: 0; color: var(--ds-muted); font-size: var(--ds-text-sm); line-height: 1.6; }
.ds-hx-tile .ds-icon, .ds-hx-scard .ds-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 12px; background: var(--ds-blue-soft); color: var(--ds-blue); }
.ds-hx-woo { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--ds-space-12); align-items: center; }
.ds-hx-woo__copy > p { color: var(--ds-muted); }
.ds-hx-ticks--light { margin-block: var(--ds-space-5); }
.ds-hx-ticks--light li { color: var(--ds-navy); font-size: var(--ds-text-body); }
.ds-hx-ticks--light li::before { background: var(--ds-blue); }
.ds-hx-ticks--light li::after { border-color: #fff; }
.ds-hx-woo__note { color: var(--ds-muted); font-size: var(--ds-text-xs); }
.ds-hx-woo__visual { position: relative; padding: 4.5rem 0 var(--ds-space-8); }
.ds-hx-woo .ds-section__title, .ds-hx-support .ds-section__title { max-inline-size: none; margin-inline: 0; text-align: start; }
.ds-hx-cartcard { display: grid; gap: var(--ds-space-3); max-inline-size: 22rem; margin-inline: auto; padding: var(--ds-space-5); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-lg); }
.ds-hx-cartcard__row { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) 2.2rem; align-items: center; gap: var(--ds-space-3); }
.ds-hx-cartcard__row .ds-hx-prod__img { aspect-ratio: 1; }
.ds-hx-cartcard__row em { display: block; height: 0.55rem; border-radius: 3px; background: var(--ds-navy); }
.ds-hx-cartcard__total { display: flex; align-items: center; justify-content: space-between; padding-block: var(--ds-space-3) 0; border-block-start: 1px dashed var(--ds-border); }
.ds-hx-cartcard__total b { display: block; inline-size: 3.2rem; height: 0.8rem; border-radius: 3px; background: var(--ds-navy); }
.ds-hx-cartcard__pay { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem; border-radius: 10px; background: var(--ds-blue); color: #fff; font-size: var(--ds-text-sm); font-weight: 700; }
.ds-hx-order { position: absolute; inset-block-start: 0.5rem; inset-inline-start: 0; z-index: 1; display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 1rem; background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: 12px; box-shadow: var(--ds-shadow-md); }
.ds-hx-order b { display: block; color: var(--ds-navy); font-size: var(--ds-text-sm); }
.ds-hx-order small { color: var(--ds-muted); font-size: 0.75rem; }
.ds-hx-order__icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--ds-success-tint); color: var(--ds-success); }
.ds-hx-order__icon svg { width: 18px; height: 18px; }
.ds-hx-ease .ds-section__head { margin-block-end: var(--ds-space-6); }
.ds-hx-support { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--ds-space-10); align-items: center; padding: clamp(1.5rem, 1rem + 2vw, 3rem); background: linear-gradient(135deg, var(--ds-navy), var(--ds-navy-2)); border-radius: calc(var(--ds-radius-lg) + 6px); color: var(--ds-on-dark-2); box-shadow: var(--ds-shadow-lg); }
.ds-hx-support h2 { color: #fff; }
.ds-hx-support .ds-kicker { color: var(--ds-blue-light); }
.ds-hx-support .ds-kicker::before { background: var(--ds-blue-light); }
.ds-hx-support .is-style-outline .wp-block-button__link { border-color: rgba(255, 255, 255, 0.5); background: transparent; color: #fff; }
.ds-hx-support .is-style-outline .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, 0.1); color: #fff; }
.ds-hx-support__cards { display: grid; gap: var(--ds-space-3); margin: 0; padding: 0; list-style: none; }
.ds-hx-scard { display: flex; align-items: flex-start; gap: var(--ds-space-4); margin: 0; padding: var(--ds-space-4) var(--ds-space-5); background: rgba(255, 255, 255, 0.07); border: 1px solid var(--ds-on-dark-line); border-radius: var(--ds-radius-lg); }
.ds-hx-scard .ds-icon { flex: none; background: rgba(90, 176, 255, 0.16); color: var(--ds-blue-light); }
.ds-hx-scard h3 { margin: 0 0 0.2rem; color: #fff; font-size: var(--ds-text-h3); }
.ds-hx-scard p { margin: 0; color: var(--ds-on-dark-2); font-size: var(--ds-text-sm); line-height: 1.6; }
@media (max-width: 960px) {
	.ds-hx-hero, .ds-hx-woo, .ds-hx-support { grid-template-columns: minmax(0, 1fr); }
	.ds-hx-visual { max-inline-size: 34rem; margin-inline: auto; }
	.ds-hx-tiles, .ds-hx-tiles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ds-hx-path { flex-wrap: wrap; justify-content: center; }
	.ds-hx-path__arrow { display: none; }
	.ds-hx-path__node { flex: 0 0 30%; }
}
@media (max-width: 560px) {
	.ds-hx-tiles, .ds-hx-tiles--3 { grid-template-columns: minmax(0, 1fr); }
	.ds-hx-path__node { flex-basis: 45%; }
	.ds-hx-visual { padding: 2.75rem var(--ds-space-2) 3.25rem; }
	.ds-hx-badge--ssl { inset-block-end: 4rem; }
}
@media (prefers-reduced-motion: reduce) { .ds-hx-tile { transition: none; } .ds-hx-tile:hover { transform: none; } }

/* ---- SSL and business email pages: secure-connection and webmail mockups, address-bar comparison (theme 2.18.0; shares the .ds-hx-* hero, stats, tiles, path and support band) ---- */
.ds-hx-secure { display: grid; gap: var(--ds-space-5); padding: var(--ds-space-6) var(--ds-space-5); }
.ds-hx-seal { display: flex; align-items: center; gap: var(--ds-space-3); padding: var(--ds-space-4); background: var(--ds-success-tint); border: 1px solid #b7e4cd; border-radius: 12px; }
.ds-hx-seal > span { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--ds-success); color: #fff; }
.ds-hx-seal b { display: block; color: var(--ds-navy); font-size: var(--ds-text-sm); }
.ds-hx-seal small { color: var(--ds-muted); font-size: 0.75rem; }
.ds-hx-form { display: grid; gap: 0.55rem; }
.ds-hx-input { display: flex; align-items: center; gap: 0.3rem; height: 2rem; padding-inline: 0.7rem; border: 1px solid var(--ds-border); border-radius: 8px; background: #f7f9fc; }
.ds-hx-input--dots i { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--ds-navy); }
.ds-hx-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-space-5); margin: 0; }
.ds-hx-compare__card { margin: 0; padding: var(--ds-space-5); background: var(--ds-surface); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-sm); }
.ds-hx-compare__card--good { border-color: #b7e4cd; box-shadow: var(--ds-shadow-md); }
.ds-hx-compare__card figcaption { margin-block-start: var(--ds-space-4); color: var(--ds-navy); font-size: var(--ds-text-sm); font-weight: 700; text-align: center; }
.ds-hx-addrbar { display: flex; align-items: center; gap: 0.6rem; padding: 0.65rem 0.9rem; border-radius: 999px; font-size: var(--ds-text-sm); direction: ltr; }
.ds-hx-addrbar b { font-weight: 700; }
.ds-hx-addrbar em { margin-inline-start: auto; color: var(--ds-muted); font-style: normal; }
.ds-hx-addrbar--bad { background: var(--ds-danger-tint); color: var(--ds-danger); }
.ds-hx-addrbar--bad em { margin-inline-start: 0; }
.ds-hx-addrbar--good { background: var(--ds-success-tint); color: var(--ds-success); }
.ds-hx-addrbar--good em { margin-inline-start: 0; color: var(--ds-navy); }
.ds-hx-compare__page { display: grid; gap: 0.5rem; margin-block-start: var(--ds-space-4); padding: var(--ds-space-5); background: #f4f7fb; border-radius: 10px; }
.ds-hx-mail { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--ds-space-4); padding: var(--ds-space-4); }
.ds-hx-mail__list { display: grid; align-content: start; gap: 0.5rem; }
.ds-hx-mail__row { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; border: 1px solid var(--ds-border); border-radius: 10px; }
.ds-hx-mail__row--on { background: var(--ds-blue-soft); border-color: var(--ds-blue-line, #bcd6fb); }
.ds-hx-mail__lines { display: grid; flex: 1; gap: 0.3rem; min-inline-size: 0; }
.ds-hx-mail__av { flex: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: linear-gradient(135deg, #cfe4ff, #8fbdf5); }
.ds-hx-mail__av--b { background: linear-gradient(135deg, #ffe9c2, #f5c36b); }
.ds-hx-mail__av--c { background: linear-gradient(135deg, #d9f2e4, #9bd8b6); }
.ds-hx-mail__read { display: grid; align-content: start; gap: 0.6rem; padding: var(--ds-space-4); border: 1px solid var(--ds-border); border-radius: 10px; }
.ds-hx-mail__from { display: flex; align-items: center; gap: 0.5rem; margin-block-end: 0.4rem; color: var(--ds-navy); font-size: 0.75rem; }
.ds-hx-mail__ok { display: inline-flex; margin-inline-start: auto; color: var(--ds-success); }
@media (max-width: 960px) { .ds-hx-compare { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .ds-hx-mail { grid-template-columns: minmax(0, 1fr); } .ds-hx-mail__list .ds-hx-mail__row:nth-child(n+3) { display: none; } }
