/* The Wizard — specialized Gutenberg patterns.
   Fully scoped, theme-palette-aware, identical in editor and frontend. */
.wiz-essential {
    box-sizing: border-box;
    padding: clamp(52px, 6vw, 102px) clamp(18px, 4vw, 54px);
    background: var(--wiz-bg, #272c33);
    color: var(--wiz-text, #f3f4f5);
}
.wiz-essential *, .wiz-essential *::before, .wiz-essential *::after { box-sizing: border-box; }
.wiz-essential-shell { max-width: 1260px; margin: 0 auto; container-type: inline-size; }
.wiz-essential :where(h2,h3,h4,p,summary):not(.has-text-color) { color: inherit; }
.wiz-essential-intro { max-width: 775px; margin: 0 0 clamp(34px, 4vw, 55px); }
.wiz-essential--pricing-trio .wiz-essential-intro,
.wiz-essential--faq-accordion .wiz-essential-intro,
.wiz-essential--roadmap .wiz-essential-intro,
.wiz-essential--statistics .wiz-essential-intro { margin-inline: auto; }
.wiz-essential-eyebrow, .wiz-essential-small-label {
    margin: 0 0 12px;
    font-size: clamp(10px, .8vw, 12px);
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
    opacity: .78;
}
.wiz-essential .wiz-essential-title {
    max-width: 850px;
    margin: 0;
    line-height: 1.14;
    letter-spacing: -.033em;
    font-size: clamp(29px, 3.3vw, 49px);
    overflow-wrap: normal;
}
.wiz-essential .wiz-essential-lead {
    max-width: 670px;
    margin: 18px 0 0;
    line-height: 1.65;
    font-size: clamp(15px, 1.2vw, 18px);
    opacity: .82;
}
.wiz-essential-intro .has-text-align-center { margin-inline: auto; }
.wiz-essential .wiz-essential-grid {
    display: grid !important;
    gap: clamp(18px, 2.2vw, 30px) !important;
    margin: 0;
    width: 100%;
    align-items: stretch;
    grid-template-columns: repeat(2,minmax(0,1fr));
}
.wiz-essential .wiz-essential-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.wiz-essential .wiz-essential-grid--4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.wiz-essential .wiz-essential-grid > .wp-block-column {
    flex: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
}
.wiz-essential .wiz-essential-card-heading {
    margin: 0 0 12px;
    font-size: clamp(20px, 1.65vw, 28px);
    line-height: 1.25;
    letter-spacing: -.02em;
    overflow-wrap: break-word;
}
.wiz-essential .wiz-essential-answer,
.wiz-essential .wiz-essential-card-description {
    margin: 0;
    line-height: 1.7;
    font-size: clamp(14px, 1.05vw, 16px);
    opacity: .84;
}
.wiz-essential .wiz-essential-muted { margin: 7px 0 0; font-size: 13px; opacity: .68; line-height: 1.6; }
.wiz-essential :where(.wiz-essential-price-card,.wiz-essential-roadmap-card,.wiz-essential-stat-card) {
    background: var(--wiz-card, #34383c);
    border-radius: 19px;
    padding: clamp(23px, 2.4vw, 34px);
}
/* Tier layouts */
.wiz-essential-price-card { min-height: 100%; display: flex; flex-direction: column; gap: 9px; }
.wiz-essential-price-card .wiz-essential-small-label { margin-bottom: 5px; }
.wiz-essential-price-card .wiz-essential-card-heading { margin-bottom: 4px; }
.wiz-essential-price-card .wiz-essential-price {
    margin: 14px 0 0;
    font-size: clamp(31px, 2.9vw, 46px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.05em;
    overflow-wrap: anywhere;
}
.wiz-essential-price-card .wiz-essential-card-description { margin-top: 18px; }
.wiz-essential-price-card .wiz-essential-perks { display: flex; flex-direction: column; gap: 10px; margin: 13px 0 27px; }
.wiz-essential-price-card .wiz-essential-perk { margin: 0; font-size: 14px; line-height: 1.55; }
.wiz-essential-price-card .wp-block-buttons { margin-top: auto; }
.wiz-essential .wp-block-button__link:not(.has-background) {
    background: var(--wiz-text,#f3f4f5);
    color: var(--wiz-bg,#272c33);
    border-radius: 9px;
    padding: 13px 21px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
}
.wiz-essential .wp-block-button__link:hover { opacity: .85; }
.wiz-essential-price-card.wiz-essential-featured { outline: 1px solid color-mix(in srgb,var(--wiz-text,#f3f4f5) 30%,transparent); box-shadow: 0 20px 55px rgba(0,0,0,.08); }
.wiz-essential--pricing-duo .wiz-essential-grid { max-width: 1030px; }
/* FAQ grid */
.wiz-essential--faq-grid .wiz-essential-grid { gap: clamp(24px, 4vw, 60px) !important; }
.wiz-essential--faq-grid .wiz-essential-grid > .wp-block-column { display: grid; gap: 27px; align-content: start; }
.wiz-essential-qa { padding-top: 23px; border-top: 1px solid color-mix(in srgb, currentColor 17%, transparent); }
.wiz-essential-qa .wiz-essential-card-heading { font-size: clamp(18px,1.45vw,22px); margin-bottom: 10px; }
/* FAQ accordion */
.wiz-essential-details-list { max-width: 850px; margin-inline: auto; }
.wiz-essential .wiz-essential-detail {
    background: var(--wiz-card,#34383c);
    border-radius: 11px;
    margin: 0 0 12px;
    padding: 0 clamp(20px,2.5vw,30px);
    overflow: hidden;
    border: 1px solid color-mix(in srgb,currentColor 9%,transparent);
}
.wiz-essential .wiz-essential-detail summary {
    padding: 21px 0;
    cursor: pointer;
    font-weight: 650;
    font-size: clamp(16px,1.2vw,19px);
    line-height: 1.5;
}
.wiz-essential .wiz-essential-detail[open] summary { border-bottom: 1px solid color-mix(in srgb,currentColor 12%,transparent); }
.wiz-essential .wiz-essential-detail p { margin: 0; padding: 17px 0 22px; font-size: 15px; line-height: 1.75; opacity: .83; }
/* Native comparison table, horizontally scrollable on narrow canvases */
.wiz-essential--comparison { background: color-mix(in srgb,var(--wiz-bg,#272c33) 90%,var(--wiz-card,#34383c) 10%); }
.wiz-essential-table-scroll { overflow-x: auto; max-width: 100%; border-radius: 14px; background: var(--wiz-card,#34383c); }
.wiz-essential .wiz-essential-comparison-table { padding: 0; margin: 0; min-width: 700px; max-width: none; }
.wiz-essential .wiz-essential-comparison-table table { width: 100%; border-collapse: collapse; margin: 0; border: 0; color: inherit; }
.wiz-essential .wiz-essential-comparison-table :where(th,td) {
    border: 0;
    border-bottom: 1px solid color-mix(in srgb,currentColor 13%,transparent);
    padding: 20px 22px;
    text-align: left;
    line-height: 1.55;
    font-size: 14px;
}
.wiz-essential .wiz-essential-comparison-table th { font-weight: 700; background: color-mix(in srgb,currentColor 6%,transparent); }
.wiz-essential .wiz-essential-comparison-table tr:last-child td { border-bottom: 0; }
.wiz-essential .wiz-essential-comparison-table :where(th,td):first-child { width: 28%; font-weight: 600; }
.wiz-essential .wiz-essential-note { margin: 15px 0 0; font-size: 12px; line-height: 1.5; opacity: .66; }
/* Vertical timeline */
.wiz-essential--timeline .wiz-essential-shell { max-width: 1050px; }
.wiz-essential-milestones { border-left: 1px solid color-mix(in srgb,currentColor 30%,transparent); padding-left: clamp(22px,3vw,44px); }
.wiz-essential-milestone { position: relative; display: grid; grid-template-columns: 60px minmax(0,1fr); gap: clamp(20px,3vw,42px); padding: 0 0 clamp(35px,4vw,55px); }
.wiz-essential-milestone:last-child { padding-bottom: 0; }
.wiz-essential-milestone::before { content:""; position:absolute; left:calc(-1 * clamp(22px,3vw,44px) - 5px); top:12px; width:9px; height:9px; border-radius:50%; background:currentColor; }
.wiz-essential-step-number { margin: 0; font-size: clamp(24px,2.3vw,33px); font-weight: 600; letter-spacing: -.04em; line-height: 1.1; }
.wiz-essential-step-content .wiz-essential-card-heading { margin: 0 0 7px; }
/* Horizontal roadmap */
.wiz-essential--roadmap .wiz-essential-roadmap-card { min-height: 100%; border-top: 2px solid color-mix(in srgb,currentColor 42%,transparent); }
.wiz-essential-roadmap-card .wiz-essential-step-number { margin-bottom: clamp(24px,3vw,46px); }
/* Product spotlight */
.wiz-essential--spotlight .wiz-essential-grid { align-items: center; gap: clamp(28px, 5vw, 80px) !important; }
.wiz-essential .wiz-essential-image { margin: 0; width: 100%; overflow: hidden; border-radius: 14px; }
.wiz-essential .wiz-essential-image img { width: 100%; height: auto; display: block; aspect-ratio: 4 / 3; object-fit: cover; border-radius: inherit; box-shadow: none; }
.wiz-essential-spotlight-copy { max-width: 520px; }
.wiz-essential-spotlight-copy .wiz-essential-spotlight-price { margin: 22px 0; font-size: clamp(22px,2vw,29px); font-weight: 650; }
.wiz-essential-spotlight-copy .wp-block-buttons { margin-top: 25px; }
/* Product collection */
.wiz-essential--products .wiz-essential-product-card { height: 100%; }
.wiz-essential-product-card .wiz-essential-image { margin-bottom: 23px; }
.wiz-essential-product-card .wiz-essential-image img { aspect-ratio: 5 / 4; }
.wiz-essential-product-card .wiz-essential-small-label { margin-bottom: 7px; }
.wiz-essential-product-card .wiz-essential-card-heading { margin-bottom: 11px; }
/* Statistics */
.wiz-essential--statistics { background: color-mix(in srgb,var(--wiz-bg,#272c33) 84%,var(--wiz-card,#34383c) 16%); }
.wiz-essential-stat-card { height: 100%; text-align: center; }
.wiz-essential .wiz-essential-stat-number { font-size: clamp(36px,4vw,62px); font-weight: 650; line-height: 1.1; letter-spacing: -.055em; margin: 0 0 15px; overflow-wrap: anywhere; }
.wiz-essential-stat-card .wiz-essential-stat-label { font-size: 14px; line-height: 1.55; margin: 0; opacity: .78; }
/* Actual container width, including narrower Gutenberg editing canvases. */
@container (max-width: 1060px) {
    .wiz-essential .wiz-essential-grid--4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@container (max-width: 850px) {
    .wiz-essential .wiz-essential-grid--3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@container (max-width: 640px) {
    .wiz-essential .wiz-essential-grid--2,
    .wiz-essential .wiz-essential-grid--3,
    .wiz-essential .wiz-essential-grid--4 { grid-template-columns: minmax(0,1fr); }
    .wiz-essential--faq-grid .wiz-essential-grid > .wp-block-column { gap: 22px; }
    .wiz-essential-milestone { grid-template-columns: 36px minmax(0,1fr); gap: 16px; }
    .wiz-essential .wiz-essential-comparison-table { min-width: 650px; }
}
@media (max-width: 781px) {
    .wiz-essential { padding: 48px 18px; }
}
