/*
Theme Name: Pardis Virtual
Theme URI: https://pardisproject.com
Description: The Virtual Pardis theme: a lotus map home, five districts (Agora, Live, Work, Play, Explore), Persian design, with styling for BuddyPress and The Events Calendar.
Author: Pardis Developers
Version: 1.5.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: pardis-virtual
*/

:root{
  --bg:#f3ecdc; --panel:#fbf7ee; --panel2:#efe6d2; --ink:#1d2a2c; --muted:#5d6967; --line:#dcd0b8;
  --night:#0c2226;
  --agora:#127f92; --live:#b35a2b; --work:#1f8a6b; --play:#9a6a10; --explore:#557a23;
  --accent:var(--agora);
  --display:"Marcellus", Georgia, serif;
  --body:"Albert Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fa:"Vazirmatn", "Noto Naskh Arabic", Tahoma, sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.5l2.6 4.2 4.8-1.1-1.1 4.8 4.2 2.6-4.2 2.6 1.1 4.8-4.8-1.1L12 22.5l-2.6-4.2-4.8 1.1 1.1-4.8L1.5 12l4.2-2.6-1.1-4.8 4.8 1.1z' fill='none' stroke='%23a28b5b' stroke-width='.7'/%3E%3C/svg%3E");background-size:64px 64px}
img{max-width:100%;height:auto}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--live);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.2;text-wrap:balance}
.fa,[lang="fa"]{font-family:var(--fa)}
.fa{direction:rtl;unicode-bidi:isolate}
.wrap{max-width:72rem;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
.muted{color:var(--muted)}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}

/* Header */
.site-header{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:.65rem}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink)}
.brand img{height:2.2rem;width:auto}
.brand span{font-family:var(--display);font-size:1.2rem}
.brand small{font-family:var(--fa);color:var(--muted);font-size:.95rem}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.main-nav a{display:block;text-decoration:none;color:var(--ink);padding:.4rem .7rem;border:1px solid transparent;font-size:.92rem}
.main-nav a:hover,.main-nav .current-menu-item>a{border-color:var(--line);background:var(--bg)}
.account{display:flex;gap:.5rem;align-items:center;font-size:.9rem}
.btn,.account a.btn,input[type=submit],button.button,.button{display:inline-block;background:var(--accent);color:#fff;border:0;padding:.6rem 1rem;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}

/* Home */
.home-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.5rem,5vw,3.5rem);align-items:center;padding-block:clamp(1.8rem,5vw,3.2rem)}
.home-hero .fa{font-size:1.4rem;color:var(--agora)}
.home-hero h1{font-size:clamp(2.4rem,6vw,3.8rem);line-height:1.05;margin:.2rem 0 .8rem}
.home-hero p{margin:0 0 1rem;color:var(--muted);max-width:32rem}
.legend{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.5rem}
.legend a{display:grid;grid-template-columns:.9rem minmax(0,1fr) auto;gap:.7rem;align-items:center;text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:.6rem .8rem}
.legend a:hover{border-color:var(--muted)}
.legend i{width:.9rem;height:.9rem;transform:rotate(45deg);display:block}
.legend b{font-weight:600}
.legend span{color:var(--muted);font-size:.85rem}
.lotus{min-width:0}
.lotus svg{width:100%;max-width:34rem;height:auto;display:block;margin:0 auto;overflow:visible}
.lotus a .shape{transition:filter .2s ease}
.lotus a:hover .shape,.lotus a:focus .shape{filter:brightness(.95) saturate(1.2)}
.lotus a:focus{outline:none}
.lotus a:focus .shape{stroke-width:4}
.lotus text{font-family:var(--display);fill:var(--ink);pointer-events:none}
.lotus .sub{font-family:var(--fa);font-size:12px;fill:var(--muted)}

.section{padding-block:0 clamp(2rem,5vw,3rem)}
.section h2{font-size:1.5rem;margin:0 0 .9rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.9rem}
.card{background:var(--panel);border:1px solid var(--line);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;min-width:0}
.card .when{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--live)}
.card h3{font-size:1.2rem;margin:0}
.card h3 a{color:var(--ink);text-decoration:none}
.card p{margin:0;font-size:.92rem;color:var(--muted)}

/* District */
.district-head{border-bottom:1px solid var(--line);background:var(--panel)}
.district-head .wrap{padding-block:clamp(1.5rem,4vw,2.4rem);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:end}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.district-head h1{font-size:clamp(2.2rem,6vw,3.4rem);line-height:1.05;margin:.2rem 0 .4rem}
.district-head p{margin:0;color:var(--muted);max-width:38rem}
.district-head .fa{font-size:1.9rem;color:var(--accent)}
.district-body{padding-block:clamp(1.6rem,4vw,2.6rem)}
.district-body .entry{max-width:46rem;margin-bottom:1.6rem}
.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.9rem;margin-bottom:2rem}
.group-card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.4rem}
.group-card h3{margin:0;font-size:1.2rem}
.group-card h3 a{color:var(--ink);text-decoration:none}
.group-card p{margin:0;color:var(--muted);font-size:.92rem;flex:1}
.group-card .meta{font-size:.8rem;color:var(--muted)}
.notice{background:var(--panel2);border:1px solid var(--line);padding:1rem 1.1rem;color:var(--muted)}

/* Generic content */
.content-area{padding-block:clamp(1.6rem,4vw,2.6rem)}
.content-area .entry-title{font-size:clamp(2rem,5vw,2.8rem);margin:0 0 1rem}
.entry-content{max-width:46rem}
.entry-content > *{max-width:100%}

/* Forms */
input[type=text],input[type=email],input[type=password],input[type=url],input[type=search],textarea,select{font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:.55rem .7rem;max-width:100%}

/* BuddyPress */
#buddypress .item-list-tabs ul li a,#buddypress .bp-navs ul li a{font-family:var(--body)}
#buddypress .activity-list>li,.buddypress-wrap .activity-list .activity-item{background:var(--panel);border:1px solid var(--line);padding:1rem;margin-bottom:.8rem}
.buddypress-wrap .bp-navs li.selected a,.buddypress-wrap .bp-navs li.current a{color:var(--accent)}
.buddypress-wrap .item-list .list-wrap,.buddypress-wrap .groups-list li .list-wrap{background:var(--panel);border:1px solid var(--line)}

/* Events Calendar */
.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{background:var(--accent)!important}
.tribe-events .tribe-events-calendar-list__event-title a{font-family:var(--display)}

/* Footer */
.site-footer{border-top:1px solid var(--line);margin-top:2rem}
.site-footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.4rem;font-size:.85rem;color:var(--muted)}
.site-footer a{color:var(--muted)}

@media (max-width:820px){
  .home-hero .wrap{grid-template-columns:minmax(0,1fr)}
  .lotus{order:-1}
}
@media (prefers-reduced-motion:reduce){.lotus a .shape{transition:none}}

/* District tabs (v1.1) */
.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1.2rem}
.tabs button{background:var(--panel);border:1px solid var(--line);padding:.55rem .95rem;font:inherit;font-weight:500;color:var(--ink);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.tabpanel{margin-bottom:2.4rem}
.tabpanel[hidden]{display:none}
.panel-intro{max-width:44rem;color:var(--muted);margin:0 0 1.2rem}
.list{display:grid;gap:.7rem}
.item{background:var(--panel);border:1px solid var(--line);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.2rem}
.item h3{font-size:1.15rem;margin:0}
.item p{margin:0;color:var(--muted);font-size:.92rem}
.item .meta{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.9rem}
.place{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);min-width:0;display:flex;flex-direction:column}
.place .head{padding:1rem 1.1rem .3rem;display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}
.place h3{font-size:1.25rem;margin:0}
.place .city{font-size:.78rem;color:var(--muted);white-space:nowrap}
.place .fa{padding:0 1.1rem;color:var(--accent);font-size:1.1rem}
.place p{margin:.3rem 1.1rem 1.1rem;font-size:.92rem;color:var(--muted)}
.stalls{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.9rem}
.stall{background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.stall .art{height:6.5rem;display:grid;place-items:center;font-family:var(--fa);font-size:2.4rem;color:#fff}
.stall .body{padding:.85rem 1rem 1rem}
.stall h3{font-size:1.1rem;margin:0 0 .2rem}
.stall p{margin:0;font-size:.88rem;color:var(--muted)}
.word{background:var(--panel);border:1px solid var(--line);padding:1rem 1.1rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.word .fa{font-size:2.2rem;color:var(--accent)}
.word b{font-family:var(--display);font-weight:400;font-size:1.3rem}
.word-nav{display:flex;gap:.5rem;margin-top:1rem}
.games{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
.match,.fal{background:var(--panel);border:1px solid var(--line);padding:1.1rem}
.match h3,.fal h3{font-size:1.3rem;margin:0 0 .3rem}
.match .muted,.fal .muted{margin:0}
.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.8rem}
.match-grid button{background:var(--bg);border:1px solid var(--line);padding:.7rem .6rem;min-height:3rem;text-align:center;font:inherit;color:var(--ink);cursor:pointer}
.match-grid button.fa{font-family:var(--fa);font-size:1.25rem}
.match-grid button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.match-grid button.done{opacity:.35;border-style:dashed;cursor:default}
.match .score{margin-top:.8rem;font-size:.9rem;color:var(--muted);min-height:1.5rem}
.fal{background:var(--panel2);text-align:center}
.fal .verse{font-size:1.25rem;line-height:2.1;margin:.8rem 0 .4rem;min-height:4.2rem}
.fal .en{font-family:var(--display);font-size:1.05rem;min-height:3rem;margin:0}
.fal .poet{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:.4rem 0 1rem}
@media (max-width:820px){.games{grid-template-columns:minmax(0,1fr)}}

/* Explore place cards with photos (v1.2) */
.place .place-img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.place h3 a{color:var(--ink);text-decoration:none}
.place h3 a:hover{color:var(--accent)}
.place .more{margin:-.5rem 1.1rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none}

/* Landmark page */
.lm-hero{position:relative;min-height:clamp(20rem,62vh,40rem);display:flex;align-items:flex-end;background:var(--night);overflow:hidden}
.lm-hero.no-photo{min-height:14rem}
.lm-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lm-hero-text{position:relative;width:100%;padding:5rem 0 1.6rem;background:linear-gradient(to top,rgba(8,20,22,.88),rgba(8,20,22,.45) 60%,transparent);color:#fff}
.lm-hero-text .eyebrow{color:#f0d9a8}
.lm-hero-text h1{font-size:clamp(2.6rem,7vw,4.6rem);line-height:1.02;margin:.2rem 0 .3rem;color:#fff}
.lm-hero-text .fa{font-size:clamp(1.4rem,3vw,2rem);color:#f0d9a8}
.lm-back{display:inline-block;margin-bottom:1rem;color:#fff;text-decoration:none;font-size:.9rem;border:1px solid rgba(255,255,255,.45);padding:.3rem .7rem}
.lm-back:hover{background:rgba(255,255,255,.12)}
.lm-credit{font-size:.75rem;color:var(--muted);margin:.5rem auto 0}
.lm-credit a{color:var(--muted)}
.lm-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,20rem);gap:clamp(1.5rem,4vw,3rem);padding-block:clamp(1.6rem,4vw,2.6rem);align-items:start}
.lm-lead{font-family:var(--display);font-size:clamp(1.25rem,2.4vw,1.55rem);line-height:1.45;margin:0 0 1.4rem}
.lm-body{max-width:44rem}
.lm-body h2{font-size:1.6rem;margin:2rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--line)}
.lm-body h2:first-child{margin-top:0}
.lm-body p{margin:0 0 1rem;font-size:1.04rem;line-height:1.75}
.lm-body strong{font-family:var(--display);font-weight:400;font-size:1.12rem;color:var(--accent)}
.lm-side{display:grid;gap:1rem;position:sticky;top:6rem}
.lm-facts,.lm-discuss{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);padding:1.1rem 1.2rem}
.lm-facts h2,.lm-discuss h2{font-size:1.2rem;margin:0 0 .6rem}
.lm-facts dl{margin:0;display:grid;gap:.15rem}
.lm-facts dt{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:.6rem}
.lm-facts dd{margin:0;font-size:.95rem}
.lm-discuss p{margin:0 0 .9rem;color:var(--muted);font-size:.95rem}
.lm-gallery{padding-bottom:2rem}
.lm-gallery h2,.lm-more h2{font-size:1.6rem;margin:0 0 1rem}
.lm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1rem}
.lm-grid figure{margin:0;background:var(--panel);border:1px solid var(--line)}
.lm-grid img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.lm-grid figcaption{padding:.7rem .9rem .8rem;font-size:.92rem;display:grid;gap:.25rem}
.lm-grid small{font-size:.72rem;color:var(--muted)}
.lm-grid small a{color:var(--muted)}
.lm-more{padding-block:1rem 3rem}
.lm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:1rem;margin-bottom:2rem}
.lm-card a{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--night);color:#fff;text-decoration:none}
.lm-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.lm-card a:hover img{transform:scale(1.04)}
.lm-card-text{position:absolute;inset:auto 0 0;padding:2.5rem 1rem 1rem;background:linear-gradient(to top,rgba(8,20,22,.9),transparent);display:grid;gap:.1rem}
.lm-card-text .city{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#f0d9a8}
.lm-card-text b{font-family:var(--display);font-weight:400;font-size:1.4rem;line-height:1.15}
.lm-card-text .fa{color:#f0d9a8;font-size:1rem}
@media (max-width:860px){.lm-layout{grid-template-columns:minmax(0,1fr)}.lm-side{position:static}}
@media (prefers-reduced-motion:reduce){.lm-card img{transition:none}}

/* v1.3: verses, linked items, festival cards */
.lm-body p.verse{font-family:var(--fa);font-size:1.3rem;line-height:2;text-align:center;direction:rtl;margin:1.2rem 0;padding:1rem;background:var(--panel);border-right:3px solid var(--accent)}
.lm-body p.verse em{font-style:normal}
.lm-body a{color:var(--accent)}
.item h3 a{color:var(--ink);text-decoration:none}
.item h3 a:hover{color:var(--accent)}
.item .more,.card .more{font-size:.85rem;font-weight:600;text-decoration:none;margin-top:.3rem}
.item.has-img{display:grid;grid-template-columns:4.5rem minmax(0,1fr);column-gap:1rem}
.item.has-img .item-img{grid-row:1 / span 4;width:4.5rem;height:4.5rem;object-fit:cover}
.item.has-img > :not(.item-img){grid-column:2}
.card .card-img{order:-1;width:calc(100% + 2.2rem);margin:-1rem -1.1rem .5rem;max-width:none;aspect-ratio:16/9;object-fit:cover}
