/*
Theme Name: JAMA Moments
Theme URI: https://moments.jamahq.com
Author: Jamestown Advertising & Marketing Agency
Author URI: https://jamahq.com
Description: Ethereal event photography WordPress theme for JAMA Moments. Aesop-inspired minimalism meets cinematic intimacy. African earth tones, parchment textures, editorial serif typography. Events presented as sacred life ceremonies.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: jamamoments
Tags: light, photography, portfolio, gallery, booking, custom-logo, custom-menu, featured-images
*/

:root{
  --umber:#3B2314;
  --clay:#7B5B3A;
  --desert:#D4BFA0;
  --ivory:#F5F0E8;
  --parchment:#EDE6D8;
  --charcoal:#2A2522;
  --deep:#1A1714;
  --gold-muted:#A08050;
  --olive:#5C6B4A;
  --warm-black:#0F0D0B;
  --text:#8A7E6E;
  --text-light:#B5A998;
  --serif:'EB Garamond',serif;
  --display:'Libre Baskerville',serif;
  --sans:'Karla',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--ivory);color:var(--charcoal);overflow-x:hidden;font-weight:300;}
::selection{background:var(--clay);color:var(--ivory);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}

/* Film grain - very subtle on light bg */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:0.018;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");}

/* ============ NAV ============ */
.moments-nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:24px 56px;display:flex;justify-content:space-between;align-items:center;background:rgba(245,240,232,0.9);backdrop-filter:blur(20px);border-bottom:1px solid rgba(59,35,20,0.06);}
.moments-logo{font-family:var(--serif);font-weight:400;font-size:1.2rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--umber);}
.moments-logo-sub{display:block;font-family:var(--sans);font-size:0.5rem;letter-spacing:0.4em;color:var(--text);font-weight:300;margin-top:2px;}
.moments-menu{display:flex;gap:32px;list-style:none;}
.moments-menu a{font-family:var(--sans);font-size:0.7rem;color:var(--text);text-decoration:none;letter-spacing:0.18em;text-transform:uppercase;font-weight:400;transition:color 0.4s;}
.moments-menu a:hover{color:var(--umber);}
.m-hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px;}
.m-hamburger span{display:block;width:24px;height:1px;background:var(--umber);transition:all 0.3s;}
.mobile-moments-nav{display:none;position:fixed;top:72px;left:0;right:0;background:rgba(245,240,232,0.98);backdrop-filter:blur(20px);border-bottom:1px solid rgba(59,35,20,0.06);padding:24px 56px;z-index:999;}
.mobile-moments-nav.open{display:block;}
.mobile-moments-nav a{display:block;padding:14px 0;font-family:var(--sans);font-size:0.85rem;color:var(--charcoal);letter-spacing:0.12em;text-transform:uppercase;border-bottom:1px solid rgba(59,35,20,0.06);}

/* ============ HERO ============ */
.hero-moments{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;padding:140px 56px 100px;overflow:hidden;}
.hero-moments-bg{position:absolute;inset:0;background:
  radial-gradient(ellipse 80% 60% at 50% 40%,rgba(212,191,160,0.3) 0%,transparent 60%),
  radial-gradient(ellipse 40% 40% at 30% 70%,rgba(160,128,80,0.08) 0%,transparent 50%),
  var(--ivory);}

.hero-moments-content{position:relative;z-index:2;max-width:680px;}
.hero-witness{font-family:var(--sans);font-size:0.6rem;color:var(--gold-muted);letter-spacing:0.5em;text-transform:uppercase;margin-bottom:40px;animation:fadeIn 1.2s ease 0.3s both;}
.hero-moments h1{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,5.5vw,4.2rem);line-height:1.2;color:var(--umber);margin-bottom:28px;animation:fadeIn 1.2s ease 0.6s both;}
.hero-moments h1 em{font-style:italic;color:var(--clay);}
.hero-quote{font-family:var(--serif);font-weight:400;font-size:clamp(1rem,1.8vw,1.2rem);color:var(--text);line-height:1.8;font-style:italic;max-width:480px;margin:0 auto 48px;animation:fadeIn 1.2s ease 0.9s both;}
.hero-cta-moments{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;animation:fadeIn 1.2s ease 1.2s both;}
.btn-moments{padding:14px 44px;border:1px solid var(--umber);color:var(--umber);background:transparent;font-family:var(--sans);font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;transition:all 0.4s;font-weight:400;}
.btn-moments:hover{background:var(--umber);color:var(--ivory);}
.btn-moments-filled{padding:14px 44px;background:var(--umber);color:var(--ivory);border:1px solid var(--umber);font-family:var(--sans);font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;transition:all 0.4s;font-weight:400;}
.btn-moments-filled:hover{background:var(--clay);}

.scroll-hint{position:absolute;bottom:48px;font-family:var(--sans);font-size:0.55rem;color:var(--text);letter-spacing:0.3em;text-transform:uppercase;animation:fadeIn 1.2s ease 1.5s both;}
.scroll-hint::after{content:'';display:block;width:1px;height:36px;background:var(--clay);margin:12px auto 0;animation:scrollDown 2s ease infinite;}
@keyframes scrollDown{0%,100%{opacity:0.3;height:36px;}50%{opacity:0.8;height:48px;}}
@keyframes fadeIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* ============ SECTION UTILITY ============ */
.m-section{padding:clamp(80px,12vh,140px) 56px;}
.m-section-centered{text-align:center;}
.m-label{font-family:var(--sans);font-size:0.58rem;color:var(--gold-muted);letter-spacing:0.45em;text-transform:uppercase;margin-bottom:20px;font-weight:400;}
.m-heading{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.25;color:var(--umber);margin-bottom:20px;}
.m-heading em{font-style:italic;color:var(--clay);}
.m-body{font-family:var(--serif);font-size:1.05rem;color:var(--text);line-height:2;max-width:520px;font-weight:400;}
.m-body-centered{margin:0 auto;}
.m-divider{width:40px;height:1px;background:var(--clay);margin:28px 0;opacity:0.4;}
.m-divider-centered{margin:28px auto;}
.m-philosophy{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--clay);line-height:1.8;max-width:460px;}

/* ============ THE GATHERING (About) ============ */
.gathering-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:64px;max-width:1100px;margin-left:auto;margin-right:auto;}
.gathering-img{aspect-ratio:3/4;overflow:hidden;position:relative;background:var(--desert);}
.gathering-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease;}
.gathering-img:hover img{transform:scale(1.02);}

/* ============ CEREMONIES (Events/Services) ============ */
.ceremonies-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(59,35,20,0.06);margin-top:64px;max-width:1100px;margin-left:auto;margin-right:auto;}
.ceremony-card{background:var(--ivory);padding:56px 48px;transition:all 0.5s;position:relative;overflow:hidden;}
.ceremony-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform 0.6s;}
.ceremony-card:hover::before{transform:scaleX(1);}
.ceremony-card:hover{background:var(--parchment);}
.ceremony-type{font-family:var(--sans);font-size:0.55rem;color:var(--gold-muted);letter-spacing:0.35em;text-transform:uppercase;margin-bottom:16px;font-weight:400;}
.ceremony-card h3{font-family:var(--display);font-weight:400;font-size:1.3rem;color:var(--umber);margin-bottom:12px;}
.ceremony-card p{font-family:var(--serif);color:var(--text);font-size:0.95rem;line-height:1.85;font-weight:400;}

/* ============ THE ARCHIVE (Gallery) ============ */
.archive-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:64px;}
.archive-img{aspect-ratio:1/1;overflow:hidden;position:relative;cursor:pointer;background:var(--desert);}
.archive-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease,filter 0.6s;filter:saturate(0.85);}
.archive-img:hover img{transform:scale(1.04);filter:saturate(1);}
.archive-img-overlay{position:absolute;inset:0;background:rgba(26,23,20,0);transition:background 0.5s;display:flex;align-items:flex-end;padding:20px;}
.archive-img:hover .archive-img-overlay{background:rgba(26,23,20,0.3);}
.archive-img-caption{font-family:var(--sans);font-size:0.6rem;color:rgba(245,240,232,0);letter-spacing:0.2em;text-transform:uppercase;transition:color 0.5s;}
.archive-img:hover .archive-img-caption{color:rgba(245,240,232,0.9);}

/* Placeholders */
.placeholder-img{background:linear-gradient(135deg,var(--desert),var(--parchment));width:100%;height:100%;}

/* ============ TESTIMONIES ============ */
.testimony-section{background:var(--deep);color:var(--desert);padding:clamp(80px,12vh,140px) 56px;}
.testimony-section .m-label{color:var(--gold-muted);}
.testimony-section .m-heading{color:var(--desert);}
.testimony-section .m-heading em{color:var(--gold-muted);}
.testimonies-grid{max-width:800px;margin:48px auto 0;}
.testimony{text-align:center;padding:40px 0;border-bottom:1px solid rgba(212,191,160,0.08);}
.testimony:last-child{border:none;}
.testimony blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1rem,1.8vw,1.2rem);color:var(--desert);line-height:1.9;max-width:560px;margin:0 auto 20px;font-weight:400;}
.testimony cite{font-family:var(--sans);font-style:normal;font-size:0.65rem;color:var(--gold-muted);letter-spacing:0.25em;text-transform:uppercase;font-weight:400;}

/* ============ BOOKING / COMMISSION ============ */
.commission-section{background:var(--parchment);padding:clamp(80px,12vh,140px) 56px;}
.commission-inner{max-width:560px;margin:0 auto;text-align:center;}
.commission-form{display:flex;flex-direction:column;gap:14px;margin-top:40px;text-align:left;}
.cm-input{padding:14px 20px;background:var(--ivory);border:1px solid rgba(59,35,20,0.1);color:var(--charcoal);font-family:var(--sans);font-size:0.88rem;outline:none;transition:border-color 0.4s;font-weight:300;}
.cm-input:focus{border-color:var(--clay);}
.cm-input::placeholder{color:var(--text);}
select.cm-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237B5B3A' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer;}
textarea.cm-input{min-height:120px;resize:vertical;font-family:var(--sans);}
.cm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

/* WP CF7 override for Moments */
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 textarea,.wpcf7 select{padding:14px 20px;background:var(--ivory);border:1px solid rgba(59,35,20,0.1);color:var(--charcoal);font-family:var(--sans);font-size:0.88rem;outline:none;width:100%;font-weight:300;}
.wpcf7 input:focus,.wpcf7 textarea:focus{border-color:var(--clay);}
.wpcf7 input[type="submit"]{padding:14px 44px;background:var(--umber);color:var(--ivory);border:1px solid var(--umber);font-family:var(--sans);font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;width:100%;transition:all 0.4s;font-weight:400;}
.wpcf7 input[type="submit"]:hover{background:var(--clay);}

/* ============ FOOTER ============ */
.moments-footer{padding:48px 56px;border-top:1px solid rgba(59,35,20,0.06);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.moments-footer-brand{font-family:var(--sans);font-size:0.6rem;color:var(--text);letter-spacing:0.12em;}
.moments-footer-quote{font-family:var(--serif);font-style:italic;font-size:0.85rem;color:var(--clay);max-width:300px;text-align:center;}
.moments-footer-links{display:flex;gap:24px;}
.moments-footer-links a{font-family:var(--sans);font-size:0.6rem;color:var(--text);text-decoration:none;letter-spacing:0.12em;transition:color 0.3s;}
.moments-footer-links a:hover{color:var(--umber);}

/* ============ WHATSAPP FLOAT ============ */
.wa-float-moments{position:fixed;bottom:28px;right:28px;z-index:9998;width:52px;height:52px;background:var(--umber);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(59,35,20,0.3);cursor:pointer;transition:all 0.3s;text-decoration:none;}
.wa-float-moments:hover{transform:scale(1.06);background:var(--clay);}
.wa-float-moments svg{width:24px;height:24px;fill:var(--ivory);}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.9s ease,transform 0.9s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ============ RESPONSIVE ============ */
@media(max-width:900px){
  .moments-nav{padding:16px 24px;}
  .moments-menu{display:none;}
  .m-hamburger{display:flex;}
  .m-section,.hero-moments,.commission-section,.testimony-section{padding-left:24px;padding-right:24px;}
  .gathering-grid{grid-template-columns:1fr;gap:40px;}
  .ceremonies-grid{grid-template-columns:1fr;}
  .archive-gallery{grid-template-columns:1fr 1fr;}
  .cm-row{grid-template-columns:1fr;}
  .moments-footer{flex-direction:column;text-align:center;padding:28px 24px;}
  .moments-footer-quote{order:-1;}
  .mobile-moments-nav{padding:24px;}
}

/* ============ SINGLE GALLERY/EVENT ============ */
.single-gallery-event{padding:140px 56px 80px;max-width:900px;margin:0 auto;}
.single-gallery-event .event-meta{font-family:var(--sans);font-size:0.6rem;color:var(--gold-muted);letter-spacing:0.3em;text-transform:uppercase;margin-bottom:16px;}
.single-gallery-event h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1.2;color:var(--umber);margin-bottom:24px;}
.single-gallery-event .featured-img{width:100%;margin-bottom:40px;}
.single-gallery-event .entry-content{font-family:var(--serif);color:var(--text);line-height:2;font-size:1.05rem;}
.single-gallery-event .entry-content p{margin-bottom:18px;}
.single-gallery-event .entry-content h2{font-family:var(--display);color:var(--umber);margin:32px 0 16px;font-weight:400;}
.single-gallery-event .entry-content img{margin:24px 0;}
.event-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;margin:32px 0;}
.event-gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;}

/* Blog */
.moments-blog{padding:140px 56px 80px;}
.moments-blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px;max-width:1100px;margin:48px auto 0;}
.moments-blog-card{background:var(--parchment);overflow:hidden;transition:all 0.4s;}
.moments-blog-card:hover{transform:translateY(-3px);}
.moments-blog-card-thumb{aspect-ratio:16/9;overflow:hidden;}
.moments-blog-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s;filter:saturate(0.85);}
.moments-blog-card:hover .moments-blog-card-thumb img{transform:scale(1.04);filter:saturate(1);}
.moments-blog-card-body{padding:24px;}
.moments-blog-card-meta{font-family:var(--sans);font-size:0.55rem;color:var(--gold-muted);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:10px;}
.moments-blog-card h3{font-family:var(--display);font-weight:400;font-size:1.1rem;color:var(--umber);line-height:1.3;margin-bottom:8px;}
.moments-blog-card h3 a{color:var(--umber);transition:color 0.3s;}
.moments-blog-card h3 a:hover{color:var(--clay);}
.moments-blog-card p{font-family:var(--serif);color:var(--text);font-size:0.88rem;line-height:1.7;}
.read-more-m{font-family:var(--sans);font-size:0.6rem;color:var(--clay);letter-spacing:0.15em;text-transform:uppercase;margin-top:12px;display:inline-block;transition:all 0.3s;}
.read-more-m:hover{transform:translateX(4px);}

/* Single post */
.single-post-moments{padding:140px 56px 80px;max-width:720px;margin:0 auto;}
.single-post-moments .post-meta{font-family:var(--sans);font-size:0.6rem;color:var(--gold-muted);letter-spacing:0.25em;text-transform:uppercase;margin-bottom:16px;}
.single-post-moments h1{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.25;color:var(--umber);margin-bottom:32px;}
.single-post-moments .entry-content{font-family:var(--serif);color:var(--text);line-height:2;font-size:1.05rem;}
.single-post-moments .entry-content p{margin-bottom:18px;}
.single-post-moments .entry-content h2{font-family:var(--display);color:var(--umber);margin:40px 0 16px;font-weight:400;}
.single-post-moments .entry-content blockquote{border-left:2px solid var(--clay);padding:16px 24px;margin:24px 0;font-style:italic;color:var(--umber);}
.single-post-moments .entry-content a{color:var(--clay);text-decoration:underline;}
.single-post-moments .entry-content img{margin:24px 0;}

/* 404 */
.error-404-moments{min-height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:140px 56px;}
.error-404-moments h1{font-family:var(--display);font-size:5rem;color:var(--clay);font-weight:400;opacity:0.3;}
.error-404-moments p{font-family:var(--sans);color:var(--text);font-size:0.8rem;letter-spacing:0.2em;margin:16px 0 32px;}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:48px;}
.pagination a,.pagination span{padding:8px 16px;font-family:var(--sans);font-size:0.7rem;border:1px solid rgba(59,35,20,0.1);color:var(--text);transition:all 0.3s;}
.pagination a:hover{border-color:var(--clay);color:var(--umber);}
.pagination .current{background:var(--umber);color:var(--ivory);border-color:var(--umber);}

/* WP defaults */
.alignleft{float:left;margin-right:1.5em;margin-bottom:1em;}
.alignright{float:right;margin-left:1.5em;margin-bottom:1em;}
.aligncenter{display:block;margin:0 auto 1em;}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute;width:1px;height:1px;overflow:hidden;}

@media(max-width:900px){
  .single-gallery-event,.moments-blog,.single-post-moments{padding-left:24px;padding-right:24px;}
  .moments-blog-grid{grid-template-columns:1fr;}
  .event-gallery-grid{grid-template-columns:1fr;}
}
