/*
Theme Name: Abraham Samuel Photography
Theme URI: https://abhipixels.com
Author: Abraham Samuel
Description: A minimal, clean photography portfolio theme styled after auditya.com. Features portfolio categories (Travel, People, Animals, Phone, Architecture), blog, about, and contact pages. Auto-imports demo content on activation.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: abraham-samuel
*/

/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{background:#fff;color:#111;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#111;text-decoration:none;transition:opacity .2s}
a:hover{opacity:.55}
img{display:block;max-width:100%;height:auto}
ul,ol{list-style:none}
h1,h2,h3,h4,h5{font-weight:400;line-height:1.3;letter-spacing:.01em}
p{margin-bottom:1em}
hr{border:none;border-top:1px solid #ddd;margin:3rem 0}

/* ─── LAYOUT ─── */
.site-wrap{max-width:1200px;margin:0 auto;padding:0 30px}
.page-pad{padding-top:100px}

/* ─── NAVIGATION ─── */
#site-header{
  position:fixed;top:0;left:0;right:0;z-index:900;
  height:60px;background:#fff;
  border-bottom:1px solid transparent;
  transition:border-color .3s, box-shadow .3s;
}
#site-header.scrolled{border-color:#e8e8e8;box-shadow:0 1px 8px rgba(0,0,0,.04)}

.nav-wrap{
  max-width:1200px;margin:0 auto;padding:0 30px;
  height:60px;display:flex;align-items:center;justify-content:space-between;
}

/* Logo */
.site-logo a{
  font-family:Georgia,'Times New Roman',serif;
  font-size:18px;font-style:italic;letter-spacing:.02em;
  color:#111;font-weight:400;
}

/* Primary nav */
.primary-nav{display:flex;align-items:center;gap:0}
.primary-nav>li{position:relative}
.primary-nav>li>a{
  display:block;padding:0 14px;height:60px;line-height:60px;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:#555;font-weight:400;white-space:nowrap;
}
.primary-nav>li>a:hover{color:#111;opacity:1}
.primary-nav>li.current-menu-item>a,
.primary-nav>li.current-menu-parent>a{color:#111}

/* Dropdown */
.has-dropdown{position:relative}
.dropdown-menu{
  position:absolute;top:100%;left:0;
  background:#fff;border:1px solid #e8e8e8;
  min-width:160px;padding:8px 0;
  opacity:0;pointer-events:none;
  transform:translateY(-4px);
  transition:opacity .2s,transform .2s;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
  z-index:100;
}
.has-dropdown:hover .dropdown-menu{opacity:1;pointer-events:all;transform:translateY(0)}
.dropdown-menu li a{
  display:block;padding:8px 20px;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:#555;transition:background .15s,color .15s;
}
.dropdown-menu li a:hover{background:#f9f9f9;color:#111;opacity:1}

/* Mobile nav toggle */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:30px;height:30px;background:none;border:none;cursor:pointer;padding:0;
}
.nav-toggle span{display:block;width:22px;height:1.5px;background:#111;transition:all .3s}

/* ─── MOBILE NAV OPEN ─── */
@media(max-width:768px){
  .nav-toggle{display:flex}
  .primary-nav{
    display:none;position:fixed;
    top:60px;left:0;right:0;bottom:0;
    background:#fff;flex-direction:column;align-items:flex-start;
    padding:30px;overflow-y:auto;gap:0;
    border-top:1px solid #e8e8e8;
  }
  .primary-nav.open{display:flex}
  .primary-nav>li>a{height:auto;line-height:1;padding:14px 0;font-size:13px}
  .dropdown-menu{
    position:static;border:none;box-shadow:none;opacity:1;pointer-events:all;
    transform:none;padding:0 0 0 16px;background:transparent;
    display:none;
  }
  .has-dropdown.open .dropdown-menu{display:block}
  .dropdown-menu li a{padding:10px 0;font-size:12px}
}

/* ─── HERO ─── */
.hero{
  position:relative;width:100%;height:100vh;min-height:500px;
  overflow:hidden;background:#f0f0f0;
}
.hero-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 12s ease;transform:scale(1.04);
}
.hero.loaded .hero-img{transform:scale(1)}

/* CSS art placeholder when no image uploaded */
.hero-placeholder{
  position:absolute;inset:0;
  background:linear-gradient(135deg,#e8e0d0 0%,#c8c0b0 40%,#a8a090 70%,#888070 100%);
}
.hero-placeholder::after{
  content:'';position:absolute;
  width:60%;height:50%;top:25%;left:20%;
  background:rgba(255,255,255,.12);filter:blur(60px);border-radius:50%;
}

.hero-scroll{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:#fff;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  opacity:.8;
}
.hero-scroll-line{
  width:1px;height:50px;
  background:linear-gradient(to bottom,rgba(255,255,255,.9),transparent);
  animation:scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine{0%,100%{transform:scaleY(.5);opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ─── HOME SECTIONS ─── */
.home-intro{
  max-width:800px;margin:0 auto;
  padding:80px 30px 60px;text-align:center;
}
.home-intro h1{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(28px,4vw,48px);font-weight:400;font-style:italic;
  margin-bottom:12px;letter-spacing:.01em;
}
.home-intro h2{
  font-size:16px;font-weight:400;color:#666;letter-spacing:.05em;
}

.home-section{padding:60px 0}
.home-section-header{
  max-width:1200px;margin:0 auto;padding:0 30px 40px;
  border-bottom:1px solid #e8e8e8;margin-bottom:40px;
}
.home-section-label{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:#999;margin-bottom:8px;
}
.home-section-title{
  font-family:Georgia,'Times New Roman',serif;
  font-size:22px;font-style:italic;font-weight:400;color:#111;
}

/* ─── LATEST BLOG (homepage) ─── */
.latest-posts{max-width:1200px;margin:0 auto;padding:0 30px}
.latest-post-item{
  display:grid;grid-template-columns:240px 1fr;gap:0;
  border-bottom:1px solid #e8e8e8;padding:30px 0;
  cursor:pointer;transition:opacity .2s;
}
.latest-post-item:hover{opacity:.7}
.latest-post-item:first-child{border-top:1px solid #e8e8e8}

.latest-post-thumb{
  width:240px;height:160px;overflow:hidden;background:#f0f0f0;
  flex-shrink:0;
}
.latest-post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.latest-post-item:hover .latest-post-thumb img{transform:scale(1.04)}
.latest-post-thumb-placeholder{
  width:100%;height:100%;
  background:linear-gradient(135deg,#ddd 0%,#bbb 100%);
}

.latest-post-body{padding:0 0 0 30px;display:flex;flex-direction:column;justify-content:center}
.latest-post-date{font-size:11px;letter-spacing:.1em;color:#999;text-transform:uppercase;margin-bottom:10px}
.latest-post-title{
  font-family:Georgia,'Times New Roman',serif;
  font-size:20px;font-weight:400;font-style:italic;
  margin-bottom:10px;line-height:1.4;color:#111;
}
.latest-post-excerpt{font-size:13px;color:#777;line-height:1.7}

/* ─── INSTAGRAM / SOCIAL (homepage) ─── */
.social-section{padding:60px 0}
.social-header{
  max-width:1200px;margin:0 auto;padding:0 30px 40px;
  border-bottom:1px solid #e8e8e8;margin-bottom:40px;
}
.social-grid{
  max-width:1200px;margin:0 auto;padding:0 30px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;
}
.social-grid-item{
  aspect-ratio:1;overflow:hidden;cursor:pointer;
  background:#f0f0f0;position:relative;
}
.social-grid-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.social-grid-item:hover img{transform:scale(1.06)}

/* CSS art placeholders for instagram grid */
.ig-ph{width:100%;height:100%}
.ig-ph-1{background:linear-gradient(135deg,#d4c4a0 0%,#9a8060 100%)}
.ig-ph-2{background:linear-gradient(135deg,#a0c4b0 0%,#607a68 100%)}
.ig-ph-3{background:linear-gradient(135deg,#c4b0a0 0%,#8a7060 100%)}
.ig-ph-4{background:linear-gradient(135deg,#a0b4c4 0%,#607888 100%)}
.ig-ph-5{background:linear-gradient(135deg,#c4a0a0 0%,#886060 100%)}
.ig-ph-6{background:linear-gradient(135deg,#b0c4a0 0%,#708860 100%)}
.ig-ph-7{background:linear-gradient(135deg,#c4c0a0 0%,#888460 100%)}
.ig-ph-8{background:linear-gradient(135deg,#a4a0c4 0%,#686088 100%)}

.social-cta{
  max-width:1200px;margin:40px auto 0;padding:0 30px;
  text-align:center;
}
.instagram-handle{
  font-family:Georgia,serif;font-size:16px;font-style:italic;color:#555;
}
.instagram-handle a{color:#111;border-bottom:1px solid #ddd;padding-bottom:2px}
.instagram-handle a:hover{opacity:.7;border-color:#111}

/* ─── GET IN TOUCH (homepage CTA) ─── */
.home-contact-cta{
  padding:80px 30px;text-align:center;
  border-top:1px solid #e8e8e8;
}
.home-contact-cta h3{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#999;margin-bottom:20px;
}
.btn-contact{
  display:inline-block;padding:12px 36px;
  border:1px solid #111;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:#111;transition:all .3s;
}
.btn-contact:hover{background:#111;color:#fff;opacity:1}

/* ─── PORTFOLIO CATEGORY PAGE ─── */
.portfolio-cat-header{
  padding:100px 30px 50px;max-width:1200px;margin:0 auto;
  border-bottom:1px solid #e8e8e8;
}
.portfolio-cat-header h1{
  font-family:Georgia,serif;font-size:clamp(30px,5vw,52px);
  font-weight:400;font-style:italic;margin-bottom:16px;
}
.portfolio-cat-header p{font-size:14px;color:#666;max-width:600px;line-height:1.8}

/* Masonry photo grid */
.photo-grid{
  max-width:1200px;margin:0 auto;padding:40px 30px 80px;
  columns:3;column-gap:6px;
}
.photo-grid-item{
  break-inside:avoid;margin-bottom:6px;
  overflow:hidden;cursor:pointer;background:#f0f0f0;position:relative;display:block;
}
.photo-grid-item img{
  width:100%;height:auto;display:block;
  transition:transform .5s ease,opacity .3s;
}
.photo-grid-item:hover img{transform:scale(1.03);opacity:.88}

/* Placeholder grid item */
.photo-grid-placeholder{
  width:100%;padding-bottom:66%;
  background:linear-gradient(135deg,#e0e0e0 0%,#c0c0c0 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#999;
}

/* Upload prompt for admins */
.upload-prompt{
  max-width:1200px;margin:0 auto;padding:60px 30px;text-align:center;
  border:2px dashed #ddd;margin:40px 30px;
}
.upload-prompt p{color:#999;margin-bottom:16px}
.upload-prompt a{border-bottom:1px solid #ddd}

/* ─── ABOUT PAGE ─── */
.about-page{max-width:1200px;margin:0 auto;padding:100px 30px 80px}
.about-page h1{
  font-family:Georgia,serif;font-size:clamp(24px,3vw,36px);
  font-weight:400;font-style:italic;margin-bottom:40px;
  padding-bottom:30px;border-bottom:1px solid #e8e8e8;
}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.about-text p{font-size:14px;color:#444;line-height:1.9;margin-bottom:18px}
.about-text a{border-bottom:1px solid #ddd}
.about-photo{position:sticky;top:90px}
.about-photo img{width:100%;height:auto}
.about-photo-placeholder{
  width:100%;padding-bottom:120%;
  background:linear-gradient(135deg,#d8d0c0 0%,#a09080 100%);
}

/* ─── CONTACT PAGE ─── */
.contact-page{
  max-width:700px;margin:0 auto;padding:100px 30px 80px;
  text-align:center;
}
.contact-page h1{
  font-family:Georgia,serif;font-size:clamp(22px,3vw,32px);
  font-weight:400;font-style:italic;margin-bottom:50px;
  padding-bottom:30px;border-bottom:1px solid #e8e8e8;
}
.contact-details{margin-bottom:50px}
.contact-email{
  font-family:Georgia,serif;font-size:20px;font-style:italic;
  margin-bottom:10px;
}
.contact-email a{border-bottom:1px solid #ddd}
.contact-availability{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#999}
.contact-social{display:flex;justify-content:center;gap:24px;margin-top:40px}
.contact-social a{
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#555;
}
.contact-social a:hover{color:#111;opacity:1}

/* Contact form */
.contact-form{margin-top:50px;text-align:left}
.contact-form .form-group{margin-bottom:20px}
.contact-form label{
  display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:#999;margin-bottom:8px;
}
.contact-form input,
.contact-form textarea,
.contact-form select{
  width:100%;padding:10px 0;border:none;border-bottom:1px solid #ddd;
  font-size:14px;font-family:inherit;color:#111;background:transparent;
  outline:none;transition:border-color .2s;border-radius:0;-webkit-appearance:none;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{border-bottom-color:#111}
.contact-form input::placeholder,
.contact-form textarea::placeholder{color:#bbb}
.contact-form textarea{resize:none;min-height:100px;line-height:1.7}
.contact-form select option{background:#fff}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.btn-submit{
  display:inline-block;padding:12px 36px;background:#111;color:#fff;
  font-family:inherit;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  border:none;cursor:pointer;transition:background .3s;margin-top:10px;
}
.btn-submit:hover{background:#333}
.form-msg{
  display:none;margin-top:16px;padding:12px 16px;font-size:13px;
  border:1px solid #ddd;
}
.form-msg.success{border-color:#bada9e;background:#f0f8ec;color:#3a7a28}
.form-msg.error{border-color:#f0b0a8;background:#fdf0ee;color:#8a2020}

/* ─── BLOG ARCHIVE ─── */
.blog-archive{max-width:1200px;margin:0 auto;padding:100px 30px 80px}
.blog-archive-header{
  padding-bottom:30px;margin-bottom:40px;border-bottom:1px solid #e8e8e8;
}
.blog-archive-header h1{
  font-family:Georgia,serif;font-size:clamp(24px,3vw,38px);
  font-weight:400;font-style:italic;
}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 30px}
.blog-card{cursor:pointer}
.blog-card-thumb{
  aspect-ratio:16/10;overflow:hidden;background:#f0f0f0;margin-bottom:16px;
}
.blog-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.blog-card:hover .blog-card-thumb img{transform:scale(1.04)}
.blog-card-date{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#999;margin-bottom:8px}
.blog-card-title{
  font-family:Georgia,serif;font-size:17px;font-weight:400;font-style:italic;
  line-height:1.5;margin-bottom:8px;color:#111;
}
.blog-card-excerpt{font-size:13px;color:#777;line-height:1.6}
.blog-card-thumb-ph{
  width:100%;height:100%;
  background:linear-gradient(135deg,#ddd 0%,#bbb 100%);
}

/* ─── SINGLE BLOG POST ─── */
.single-post{max-width:800px;margin:0 auto;padding:100px 30px 80px}
.single-post-header{
  padding-bottom:30px;margin-bottom:40px;border-bottom:1px solid #e8e8e8;
}
.single-post-date{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#999;margin-bottom:14px}
.single-post-title{
  font-family:Georgia,serif;font-size:clamp(24px,4vw,40px);
  font-weight:400;font-style:italic;line-height:1.25;
}
.single-post-thumb{
  margin-bottom:40px;
}
.single-post-thumb img{width:100%;height:auto;max-height:500px;object-fit:cover}
.single-post-content{font-size:15px;color:#333;line-height:1.9}
.single-post-content p{margin-bottom:1.5em}
.single-post-content h2{font-family:Georgia,serif;font-size:22px;font-style:italic;margin:2em 0 .8em}
.single-post-content a{border-bottom:1px solid #ddd}
.post-nav{
  display:flex;justify-content:space-between;
  padding:40px 0;margin-top:40px;border-top:1px solid #e8e8e8;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#999;
}
.post-nav a{color:#111}

/* ─── LIGHTBOX ─── */
.lightbox{
  position:fixed;inset:0;background:rgba(0,0,0,.95);
  z-index:9999;display:none;align-items:center;justify-content:center;
  cursor:pointer;
}
.lightbox.active{display:flex}
.lightbox-img{
  max-width:90vw;max-height:90vh;object-fit:contain;cursor:default;
}
.lightbox-close{
  position:absolute;top:20px;right:24px;color:#fff;font-size:24px;
  background:none;border:none;cursor:pointer;opacity:.7;line-height:1;
}
.lightbox-close:hover{opacity:1}
.lightbox-prev,.lightbox-next{
  position:absolute;top:50%;transform:translateY(-50%);
  background:none;border:none;color:#fff;font-size:32px;cursor:pointer;
  opacity:.5;transition:opacity .2s;padding:20px;line-height:1;
}
.lightbox-prev:hover,.lightbox-next:hover{opacity:1}
.lightbox-prev{left:10px}
.lightbox-next{right:10px}
.lightbox-caption{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.6);font-size:12px;letter-spacing:.08em;
  white-space:nowrap;
}

/* ─── FOOTER ─── */
#site-footer{
  border-top:1px solid #e8e8e8;padding:50px 0 30px;margin-top:0;
}
.footer-inner{
  max-width:1200px;margin:0 auto;padding:0 30px;
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:40px;flex-wrap:wrap;
}
.footer-logo a{
  font-family:Georgia,serif;font-size:16px;font-style:italic;color:#111;
}
.footer-nav{display:flex;gap:0;flex-wrap:wrap}
.footer-nav a{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#666;padding:4px 12px;
}
.footer-nav a:hover{color:#111;opacity:1}
.footer-contact{font-size:13px;color:#666;text-align:right}
.footer-contact a{color:#111;border-bottom:1px solid #ddd}
.footer-social{display:flex;gap:16px;margin-top:10px;justify-content:flex-end}
.footer-social a{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#666;
}
.footer-social a:hover{color:#111;opacity:1}
.footer-bottom{
  max-width:1200px;margin:30px auto 0;padding:20px 30px 0;
  border-top:1px solid #eee;
  font-size:11px;letter-spacing:.08em;color:#bbb;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
}

/* ─── SCROLL REVEAL ─── */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.on{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
.reveal-d3{transition-delay:.3s}

/* ─── PAGINATION ─── */
.pagination{
  display:flex;justify-content:center;gap:8px;
  padding:50px 0;
}
.pagination a,.pagination span{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;font-size:13px;color:#555;border:1px solid #e8e8e8;
  transition:all .2s;
}
.pagination a:hover{border-color:#111;color:#111;opacity:1}
.pagination .current{background:#111;color:#fff;border-color:#111}

/* ─── ADMIN NOTICE ─── */
.admin-notice{
  background:#fffbea;border:1px solid #f0e090;
  padding:16px 20px;margin:20px 30px;font-size:13px;
  display:flex;align-items:center;gap:12px;
}
.admin-notice a{color:#111;border-bottom:1px solid #ddd}

/* ─── RESPONSIVE ─── */
@media(max-width:900px){
  .photo-grid{columns:2}
  .blog-grid{grid-template-columns:1fr 1fr}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .about-photo{position:static;order:-1}
  .footer-inner{flex-direction:column;gap:24px}
  .footer-contact,.footer-social{text-align:left;justify-content:flex-start}
  .latest-post-item{grid-template-columns:1fr;gap:16px}
  .latest-post-thumb{width:100%;height:200px}
  .latest-post-body{padding:0}
  .social-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:600px){
  .site-wrap,.nav-wrap,.photo-grid{padding-left:16px;padding-right:16px}
  .photo-grid{columns:1}
  .blog-grid{grid-template-columns:1fr}
  .social-grid{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:4px}
  .post-nav{flex-direction:column;gap:16px}
}
