/* Alumni Manager – public. Everything is scoped to .am-scope; colours come from --am-* variables. */
.am-scope{color:var(--am-text,#333);font-size:16px;line-height:1.55;box-sizing:border-box}
.am-scope{display:block;width:100%;flex:1 1 100%;align-self:stretch}
/* Page builders (Elementor flex containers) shrink widgets to their content – force full width so everything centers. */
.elementor-widget:has(.am-scope),.elementor-widget:has(.am-scope)>.elementor-widget-container,.elementor-widget:has(.am-scope) .elementor-shortcode,.wp-block-shortcode:has(.am-scope){width:100%;max-width:100%;flex:1 1 100%;align-self:stretch}
.am-scope *,.am-scope *::before,.am-scope *::after{box-sizing:inherit}

/* Registration card */
.am-reg{width:100%;max-width:480px;margin:0 auto;background:var(--am-card-bg,#fff);border:1px solid var(--am-card-border,#e5e9f0);border-radius:var(--am-radius,12px);box-shadow:var(--am-shadow,none);padding:28px}
.am-reg [hidden]{display:none!important}
.am-reg h3{margin:0 0 6px;color:var(--am-heading,#003a65);font-size:22px;line-height:1.3}
.am-reg p{margin:0 0 16px}
.am-step>.am-field{max-width:420px;margin-left:auto;margin-right:auto}
.am-reg .am-step{text-align:center}
.am-reg .am-step .am-field{text-align:left}
.am-reg .am-step .am-row{justify-content:center}

/* Fields */
.am-reg .am-field{margin-bottom:16px}
.am-reg label{display:block;font-weight:600;margin-bottom:5px;color:var(--am-heading,#003a65);font-size:14px}
.am-reg input[type=text],.am-reg input[type=email],.am-reg input[type=tel],.am-reg input[type=url],.am-reg input[type=number],.am-reg select,.am-reg textarea{width:100%;padding:11px 13px;border:1px solid var(--am-card-border,#cfd6e0);border-radius:8px;background:#fff;color:var(--am-text,#333);font:inherit;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.am-reg input:focus,.am-reg select:focus,.am-reg textarea:focus{outline:0;border-color:var(--am-primary,#003a65);box-shadow:0 0 0 3px rgba(0,58,101,.15)}
.am-reg .am-otp{font-size:24px;letter-spacing:.35em;text-align:center;max-width:260px}
.am-req{color:#d63638}
.am-error{display:block;color:#b32d2e;font-size:13px;margin-top:4px;min-height:0}
.am-field.has-error input,.am-field.has-error select,.am-field.has-error textarea{border-color:#d63638}
.am-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Layout */
.am-group{border:0;padding:0;margin:0 0 8px}
.am-group legend{padding:0 0 8px;margin:6px 0 12px;width:100%;border-bottom:2px solid var(--am-accent,#fdc72f);color:var(--am-heading,#003a65);font-weight:700;font-size:16px}
.am-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.am-field--full{grid-column:1/-1}
.am-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.am-verified{font-size:14px;color:var(--am-muted,#6b7280)}

/* Photo */
.am-photo-input{display:flex;gap:14px;align-items:center}
.am-photo-preview{flex:none;width:84px;height:84px;border-radius:var(--am-photo-radius,50%);background:#eef1f5 center/cover no-repeat;border:1px solid var(--am-card-border,#e5e9f0)}
.am-photo-input small{display:block;color:var(--am-muted,#6b7280);margin-top:4px}

/* Consent */
.am-consent label{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:var(--am-text,#333)}
.am-consent input{margin-top:5px;flex:none}

/* Buttons */
.am-btn{display:inline-block;cursor:pointer;border:2px solid var(--am-btn-bg,#003a65);background:var(--am-btn-bg,#003a65);color:var(--am-btn-text,#fff);padding:12px 26px;border-radius:8px;font:inherit;font-weight:600;line-height:1.2;transition:all .25s ease}
.am-btn:hover:not(:disabled),.am-btn:focus-visible{background:var(--am-btn-hover-bg,#fdc72f);border-color:var(--am-btn-hover-bg,#fdc72f);color:var(--am-btn-hover-text,#003a65)}
.am-btn:disabled{opacity:.6;cursor:not-allowed}
.am-link{background:none;border:0;padding:0;cursor:pointer;color:var(--am-primary,#003a65);font:inherit;text-decoration:underline}
.am-link:hover:not(:disabled){color:var(--am-link-hover,#b58900)}
.am-link:disabled{opacity:.55;cursor:default;text-decoration:none}
.am-captcha{margin:6px 0 18px}

/* Messages */
.am-alert,.am-notice,.am-banner{padding:12px 16px;border-radius:8px;margin-bottom:18px;font-size:15px}
.am-alert--error{background:#fdeaea;color:#8a1f20;border:1px solid #f3c1c2}
.am-alert--success,.am-alert--info,.am-notice--info{background:#eaf2fb;color:var(--am-heading,#003a65);border:1px solid #c9dcf0}
.am-banner{background:#fff6dc;color:#6b4e00;border:1px solid #f4dc99}
.am-done{text-align:center;padding:18px 0}
.am-done__icon{width:64px;height:64px;line-height:64px;margin:0 auto 14px;border-radius:50%;background:var(--am-accent,#fdc72f);color:var(--am-primary,#003a65);font-size:32px;font-weight:700}
.am-done p{font-size:18px;color:var(--am-heading,#003a65);margin:0}

@media (max-width:640px){
	.am-reg{padding:18px;border-radius:calc(var(--am-radius,12px) * .75)}
	.am-grid{grid-template-columns:1fr}
	.am-btn{width:100%;text-align:center}
	.am-row .am-link{width:auto}
}
@media (prefers-reduced-motion:reduce){.am-scope *{transition:none!important}}

/* Photo crop dialog */
.am-photo-adjust{display:block;margin-top:6px;font-size:14px}
.am-crop{position:fixed;inset:0;z-index:99999;background:rgba(0,20,40,.65);display:flex;align-items:center;justify-content:center;padding:16px}
.am-crop[hidden]{display:none!important}
.am-crop__box{background:var(--am-card-bg,#fff);border-radius:var(--am-radius,12px);padding:22px;max-width:380px;width:100%;max-height:100%;overflow:auto;text-align:center}
.am-crop__box h4{margin:0 0 6px;color:var(--am-heading,#003a65);font-size:20px}
.am-crop__box p{font-size:14px;color:var(--am-muted,#6b7280);margin:0 0 14px}
.am-crop__stage{width:100%;max-width:320px;margin:0 auto 14px;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#eef1f5}
.am-crop__stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.am-crop__stage canvas:active{cursor:grabbing}
.am-crop__zoom{display:flex;align-items:center;gap:10px;max-width:320px;margin:0 auto 16px;font-size:20px;color:var(--am-heading,#003a65)}
.am-crop__zoom input{flex:1;accent-color:var(--am-primary,#003a65)}
.am-crop .am-row{justify-content:center}

/* Hide steps while a saved session is being restored (prevents a flash of the email step) */
.am-reg.is-restoring .am-step{display:none!important}

/* ===================== Wall of Fame / Slider (Phase 3) ===================== */
.am-wall,.am-slider{--am-gap:20px;width:100%;box-sizing:border-box;max-width:1280px;margin:0 auto;padding:8px 0}
.am-head{text-align:center;margin:0 auto 28px;max-width:760px}
.am-head__title{margin:0 0 8px;color:var(--am-heading,#003a65);font-size:clamp(26px,4vw,38px);line-height:1.2}
.am-head__title::after{content:"";display:block;width:64px;height:4px;border-radius:2px;background:var(--am-accent,#fdc72f);margin:12px auto 0}
.am-head__sub{margin:12px 0 0;color:var(--am-muted,#6b7280);font-size:17px}

/* Cards */
.am-card{margin:0;list-style:none;height:100%}
.am-card__link{display:flex;flex-direction:column;align-items:center;gap:14px;height:100%;padding:24px 18px 22px;text-align:center;text-decoration:none!important;color:var(--am-text,#333);background:var(--am-card-bg,#fff);border:1px solid var(--am-card-border,#e5e9f0);border-radius:var(--am-radius,12px);box-shadow:var(--am-shadow,none);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
a.am-card__link:hover,a.am-card__link:focus-visible{transform:translateY(-4px);border-color:var(--am-accent,#fdc72f);box-shadow:0 10px 26px rgba(0,0,0,.12)}
a.am-card__link:focus-visible{outline:2px solid var(--am-primary,#003a65);outline-offset:2px}
a.am-card__link:hover .am-card__name{color:var(--am-link-hover,#b58900)}
.am-card__photo{display:block;width:132px;height:132px;max-width:100%;border-radius:var(--am-photo-radius,50%);overflow:hidden;background:#eef1f5;border:3px solid var(--am-accent,#fdc72f);flex:none}
.am-card__img{display:block;width:100%!important;height:100%!important;object-fit:cover;margin:0!important;max-width:none!important}
.am-card__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:46px;font-weight:700;color:var(--am-primary,#003a65);background:linear-gradient(135deg,#eef3f9,#dbe6f2)}
.am-card__body{display:flex;flex-direction:column;gap:4px;min-width:0;width:100%}
.am-card__name{display:block;color:var(--am-heading,#003a65);font-size:18px;line-height:1.3;transition:color .25s ease;overflow-wrap:anywhere}
.am-card__role{display:block;font-size:14px;font-weight:600;color:var(--am-text,#333);overflow-wrap:anywhere}
.am-card__edu{display:block;font-size:13px;color:var(--am-muted,#6b7280)}
.am-card__loc{display:block;font-size:13px;color:var(--am-muted,#6b7280)}
.am-card__loc::before{content:"📍 ";font-size:12px}

/* Wall grid */
.am-grid-cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--am-gap);grid-template-columns:repeat(var(--am-cols-d,4),minmax(0,1fr))}
@media (max-width:1024px){.am-grid-cards{grid-template-columns:repeat(var(--am-cols-t,2),minmax(0,1fr))}}
@media (max-width:640px){.am-grid-cards{grid-template-columns:repeat(var(--am-cols-m,1),minmax(0,1fr))}}
.am-empty-state{text-align:center;color:var(--am-muted,#6b7280);padding:30px 0}

/* Filters */
.am-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:0 0 26px}
.am-filters input[type=search],.am-filters select{flex:1 1 220px;max-width:340px;padding:11px 13px;border:1px solid var(--am-card-border,#cfd6e0);border-radius:8px;background:#fff;color:var(--am-text,#333);font:inherit}
.am-filters input:focus,.am-filters select:focus{outline:0;border-color:var(--am-primary,#003a65);box-shadow:0 0 0 3px rgba(0,58,101,.15)}

/* Pagination */
.am-pager{margin-top:30px;text-align:center}
.am-pager .page-numbers{display:inline-block;min-width:40px;padding:8px 12px;margin:0 3px 6px;border:1px solid var(--am-card-border,#cfd6e0);border-radius:8px;color:var(--am-primary,#003a65);text-decoration:none;background:#fff;transition:all .25s ease}
.am-pager a.page-numbers:hover{background:var(--am-accent,#fdc72f);border-color:var(--am-accent,#fdc72f)}
.am-pager .page-numbers.current{background:var(--am-primary,#003a65);border-color:var(--am-primary,#003a65);color:#fff}

/* Slider */
.am-slider{--am-sv:var(--am-sd,4)}
@media (max-width:1024px){.am-slider{--am-sv:var(--am-st,2)}}
@media (max-width:640px){.am-slider{--am-sv:var(--am-sm,1)}}
.am-slider__viewport{position:relative}
.am-slider__track{display:flex;gap:var(--am-gap);margin:0;padding:6px 2px 14px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.am-slider__track::-webkit-scrollbar{display:none}
.am-slider__track:focus-visible{outline:2px solid var(--am-primary,#003a65);outline-offset:2px;border-radius:6px}
.am-slide{flex:0 0 clamp(180px,calc((100% - (var(--am-sv) - 1) * var(--am-gap)) / var(--am-sv)),230px);scroll-snap-align:start;margin:0;list-style:none;min-width:0}
.am-slider__nav{position:absolute;top:50%;transform:translateY(-60%);z-index:2;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;background:var(--am-primary,#003a65);color:#fff;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:all .25s ease;padding:0}
.am-slider__nav:hover,.am-slider__nav:focus-visible{background:var(--am-accent,#fdc72f);color:var(--am-primary,#003a65)}
.am-slider__nav--prev{left:-8px}.am-slider__nav--next{right:-8px}
.am-slider.is-static .am-slider__nav,.am-slider.is-static .am-slider__dots{display:none}
.am-slider.is-static .am-slider__track{justify-content:center}
.am-slider__dots{display:flex;gap:8px;justify-content:center;margin:4px 0 6px}
.am-slider__dot{width:10px;height:10px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--am-card-border,#cfd6e0);transition:all .25s ease}
.am-slider__dot.is-active{background:var(--am-primary,#003a65);transform:scale(1.25)}
.am-slider__more{text-align:center;margin:18px 0 0}
.am-slider__more .am-btn{text-decoration:none}
@media (max-width:640px){.am-slider__nav{width:36px;height:36px;font-size:22px}.am-slider__nav--prev{left:2px}.am-slider__nav--next{right:2px}.am-card__photo{width:112px;height:112px}}
@media (prefers-reduced-motion:reduce){a.am-card__link:hover{transform:none}}
.am-reg .am-step[data-step=form]{text-align:left}

/* Narrow card for email / code / thank-you steps; wider only for the details form. */
.am-reg:has(.am-step[data-step=form]:not([hidden])){max-width:700px}
.am-reg .am-step[data-step=email] label,.am-reg .am-step[data-step=otp] label{text-align:center}
.am-reg .am-step>.am-field{max-width:100%}
.am-reg .am-otp{display:block;margin-left:auto;margin-right:auto}
.am-reg .am-done{text-align:center}
