/* ==========================================================================
   Arya Samaj Elementor Addon — Frontend Styles
   Brand colors: #f68f1e (saffron/orange), #53c2ba (teal), white, black
   Headings: 'Overlock'  |  Body/buttons: 'Quicksand'
   ========================================================================== */

:root{
	--arya-orange:#f68f1e;
	--arya-teal:#53c2ba;
	--arya-white:#ffffff;
	--arya-black:#111111;
	--arya-radius:14px;
	--arya-shadow:0 10px 30px rgba(0,0,0,.12);
}

.arya-slider-wrap, .arya-gallery-grid, .arya-events-grid,
.arya-event-single-wrap, .arya-event-sidebar{
	font-family:'Quicksand', sans-serif;
}

.arya-slider-wrap h1, .arya-slider-wrap h2, .arya-slider-wrap h3,
.arya-event-single-hero h1, .arya-page-header h1, .arya-event-title, .arya-section-title,
.arya-widget h3{
	font-family:'Overlock', sans-serif;
}

.arya-btn, button, .swiper-button-next, .swiper-button-prev{ font-family:'Quicksand', sans-serif; }

/* ---------------- Buttons ---------------- */
.arya-btn{
	display:inline-block;
	padding:12px 28px;
	background:var(--arya-orange);
	color:var(--arya-white);
	border-radius:50px;
	font-weight:700;
	text-decoration:none;
	letter-spacing:.3px;
	transition:all .35s cubic-bezier(.4,0,.2,1);
	border:2px solid var(--arya-orange);
}
.arya-btn:hover{
	background:var(--arya-teal);
	border-color:var(--arya-teal);
	color:var(--arya-white);
	transform:translateY(-3px);
	box-shadow:0 10px 20px rgba(83,194,186,.35);
}
.arya-btn-outline{
	background:transparent;
	color:var(--arya-orange);
}
.arya-btn-outline:hover{ color:var(--arya-white); }

/* ==========================================================================
   SLIDER
   ========================================================================== */
.arya-slider-wrap{ position:relative; width:100%; overflow:hidden; }
.arya-slider-wrap.arya-slider-rounded{ border-radius:var(--arya-radius); }
.arya-swiper{ height:var(--arya-slider-h, 520px); width:100%; }
.arya-swiper .swiper-slide{ position:relative; overflow:hidden; }
.arya-slide-bg{
	position:absolute; inset:0; z-index:1;
	background-size:cover; background-position:center;
	transform:scale(1);
	backface-visibility:hidden; will-change:transform;
}
.arya-slide-overlay{
	position:absolute; inset:0; z-index:2;
	background:var(--arya-slider-overlay-color,#111);
	opacity:var(--arya-slider-overlay-opacity,.4);
	pointer-events:none;
}

/* ---- Ken Burns background effects (only animate while the slide is active) ---- */
.arya-swiper[data-bg-effect="kenburns-zoom-in"] .swiper-slide-active .arya-slide-bg{ animation:arya-kb-zoom-in 8s ease-out forwards; }
.arya-swiper[data-bg-effect="kenburns-zoom-out"] .swiper-slide-active .arya-slide-bg{ animation:arya-kb-zoom-out 8s ease-out forwards; }
.arya-swiper[data-bg-effect="kenburns-pan-left"] .swiper-slide-active .arya-slide-bg{ animation:arya-kb-pan-left 10s ease-in-out forwards; }
.arya-swiper[data-bg-effect="kenburns-pan-right"] .swiper-slide-active .arya-slide-bg{ animation:arya-kb-pan-right 10s ease-in-out forwards; }
@keyframes arya-kb-zoom-in{ from{ transform:scale(1); } to{ transform:scale(1.18); } }
@keyframes arya-kb-zoom-out{ from{ transform:scale(1.18); } to{ transform:scale(1); } }
@keyframes arya-kb-pan-left{ from{ transform:scale(1.12) translateX(3%); } to{ transform:scale(1.12) translateX(-3%); } }
@keyframes arya-kb-pan-right{ from{ transform:scale(1.12) translateX(-3%); } to{ transform:scale(1.12) translateX(3%); } }

.arya-slide-caption-wrap{
	position:absolute; inset:0; z-index:3;
	display:flex;
	padding:var(--arya-cap-pad, 60px 8% 50px 8%);
	pointer-events:none; /* let clicks pass through the empty parts of the slide */
}
.arya-slide-caption-wrap[data-vpos="top"]{ align-items:flex-start; background:linear-gradient(180deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.15) 60%, transparent 100%); }
.arya-slide-caption-wrap[data-vpos="middle"]{ align-items:center; background:rgba(0,0,0,.32); }
.arya-slide-caption-wrap[data-vpos="bottom"]{ align-items:flex-end; background:linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.15) 60%, transparent 100%); }

.arya-slide-caption-wrap[data-halign="left"]{ justify-content:flex-start; text-align:left; }
.arya-slide-caption-wrap[data-halign="center"]{ justify-content:center; text-align:center; }
.arya-slide-caption-wrap[data-halign="right"]{ justify-content:flex-end; text-align:right; }

.arya-slide-caption{
	pointer-events:auto;
	display:flex; flex-direction:column; gap:var(--arya-cap-gap, 18px);
	color:var(--arya-white);
	max-width:var(--arya-cap-maxw, 900px);
	/* Visible by default. JS only needs to add ".arya-js" (see frontend.js) before this
	   gets hidden pre-animation — so if Swiper's script is ever slow, blocked, or errors
	   out, captions stay readable instead of permanently disappearing. */
	opacity:1;
	/* Optional background box (Slider widget → "Caption Background Box"). Both custom
	   properties default to transparent/0 so, untouched, this changes nothing visually.
	   color-mix() applies the opacity to the background fill only — never to the text —
	   so title/description/button always stay fully readable. */
	background:var(--arya-cap-box-bg, transparent);
	background:color-mix(in srgb, var(--arya-cap-box-bg, transparent) var(--arya-cap-box-bg-opacity, 100%), transparent);
	padding:var(--arya-cap-box-pad, 0);
	border-radius:var(--arya-cap-box-radius, 0);
}
.arya-slide-caption-wrap[data-halign="left"] .arya-slide-caption{ align-items:flex-start; }
.arya-slide-caption-wrap[data-halign="center"] .arya-slide-caption{ align-items:center; }
.arya-slide-caption-wrap[data-halign="right"] .arya-slide-caption{ align-items:flex-end; }
.arya-slide-caption-wrap[data-halign="center"] .arya-slide-caption h2::after{ margin-left:auto; margin-right:auto; }
.arya-slide-caption-wrap[data-halign="right"] .arya-slide-caption h2::after{ margin-left:auto; }

.arya-slide-caption h2{ font-size:clamp(26px,4vw,48px); margin:0; color:var(--arya-white); }
.arya-slide-caption h2::after{ content:''; display:block; width:70px; height:4px; background:var(--arya-orange); margin-top:14px; border-radius:2px; }
.arya-slide-caption p{ font-size:clamp(14px,1.6vw,18px); margin:0; max-width:600px; opacity:.95; }

/* ---- Per-slide text animation variants (each slide picks its own via data-anim) ---- */
.arya-js .arya-slide-caption{ opacity:0; }
.arya-js .swiper-slide-active .arya-slide-caption{ opacity:1; }

.arya-js .arya-slide-caption[data-anim="fade-up"]{ transform:translateY(30px); transition:all .8s cubic-bezier(.22,1,.36,1) .2s; }
.arya-js .swiper-slide-active .arya-slide-caption[data-anim="fade-up"]{ transform:translateY(0); }

.arya-js .arya-slide-caption[data-anim="slide-left"]{ transform:translateX(-60px); transition:all .8s cubic-bezier(.22,1,.36,1) .2s; }
.arya-js .swiper-slide-active .arya-slide-caption[data-anim="slide-left"]{ transform:translateX(0); }

.arya-js .arya-slide-caption[data-anim="slide-right"]{ transform:translateX(60px); transition:all .8s cubic-bezier(.22,1,.36,1) .2s; }
.arya-js .swiper-slide-active .arya-slide-caption[data-anim="slide-right"]{ transform:translateX(0); }

.arya-js .arya-slide-caption[data-anim="zoom-in"]{ transform:scale(.85); transition:all .7s cubic-bezier(.22,1,.36,1) .2s; }
.arya-js .swiper-slide-active .arya-slide-caption[data-anim="zoom-in"]{ transform:scale(1); }

.arya-slide-caption[data-anim="typewriter"]{ transition:opacity .4s ease; }
.arya-slide-title-anim.arya-typing::after{ content:'|'; animation:arya-caret-blink 1s steps(1) infinite; }
@keyframes arya-caret-blink{ 50%{ opacity:0; } }

/* ---- Social icon bar ---- */
.arya-slider-social{
	position:absolute; top:50%; transform:translateY(-50%);
	display:flex; flex-direction:column; gap:14px;
	z-index:20; padding:14px 10px; border-radius:50px;
	background:rgba(0,0,0,.25); backdrop-filter:blur(6px);
}
.arya-slider-social-left{ left:20px; }
.arya-slider-social-right{ right:20px; }
.arya-slider-social a{ color:var(--arya-white); display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; transition:all .3s; }
.arya-slider-social a:hover{ background:var(--arya-orange); transform:scale(1.1); }
@media (max-width:768px){ .arya-slider-social{ display:none; } }

.arya-swiper .swiper-button-next, .arya-swiper .swiper-button-prev{
	background:rgba(255,255,255,.18);
	backdrop-filter:blur(6px);
	width:48px; height:48px; border-radius:50%;
	color:var(--arya-white); transition:all .3s;
	z-index:20;
}
.arya-swiper .swiper-pagination{ z-index:20; }
.arya-swiper .swiper-button-next:after, .arya-swiper .swiper-button-prev:after{ font-size:18px; }
.arya-swiper .swiper-button-next:hover, .arya-swiper .swiper-button-prev:hover{ background:var(--arya-orange); }
.arya-swiper .swiper-pagination-bullet{ background:var(--arya-white); opacity:.6; width:10px; height:10px; }
.arya-swiper .swiper-pagination-bullet-active{ background:var(--arya-orange); opacity:1; width:26px; border-radius:6px; }

@media (max-width:768px){
	.arya-slide-caption-wrap{ padding:30px 6% 30px; }
	.arya-swiper .swiper-button-next, .arya-swiper .swiper-button-prev{ display:none; }
}

/* ---- Custom HTML / Ad (Slider widget → "Custom HTML / Ad" section) ---- */
/* "As a Slide": a plain full-size slide dropped into the normal rotation. */
.arya-slide-ad{ background:var(--arya-white); }
.arya-slide-ad-inner{
	position:absolute; inset:0;
	display:flex; align-items:center; justify-content:center;
	width:100%; height:100%; overflow:hidden;
}
.arya-slide-ad-inner > *{ max-width:100%; }

/* "Floating Box": pinned over one corner, on top of every slide, doesn't affect
   navigation, pagination, autoplay, or any other existing slider behavior. */
.arya-slider-ad-overlay{
	position:absolute; z-index:15;
	width:240px;
	pointer-events:auto;
}
.arya-slider-ad-overlay > *{ max-width:100%; }
.arya-slider-ad-top_left{ top:20px; left:20px; }
.arya-slider-ad-top_right{ top:20px; right:20px; }
.arya-slider-ad-bottom_left{ bottom:20px; left:20px; }
.arya-slider-ad-bottom_right{ bottom:20px; right:20px; }
@media (max-width:600px){
	.arya-slider-ad-overlay{ width:min(200px, 42vw); }
}

/* ==========================================================================
   GALLERY
   ========================================================================== */
.arya-gallery-grid{
	display:grid;
	grid-template-columns:repeat(var(--arya-cols,4),1fr);
	gap:16px;
}
.arya-gallery-item{
	position:relative; display:block; overflow:hidden;
	border-radius:var(--arya-radius);
	aspect-ratio:1/1;
	box-shadow:var(--arya-shadow);
}
.arya-gallery-item img{
	width:100%; height:100%; object-fit:cover; display:block;
	transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.arya-gallery-item:hover img{ transform:scale(1.12) rotate(.5deg); }
.arya-gallery-zoom{
	position:absolute; inset:0;
	display:flex; align-items:center; justify-content:center;
	font-size:32px; color:var(--arya-white);
	background:rgba(83,194,186,0);
	opacity:0; transition:all .4s;
}
.arya-gallery-item:hover .arya-gallery-zoom{ opacity:1; background:rgba(83,194,186,.55); }

@media (max-width:992px){ .arya-gallery-grid{ grid-template-columns:repeat(var(--arya-cols-tablet,3),1fr); } }
@media (max-width:600px){ .arya-gallery-grid{ grid-template-columns:repeat(var(--arya-cols-mobile,2),1fr); gap:10px; } }

/* ==========================================================================
   EVENTS BOXES
   ========================================================================== */
.arya-events-grid{
	display:grid;
	grid-template-columns:repeat(var(--arya-ev-cols,3),1fr);
	gap:28px;
	padding-top:60px;
	padding-bottom:60px;
}

/* ---- Optional sidebar layout for the Events grid widget (Sidebar section → "Add Sidebar") ---- */
.arya-events-page-wrap{
	display:grid; grid-template-columns:1fr 320px; gap:50px;
	align-items:start;
}
.arya-events-page-main .arya-events-grid{ padding-top:0; }
.arya-events-page-sidebar{ padding-top:60px; }
@media (max-width:900px){
	.arya-events-page-wrap{ grid-template-columns:1fr; }
	.arya-events-page-sidebar{ padding-top:0; }
}
.arya-event-box{
	background:var(--arya-white);
	border-radius:var(--arya-ev-radius, var(--arya-radius));
	overflow:hidden;
	transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
	display:flex; flex-direction:column;
	position:relative;
	box-sizing:border-box;
	width:100%;
	max-width:100%;
}
.arya-event-box *{ box-sizing:border-box; }
/* Full-card "stretched link": an invisible link covering the whole box so the
   image, heading, description, date badge, and blank space all navigate to
   the single event page — independent of whether the "Read More" button is
   shown. The title link and button are explicitly raised above it (z-index:2)
   so they remain individually focusable/clickable via their own href (same
   destination), while everything else simply clicks through to this link. */
.arya-event-box-link{ position:absolute; inset:0; z-index:1; }
.arya-event-title a{ position:relative; z-index:2; color:inherit; text-decoration:none; }
.arya-event-title a:hover{ color:var(--arya-orange); }
/* Hover animation: "lift" (default) tilts the whole card up with a bigger shadow;
   "zoom" only scales the image; "none" disables both for a fully static grid. */
.arya-hover-lift .arya-event-box:hover{ transform:translateY(-10px); box-shadow:0 20px 40px rgba(0,0,0,.18); }
.arya-hover-zoom .arya-event-box:hover .arya-event-img img{ transform:scale(1.1); }
.arya-event-img{ position:relative; overflow:hidden; width:100%; aspect-ratio:var(--arya-ev-img-ratio, 16/10); }
.arya-event-img-placeholder{
	width:100%; height:100%;
	display:flex; align-items:center; justify-content:center;
	font-size:48px; color:var(--arya-white);
	background:linear-gradient(135deg, var(--arya-orange), var(--arya-teal));
}
.arya-event-img img{ display:block; width:100%; height:100%; max-width:100%; object-fit:cover; transition:transform .6s; }
.arya-event-body{ width:100%; }
.arya-event-body > *{ max-width:100%; }
.arya-hover-lift .arya-event-box:hover .arya-event-img img{ transform:scale(1.1); }
.arya-event-date-badge{
	position:absolute;
	background:var(--arya-orange); color:var(--arya-white);
	border-radius:10px; padding:8px 12px; text-align:center; line-height:1.1;
	box-shadow:0 6px 14px rgba(246,143,30,.4);
}
.arya-date-pos-top-left{ top:14px; left:14px; }
.arya-date-pos-top-right{ top:14px; right:14px; }
.arya-date-pos-bottom-left{ bottom:14px; left:14px; }
.arya-date-pos-bottom-right{ bottom:14px; right:14px; }
.arya-event-badge-upcoming{ background:var(--arya-teal); box-shadow:0 6px 14px rgba(83,194,186,.4); }
.arya-event-date-badge .u{ display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:2px 1px; }
.arya-event-date-badge .d{ display:block; font-size:20px; font-weight:700; }
.arya-event-date-badge .m{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:1px; }
.arya-event-body{ padding:22px; display:flex; flex-direction:column; flex:1; }
.arya-event-title{ margin:0 0 8px; font-size:21px; color:var(--arya-black); }
.arya-event-location{ color:var(--arya-teal); font-weight:600; font-size:14px; margin:0 0 10px; }
.arya-event-desc{ color:#555; font-size:14.5px; line-height:1.6; margin:0 0 18px; flex:1; }
.arya-event-box .arya-btn{ align-self:flex-start; padding:9px 22px; font-size:14px; position:relative; z-index:2; }

/* ==========================================================================
   EVENTS GRID — Layout Style variants (Card / Horizontal / Overlay)
   ========================================================================== */

/* Layout 2: Horizontal — image on the left, content on the right.
   Follows the widget's "Columns" setting just like the other layouts. */
.arya-event-layout-horizontal .arya-event-box{ flex-direction:row; }
.arya-event-layout-horizontal .arya-event-img{ width:38%; flex-shrink:0; aspect-ratio:unset; }
.arya-event-layout-horizontal .arya-event-body{ justify-content:var(--arya-ev-h-valign,center); }
@media (max-width:700px){
	.arya-event-layout-horizontal .arya-event-box{ flex-direction:column; }
	.arya-event-layout-horizontal .arya-event-img{ width:100%; aspect-ratio:var(--arya-ev-img-ratio, 16/10); }
}

/* Layout 3: Overlay — image fills the box, text sits on top with a gradient scrim */
.arya-event-layout-overlay .arya-event-box{ position:relative; min-height:320px; }
.arya-event-layout-overlay .arya-event-img{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:unset; }
.arya-event-layout-overlay .arya-event-box::after{
	content:""; position:absolute; inset:0;
	background:linear-gradient(to top, rgba(0,0,0,.8) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,0) 100%);
	pointer-events:none;
}
.arya-event-layout-overlay .arya-event-date-badge{ z-index:2; }
.arya-event-layout-overlay .arya-event-body{ position:relative; z-index:2; margin-top:auto; }
.arya-event-layout-overlay .arya-event-title,
.arya-event-layout-overlay .arya-event-desc{ color:var(--arya-white); }
.arya-event-layout-overlay .arya-event-location{ color:var(--arya-white); opacity:.9; }

/* ==========================================================================
   EVENTS GRID — Per-Device Layout override ("Layout Per Device" controls in
   the widget's Grid Layout section). These rules only ever fire when the
   grid carries a data-tablet-layout / data-mobile-layout attribute, which is
   only rendered once an admin explicitly chooses a Tablet/Mobile layout that
   differs from "Same as Desktop" — so leaving those controls untouched keeps
   the exact behavior above with zero change. Each block re-declares the full
   Grid / Horizontal / Overlay ruleset scoped to its own breakpoint so a
   layout chosen for one device never affects another.
   ========================================================================== */
@media (max-width:992px) and (min-width:601px){
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-box{ flex-direction:column; position:static; min-height:0; }
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-box::after{ content:none; }
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-img{ position:static; width:100%; height:auto; aspect-ratio:var(--arya-ev-img-ratio, 16/10); }
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-body{ position:static; margin-top:0; justify-content:flex-start; }
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-title,
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-desc{ color:var(--arya-black); }
	.arya-events-grid[data-tablet-layout="grid"] .arya-event-location{ color:var(--arya-teal); opacity:1; }

	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-box{ flex-direction:row; position:static; min-height:0; }
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-box::after{ content:none; }
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-img{ position:static; width:38%; flex-shrink:0; height:auto; aspect-ratio:unset; }
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-body{ position:static; margin-top:0; justify-content:var(--arya-ev-h-valign,center); }
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-title,
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-desc{ color:var(--arya-black); }
	.arya-events-grid[data-tablet-layout="horizontal"] .arya-event-location{ color:var(--arya-teal); opacity:1; }

	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-box{ position:relative; min-height:320px; flex-direction:column; }
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-img{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:unset; }
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-box::after{
		content:""; position:absolute; inset:0;
		background:linear-gradient(to top, rgba(0,0,0,.8) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,0) 100%);
		pointer-events:none;
	}
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-body{ position:relative; z-index:2; margin-top:auto; justify-content:flex-start; }
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-title,
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-desc{ color:var(--arya-white); }
	.arya-events-grid[data-tablet-layout="overlay"] .arya-event-location{ color:var(--arya-white); opacity:.9; }
}
@media (max-width:600px){
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-box{ flex-direction:column; position:static; min-height:0; }
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-box::after{ content:none; }
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-img{ position:static; width:100%; height:auto; aspect-ratio:var(--arya-ev-img-ratio, 16/10); }
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-body{ position:static; margin-top:0; justify-content:flex-start; }
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-title,
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-desc{ color:var(--arya-black); }
	.arya-events-grid[data-mobile-layout="grid"] .arya-event-location{ color:var(--arya-teal); opacity:1; }

	/* An explicit Mobile → Horizontal choice forces the side-by-side row even on
	   phones (overriding the automatic stack the plain Horizontal layout applies
	   at this width) — only happens when an admin deliberately picks it. */
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-box{ flex-direction:row; position:static; min-height:0; }
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-box::after{ content:none; }
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-img{ position:static; width:38%; flex-shrink:0; height:auto; aspect-ratio:unset; }
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-body{ position:static; margin-top:0; justify-content:var(--arya-ev-h-valign,center); }
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-title,
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-desc{ color:var(--arya-black); }
	.arya-events-grid[data-mobile-layout="horizontal"] .arya-event-location{ color:var(--arya-teal); opacity:1; }

	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-box{ position:relative; min-height:260px; flex-direction:column; }
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-img{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:unset; }
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-box::after{
		content:""; position:absolute; inset:0;
		background:linear-gradient(to top, rgba(0,0,0,.8) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,0) 100%);
		pointer-events:none;
	}
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-body{ position:relative; z-index:2; margin-top:auto; justify-content:flex-start; }
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-title,
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-desc{ color:var(--arya-white); }
	.arya-events-grid[data-mobile-layout="overlay"] .arya-event-location{ color:var(--arya-white); opacity:.9; }
}

/* ---- Custom HTML / Ad block (Events widget → "Custom HTML / Ad" section) ---- */
.arya-events-custom-html{ width:100%; }
.arya-events-custom-html-above{ margin-bottom:28px; }
.arya-events-custom-html-below{ margin-top:28px; }
.arya-event-custom-box{ display:flex; align-items:stretch; }
.arya-event-custom-box > *{ width:100%; }

@media (max-width:992px){ .arya-events-grid{ grid-template-columns:repeat(var(--arya-ev-cols-tablet,2),1fr); } }
@media (max-width:600px){ .arya-events-grid{ grid-template-columns:repeat(var(--arya-ev-cols-mobile,1),1fr); gap:20px; } }

/* ==========================================================================
   SINGLE EVENT PAGE
   ========================================================================== */
/* Still used by the Institutions single template's image hero (unchanged). */
.arya-event-single-hero{ position:relative; width:100%; max-height:480px; overflow:hidden; border-radius:0 0 30px 30px; }
.arya-event-single-hero img{ width:100%; height:480px; object-fit:cover; display:block; }
.arya-event-single-hero-overlay{
	position:absolute; inset:0;
	display:flex; flex-direction:column; justify-content:flex-end;
	padding:50px 6%;
	background:linear-gradient(0deg, rgba(0,0,0,.8) 10%, rgba(0,0,0,.1) 80%);
	color:var(--arya-white);
}
.arya-event-single-hero h1{ font-size:clamp(28px,4vw,46px); margin:0 0 16px; color:var(--arya-white); }

/* New plain heading + breadcrumb header — used by the Events single page,
   the Arya Samaj single page, and (breadcrumb only, no title) prepended
   onto regular blog post content — see Arya_Shortcodes::maybe_inject_blog_breadcrumb(). */
.arya-page-header{
	background:var(--arya-cream, #f7f3ec);
	padding:250px 6% 50px;
	border-bottom:1px solid rgba(0,0,0,.06);
}
@media (max-width:680px){
	.arya-page-header{ padding-top:10px; padding-bottom:10px; }
}
.arya-page-header-blog .arya-breadcrumb{ margin-bottom:0; }
.arya-breadcrumb{ font-size:13.5px; color:#777; margin-bottom:14px; }
.arya-breadcrumb a{ color:#777; text-decoration:none; }
.arya-breadcrumb a:hover{ color:var(--arya-orange); }
.arya-breadcrumb-sep{ margin:0 8px; opacity:.6; }
.arya-breadcrumb-current{ color:var(--arya-black); font-weight:600; }
.arya-page-header h1{ font-size:clamp(26px,4vw,42px); margin:0 0 16px; color:var(--arya-black); }
.arya-event-meta{ display:flex; gap:14px; flex-wrap:wrap; }
.arya-meta-pill{ background:rgba(0,0,0,.06); padding:8px 16px; border-radius:50px; font-weight:600; font-size:14px; color:var(--arya-black); }
.arya-meta-pill-upcoming{ background:var(--arya-teal); color:var(--arya-white); }

.arya-event-single-body{
	display:grid; grid-template-columns:1fr 320px; gap:50px;
	max-width:1200px; margin:50px auto; padding:0 5%;
}
.arya-event-single-banner-wrap{ max-width:1200px; margin:0 auto; padding:0 5%; box-sizing:border-box; }
.arya-event-content{ font-size:16px; line-height:1.8; color:#333; }
.arya-section-title{ margin:40px 0 20px; font-size:26px; color:var(--arya-black); position:relative; padding-left:18px; }
.arya-section-title::before{ content:''; position:absolute; left:0; top:6px; bottom:6px; width:5px; background:var(--arya-teal); border-radius:4px; }
.arya-event-moments-desc{ font-size:15.5px; line-height:1.8; color:#444; margin:0 0 20px; white-space:pre-line; }
.arya-back-btn{ margin-top:36px; }

.arya-event-sidebar{ display:flex; flex-direction:column; gap:24px; }
.arya-widget{ background:#f9f9f9; border-radius:var(--arya-radius); padding:22px; box-shadow:var(--arya-shadow); }
.arya-widget h3{ margin:0 0 16px; font-size:19px; color:var(--arya-black); }
.arya-event-search-form{ display:flex; gap:8px; }
.arya-event-search-form input{ flex:1; padding:10px 14px; border:2px solid #e5e5e5; border-radius:8px; font-family:'Quicksand',sans-serif; }
.arya-event-search-form input:focus{ outline:none; border-color:var(--arya-teal); }
.arya-event-search-form button{ background:var(--arya-teal); border:none; color:var(--arya-white); border-radius:8px; width:44px; cursor:pointer; transition:background .3s; }
.arya-event-search-form button:hover{ background:var(--arya-orange); }

.arya-other-events-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.arya-other-events-list li a{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; }
.arya-other-events-list li img{ width:60px; height:60px; object-fit:cover; border-radius:10px; flex-shrink:0; }
.arya-other-events-list li strong{ display:block; font-size:14.5px; color:var(--arya-black); }
.arya-other-events-list li em{ display:block; font-size:12px; color:var(--arya-teal); font-style:normal; }
.arya-other-events-list li em.arya-upcoming-label{ font-weight:700; }
.arya-other-events-list li a:hover strong{ color:var(--arya-orange); }

@media (max-width:900px){
	.arya-event-single-body{ grid-template-columns:1fr; }
}

/* Fade/slide-in on scroll (progressively enhanced via JS adding .arya-in-view) */
.arya-event-box, .arya-gallery-item, .arya-inst-card, .arya-blog-card{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.arya-event-box.arya-in-view, .arya-gallery-item.arya-in-view, .arya-inst-card.arya-in-view, .arya-blog-card.arya-in-view{ opacity:1; transform:translateY(0); }
.arya-blog-swiper .arya-blog-card{ opacity:1; transform:none; } /* slider cards are already visible via swiper */

/* ==========================================================================
   POPUP BUILDER
   ========================================================================== */
body.arya-popup-locked{ overflow:hidden; }

.arya-popup{ position:fixed; inset:0; z-index:99999; }
.arya-popup-overlay{
	position:absolute; inset:0;
	background:rgba(17,17,17,var(--arya-overlay-opacity,.6));
	opacity:0; transition:opacity .35s ease;
}
.arya-popup.arya-popup-open .arya-popup-overlay{ opacity:1; }

.arya-popup-box{
	position:absolute;
	background:var(--arya-white);
	border-radius:var(--arya-radius);
	box-shadow:0 30px 80px rgba(0,0,0,.35);
	max-height:88vh; overflow:auto;
	padding:36px;
}
.arya-popup-close{
	position:absolute; top:12px; right:12px;
	width:34px; height:34px; border-radius:50%; border:none;
	background:#f2f2f2; color:#333; font-size:20px; line-height:1; cursor:pointer;
	transition:all .25s;
	z-index:2;
}
.arya-popup-close:hover{ background:var(--arya-orange); color:var(--arya-white); transform:rotate(90deg); }

/* position: center modal */
.arya-popup[data-position="center"] .arya-popup-box{
	top:50%; left:50%;
	width:min(90vw, var(--arya-popup-width,500px));
	transform:translate(-50%,-50%) scale(.9);
	opacity:0;
	transition:all .4s cubic-bezier(.22,1,.36,1);
}
.arya-popup[data-position="center"].arya-popup-open .arya-popup-box{ transform:translate(-50%,-50%) scale(1); opacity:1; }

/* position: bottom-right / bottom-left corner card */
.arya-popup[data-position="bottom-right"] .arya-popup-box,
.arya-popup[data-position="bottom-left"] .arya-popup-box{
	bottom:24px; width:min(90vw,360px);
	box-shadow:0 15px 40px rgba(0,0,0,.25);
	transform:translateY(40px); opacity:0;
	transition:all .5s cubic-bezier(.22,1,.36,1);
}
.arya-popup[data-position="bottom-right"] .arya-popup-box{ right:24px; }
.arya-popup[data-position="bottom-left"] .arya-popup-box{ left:24px; }
.arya-popup[data-position="bottom-right"].arya-popup-open .arya-popup-box,
.arya-popup[data-position="bottom-left"].arya-popup-open .arya-popup-box{ transform:translateY(0); opacity:1; }

/* position: top bar */
.arya-popup[data-position="top"] .arya-popup-box{
	top:0; left:0; right:0; width:100%; border-radius:0;
	max-height:none; padding:18px 60px 18px 24px;
	transform:translateY(-100%);
	transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.arya-popup[data-position="top"].arya-popup-open .arya-popup-box{ transform:translateY(0); }

/* animation variants override the base center-modal transform */
.arya-popup[data-animation="fade"][data-position="center"] .arya-popup-box{ transform:translate(-50%,-50%); }
.arya-popup[data-animation="slide-up"][data-position="center"] .arya-popup-box{ transform:translate(-50%,-30%); }
.arya-popup[data-animation="slide-up"][data-position="center"].arya-popup-open .arya-popup-box{ transform:translate(-50%,-50%); }
.arya-popup[data-animation="slide-down"][data-position="center"] .arya-popup-box{ transform:translate(-50%,-70%); }
.arya-popup[data-animation="slide-down"][data-position="center"].arya-popup-open .arya-popup-box{ transform:translate(-50%,-50%); }
.arya-popup[data-animation="bounce"].arya-popup-open .arya-popup-box{ animation:arya-popup-bounce .55s cubic-bezier(.34,1.56,.64,1); }
@keyframes arya-popup-bounce{
	0%{ transform:translate(-50%,-50%) scale(.7); }
	60%{ transform:translate(-50%,-50%) scale(1.05); }
	100%{ transform:translate(-50%,-50%) scale(1); }
}

.arya-popup-content h1, .arya-popup-content h2, .arya-popup-content h3{ font-family:'Overlock', sans-serif; }
.arya-popup-content{ font-family:'Quicksand', sans-serif; }

@media (max-width:600px){
	.arya-popup-box{ padding:26px 20px; }
	.arya-popup[data-position="bottom-right"] .arya-popup-box,
	.arya-popup[data-position="bottom-left"] .arya-popup-box{ left:16px; right:16px; width:auto; }
}

/* ==========================================================================
   INSTITUTIONS GRID
   ========================================================================== */
.arya-institutions-grid{
	display:grid;
	grid-template-columns:repeat(var(--arya-inst-cols,3),1fr);
	gap:28px;
}
.arya-inst-card{
	background:var(--arya-white);
	border-radius:var(--arya-ev-radius, var(--arya-radius));
	overflow:hidden;
	box-shadow:var(--arya-shadow);
	transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
	display:flex; flex-direction:column;
	position:relative;
}
/* Stretched link — makes the whole card (image, heading, blank space) navigate
   to the institution's profile page, same click-through fix as the events grid. */
.arya-inst-card-link{ position:absolute; inset:0; z-index:1; }
.arya-inst-title a{ position:relative; z-index:2; color:inherit; text-decoration:none; }
.arya-inst-title a:hover{ color:var(--arya-orange); }
.arya-inst-card .arya-btn{ position:relative; z-index:2; }
/* Hover animation follows the same "lift / zoom / none" convention as the events
   grid; "lift" is the default so existing pages keep their current look. */
.arya-hover-lift .arya-inst-card:hover{ transform:translateY(-10px); box-shadow:0 20px 40px rgba(0,0,0,.18); }
.arya-hover-zoom .arya-inst-card:hover .arya-inst-img img{ transform:scale(1.1); }
.arya-inst-img{ position:relative; overflow:hidden; aspect-ratio:var(--arya-ev-img-ratio, 16/10); }
.arya-inst-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.arya-hover-lift .arya-inst-card:hover .arya-inst-img img{ transform:scale(1.1); }
.arya-inst-type-badge{
	position:absolute; top:14px; left:14px;
	background:var(--arya-teal); color:var(--arya-white);
	border-radius:50px; padding:6px 14px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
}
.arya-inst-body{ padding:22px; display:flex; flex-direction:column; flex:1; }
.arya-inst-title{ margin:0 0 8px; font-size:20px; color:var(--arya-black); font-family:'Overlock',sans-serif; }
.arya-inst-meta{ font-size:13.5px; color:#666; margin:0 0 6px; }
.arya-inst-card .arya-btn{ align-self:flex-start; margin-top:auto; padding:9px 22px; font-size:14px; }

@media (max-width:992px){ .arya-institutions-grid{ grid-template-columns:repeat(var(--arya-inst-cols-tablet,2),1fr); } }
@media (max-width:600px){ .arya-institutions-grid{ grid-template-columns:repeat(var(--arya-inst-cols-mobile,1),1fr); gap:20px; } }

/* ---- Custom HTML / Ad block (Institutions widget → "Custom HTML / Ad" section) ---- */
.arya-institutions-custom-html{ width:100%; }
.arya-institutions-custom-html-above{ margin-bottom:28px; }
.arya-institutions-custom-html-below{ margin-top:28px; }
.arya-inst-custom-box{ display:flex; align-items:stretch; }
.arya-inst-custom-box > *{ width:100%; }

.arya-inst-contact-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:14px; }
.arya-inst-contact-list a{ color:var(--arya-teal); text-decoration:none; }
.arya-inst-contact-list a:hover{ color:var(--arya-orange); }

/* ---- Contact Details banner — shown right below the heading, before the
   rest of the page/profile content. A horizontal strip on desktop that
   wraps its items onto their own lines on narrower screens; every item is
   its own flex child so nothing gets clipped or squeezed off-screen. ---- */
.arya-inst-contact-banner{
	display:flex; flex-wrap:wrap; align-items:center; gap:14px 32px;
	background:linear-gradient(90deg, rgba(246,143,30,.08), rgba(0,150,136,.08));
	border:1px solid rgba(0,0,0,.06); border-radius:var(--arya-radius);
	padding:18px 24px; margin:0 0 32px;
	box-sizing:border-box; width:100%; max-width:100%;
}
.arya-inst-contact-banner-item{
	display:flex; align-items:center; gap:8px; font-size:14px; color:var(--arya-black);
	min-width:0; max-width:100%; box-sizing:border-box;
}
.arya-inst-contact-banner-item .arya-contact-icon{ font-size:16px; line-height:1; flex-shrink:0; }
.arya-inst-contact-banner-item a{ color:var(--arya-teal); text-decoration:none; overflow-wrap:break-word; word-break:break-word; }
.arya-inst-contact-banner-item a:hover{ color:var(--arya-orange); }
.arya-inst-contact-banner-item span:not(.arya-contact-icon){ overflow-wrap:break-word; word-break:break-word; }
@media (max-width:600px){
	.arya-inst-contact-banner{ flex-direction:column; align-items:flex-start; gap:12px; padding:16px 18px; }
	.arya-inst-contact-banner-item{ width:100%; }
}
.arya-inst-map{ border-radius:var(--arya-radius); overflow:hidden; box-shadow:var(--arya-shadow); }
.arya-inst-map iframe{ width:100%; height:340px; border:0; display:block; }

/* ---- Arya Samaj Events (per-branch, each with its own image/desc/date/location) ---- */
.arya-inst-events-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-bottom:10px; }
.arya-inst-event-card{ background:var(--arya-white); border-radius:var(--arya-radius); overflow:hidden; box-shadow:var(--arya-shadow); }
.arya-inst-event-img{ aspect-ratio:16/10; overflow:hidden; }
.arya-inst-event-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.arya-inst-event-body{ padding:16px 18px; }
.arya-inst-event-desc{ margin:0 0 10px; font-size:14.5px; line-height:1.6; color:#444; }
.arya-inst-event-meta{ display:flex; gap:14px; flex-wrap:wrap; font-size:13px; color:#777; }
@media (max-width:600px){ .arya-inst-events-grid{ grid-template-columns:1fr; } }

/* Hard reset: guarantee border-box sizing inside the members area regardless
   of what the active theme sets globally — this is the #1 cause of a grid
   that looks fine on desktop but overflows/breaks on narrower screens. */
.arya-members-widget, .arya-members-widget *,
.arya-profile-widget .arya-inst-members-grid, .arya-profile-widget .arya-inst-members-grid *,
.arya-profile-widget .arya-inst-members-featured-grid, .arya-profile-widget .arya-inst-members-featured-grid *,
.arya-event-single-main .arya-inst-members-grid, .arya-event-single-main .arya-inst-members-grid *,
.arya-event-single-main .arya-inst-members-featured-grid, .arya-event-single-main .arya-inst-members-featured-grid *{
	box-sizing:border-box !important;
}

/* ---- Members belonging to this Arya Samaj ---- */
.arya-inst-members-grid{ display:grid !important; grid-template-columns:repeat(var(--arya-member-cols,3),minmax(0,1fr)) !important; gap:26px; margin-bottom:6px; width:100%; max-width:100%; }
.arya-inst-member-card{
	position:relative; text-align:center; background:var(--arya-white);
	border-radius:var(--arya-radius); box-shadow:none; border:none;
	padding:30px 20px 24px; overflow:hidden;
	transition:transform .3s ease, box-shadow .3s ease;
	box-sizing:border-box; min-width:0; max-width:100%;
}
.arya-inst-member-card::before{
	content:''; position:absolute; top:0; left:0; right:0; height:5px;
	background:linear-gradient(90deg, var(--arya-members-accent, var(--arya-orange)), var(--arya-teal));
}
.arya-inst-member-img{
	width:100px; height:100px; margin:0 auto 16px; border-radius:50%;
	padding:4px; background:linear-gradient(135deg, var(--arya-members-accent, var(--arya-orange)), var(--arya-teal));
}
.arya-inst-member-img img{
	width:100%; height:100%; object-fit:cover; display:block; border-radius:50%;
	border:3px solid var(--arya-white);
}
.arya-inst-member-img .arya-event-img-placeholder{ width:100%; height:100%; font-size:36px; border-radius:50%; }
.arya-inst-member-img.arya-no-ring{ padding:0; background:none; }
.arya-inst-member-img.arya-no-ring img{ border:none; }
.arya-inst-member-name{ margin:0 0 6px; font-size:18px; color:var(--arya-black); overflow-wrap:break-word; word-break:break-word; }
.arya-inst-member-profession{
	display:inline-block; margin:0 0 12px; padding:3px 14px; border-radius:20px;
	font-size:12.5px; color:var(--arya-white); font-weight:600; letter-spacing:.2px;
	background:linear-gradient(90deg, var(--arya-members-accent, var(--arya-orange)), var(--arya-teal));
	max-width:100%; overflow-wrap:break-word; word-break:break-word;
}
.arya-inst-member-meta{ margin:0 0 10px; font-size:13px; color:#666; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; max-width:100%; }
.arya-inst-member-meta a{ color:inherit; overflow-wrap:break-word; word-break:break-word; }
.arya-inst-member-desc{ margin:0; font-size:13.5px; line-height:1.6; color:#666; overflow-wrap:break-word; word-break:break-word; }
@media (max-width:768px){ .arya-inst-members-grid{ grid-template-columns:repeat(var(--arya-member-cols-tablet,2),minmax(0,1fr)) !important; gap:20px; } }
@media (max-width:480px){
	.arya-inst-members-grid{ grid-template-columns:repeat(var(--arya-member-cols-mobile,2),minmax(0,1fr)) !important; gap:14px; }
	.arya-inst-member-card{ padding:22px 12px 18px; }
	.arya-inst-member-img{ width:76px; height:76px; margin-bottom:10px; }
	.arya-inst-member-name{ font-size:15px; }
	.arya-inst-member-profession{ font-size:11px; padding:3px 10px; }
	.arya-inst-member-desc, .arya-inst-member-meta{ font-size:12px; }
}
/* Below ~360px (small older phones) drop to a single column per row so
   cards never get squeezed narrower than their content can comfortably fit. */
@media (max-width:360px){
	.arya-inst-members-grid{ grid-template-columns:minmax(0,1fr) !important; }
}

/* The default (non-Elementor) single Arya Samaj page keeps its original
   shadow + hover-lift look, scoped to its own wrapper so it doesn't affect
   the Profile/Members widgets (which start with no border/shadow/animation
   until the admin sets them from the Style tab — see the widgets' own
   controls, which bind at a higher specificity than the neutral base
   above and so always take effect there instead). */
.arya-event-single-body .arya-inst-member-card{ box-shadow:var(--arya-shadow); }
.arya-event-single-body .arya-inst-member-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(0,0,0,.16); }

/* Main-category group headings (e.g. "Executive Committee", "General Members")
   — one level above the Sub Category heading below; printed first, larger and
   bolder, whenever members have a "Main Category" set (WP Admin → Arya Samaj →
   Members). Fully backward compatible: if no member uses a Main Category, this
   heading never prints and the layout is unchanged. */
.arya-inst-members-maincat-title{
	display:flex; align-items:center; gap:16px; margin:40px 0 20px;
	font-family:'Overlock', sans-serif; font-size:20px; font-weight:700;
	letter-spacing:.3px; color:var(--arya-black);
	overflow-wrap:break-word; word-break:break-word;
}
.arya-inst-members-maincat-title:first-child{ margin-top:0; }
.arya-inst-members-maincat-title::before,
.arya-inst-members-maincat-title::after{
	content:''; flex:1; height:3px;
	background:linear-gradient(90deg, transparent, var(--arya-members-accent, var(--arya-orange)) 50%, transparent);
}
.arya-inst-members-maincat-title.arya-no-divider-line::before,
.arya-inst-members-maincat-title.arya-no-divider-line::after{ display:none; }
.arya-inst-members-maincat-title .arya-divider-icon{ font-size:17px; line-height:1; }
.arya-inst-members-maincat-title .arya-divider-label{ white-space:normal; text-align:center; }

/* Sub-category group headings (e.g. "Purohit", "Vidwan", "Trustee") */
.arya-inst-members-subgroup-title{
	display:flex; align-items:center; gap:14px; margin:34px 0 18px;
	font-family:'Overlock', sans-serif; font-size:15px; font-weight:700;
	letter-spacing:.5px; text-transform:uppercase; color:var(--arya-members-accent, var(--arya-orange));
}
.arya-inst-members-subgroup-title:first-child{ margin-top:0; }
.arya-inst-members-subgroup-title::before,
.arya-inst-members-subgroup-title::after{
	content:''; flex:1; height:2px;
	background:linear-gradient(90deg, transparent, var(--arya-members-accent, var(--arya-orange)) 50%, transparent);
}
.arya-inst-members-subgroup-title.arya-no-divider-line::before,
.arya-inst-members-subgroup-title.arya-no-divider-line::after{ display:none; }
.arya-inst-members-subgroup-title .arya-divider-icon{ font-size:14px; line-height:1; }
.arya-inst-members-subgroup-title .arya-divider-label{ white-space:nowrap; }

/* ---- Featured / Office-Bearer highlight cards (e.g. Pradhan, Up-Pradhan,
   Mahamantri, Koshadhyaksh) — shown above the members list/grid in BOTH the
   "Table" and "Card Grid" display styles, up to 4 per row, fully responsive. ---- */
.arya-inst-members-featured-grid{
	display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:20px; margin-bottom:34px;
	width:100%; max-width:100%;
}
.arya-inst-member-featured-card{
	position:relative; text-align:center; background:var(--arya-white);
	border:2px solid var(--arya-members-accent, var(--arya-orange));
	border-radius:14px; padding:22px 16px 20px;
	box-sizing:border-box; min-width:0; max-width:100%;
}
.arya-inst-member-featured-photo{
	display:block; width:56px; height:56px; margin:0 auto 10px; border-radius:50%; overflow:hidden;
}
.arya-inst-member-featured-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.arya-inst-member-featured-badge{
	display:inline-block; margin:0 0 12px; padding:4px 16px; border-radius:20px;
	font-size:12.5px; font-weight:700; letter-spacing:.2px; max-width:100%;
	overflow-wrap:break-word; word-break:break-word;
	background:rgba(246,143,30,.14); color:var(--arya-members-accent, var(--arya-orange));
}
.arya-inst-member-featured-name{ margin:0 0 8px; font-size:18px; font-weight:700; color:var(--arya-black); overflow-wrap:break-word; word-break:break-word; }
.arya-inst-member-featured-location{ margin:0 0 10px; font-size:13.5px; color:#666; overflow-wrap:break-word; word-break:break-word; }
.arya-inst-member-featured-phone{ margin:0; font-size:14px; font-weight:700; }
.arya-inst-member-featured-phone a{ color:var(--arya-members-accent, var(--arya-orange)); }
@media (max-width:992px){ .arya-inst-members-featured-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:600px){ .arya-inst-members-featured-grid{ grid-template-columns:minmax(0,1fr) !important; gap:14px; } }

/* ---- Members table layout (Profile & Members widgets — "Table" Display Style) ----
   table-layout:fixed + percentage columns means the table always fits its
   container's width and wraps long text instead of overflowing — no
   horizontal scrolling needed at tablet/desktop sizes. Below 680px it
   switches to a stacked "label: value" card per member instead, which reads
   far better on phones than a squeezed table ever could. */
.arya-inst-members-table-wrap{ width:100%; max-width:100%; overflow-x:auto; margin-bottom:6px; -webkit-overflow-scrolling:touch; }
.arya-inst-members-table{ width:100%; max-width:100%; table-layout:fixed; border-collapse:collapse; font-size:14.5px; }
.arya-inst-members-table th, .arya-inst-members-table td{ overflow-wrap:break-word; word-break:break-word; }
.arya-inst-members-table thead th{
	background:rgba(246,143,30,.15); color:var(--arya-black); font-weight:700; text-align:left;
	padding:14px 18px; white-space:normal;
}
.arya-inst-members-table tbody td{ padding:14px 18px; border-bottom:1px solid rgba(0,0,0,.06); vertical-align:middle; }
.arya-inst-members-table tbody tr:nth-child(even){ background:rgba(246,143,30,.05); }
.arya-inst-members-table tbody a{ color:var(--arya-members-accent, var(--arya-orange)); font-weight:700; text-decoration:none; }
.arya-inst-members-table-photo-col{ width:64px; }
.arya-inst-member-photo-thumb{ display:block; width:44px; height:44px; border-radius:50%; overflow:hidden; }
.arya-inst-member-photo-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Profile (photo) column: narrower left/right padding than the text columns
   (9px vs the 18px every other column keeps) — the round photo thumb doesn't
   need the same breathing room text does, and this keeps the header row's
   "Profile" label snug over its narrow column. Written as element+class
   (th.foo / td.foo) so it wins over the plain ".arya-inst-members-table
   tbody td{padding:14px 18px}" rule above without needing !important. Every
   other column's own padding is untouched, so Position/Name/Location/Mobile
   stay exactly as evenly spaced from each other as before — only the
   Profile column's gutter gets tighter. */
.arya-inst-members-table thead th.arya-inst-members-table-photo-col,
.arya-inst-members-table tbody td.arya-inst-members-table-photo-col{
	padding-left:9px; padding-right:9px;
}

/* Position stays on one line (ellipsis if it's ever too long for the column)
   instead of wrapping to a second line, which made rows uneven height. Full
   text is still available via the cell's title="" attribute on hover.
   Targeted by column class (not nth-child) so this keeps working no matter
   which columns an admin has hidden per category/sub-category — a hidden
   Profile column shifting Position into the 1st child position, for
   example, can never break this rule or the width rules below it. */
.arya-inst-members-table td.arya-inst-members-table-position-col .arya-inst-members-table-value{
	display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%;
}

/* Column widths (fixed layout needs these to know how to share 100%) —
   Profile is the 64px column above; the remaining 4 columns split the rest.
   Class-based (not nth-child) for the same hidden-column-safe reason as
   above — an admin hiding e.g. Profile or Position for a category no longer
   shifts these widths onto the wrong remaining column. */
.arya-inst-members-table th.arya-inst-members-table-position-col, .arya-inst-members-table td.arya-inst-members-table-position-col{ width:24%; } /* Position */
.arya-inst-members-table th.arya-inst-members-table-name-col, .arya-inst-members-table td.arya-inst-members-table-name-col{ width:26%; } /* Name */
.arya-inst-members-table th.arya-inst-members-table-location-col, .arya-inst-members-table td.arya-inst-members-table-location-col{ width:22%; } /* Location */
.arya-inst-members-table th.arya-inst-members-table-mobile-col, .arya-inst-members-table td.arya-inst-members-table-mobile-col{ width:auto; } /* Mobile Number */

/* Large tablets / small laptops — slightly tighter so 5 columns still breathe. */
@media (max-width:992px){
	.arya-inst-members-table{ font-size:13.5px; }
	.arya-inst-members-table thead th, .arya-inst-members-table tbody td{ padding:12px 14px; }
	.arya-inst-members-table thead th.arya-inst-members-table-photo-col,
	.arya-inst-members-table tbody td.arya-inst-members-table-photo-col{ padding-left:7px; padding-right:7px; }
}

/* Tablets in portrait (iPad-class devices ~768–900px): trim further and let
   the Photo column shrink slightly so Name/Position have more room. */
@media (max-width:900px){
	.arya-inst-members-table-photo-col{ width:52px; }
	.arya-inst-member-photo-thumb{ width:38px; height:38px; }
	.arya-inst-members-table thead th, .arya-inst-members-table tbody td{ padding:10px 12px; }
	.arya-inst-members-table thead th.arya-inst-members-table-photo-col,
	.arya-inst-members-table tbody td.arya-inst-members-table-photo-col{ padding-left:6px; padding-right:6px; }
}

/* Phones and small phablets: switch to a stacked "label: value" card per
   member — far more usable than a cramped 5-column table at these widths. */
@media (max-width:680px){
	.arya-inst-members-table thead{ display:none !important; }
	.arya-inst-members-table, .arya-inst-members-table tbody, .arya-inst-members-table tr, .arya-inst-members-table td{ display:block !important; width:100% !important; }
	.arya-inst-members-table tr{
		border:1px solid rgba(0,0,0,.08); border-radius:12px; margin-bottom:14px; padding:6px 0; overflow:hidden;
	}
	.arya-inst-members-table tbody tr:nth-child(even){ background:rgba(246,143,30,.05); }
	.arya-inst-members-table td{
		display:flex !important; align-items:center; justify-content:flex-start !important; gap:12px;
		padding:10px 16px; border-bottom:1px solid rgba(0,0,0,.05); text-align:left !important;
		box-sizing:border-box; max-width:100%;
	}
	.arya-inst-members-table td::before{ content:attr(data-label); font-weight:700; color:#666; text-align:left; flex:0 0 auto; margin-right:10px; min-width:78px; }
	/* The value sits in its own span (not raw text) specifically so this
	   spacing is guaranteed even on older mobile browsers that don't support
	   flexbox `gap` — margin-left never depends on that support. justify-
	   content/text-align above now carry !important too, so this stacked
	   "label: value" card can never render right-aligned again even if a
	   theme or another stylesheet loads after this one. */
	.arya-inst-members-table-value{ flex:1 1 auto; min-width:0; text-align:left !important; margin-left:0; }
	.arya-inst-members-table td.arya-inst-members-table-position-col .arya-inst-members-table-value{
		display:inline; overflow:visible; text-overflow:clip; white-space:normal; /* full Position text is fine to wrap here — it's a card, not a rigid row */
	}
	.arya-inst-members-table td:last-child{ border-bottom:none; }
	/* Profile photo row: left-aligned like every other row, with extra
	   top/bottom breathing room around the circular thumbnail and a
	   slightly larger thumb since a stacked card has more room than a
	   cramped table cell ever did. */
	.arya-inst-members-table-photo-col{ justify-content:flex-start !important; padding-top:16px !important; padding-bottom:16px !important; }
	.arya-inst-members-table-photo-col::before{ display:none; }
	.arya-inst-members-table-photo-col .arya-inst-member-photo-thumb{ width:48px; height:48px; }
	.arya-inst-members-table td:empty{ display:none; }
}

/* Very small / older phones: tighten the stacked card further so long
   Hindi position titles and long phone numbers never force the row wider
   than the screen. */
@media (max-width:380px){
	.arya-inst-members-table td{ padding:9px 12px; font-size:13px; gap:8px; }
	.arya-inst-member-photo-thumb{ width:38px; height:38px; }
}

/* ---- Arya Samaj Festivals widget — same fluid, no-horizontal-scroll table pattern as the Members table ---- */
.arya-festivals-widget{ width:100%; }
.arya-festivals-widget-title{ margin-bottom:18px; }
.arya-festivals-table-wrap{ width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.arya-festivals-table{ width:100%; max-width:100%; table-layout:fixed; border-collapse:collapse; font-size:14.5px; }
.arya-festivals-table th, .arya-festivals-table td{ overflow-wrap:break-word; word-break:break-word; }
.arya-festivals-table thead th{
	background:rgba(246,143,30,.15); color:var(--arya-black); font-weight:700; text-align:left;
	padding:14px 18px; white-space:normal; border-bottom:3px solid var(--arya-festivals-accent, var(--arya-orange));
}
.arya-festivals-table tbody td{ padding:14px 18px; border-bottom:1px solid rgba(0,0,0,.06); vertical-align:middle; }
.arya-festivals-table tbody tr:nth-child(even){ background:rgba(246,143,30,.05); }
.arya-festivals-table-serial-col{ width:64px; text-align:center !important; color:var(--arya-festivals-accent, var(--arya-orange)); font-weight:700; }
.arya-festivals-table th:nth-child(2), .arya-festivals-table td:nth-child(2){ width:34%; } /* Festival Name */
.arya-festivals-table th:nth-child(3), .arya-festivals-table td:nth-child(3){ width:32%; } /* Organization Name */
.arya-festivals-table th:nth-child(4), .arya-festivals-table td:nth-child(4){ width:auto; } /* Organized Date */

@media (max-width:992px){
	.arya-festivals-table{ font-size:13.5px; }
	.arya-festivals-table thead th, .arya-festivals-table tbody td{ padding:12px 14px; }
}

@media (max-width:900px){
	.arya-festivals-table thead th, .arya-festivals-table tbody td{ padding:10px 12px; }
}

/* Phones: stacked "label: value" card per festival, same pattern as the
   Members table — including the same fix: the label (::before) gets an
   explicit margin-right instead of relying only on flexbox `gap`, so there
   is always a visible gap between the "Festival Name" / "Organized Date"
   etc. label and its value, and the value sits in its own span so it can be
   reliably left-aligned next to the label instead of drifting to the far
   right edge of the card. */
@media (max-width:680px){
	.arya-festivals-table thead{ display:none !important; }
	.arya-festivals-table, .arya-festivals-table tbody, .arya-festivals-table tr, .arya-festivals-table td{ display:block !important; width:100% !important; }
	.arya-festivals-table tr{
		border:1px solid rgba(0,0,0,.08); border-radius:12px; margin-bottom:14px; padding:6px 0; overflow:hidden;
	}
	.arya-festivals-table tbody tr:nth-child(even){ background:rgba(246,143,30,.05); }
	.arya-festivals-table td{
		display:flex !important; align-items:center; justify-content:flex-start !important; gap:12px;
		padding:10px 16px; border-bottom:1px solid rgba(0,0,0,.05); text-align:left !important;
		box-sizing:border-box; max-width:100%;
	}
	.arya-festivals-table td::before{ content:attr(data-label); font-weight:700; color:#666; text-align:left; flex:0 0 auto; margin-right:10px; min-width:72px; }
	.arya-festivals-table-value{ flex:1 1 auto; min-width:0; text-align:left !important; margin-left:0; }
	.arya-festivals-table td:last-child{ border-bottom:none; }
	.arya-festivals-table-serial-col{ text-align:left !important; }
}

@media (max-width:380px){
	.arya-festivals-table td{ padding:9px 12px; font-size:13px; gap:8px; }
}

/* ---- Arya Samaj Profile widget (Elementor) — full content of one chosen Arya Samaj, no sidebar ---- */
.arya-profile-widget{ width:100%; }
.arya-profile-title{ margin:0 0 20px; }
.arya-profile-widget-notice{
	background:rgba(0,0,0,.04); border:1px dashed rgba(0,0,0,.15); border-radius:12px;
	padding:16px 20px; font-size:14px; color:#666; margin:0 0 20px;
}

/* ---- Arya Samaj Members widget (Elementor) — members only, spiritual card design ---- */
.arya-members-widget{ width:100%; }
.arya-members-widget-title{ text-align:center; }
.arya-members-widget-notice{
	background:rgba(0,0,0,.04); border:1px dashed rgba(0,0,0,.15); border-radius:12px;
	padding:16px 20px; font-size:14px; color:#666; margin:0;
}

/* "Other Arya Samaj" bottom links — admin-curated name/location/link cards */
.arya-profile-other-grid{
	display:grid;
	grid-template-columns:repeat(var(--arya-other-cols,3),1fr);
	gap:24px; margin-top:10px;
}
.arya-profile-other-card{
	position:relative; text-align:center; background:var(--arya-white);
	border-radius:var(--arya-radius);
	padding:24px 18px; transition:transform .3s ease, box-shadow .3s ease;
	box-shadow:none; border:none;
}
.arya-profile-other-card-link{ position:absolute; inset:0; z-index:1; }
.arya-profile-other-name{ margin:0 0 8px; font-size:17px; color:var(--arya-black); }
.arya-profile-other-location{ margin:0 0 14px; font-size:13.5px; color:#666; }
.arya-profile-other-btn{ position:relative; z-index:2; font-size:13px; padding:9px 22px; }
@media (max-width:992px){ .arya-profile-other-grid{ grid-template-columns:repeat(var(--arya-other-cols-tablet,2),1fr); } }
@media (max-width:600px){ .arya-profile-other-grid{ grid-template-columns:repeat(var(--arya-other-cols-mobile,1),1fr); gap:20px; } }

/* Per-Arya-Samaj Custom HTML block (WP Admin → Arya Samaj → Add New → "Custom HTML") */
.arya-inst-custom-html{ margin-bottom:28px; }

/* ==========================================================================
   PROFESSIONAL BLOG GRID / SLIDER
   ========================================================================== */
.arya-blog-grid{
	display:grid;
	grid-template-columns:repeat(var(--arya-blog-cols,3),1fr);
	gap:28px;
}
.arya-blog-card{
	background:var(--arya-white);
	border-radius:var(--arya-radius);
	overflow:hidden;
	display:flex; flex-direction:column;
	transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s;
}
.arya-blog-style-card .arya-blog-card{ box-shadow:var(--arya-shadow); }
.arya-blog-style-minimal .arya-blog-card{ box-shadow:none; border:1px solid #eee; }
.arya-blog-card:hover{ transform:translateY(-8px); box-shadow:0 20px 40px rgba(0,0,0,.16); }

.arya-blog-thumb{ position:relative; display:block; overflow:hidden; aspect-ratio:16/10; }
.arya-blog-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.arya-blog-card:hover .arya-blog-thumb img{ transform:scale(1.1); }
.arya-blog-date{
	position:absolute; bottom:12px; left:12px;
	background:var(--arya-orange); color:var(--arya-white);
	font-size:12px; font-weight:700; padding:5px 12px; border-radius:50px;
}
.arya-blog-body{ padding:22px; display:flex; flex-direction:column; flex:1; }
.arya-blog-cat{ color:var(--arya-teal); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; margin-bottom:8px; }
.arya-blog-title{ margin:0 0 10px; font-size:19px; font-family:'Overlock',sans-serif; line-height:1.3; }
.arya-blog-title a{ color:var(--arya-black); text-decoration:none; }
.arya-blog-title a:hover{ color:var(--arya-orange); }
.arya-blog-excerpt{ color:#555; font-size:14px; line-height:1.6; margin:0 0 16px; flex:1; }
.arya-blog-readmore{ color:var(--arya-orange); font-weight:700; text-decoration:none; font-size:14px; }
.arya-blog-readmore:hover{ color:var(--arya-teal); }

/* overlay style: text sits on top of the image */
.arya-blog-style-overlay .arya-blog-card{ position:relative; }
.arya-blog-style-overlay .arya-blog-thumb{ aspect-ratio:4/5; }
.arya-blog-style-overlay .arya-blog-body{
	position:absolute; left:0; right:0; bottom:0;
	background:linear-gradient(0deg, rgba(0,0,0,.85) 20%, transparent 100%);
	color:var(--arya-white);
}
.arya-blog-style-overlay .arya-blog-title a{ color:var(--arya-white); }
.arya-blog-style-overlay .arya-blog-excerpt{ color:rgba(255,255,255,.85); }

@media (max-width:992px){ .arya-blog-grid{ grid-template-columns:repeat(var(--arya-blog-cols-tablet,2),1fr); } }
@media (max-width:600px){ .arya-blog-grid{ grid-template-columns:repeat(var(--arya-blog-cols-mobile,1),1fr); gap:20px; } }

.arya-blog-slider-wrap{ position:relative; }
.arya-blog-swiper .swiper-slide{ height:auto; padding:6px; }
.arya-blog-swiper .arya-blog-card{ height:100%; }

/* ==========================================================================
   ADVANCED SEARCH
   ========================================================================== */
.arya-advanced-search{
	position:relative; max-width:640px;
	--arya-search-accent:var(--arya-orange);
	--arya-search-bg:var(--arya-white);
	--arya-search-text:#333;
	--arya-search-radius:50px; /* default for the "pill" layout; layouts below override this */
	--arya-search-shadow:var(--arya-shadow);
}
.arya-advanced-search.arya-search-no-shadow{ --arya-search-shadow:none; }
.arya-search-form{
	display:flex; flex-wrap:wrap; align-items:center; gap:10px;
	background:var(--arya-search-bg);
	color:var(--arya-search-text);
	border-radius:var(--arya-search-radius);
	padding:8px 8px 8px 20px;
	box-shadow:var(--arya-search-shadow);
}
.arya-search-input{
	flex:1; min-width:160px; border:none; outline:none; background:transparent; color:inherit;
	font-family:'Quicksand',sans-serif; font-size:15px; padding:10px 0;
}
.arya-search-filters{ display:flex; flex-wrap:wrap; gap:6px; }
.arya-search-filter-chip{
	display:inline-flex; align-items:center; gap:5px;
	background:#f2f2f2; border-radius:50px; padding:6px 12px;
	font-size:12.5px; cursor:pointer; user-select:none; transition:background .25s;
}
.arya-search-filter-chip input{ accent-color:var(--arya-search-accent); }
.arya-search-filter-chip:hover{ background:color-mix(in srgb, var(--arya-search-accent) 15%, white); }
.arya-search-submit{
	background:var(--arya-search-accent); color:var(--arya-white); border:none;
	border-radius:var(--arya-search-radius); padding:11px 22px; font-weight:700; cursor:pointer;
	font-family:'Quicksand',sans-serif; transition:background .3s, transform .2s;
	white-space:nowrap; display:inline-flex; align-items:center; gap:8px;
}
.arya-search-submit:hover{ filter:brightness(.92); transform:translateY(-1px); }

/* ---- Empty-state messages (Events / Institutions / Blog grids with no content) ---- */
.arya-no-events{ text-align:center; padding:40px 20px 10px; color:#666; font-size:15.5px; }
.arya-no-events-admin-hint{ text-align:center; padding:0 20px 40px; }

/* When the Advanced Search widget/shortcode is dropped into one of the plugin's
   sidebar widget areas (Appearance → Widgets → Event/Institution Single Page
   Sidebar), it already sits inside a styled ".arya-widget" box — so drop its own
   background/shadow/radius here to avoid a "card inside a card" look. */
.arya-widget .arya-search-form{
	background:none;
	box-shadow:none;
	border-radius:0;
	padding-left:0;
	padding-right:0;
}

/* ---- Layout variants (each sets its own default radius/shadow — overridable via the
       admin's "Corner Roundness" and "Drop Shadow" controls, which set the CSS vars above
       with higher specificity through an inline style attribute on .arya-advanced-search) ---- */
.arya-search-layout-pill{ --arya-search-radius:50px; }

.arya-search-layout-boxed{ --arya-search-radius:10px; }
.arya-search-layout-boxed .arya-search-form{ border:2px solid #eee; }

.arya-search-layout-minimal{ --arya-search-radius:0px; }
.arya-search-layout-minimal .arya-search-form{ background:transparent; border-bottom:2px solid #ddd; padding:8px 4px; box-shadow:none !important; }
.arya-search-layout-minimal .arya-search-submit{ background:transparent; color:var(--arya-search-accent); padding:8px 10px; }
.arya-search-layout-minimal .arya-search-submit:hover{ filter:none; color:var(--arya-white); background:var(--arya-search-accent); }

/* ---- Sizes ---- */
.arya-search-size-small .arya-search-input{ font-size:13px; padding:6px 0; }
.arya-search-size-small .arya-search-submit{ padding:8px 16px; font-size:13px; }
.arya-search-size-small .arya-search-form{ padding:5px 5px 5px 14px; }

.arya-search-size-large .arya-search-input{ font-size:18px; padding:14px 0; }
.arya-search-size-large .arya-search-submit{ padding:15px 30px; font-size:16px; }
.arya-search-size-large .arya-search-form{ padding:10px 10px 10px 26px; }

/* ---- Icon-only button (when "Show Text on Search Button" is off) ---- */
.arya-search-submit:not(:has(.arya-search-submit-text)){ padding:11px; width:44px; height:44px; justify-content:center; border-radius:50%; }
.arya-search-layout-minimal .arya-search-submit:not(:has(.arya-search-submit-text)){ border-radius:0; width:auto; height:auto; }

.arya-search-live-results{
	position:absolute; left:0; right:0; top:calc(100% + 8px);
	background:var(--arya-white); border-radius:var(--arya-radius);
	box-shadow:0 20px 50px rgba(0,0,0,.2);
	padding:14px; z-index:50; max-height:400px; overflow:auto;
	transition:opacity .15s;
}
.arya-search-live-results.arya-search-loading{ opacity:.6; }
.arya-live-results-count{ font-size:12px; color:#999; margin:0 0 10px; text-transform:uppercase; letter-spacing:.4px; }
.arya-live-results-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.arya-live-results-list li a{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; padding:6px; border-radius:8px; transition:background .2s; }
.arya-live-results-list li a:hover{ background:#f7f7f7; }
.arya-live-results-list li img{ width:48px; height:48px; object-fit:cover; border-radius:8px; flex-shrink:0; }
.arya-live-results-list li strong{ display:block; font-size:14px; }
.arya-live-results-list li em{ display:block; font-size:11px; color:var(--arya-teal); font-style:normal; text-transform:uppercase; letter-spacing:.4px; }
.arya-live-results-viewall{ display:block; text-align:center; margin-top:12px; color:var(--arya-orange); font-weight:700; text-decoration:none; font-size:13.5px; }
.arya-live-results-empty{ text-align:center; color:#999; font-size:14px; margin:10px 0; }

@media (max-width:480px){
	.arya-search-form{ border-radius:16px; padding:14px; }
	.arya-search-submit{ width:100%; }
}

/* ==========================================================================
   DIVIDER + HEADING WIDGET
   ========================================================================== */
.arya-divider-heading{ font-family:'Quicksand', sans-serif; width:100%; box-sizing:border-box; }
.arya-divider-heading *{ box-sizing:border-box; }
.arya-divider-heading .arya-dh-heading{ font-family:'Overlock', sans-serif; margin:0; line-height:1.25; }
.arya-divider-heading .arya-dh-subheading{ margin:6px 0 0; font-size:15px; line-height:1.6; }

.arya-dh-inner{ display:flex; flex-direction:column; gap:20px; width:100%; }
.arya-dh-row{ display:flex; align-items:center; justify-content:center; gap:20px; width:100%; }
.arya-dh-full-line{ display:flex; align-items:center; justify-content:center; gap:20px; width:100%; }
.arya-dh-heading-wrap{ display:flex; flex-direction:column; flex-shrink:0; max-width:100%; }

.arya-dh-side{ display:inline-flex; align-items:center; gap:10px; flex:1 1 auto; min-width:0; }
.arya-dh-side-left{ flex-direction:row; justify-content:flex-end; }
.arya-dh-side-right{ flex-direction:row-reverse; justify-content:flex-end; }

/* ---- Line: base + style variants ---- */
.arya-dh-line{
	--arya-dh-line-color:#f68f1e;
	display:inline-block;
	border-top-width:2px;
	border-top-color:var(--arya-dh-line-color);
	border-top-style:solid;
	width:80px; max-width:80px;
	flex-shrink:0;
}
.arya-dh-style-dashed .arya-dh-line{ border-top-style:dashed; }
.arya-dh-style-dotted .arya-dh-line{ border-top-style:dotted; }
.arya-dh-style-double .arya-dh-line{ border-top-style:double; }

.arya-dh-style-gradient .arya-dh-line{ border-top:none; height:2px; background-color:transparent; }
.arya-dh-style-gradient .arya-dh-side-left .arya-dh-line,
.arya-dh-style-gradient .arya-dh-full-line .arya-dh-line:first-child{
	background-image:linear-gradient(to left, var(--arya-dh-line-color), transparent);
}
.arya-dh-style-gradient .arya-dh-side-right .arya-dh-line,
.arya-dh-style-gradient .arya-dh-full-line .arya-dh-line:last-child{
	background-image:linear-gradient(to right, var(--arya-dh-line-color), transparent);
}

.arya-dh-style-zigzag .arya-dh-line{
	border-top:none; height:8px;
	background-image:
		linear-gradient(135deg, var(--arya-dh-line-color) 25%, transparent 25%),
		linear-gradient(225deg, var(--arya-dh-line-color) 25%, transparent 25%);
	background-position:0 0, 0 0;
	background-size:14px 14px;
	background-repeat:repeat-x;
}

/* ---- Ornaments (placed at the outer tip of each divider line) ---- */
.arya-dh-ornament{
	display:inline-flex; align-items:center; justify-content:center;
	flex-shrink:0; line-height:1;
	color:var(--arya-teal); background-color:var(--arya-teal);
	width:20px; height:20px; font-size:20px;
}
.arya-dh-ornament-diamond .arya-dh-ornament-shape{ transform:rotate(45deg); width:60%; height:60%; margin:auto; background-color:currentColor; }
.arya-dh-ornament-dot .arya-dh-ornament-shape{ border-radius:50%; width:60%; height:60%; margin:auto; background-color:currentColor; }
.arya-dh-ornament-flower .arya-dh-ornament-shape{ background:none !important; }
.arya-dh-ornament-flower .arya-dh-ornament-shape::before{ content:"\2741"; color:currentColor; line-height:1; }

/* ---- 10 additional ornament presets ---- */
.arya-dh-ornament-square .arya-dh-ornament-shape{ width:55%; height:55%; margin:auto; background-color:currentColor; }
.arya-dh-ornament-ring .arya-dh-ornament-shape{
	width:60%; height:60%; margin:auto; background:none !important;
	border:2px solid currentColor; border-radius:50%;
}
.arya-dh-ornament-triangle .arya-dh-ornament-shape{
	width:0 !important; height:0 !important; margin:auto; background:none !important;
	border-left:0.5em solid transparent;
	border-right:0.5em solid transparent;
	border-bottom:0.9em solid currentColor;
}
.arya-dh-ornament-flame .arya-dh-ornament-shape{
	width:55% !important; height:75% !important; margin:auto; background-color:currentColor !important;
	border-radius:0 50% 50% 50%; transform:rotate(45deg);
}
.arya-dh-ornament-plus .arya-dh-ornament-shape,
.arya-dh-ornament-star .arya-dh-ornament-shape,
.arya-dh-ornament-sparkle .arya-dh-ornament-shape,
.arya-dh-ornament-lotus .arya-dh-ornament-shape,
.arya-dh-ornament-sun .arya-dh-ornament-shape,
.arya-dh-ornament-om .arya-dh-ornament-shape{
	background:none !important;
}
.arya-dh-ornament-plus .arya-dh-ornament-shape::before{ content:"+"; color:currentColor; line-height:1; font-weight:700; }
.arya-dh-ornament-star .arya-dh-ornament-shape::before{ content:"\2605"; color:currentColor; line-height:1; }
.arya-dh-ornament-sparkle .arya-dh-ornament-shape::before{ content:"\2726"; color:currentColor; line-height:1; }
.arya-dh-ornament-lotus .arya-dh-ornament-shape::before{ content:"\2740"; color:currentColor; line-height:1; }
.arya-dh-ornament-sun .arya-dh-ornament-shape::before{ content:"\2600"; color:currentColor; line-height:1; }
.arya-dh-ornament-om .arya-dh-ornament-shape::before{ content:"\0950"; color:currentColor; line-height:1; font-family:'Noto Sans Devanagari', 'Overlock', sans-serif; }
.arya-dh-ornament-icon.arya-dh-ornament i,
.arya-dh-ornament-icon.arya-dh-ornament svg{ width:1em; height:1em; }

/* ---- Position variants ---- */
.arya-dh-pos-left .arya-dh-heading-wrap{ margin-right:auto; }
.arya-dh-pos-right .arya-dh-heading-wrap{ margin-left:auto; }

/* ==========================================================================
   DIVIDER + HEADING — Reveal Animations (played once via IntersectionObserver,
   except the glow-pulse ornament effect which loops gently)
   ========================================================================== */
.arya-divider-heading{ --arya-dh-anim-duration:800ms; --arya-dh-anim-delay:0ms; }

.arya-dh-anim-fade-in .arya-dh-inner{
	opacity:0;
	transition:opacity var(--arya-dh-anim-duration) ease var(--arya-dh-anim-delay);
}
.arya-dh-anim-fade-in.arya-in-view .arya-dh-inner{ opacity:1; }

.arya-dh-anim-slide-up .arya-dh-inner{
	opacity:0; transform:translateY(24px);
	transition:opacity var(--arya-dh-anim-duration) ease var(--arya-dh-anim-delay),
	           transform var(--arya-dh-anim-duration) cubic-bezier(.22,1,.36,1) var(--arya-dh-anim-delay);
}
.arya-dh-anim-slide-up.arya-in-view .arya-dh-inner{ opacity:1; transform:translateY(0); }

.arya-dh-anim-zoom-in .arya-dh-inner{
	opacity:0; transform:scale(.85);
	transition:opacity var(--arya-dh-anim-duration) ease var(--arya-dh-anim-delay),
	           transform var(--arya-dh-anim-duration) cubic-bezier(.22,1,.36,1) var(--arya-dh-anim-delay);
}
.arya-dh-anim-zoom-in.arya-in-view .arya-dh-inner{ opacity:1; transform:scale(1); }

.arya-dh-anim-expand-line .arya-dh-line{
	opacity:0; transform:scaleX(0);
	transition:opacity calc(var(--arya-dh-anim-duration) / 2) ease var(--arya-dh-anim-delay),
	           transform var(--arya-dh-anim-duration) cubic-bezier(.22,1,.36,1) var(--arya-dh-anim-delay);
}
.arya-dh-side-left .arya-dh-line, .arya-dh-full-line .arya-dh-line:first-child{ transform-origin:right center; }
.arya-dh-side-right .arya-dh-line, .arya-dh-full-line .arya-dh-line:last-child{ transform-origin:left center; }
.arya-dh-anim-expand-line.arya-in-view .arya-dh-line{ opacity:1; transform:scaleX(1); }

.arya-dh-anim-glow-pulse .arya-dh-ornament{
	animation:arya-dh-glow var(--arya-dh-anim-duration) ease-in-out var(--arya-dh-anim-delay) infinite;
	animation-play-state:paused;
}
.arya-dh-anim-glow-pulse.arya-in-view .arya-dh-ornament{ animation-play-state:running; }
@keyframes arya-dh-glow{
	0%,100%{ filter:drop-shadow(0 0 0 transparent); opacity:.85; transform:scale(1); }
	50%{ filter:drop-shadow(0 0 10px var(--arya-dh-line-color, #f68f1e)); opacity:1; transform:scale(1.15); }
}

/* ==========================================================================
   ARYA SAMAJ AD WIDGET
   ========================================================================== */
.arya-ad-widget{ width:100%; }
.arya-ad-label{
	font-size:11px; text-transform:uppercase; letter-spacing:1.5px;
	margin-bottom:8px; font-family:'Quicksand',sans-serif; opacity:.8;
}
.arya-ad-widget-inner{ width:100%; }
.arya-ad-widget-inner img{ max-width:100%; height:auto; display:block; }

@media (prefers-reduced-motion:reduce){
	.arya-divider-heading .arya-dh-inner,
	.arya-divider-heading .arya-dh-line,
	.arya-divider-heading .arya-dh-ornament{
		transition:none !important; animation:none !important;
		transform:none !important; opacity:1 !important;
	}
}

/* ==========================================================================
   LANGUAGE TRANSLATOR WIDGET
   (English / Hindi / Sanskrit switcher — drives a hidden Google Translate
   element; only our own markup below is ever visible to visitors)
   ========================================================================== */
.arya-lang-translator{ width:100%; }
.arya-lang-translator.arya-lang-busy{ opacity:.6; pointer-events:none; }

.arya-lang-position-fixed{
	position:fixed !important;
	width:auto !important;
}
.arya-lang-corner-top-left{ top:var(--arya-lang-offset-y,20px); left:var(--arya-lang-offset-x,20px); }
.arya-lang-corner-top-right{ top:var(--arya-lang-offset-y,20px); right:var(--arya-lang-offset-x,20px); }
.arya-lang-corner-bottom-left{ bottom:var(--arya-lang-offset-y,20px); left:var(--arya-lang-offset-x,20px); }
.arya-lang-corner-bottom-right{ bottom:var(--arya-lang-offset-y,20px); right:var(--arya-lang-offset-x,20px); }

.arya-lang-buttons{
	display:flex; flex-wrap:wrap; align-items:center; gap:10px;
}
.arya-lang-item{
	display:inline-flex; align-items:center; gap:6px;
	font-family:'Quicksand',sans-serif; font-size:14px; line-height:1.2;
	padding:8px 16px; border-radius:6px; border:1px solid transparent;
	background:transparent; color:#333; cursor:pointer;
	transition-property:color,background-color,border-color;
	transition-duration:200ms; transition-timing-function:ease;
	text-decoration:none; -webkit-font-smoothing:antialiased;
}
.arya-lang-item.is-active{ font-weight:600; }
.arya-lang-flag{ font-size:1.1em; line-height:1; }

.arya-lang-minimal{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.arya-lang-minimal .arya-lang-item{ padding:2px 4px; border-radius:0; border:none; }
.arya-lang-sep{ opacity:.4; }

.arya-lang-select{
	font-family:'Quicksand',sans-serif; font-size:14px;
	padding:8px 14px; border-radius:6px; border:1px solid #ddd;
	background:#fff; color:#333; cursor:pointer;
	-webkit-appearance:none; -moz-appearance:none; appearance:none;
}

