/* Design study 02 — Contemporary Minimal.
   A separate visual layer. Original and Editorial Heritage remain selectable. */
:root{
  --cream:#ffffff;
  --ink:#202b31;
  --green:#243945;
  --muted:#617077;
  --line:#dce2e3;
  --highlight:#ac745e;
}
html{scroll-behavior:smooth}
body{background:#fff;color:#202b31;font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
.wrap{max-width:1330px;padding-inline:clamp(20px,5.2vw,78px)}
h1,h2,h3{font-family:'DM Sans',Arial,sans-serif;font-weight:600;line-height:1.13;letter-spacing:-.06em;text-wrap:balance}
.eyebrow{color:#a66d59;font-weight:700;font-size:11px;letter-spacing:.22em}
:focus-visible{outline:3px solid #ae775d;outline-offset:4px}
.hero{
  padding-block:clamp(50px,7vw,100px) clamp(72px,8vw,125px);
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(38px,8vw,130px);
  align-items:center;
  min-height:690px;
  background:#fff;
}
.hero::before{display:none}
.hero>div:first-child{border-top:2px solid #253945;padding-top:25px}
.hero h1.memorial-name{
  font-family:'DM Sans',Arial,sans-serif;
  font-weight:600;
  font-size:clamp(58px,7.7vw,112px);
  line-height:1.05;
  letter-spacing:-.092em;
  margin:32px 0 35px;
}
.life-years{
  font-family:'DM Sans',Arial,sans-serif;
  font-size:clamp(20px,2.5vw,30px);
  font-weight:400;
  letter-spacing:.1em;
  color:#a6745f;
  margin:0;
}
.hero-photo{
  justify-self:center;
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:575px;
  object-fit:contain;
  border:0;
  background:none;
  box-shadow:none;
}
.section{padding-block:clamp(75px,9vw,135px)}
.white{background:#f2f5f4;border:0}
.intro{max-width:780px;margin-bottom:55px;text-align:left;margin-left:0;margin-right:auto}
.intro h2{
  font-family:'DM Sans',Arial,sans-serif;
  font-size:clamp(38px,5.2vw,70px);
  font-weight:600;
  line-height:1.1;
  letter-spacing:-.075em;
  margin:16px 0 23px;
}
.intro p{margin-inline:0;max-width:750px;text-align:left;font-size:17px;line-height:1.8}
.day{
  font-family:'DM Sans',Arial,sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:.04em;
  text-align:left;
  padding:20px 0;
  margin:0;
  border-top:1px solid #c8d1d0;
  border-bottom:0;
  color:#354a51;
}
.cards{display:grid;grid-template-columns:1fr;gap:0;border-top:2px solid #253b44}
.card{
  display:grid;
  grid-template-columns:110px minmax(145px,.7fr) minmax(230px,1.4fr) minmax(170px,1fr) 112px;
  gap:clamp(10px,1.7vw,23px);
  align-items:center;
  width:100%;
  min-height:160px;
  padding:23px 4px;
  margin:0;
  border:0;
  border-bottom:1px solid #cbd5d4;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  transform:none;
}
.card:hover{transform:none;box-shadow:none}
.card .num{font-size:10px;letter-spacing:.08em;color:#a56b58;font-weight:700;align-self:start;padding-top:11px}
.card .time{margin:0;color:#314c57;font-size:13px;font-weight:700;line-height:1.5}
.card h3{
  font:600 clamp(20px,2.25vw,28px)/1.22 'DM Sans',Arial,sans-serif;
  letter-spacing:-.052em;
  margin:0;
}
.card p{font-size:13px;line-height:1.7;margin:0;color:#52656a}
.card a{
  align-self:center;
  justify-self:end;
  margin:0;
  border:1px solid #b9c7c7;
  border-radius:2px;
  padding:10px 12px;
  font-weight:700;
  font-size:11px;
  text-decoration:none;
  white-space:nowrap;
  color:#304750;
  transition:background .18s,color .18s;
}
.card a:hover{background:#263f4b;color:#fff;border-color:#263f4b}
.aside{
  text-align:left;
  max-width:850px;
  margin:35px 0 0;
  border-left:3px solid #b9856f;
  padding-left:21px;
  font:400 16px/1.8 'DM Sans',Arial,sans-serif;
  font-style:normal;
  color:#506267;
}
.split{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(50px,9vw,140px);align-items:start}
.split h2{
  font:600 clamp(39px,5vw,66px)/1.12 'DM Sans',Arial,sans-serif;
  letter-spacing:-.067em;
  margin:18px 0 30px;
}
.split .bodytext{font-size:17px;line-height:1.9;color:#56666b;margin-bottom:18px}
.quote{
  font:400 clamp(20px,2.15vw,26px)/1.75 'DM Sans',Arial,sans-serif;
  color:#334d57;
  padding:33px 0 0 30px;
  border:0;
  border-left:3px solid #bf8e77;
  background:none;
  box-shadow:none;
}
.quote small{font:500 13px 'DM Sans',sans-serif;letter-spacing:.02em;margin-top:27px}
.cta{
  text-align:left;
  background:#253b47;
  padding:clamp(65px,8vw,110px) max(calc((100vw - 1174px)/2),5.2vw);
  color:#fff;
  background-image:none;
}
.cta .eyebrow{color:#c99a83!important}
.cta h2{
  font:600 clamp(40px,5vw,68px)/1.1 'DM Sans',Arial,sans-serif;
  letter-spacing:-.07em;
  margin:20px 0 24px;
}
.cta p{margin:0 0 28px;max-width:650px;font-size:17px;color:#dce7e7;line-height:1.8}
.cta label{font-size:13px;font-weight:700}
.simple-form{justify-content:flex-start;align-items:stretch;margin:17px 0 21px;gap:10px}
.simple-form input{
  min-height:56px;
  width:98px;
  border:2px solid #e0e6e6;
  border-radius:2px;
  text-align:center;
  font-size:20px;
}
.cta .button{
  border:2px solid #fff;
  min-height:56px;
  background:#fff;
  color:#223a44;
  padding:14px 28px;
  font-size:13px;
  transition:background .18s;
}
.cta .button:hover{background:#e7eeee}
#attendance-status{margin-top:15px!important;font-size:13px!important;color:#dae4e5}
#memories{background:#fff}
#memories .intro{margin-bottom:48px}
.photo-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:1040px;
  gap:65px 34px;
  margin:0 auto;
}
.photo-gallery figure{
  display:block;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.photo-gallery img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
  border:0;
  box-shadow:none;
  background:#edf0ee;
}
.photo-gallery figcaption{
  color:#4d626a;
  text-align:left;
  font-size:13px;
  line-height:1.7;
  margin:15px 0 0;
  padding-left:13px;
  border-left:2px solid #bc8b72;
}
.guestbook{background:#f3f5f4;border:0}
.guestbook-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(38px,7vw,110px)}
.guestbook h2{
  font:600 clamp(39px,4.8vw,64px)/1.13 'DM Sans',Arial,sans-serif;
  letter-spacing:-.07em;
  margin:20px 0 27px;
}
.guestbook .bodytext{color:#5c6c71;font-size:17px;line-height:1.9;max-width:490px}
.guestbook form{
  background:#fff;
  border:1px solid #d9e0df;
  border-radius:0;
  box-shadow:none;
  padding:clamp(26px,4vw,45px);
  display:grid;
  gap:12px;
}
.guestbook label{font-size:13px;color:#2d454e;font-weight:700;margin-top:4px}
.guestbook input,.guestbook textarea{
  border:1px solid #cdd8d7;
  border-radius:0;
  background:#fcfdfd;
  padding:15px;
  font-size:15px;
}
.guestbook textarea{min-height:180px}
.guestbook .button{
  background:#263f4a;
  min-height:50px;
  padding:13px 25px;
}
.guestbook .button:hover{background:#3e5c68}
.memory-entry{background:white;border-left:3px solid #bd8870}
footer.wrap{padding-block:42px;border-color:#d9e0df;font-size:12px;color:#62737a}
@media(max-width:1150px){
  .card{grid-template-columns:80px 145px minmax(200px,1fr);gap:12px 18px}
  .card .num{grid-column:1;grid-row:1}
  .card .time{grid-column:2;grid-row:1}
  .card h3{grid-column:3;grid-row:1}
  .card p{grid-column:3;grid-row:2}
  .card a{grid-column:3;grid-row:3;justify-self:start;margin:8px 0 0}
}
@media(max-width:900px){
  .hero{min-height:0;gap:38px}
  .hero h1.memorial-name{font-size:clamp(50px,7vw,80px)}
  .card{grid-template-columns:60px minmax(120px,.6fr) minmax(220px,1.5fr);min-height:0;gap:10px 18px;padding:25px 0}
  .card .num{grid-column:1;grid-row:1}
  .card .time{grid-column:2;grid-row:1}
  .card h3{grid-column:3;grid-row:1}
  .card p{grid-column:3;grid-row:2}
  .card a{grid-column:3;grid-row:3;justify-self:start;margin:8px 0 0}
  .split,.guestbook-layout{gap:40px}
  .photo-gallery{gap:40px 25px}
}
@media(max-width:700px){
  .hero{grid-template-columns:1fr;gap:46px;padding-block:48px 75px}
  .hero h1.memorial-name{font-size:clamp(54px,11vw,76px);margin:25px 0}
  .hero-photo{height:auto;max-height:510px;max-width:min(88%,400px);justify-self:center}
  .intro{margin-bottom:38px}
  .intro h2{font-size:clamp(38px,9vw,55px)}
  .card{grid-template-columns:55px 1fr;gap:12px 16px}
  .card .num{grid-column:1;grid-row:1;padding-top:4px}
  .card .time{grid-column:2;grid-row:1}
  .card h3{grid-column:2;grid-row:2;font-size:25px}
  .card p{grid-column:2;grid-row:3}
  .card a{grid-column:2;grid-row:4;margin:0}
  .split,.guestbook-layout{grid-template-columns:1fr;gap:32px}
  .quote{padding:22px 0 0 22px}
  .cta{padding:72px 22px}
  .photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 18px}
  .guestbook form{padding:28px 23px}
}
@media(max-width:480px){
  .wrap{padding-inline:20px}
  .hero h1.memorial-name{font-size:clamp(48px,12vw,66px)}
  .hero-photo{max-width:88%}
  .photo-gallery{grid-template-columns:1fr;max-width:360px;gap:35px}
  .photo-gallery img{width:100%;height:auto}
  .simple-form{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;scroll-behavior:auto!important}
}
