
.ae-wrap { margin:20px 20px 0 2px; }
.ae-layout { display:grid; grid-template-columns:280px 1fr; gap:24px; align-items:start; }
.ae-sidebar, .ae-panel, .ae-card, .ae-session, .ae-child-card, .ae-product-box { background:#fff; border:1px solid #e5e7eb; border-radius:24px; box-sizing:border-box; }
.ae-sidebar, .ae-panel, .ae-card, .ae-session, .ae-product-box { box-shadow:0 1px 3px rgba(0,0,0,.04); }
.ae-sidebar { padding:20px; }
.ae-brand { display:flex; gap:12px; align-items:center; margin-bottom:24px; }
.ae-brand-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:16px; background:#fce7f3; font-size:24px; }
.ae-brand-kicker { font-size:11px; text-transform:uppercase; color:#6b7280; letter-spacing:.08em; }
.ae-brand-title { font-size:22px; font-weight:700; color:#111827; }
.ae-nav a { display:block; text-decoration:none; padding:14px 16px; border-radius:18px; color:#111827; margin-bottom:8px; }
.ae-nav a.active { background:#fdf2f8; color:#be185d; font-weight:600; }
.ae-nav a:not(.active):hover { background:#f9fafb; }
.ae-upcoming { margin-top:24px; padding:16px; background:#f9fafb; border:1px solid #e5e7eb; border-radius:24px; }
.ae-upcoming h3 { margin:0 0 12px; font-size:14px; }
.ae-upcoming-item { display:flex; justify-content:space-between; gap:12px; background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:10px 12px; margin-bottom:8px; font-size:13px; }
.ae-upcoming-item a { text-decoration:none; color:#111827; }
.ae-main { display:flex; flex-direction:column; gap:20px; }
.ae-panel { padding:24px; }
.ae-header { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.ae-kicker { font-size:13px; color:#6b7280; margin-bottom:6px; }
.ae-title { font-size:34px; line-height:1.1; margin:0; color:#111827; }
.ae-subtitle { color:#4b5563; max-width:760px; margin-top:10px; }
.ae-actions, .ae-date-nav { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.ae-btn, .button.ae-btn { border-radius:18px; padding:12px 16px; border:1px solid #d1d5db; background:#fff; cursor:pointer; font-weight:600; text-decoration:none; color:#111827; display:inline-block; }
.ae-btn-primary { background:#111827; color:#fff; border-color:#111827; }
.ae-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.ae-card { padding:20px; }
.ae-card-label { font-size:13px; color:#6b7280; }
.ae-card-value { font-size:32px; font-weight:700; margin-top:8px; color:#111827; }
.ae-sessions { display:flex; flex-direction:column; gap:20px; }
.ae-session { overflow:hidden; }
.ae-session-top { padding:24px; }
.ae-session-top-inner { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.ae-session-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.ae-session-title { margin:0; font-size:28px; color:#111827; }
.ae-badge { display:inline-flex; align-items:center; border-radius:999px; padding:6px 12px; font-size:13px; font-weight:600; }
.ae-badge-warning { background:#fef3c7; color:#92400e; }
.ae-badge-danger { background:#fee2e2; color:#991b1b; }
.ae-badge-success { background:#dcfce7; color:#166534; }
.ae-meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.ae-pill { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; background:rgba(255,255,255,.78); border:1px solid #e5e7eb; border-radius:999px; font-size:13px; color:#4b5563; }
.ae-mini-stats { min-width:280px; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ae-mini-box { background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:14px; }
.ae-mini-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#6b7280; }
.ae-mini-value { font-size:28px; font-weight:700; color:#111827; margin-top:4px; }
.ae-session-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.ae-session-bottom { border-top:1px solid rgba(255,255,255,.7); background:rgba(255,255,255,.7); padding:24px; }
.ae-bottom-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.ae-bottom-title { margin:0; font-size:20px; }
.ae-bottom-subtitle { margin-top:6px; color:#6b7280; }
.ae-children { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ae-child-card { padding:16px; }
.ae-child-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.ae-child-name { font-weight:700; color:#111827; }
.ae-child-age { color:#6b7280; font-size:13px; margin-top:2px; }
.ae-child-note { margin-top:12px; color:#4b5563; white-space:pre-line; }
.ae-link-btn { border:1px solid #e5e7eb; background:#fff; border-radius:999px; padding:6px 10px; font-size:12px; cursor:pointer; text-decoration:none; color:#111827; }
.ae-soft-pink { background:#fdf2f8; border-color:#fbcfe8; }
.ae-soft-violet { background:#f5f3ff; border-color:#ddd6fe; }
.ae-soft-sky { background:#f0f9ff; border-color:#bae6fd; }
.ae-soft-green { background:#f0fdf4; border-color:#bbf7d0; }
.ae-soft-yellow { background:#fffbeb; border-color:#fde68a; }
.ae-placeholder { padding:24px; background:#fff; border:1px dashed #d1d5db; border-radius:24px; color:#4b5563; }
.ae-form-grid { display:grid; grid-template-columns:repeat(2, minmax(200px,1fr)); gap:16px; }
.ae-form-grid p { margin:0; }
.ae-form-grid label { display:block; margin-bottom:6px; font-weight:600; }
.ae-form-grid input, .ae-form-grid select, .ae-form-grid textarea, .ae-panel input[type="date"], .ae-panel input[type="time"], .ae-panel input[type="text"], .ae-panel input[type="number"], .ae-panel select, .ae-front-field input, .ae-front-field textarea {
  width:100%; border:1px solid #d1d5db; border-radius:14px; padding:10px 12px; box-sizing:border-box; }
.ae-form-actions { align-self:end; }
.ae-table-wrap { overflow:auto; }
.ae-product-box { margin:1em 0; padding:20px; }
.ae-product-title { margin-top:0; }
.ae-front-text { color:#4b5563; }
.ae-front-field { margin-bottom:14px !important; }
.ae-front-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.ae-session-choice { display:block; padding:12px 14px; border:1px solid #e5e7eb; border-radius:16px; margin-bottom:10px; }
@media (max-width: 1200px) {
  .ae-layout { grid-template-columns:1fr; }
  .ae-stats, .ae-children, .ae-front-grid, .ae-form-grid { grid-template-columns:1fr; }
  .ae-session-top-inner, .ae-header { flex-direction:column; }
  .ae-mini-stats { width:100%; min-width:0; }
}

.ae-children-forms { display:grid; grid-template-columns:repeat(2, minmax(280px,1fr)); gap:16px; margin-top:8px; }
.ae-child-form-card { background:#f9fafb; border:1px solid #e5e7eb; border-radius:20px; padding:18px; }
.ae-child-form-card h4 { margin:0 0 14px; font-size:18px; }
.ae-children-header { margin-top:18px !important; }
.single-product form.cart .quantity { margin-bottom:16px; }
@media (max-width: 768px) { .ae-children-forms { grid-template-columns:1fr; } }

.ae-child-card-clickable { cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ae-child-card-clickable:hover, .ae-child-card-clickable:focus { transform:translateY(-1px); box-shadow:0 8px 20px rgba(17,24,39,.08); border-color:#cbd5e1; outline:none; }
.ae-child-card-clickable .ae-child-top { align-items:center; }
.ae-modal-open { overflow:hidden; }
.ae-modal-backdrop[hidden] { display:none; }
.ae-modal-backdrop { position:fixed; inset:0; background:rgba(17,24,39,.45); display:flex; align-items:center; justify-content:center; padding:24px; z-index:99999; }
.ae-modal-card { width:min(680px, 100%); background:#fff; border-radius:24px; padding:24px; box-shadow:0 24px 64px rgba(17,24,39,.18); position:relative; }
.ae-modal-close { position:absolute; top:14px; right:16px; border:none; background:transparent; font-size:28px; line-height:1; cursor:pointer; color:#6b7280; }
.ae-modal-kicker { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#6b7280; margin-bottom:6px; }
.ae-modal-title { margin:0 0 18px; font-size:28px; color:#111827; }
.ae-modal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.ae-modal-field, .ae-modal-block { background:#f9fafb; border:1px solid #e5e7eb; border-radius:18px; padding:14px 16px; }
.ae-modal-field span, .ae-modal-block span { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#6b7280; margin-bottom:6px; }
.ae-modal-field strong { color:#111827; font-size:15px; }
.ae-modal-block { margin-bottom:12px; }
.ae-modal-block div { color:#374151; white-space:pre-line; }
.ae-modal-actions { display:flex; gap:12px; justify-content:flex-end; margin-top:20px; flex-wrap:wrap; }
@media (max-width: 768px) { .ae-modal-grid { grid-template-columns:1fr; } .ae-modal-card { padding:20px; } }

.ae-children-listing { grid-template-columns:repeat(3, minmax(240px,1fr)); }
.ae-children-listing .ae-child-card { min-height:120px; display:flex; flex-direction:column; justify-content:space-between; }
@media (max-width: 1200px) { .ae-children-listing { grid-template-columns:repeat(2, minmax(240px,1fr)); } }
@media (max-width: 768px) { .ae-children-listing { grid-template-columns:1fr; } }


/* Zinzin frontend */
.ae-zinzin-booking { margin: 1rem 0 2rem; border-radius: 28px; overflow: hidden; background: #e7e2cf; color:#5a584f; }
.ae-zinzin-topbar { background:#c5ddd8; color:#fff; text-align:center; padding:12px; font-size:14px; }
.ae-zinzin-shell { display:grid; grid-template-columns: minmax(0,1fr) 320px; gap:24px; padding:24px; }
.ae-zinzin-main, .ae-zpreview-card, .ae-zinzin-header, .ae-zinzin-card, .ae-znav { }
.ae-zinzin-header, .ae-zinzin-card, .ae-znav, .ae-zpreview-card { background:#fff; border-radius:28px; padding:24px; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.ae-zinzin-brand { color:#df7d59; font-weight:700; font-size:18px; }
.ae-zinzin-title { margin:8px 0 0; font-size:32px; color:#5a584f; }
.ae-zinzin-steps { display:flex; gap:12px; margin:18px 0; }
.ae-zinzin-steps span { width:42px; height:42px; border-radius:999px; background:#fff; display:flex; align-items:center; justify-content:center; color:#9a9388; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.ae-zinzin-steps span.is-active { background:#df7d59; color:#fff; }
.ae-zinzin-steps span.is-done { background:#c5ddd8; color:#fff; }
.ae-zstep { display:none; }
.ae-zstep.is-active { display:block; }
.ae-zstep h4 { margin:0 0 20px; font-size:28px; color:#5a584f; }
.ae-zsessions { display:grid; gap:14px; }
.ae-zsession { display:block; background:#fff; border:1px solid #ebe2d6; border-radius:18px; padding:18px; cursor:pointer; }
.ae-zsession.is-warning .ae-zsession-info { background:#fff0d9; color:#d6921e; }
.ae-zsession input { position:absolute; opacity:0; pointer-events:none; }
.ae-zsession:has(input:checked) { border-color:#df7d59; box-shadow:0 6px 20px rgba(223,125,89,.1); }
.ae-zsession-date { display:block; font-weight:600; color:#5a584f; }
.ae-zsession-time { display:block; color:#8d877d; margin-top:4px; }
.ae-zsession-info { display:inline-flex; margin-top:10px; border-radius:999px; padding:6px 10px; font-size:13px; background:#eaf5f2; color:#6f9f98; }
.ae-zempty { color:#8d877d; }
.ae-zcounter { display:flex; justify-content:center; align-items:center; gap:16px; padding:32px 0 16px; }
.ae-zcounter-btn { width:52px; height:52px; border-radius:18px; border:1px solid #ebe2d6; background:#f7f2ea; color:#df7d59; font-size:32px; line-height:1; }
.ae-zcounter-value { min-width:64px; text-align:center; font-size:32px; font-weight:700; color:#5a584f; }
.ae-zhint { text-align:center; color:#9b9488; }
.ae-zchildren { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.ae-zchild-card { background:#fff; border:1px solid #ebe2d6; border-radius:24px; padding:18px; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.ae-zchild-title { color:#96beb7; font-weight:600; margin-bottom:12px; }
.ae-zchild-card input, .ae-zchild-card textarea { width:100%; margin-bottom:12px; border:1px solid #ebe2d6; background:#fcfaf6; border-radius:16px; padding:12px 14px; outline:none; box-sizing:border-box; }
.ae-zoptional summary { cursor:pointer; color:#8d877d; font-size:14px; margin-bottom:12px; }
.ae-zoptional[open] summary { margin-bottom:12px; }
.ae-zcheck { display:flex; gap:8px; align-items:center; color:#8d877d; font-size:14px; }
.ae-zsummary { background:#fcfaf6; border:1px solid #ebe2d6; border-radius:22px; padding:18px; display:grid; gap:10px; color:#6a685f; }
.ae-zsubmit { display:inline-flex !important; width:100%; justify-content:center; background:#df7d59 !important; color:#fff !important; border:none !important; border-radius:16px !important; padding:14px 18px !important; margin-top:18px !important; }
form.cart .single_add_to_cart_button:not(.ae-zsubmit) { display:none !important; }
.ae-zbacknote { text-align:center; color:#9b9488; font-size:14px; margin-top:12px; }
.ae-znav { display:flex; justify-content:space-between; align-items:center; margin-top:18px; }
.ae-znav-btn { display:inline-flex; align-items:center; justify-content:center; border:none; background:#df7d59; color:#fff; border-radius:18px; padding:12px 20px; font-weight:600; cursor:pointer; }
.ae-znav-btn.is-secondary { background:#fff; border:1px solid #ebe2d6; color:#8d877d; }
.ae-znav-btn[disabled] { opacity:.5; cursor:not-allowed; }
.ae-zpreview-card { overflow:hidden; padding:0; }
.ae-zpreview-illu { position:relative; min-height:280px; background:#c5ddd8; overflow:hidden; }
.ae-zblob { position:absolute; border-radius:999px; opacity:.85; }
.ae-zblob-green { width:180px; height:180px; background:#b7d4cf; left:-20px; bottom:-30px; }
.ae-zblob-coral { width:220px; height:220px; background:#f1cfc8; right:-50px; bottom:-60px; }
.ae-zposter { position:absolute; width:62px; height:62px; border-radius:14px; border:4px solid #fff; box-shadow:0 4px 12px rgba(0,0,0,.08); top:95px; }
.ae-zposter-1 { left:56px; background:#e8f0d8; transform:rotate(-8deg); }
.ae-zposter-2 { left:132px; background:#f6ddcf; transform:rotate(4deg); }
.ae-zposter-3 { left:208px; background:#d9ecf0; transform:rotate(-4deg); }
.ae-zpreview-body { padding:24px; }
.ae-zpreview-title { font-size:26px; color:#df7d59; font-weight:700; margin-bottom:14px; }
.ae-zpreview-item { background:#fff; border:1px solid #ebe2d6; border-radius:18px; padding:12px 14px; margin-bottom:10px; }
.ae-zpreview-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ae-zpreview-meta span { background:#f7f2ea; border-radius:999px; padding:8px 12px; font-size:13px; color:#8d877d; }
@media (max-width: 980px) {
  .ae-zinzin-shell { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .ae-zchildren { grid-template-columns:1fr; }
  .ae-zinzin-shell { padding:16px; }
  .ae-zinzin-title, .ae-zstep h4 { font-size:24px; }
  .ae-znav { gap:12px; flex-direction:column; }
  .ae-znav-btn { width:100%; }
}


/* Custom single product template */
.ae-product-template { max-width: 1200px; margin: 0 auto; padding: 32px 16px 56px; }
.ae-product-template .woocommerce-notices-wrapper { margin-bottom: 18px; }
.ae-product-template form.cart { margin: 0 !important; }
.ae-product-template form.cart > .quantity,
.ae-product-template form.cart > .single_add_to_cart_button:not(.ae-zsubmit) { display: none !important; }
.ae-product-template form.cart .variations_button > .quantity,
.ae-product-template form.cart .variations_button > .single_add_to_cart_button:not(.ae-zsubmit) { display: none !important; }
.ae-product-template .price,
.ae-product-template .product_meta,
.ae-product-template .woocommerce-product-details__short-description,
.ae-product-template .woocommerce-tabs,
.ae-product-template .related.products,
.ae-product-template .upsells.products { display:none !important; }

.ae-zsession-meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:10px; }
.ae-zsession-price { display:inline-flex; border-radius:999px; padding:6px 10px; font-size:13px; background:#fff7f1; color:#df7d59; font-weight:600; }
.ae-zsession.is-full{opacity:.58;background:#f3f0ea;cursor:not-allowed}.ae-zsession.is-full input{cursor:not-allowed}.ae-zsession.is-full .ae-zsession-info{color:#b55d5d;font-weight:700}

/* Front booking child form - required direct fields */
.ae-zphoto-choice{border:1px solid #ebe2d6;background:#fcfaf6;border-radius:16px;padding:12px;margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:#5f5a51;}
.ae-zphoto-title{flex:0 0 100%;font-size:13px;font-weight:800;color:#6a685f;margin-bottom:2px;}
.ae-zphoto-choice label{display:inline-flex;align-items:center;gap:7px;border:1px solid #e8ddcf;background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800;color:#8d877d;cursor:pointer;}
.ae-zphoto-choice input{margin:0;}
