*{box-sizing:border-box}
html,body{
  margin:0;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#fcf6ea;
  font-family:Georgia,"Times New Roman",serif;
}
#viewport,#stage,.slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
}
#stage{background:#fcf6ea}
.slide{
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.slide.active{opacity:1}
.static-bg{
  width:100%;
  height:100%;
  object-fit:fill;
  display:block;
}
.service-slide{
  background:url('assets/services-clean.png') center center / 100% 100% no-repeat;
  color:#3a1d10;
}

/* One true grid controls both header and rows. */
.service-table{
  position:absolute;
  left:0.35%;
  right:0.35%;
  top:18.80%;
  height:66.00%;
  display:grid;
  grid-template-rows:10.8% 29.75% 29.75% 29.70%;
  border-left:2px solid #ead8b4;
  border-right:2px solid #ead8b4;
  background:#fcf6ea;
}
.grid-row{
  display:grid;
  grid-template-columns:10.7% 17.1% 19.0% 19.1% 17.3% 16.8%;
  min-width:0;
}
.grid-row.header{
  background:#4b2515;
  color:#fff;
  border-top:2px solid #ead8b4;
  border-bottom:2px solid #ead8b4;
}
.grid-row.data-row{
  border-bottom:2px solid #ead8b4;
}
.grid-row.data-row:last-child{border-bottom:2px solid #ead8b4}

.hcell,.cell{
  min-width:0;
  overflow:hidden;
  border-right:2px solid #ead8b4;
}
.hcell:last-child,.cell:last-child{border-right:0}

.hcell{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 8px;
  font-size:clamp(15px,1.55vw,30px);
  font-weight:700;
  letter-spacing:.01em;
}
.cell{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  text-align:center;
  padding:3.4vh 1vw 0;
  font-size:clamp(12px,1.05vw,20px);
  font-weight:600;
  line-height:1.13;
}
.cell-text,.name,.age{
  width:100%;
  max-width:100%;
  min-width:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
.name-cell{
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:.4vh;
}
.name{
  font-size:clamp(13px,1.12vw,22px);
  font-weight:700;
  line-height:1.08;
}
.age{
  font-size:clamp(10px,.78vw,16px);
  font-weight:500;
}
.photo-cell{
  align-items:center;
  padding:1.2vh .9vw;
}
.photo,.photo-placeholder{
  width:129px;
  height:135px;
  max-width:100%;
  max-height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}
.photo{border:2px solid #b88924}

/* Long text stays in its own cell. */
.cell.compact{font-size:clamp(11px,.92vw,17px)}
.cell.very-compact{font-size:clamp(10px,.80vw,15px)}

.error{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8%;
  text-align:center;
  background:#fcf6ea;
  color:#3a1d10;
  font-size:clamp(22px,3vw,48px);
}
.small{display:block;font-size:.55em;margin-top:1em}

/* Vertical-card TEST: retain the exact original SERVICES heading and footer artwork. */
.vertical-service-slide{
  background:#fcf6ea url('assets/services-clean.png') center center / 100% 100% no-repeat;
  color:#3a1d10;font-family:Georgia,"Times New Roman",serif;
  display:block;padding:0;
}
.vclock{position:absolute;right:1.5%;bottom:1.0%;top:auto;z-index:2;font-size:clamp(10px,.7vw,13px);font-weight:600;color:#4b2515;background:#fffaf0e8;border-radius:4px;padding:3px 6px;white-space:nowrap}
.vcards{position:absolute;left:1%;right:1%;top:18.8%;height:66%;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1%;padding:.5vh 0}
.vcard{background:#fffdf8;border:2px solid #d8c6a7;border-radius:10px;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.vcard-empty{background:transparent;border:0;box-shadow:none}
.vperson{width:100%;text-align:center;flex:0 0 auto;padding:.65vh .5vw .25vh;min-height:0}
.vname{font-weight:700;font-size:clamp(18px,1.55vw,30px);line-height:1.05;overflow-wrap:anywhere}
.vage{font-size:clamp(12px,.95vw,18px);margin-top:.2vh}
.vphoto-wrap{height:25%;min-height:0;flex:none;display:flex;justify-content:center;align-items:center;padding:.3vh 0}
.vphoto{display:block;height:100%;max-width:95%;width:auto;aspect-ratio:1/1;object-fit:cover;object-position:center top;border:2px solid #b88924}
.vdetails{flex:1;min-height:0;width:100%;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:.25vh;padding:.35vh .6vw .65vh}
.vdetail{min-height:0;border:1px solid #e2d6c2;border-radius:5px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.15vh .3vw;overflow:hidden}
.vlabel{font-size:clamp(13px,1.04vw,20px);font-weight:700;line-height:1.06}
.vvalue{font-size:clamp(11px,.88vw,17px);line-height:1.08;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
.vvalue.compact{font-size:clamp(10px,.78vw,15px)}
.vvalue.very-compact{font-size:clamp(9px,.69vw,13px)}

/* 2026-09-20: consistent typography and synchronized vertical positions across all three cards. */
.vcard{display:grid;grid-template-rows:17% 25% minmax(0,1fr);align-items:stretch}
.vperson{height:100%;min-height:0;padding:.5vh .5vw .2vh;display:grid;grid-template-rows:minmax(0,1fr) 1.3em;align-items:center;justify-items:center;overflow:hidden}
.vname{font-family:Georgia,"Times New Roman",serif;font-size:clamp(18px,1.55vw,30px);font-weight:700;line-height:1.05;max-height:100%;overflow:hidden}
.vage{font-family:Georgia,"Times New Roman",serif;font-size:clamp(12px,.95vw,18px);line-height:1.2;margin:0;min-height:1.2em}
.vphoto-wrap{height:100%;min-height:0;padding:.3vh 0}
.vdetails{height:100%;min-height:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:.25vh;padding:.35vh .6vw .65vh}
.vdetail{display:grid;grid-template-rows:1.25em minmax(0,1fr);align-items:start;justify-items:center;align-content:stretch;padding:.15vh .3vw;min-height:0}
.vlabel{font-family:Georgia,"Times New Roman",serif;font-size:clamp(13px,1.04vw,20px);font-weight:700;line-height:1.15;white-space:nowrap;align-self:start}
.vvalue,.vvalue.compact,.vvalue.very-compact{font-family:Georgia,"Times New Roman",serif;font-size:clamp(11px,.88vw,17px);font-weight:400;line-height:1.08;min-height:0;max-height:100%;overflow:hidden;align-self:center}

/* 2026-09-20: move age immediately below name and use spare space above footer. */
.vcards{height:72%;}
.vcard{grid-template-rows:14% 25% minmax(0,1fr);}
.vperson{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:.25vh .5vw .1vh;overflow:hidden;}
.vname{flex:0 1 auto;max-height:calc(100% - 1.2em);line-height:1.02;}
.vage{flex:0 0 auto;margin-top:0;line-height:1.05;}
.vdetails{grid-template-rows:minmax(0,1.35fr) repeat(3,minmax(0,1fr));gap:.28vh;padding:.25vh .6vw .45vh;}
.vdetail{padding:.25vh .35vw;overflow:visible;}
.vvalue,.vvalue.compact,.vvalue.very-compact{max-height:none;overflow:visible;line-height:1.1;}

/* Correct the URL and QR printed in the original website slide artwork. */
.website-slide-corrected .website-qr-replacement{position:absolute;left:42.05%;top:55.0%;width:15.9%;height:21.0%;display:flex;align-items:center;justify-content:center;background:#fff;border:4px solid #a87512;border-radius:11px;box-sizing:border-box;}
.website-slide-corrected .website-qr-replacement img{display:block;width:90%;height:90%;object-fit:contain;image-rendering:pixelated;}
.website-slide-corrected .website-url-replacement{position:absolute;left:23%;top:77.8%;width:54%;height:6.1%;display:flex;align-items:center;justify-content:center;background:#fff7e9;color:#3b2116;font-family:Georgia,'Times New Roman',serif;font-size:clamp(16px,2.25vw,44px);font-weight:600;white-space:nowrap;letter-spacing:-.025em;}


/* V2 Special Announcement slide */
.announcement-slide{background:#f4efe5;color:#3b261c;overflow:hidden;}
.announcement-shell{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);background:linear-gradient(135deg,#f8f4ec 0%,#efe5d5 100%);}
.announcement-photo-wrap{min-width:0;height:100%;overflow:hidden;background:#ded4c5;}
.announcement-photo{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.announcement-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5vh 5vw;box-sizing:border-box;border-left:2px solid rgba(160,126,65,.45);}
.announcement-kicker{font-family:Georgia,serif;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(16px,1.6vw,30px);color:#9a793e;margin-bottom:2vh;}
.announcement-copy h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(46px,6vw,108px);line-height:1.02;margin:0;color:#4b3023;}
.announcement-copy h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(28px,3.2vw,58px);line-height:1.1;margin:1.5vh 0 0;color:#8a6834;}
.announcement-copy p{font-family:Georgia,serif;font-size:clamp(20px,2.1vw,38px);line-height:1.45;max-width:90%;margin:3vh auto 0;color:#4c4038;}
.announcement-rule{width:55%;display:flex;align-items:center;gap:1rem;color:#ad8b4c;margin:3vh 0 2vh;}
.announcement-rule:before,.announcement-rule:after{content:"";height:1px;background:#ad8b4c;flex:1;}
.announcement-rule span{font-size:clamp(10px,1vw,18px);}
.announcement-brand{font-family:Georgia,serif;font-size:clamp(18px,1.8vw,32px);letter-spacing:.16em;color:#4b3023;}
.announcement-tagline{font-family:Georgia,serif;font-style:italic;font-size:clamp(15px,1.35vw,25px);margin-top:.7vh;color:#6d594b;}
.announcement-slide:not(:has(.announcement-photo-wrap)) .announcement-shell{grid-template-columns:1fr;}
.announcement-slide:not(:has(.announcement-photo-wrap)) .announcement-copy{border-left:0;}

/* V2 announcement: finished graphics use the full signage canvas without extra portal formatting. */
.announcement-slide.full-screen-graphic{background:#111;display:flex;align-items:center;justify-content:center;overflow:hidden}
.announcement-full-image-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#111}
.announcement-full-image{width:100%;height:100%;object-fit:contain;display:block}

/* Reddick: Brown V2 artwork, clock and rotating slides preserved; single-person composition only. */
.reddick-welcome-slide,.reddick-website-slide,.reddick-memorial-slide{color:#3a1d10;text-align:center;font-family:Georgia,'Times New Roman',serif;}
.reddick-welcome-slide{background:#faf4e9 url('assets/reddick-welcome-bg.jpg') center/100% 100% no-repeat;}
.reddick-website-slide{background:#faf4e9 url('assets/reddick-website-bg.jpg') center/100% 100% no-repeat;}
.reddick-memorial-slide{background:#faf4e9 url('assets/reddick-services-bg.jpg') center/100% 100% no-repeat;}
.reddick-slogan{position:absolute;bottom:4.1%;left:12%;width:76%;font-size:clamp(16px,2.05vw,42px);font-style:italic;line-height:1.1;color:#3b2116;text-align:center;}
.reddick-welcome-slide h1{position:absolute;top:9%;left:16%;width:68%;font-size:clamp(30px,3.2vw,65px);font-weight:400;line-height:1.1;margin:0;}
.family-photo-slot{position:absolute;left:39%;top:28%;width:22%;height:42%;border:3px solid #a98031;background:#eee2cd;display:flex;align-items:center;justify-content:center;color:#765c39;font-size:clamp(13px,1.3vw,25px);font-style:italic;overflow:hidden;}
.family-photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;}
.family-photo-slot span{z-index:1;}
.reddick-owners{position:absolute;top:73%;left:20%;width:60%;font-size:clamp(23px,2.5vw,48px);}
.reddick-website-slide h1{position:absolute;top:6%;left:14%;width:72%;font-size:clamp(28px,3.35vw,68px);font-weight:400;margin:0;}
.web-motto{position:absolute;top:18%;width:100%;font-size:clamp(17px,1.7vw,35px);}
.reddick-website-slide h2{position:absolute;top:27%;width:100%;font-size:clamp(30px,4.3vw,86px);font-weight:400;margin:0;}
.reddick-website-slide p{position:absolute;top:39%;width:100%;font-size:clamp(17px,1.8vw,36px);margin:0;line-height:1.25;}
.reddick-qr{position:absolute;top:51%;height:22%;left:44%;width:12%;object-fit:contain;border:3px solid #a98031;background:white;}
.reddick-web-address{position:absolute;top:75%;width:100%;font-size:clamp(20px,2.3vw,46px);}
.reddick-phone{position:absolute;top:81%;width:100%;font-size:clamp(16px,1.6vw,32px);}
.reddick-memorial-layout{position:absolute;top:19%;left:3%;width:94%;height:62%;display:grid;grid-template-columns:26% 43% 31%;align-items:start;}
.memorial-photo{height:87%;border:3px solid #b88924;background:#f5ead9;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.memorial-photo img{height:100%;width:100%;object-fit:cover;object-position:center 20%;}
.memorial-center{padding:2% 5%;min-width:0;}
.memorial-kicker{color:#a57a2e;font-size:clamp(17px,1.6vw,33px);}
.memorial-script{color:#a57a2e;font-style:italic;font-size:clamp(39px,4vw,78px);line-height:1.1;}
.memorial-name{font-size:clamp(26px,3vw,58px);line-height:1.07;text-transform:uppercase;overflow-wrap:anywhere;margin:7% 0 4%;}
.memorial-age{font-size:clamp(19px,1.7vw,34px);}
.memorial-tribute{font-size:clamp(18px,1.9vw,38px);font-style:italic;line-height:1.28;margin-top:9%;}
.memorial-right{height:100%;border-left:2px solid #c6a46d;padding:0 3% 0 7%;overflow:hidden;}
.memorial-detail{padding:1% 0 4%;border-bottom:1px solid #c6a46d;margin-bottom:4%;}
.memorial-detail:last-child{border-bottom:0;}
.memorial-detail h3{color:#a57a2e;font-size:clamp(18px,1.75vw,34px);margin:0 0 2%;}
.memorial-detail>div,.memorial-location{font-size:clamp(15px,1.55vw,31px);line-height:1.2;white-space:pre-wrap;overflow-wrap:anywhere;}
.memorial-location{margin-top:-3%;margin-bottom:4%;}
.announcement-slide .reddick-slogan{bottom:2%;font-size:clamp(14px,1.5vw,29px);z-index:8;background:#f8f1e8db;padding:.25em;}
.announcement-slide .vclock{z-index:9;}

/* Final correction: a single clean artwork background on every screen. */
.reddick-welcome-slide,.reddick-website-slide,.reddick-memorial-slide,.announcement-slide{
 background:#faf4e9 url('assets/reddick-clean-original-florals.png') center/100% 100% no-repeat !important;
 font-family:Georgia,'Times New Roman',serif;
}
.reddick-welcome-slide h1{top:9%;font-family:Georgia,'Times New Roman',serif;font-weight:400;}
.reddick-website-slide h1{top:7%;font-family:Georgia,'Times New Roman',serif;font-weight:400;}
.reddick-memorial-layout{top:20%;height:60%;left:5%;width:90%;grid-template-columns:27% 41% 32%;}
.reddick-memorial-slide .reddick-slogan,.reddick-website-slide .reddick-slogan,.reddick-welcome-slide .reddick-slogan{bottom:5.5%;font-size:clamp(16px,2vw,40px);}

/* 2026-10-27 requested layout corrections: single memorial per slide. */
.reddick-memorial-layout{top:2.2%;height:78%;left:3.5%;width:93%;grid-template-columns:28% 40% 32%;align-items:start;}
.reddick-memorial-layout .memorial-photo{height:74%;align-self:start;}
.reddick-memorial-layout .memorial-center{padding-top:2%;}
.reddick-memorial-layout .memorial-right{position:relative;top:22%;height:75%;}
/* Restore the prominent script-style Welcome heading rather than a small plain heading. */
.reddick-welcome-slide h1{top:5%;left:8%;width:84%;font-family:'Brush Script MT','Segoe Script','URW Chancery L',cursive !important;font-style:italic;font-size:clamp(70px,8.8vw,170px);font-weight:400;line-height:.85;}
.reddick-welcome-slide h1 .welcome-to{display:block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(18px,1.65vw,34px);font-style:normal;line-height:1.8;}
.reddick-welcome-slide h1 .welcome-home{display:block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(24px,3vw,60px);font-style:normal;line-height:1.2;}
.reddick-welcome-slide .family-photo-slot{top:39%;height:32%;}
.reddick-welcome-slide .reddick-owners{top:73%;}

/* Client revision: exact Welcome lettering sourced from Brown artwork, not a substitute font. */
.reddick-welcome-slide{background-image:url('assets/reddick-clean-original-florals.png') !important;}
.reddick-welcome-slide .original-welcome-lettering{position:absolute;top:0;left:0;width:100%;height:43%;background:url('assets/original-welcome-lettering.png') center top/100% 100% no-repeat;}
.reddick-welcome-slide .welcome-home{position:absolute;top:42%;left:8%;width:84%;font:normal clamp(26px,3.6vw,70px) Georgia,serif;letter-spacing:.035em;color:#3b2116;}
.reddick-welcome-slide .family-photo-slot{top:54%;height:24%;left:42%;width:16%;}
.reddick-welcome-slide .reddick-owners{top:79%;font-size:clamp(19px,2vw,40px);}
.reddick-welcome-slide .reddick-slogan{bottom:3%;font-size:clamp(15px,1.7vw,34px);}
/* Slightly smaller portrait, keep approved upward placement. */
.reddick-memorial-layout .memorial-photo{height:68%;width:92%;margin-left:4%;}

/* 2026-10-27: correct overlapping Welcome artwork and move service column down. */
.reddick-welcome-slide .original-welcome-lettering{background-image:url('assets/welcome-lettering-transparent.png') !important;background-size:100% 100%;}
.reddick-welcome-slide .reddick-owners{display:none !important;}
.reddick-memorial-layout .memorial-right{top:43% !important;height:55% !important;}

/* APPROVED REDDICK LAYOUT — overrides previous review-only adjustments. */
.reddick-welcome-slide,.reddick-website-slide,.reddick-memorial-slide,.announcement-slide {
  background:#faf4e9 url('assets/reddick-florals-no-ghosts.png') center / 100% 100% no-repeat !important;
}
/* Exact original calligraphy; move Welcome up ~1 inch without moving home name. */
.reddick-welcome-slide .original-welcome-lettering {
  top:-9.5% !important;left:0 !important;width:100% !important;height:43% !important;
  background:url('assets/welcome-original-clean.png') center top/100% 100% no-repeat !important;
}
.reddick-welcome-slide .welcome-home {top:42% !important;}
.reddick-welcome-slide .family-photo-slot {top:54% !important;left:40.5% !important;width:19% !important;height:27% !important;}
.reddick-welcome-slide .reddick-owners {display:none !important;}
/* One record per slide. Preserve the existing vertical divider (no second line). */
.reddick-memorial-layout {top:17% !important;left:4.5% !important;width:91% !important;height:67% !important;grid-template-columns:30% 39% 31% !important;align-items:start !important;}
.reddick-memorial-layout .memorial-photo {width:94% !important;height:77% !important;margin-left:0 !important;}
.reddick-memorial-layout .memorial-center {padding:0 5% !important;}
.reddick-memorial-layout .memorial-right {
  position:relative !important;top:0 !important;height:100% !important;
  padding:21vh 3% 0 7% !important;
  border-left:2px solid #c6a46d !important;overflow:visible !important;
}
.reddick-memorial-layout .memorial-detail {padding:0 0 4% !important;margin-bottom:5% !important;}
.reddick-memorial-layout .memorial-detail h3 {font-size:clamp(17px,1.7vw,33px) !important;}
.reddick-memorial-layout .memorial-detail>div {font-size:clamp(15px,1.45vw,29px) !important;}

/* Welcome W descender: reveal complete original lettering without changing other slides. */
.reddick-welcome-slide .original-welcome-lettering {height:48% !important;}
