/* Tahap 2 — pembuka isi. Tidak mengubah komposisi dan warna sampul final. */
.greeting-section { position:relative; isolation:isolate; background:var(--ivory); text-align:center; color:var(--mauve); }
.greeting-wave { position:absolute; top:-43px; left:0; width:100%; height:44px; color:var(--ivory); }
.greeting-corner { position:absolute; top:72px; width:clamp(65px,21vw,104px); height:auto; color:var(--mauve); opacity:.20; pointer-events:none; z-index:-1; }
.greeting-corner--left { left:0; }
.greeting-corner--right { right:0; transform:scaleX(-1); }
.greeting-content { max-width:650px; padding:clamp(68px,14vw,105px) 22px 88px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:0; }
.greeting-header { display:flex; flex-direction:column; align-items:center; gap:4px; width:100%; }
.greeting-title { font-family:var(--font-greeting); font-weight:400; line-height:1.3; font-size:clamp(30px,8.2vw,39px); letter-spacing:-.025em; color:var(--plum); margin:0; }
.balinese-greeting { font-family:var(--font-balinese); color:var(--plum); font-size:clamp(23px,6vw,32px); line-height:1.85; margin:0; max-width:100%; overflow-wrap:anywhere; }
.greeting-intro,.greeting-honor { font-size:clamp(14px,3.8vw,16px); line-height:1.82; font-weight:400; letter-spacing:.005em; color:var(--mauve); margin:0; max-width:580px; text-wrap:pretty; }
.greeting-intro { margin-top:32px; }
.event-summary { display:flex; width:100%; flex-direction:column; align-items:center; margin-top:35px; }
.event-summary-title { margin:0 0 20px; font-size:clamp(17px,4vw,19px); font-weight:700; color:var(--mauve); }
.event-card { width:100%; display:grid; grid-template-columns:minmax(100px,31%) 1fr; border:2px solid #D7C9D7; border-radius:17px; overflow:hidden; background:rgba(255,255,255,.61); min-height:164px; box-shadow:0 12px 28px rgba(46,2,59,.035); }
.event-date-panel { display:flex; flex-direction:column; align-items:center; justify-content:center; background:#EFE6EE; border-right:1px solid #D7C9D7; padding:15px 8px; }
.event-month,.event-year { display:block; font-weight:600; line-height:1.35; color:var(--mauve); font-size:clamp(12px,3.6vw,17px); }
.event-month { overflow-wrap:anywhere; }
.event-day { display:block; font-size:clamp(43px,13.5vw,65px); letter-spacing:-.045em; font-weight:700; line-height:1.21; color:var(--plum); margin:1px 0; }
.event-details-panel { display:grid; grid-template-rows:minmax(68px,auto) minmax(95px,auto); }
.event-time,.event-place { display:flex; justify-content:center; align-items:center; padding:16px 12px; font-size:clamp(13px,3.5vw,16px); line-height:1.48; font-weight:600; color:var(--mauve); overflow-wrap:anywhere; }
.event-time { border-bottom:1px solid #D7C9D7; }
.event-place { font-weight:500; }
.calendar-container { position:relative; display:flex; align-items:center; flex-direction:column; width:100%; gap:10px; margin-top:23px; }
.calendar-button { border:0; cursor:pointer; color:var(--ivory); background:var(--plum); font:600 clamp(14px,3.8vw,16px)/1.4 var(--font-body); border-radius:999px; padding:14px 25px; min-height:52px; max-width:100%; box-shadow:0 6px 14px rgba(46,2,59,.12); }
.calendar-button:disabled { cursor:not-allowed; opacity:.64; box-shadow:none; }
.calendar-hint { max-width:340px; margin:0; color:var(--mauve); font-size:11px; line-height:1.5; }
.calendar-options { display:flex; flex-direction:column; width:min(100%,280px); overflow:hidden; border-radius:12px; background:#FFF; box-shadow:0 10px 22px rgba(46,2,59,.13); border:1px solid #E1D6E0; }
.calendar-options[hidden] { display:none; }
.calendar-options a,.calendar-options button { display:block; text-align:center; color:var(--plum); border:0; background:none; text-decoration:none; cursor:pointer; padding:14px 12px; font:600 13px/1.4 var(--font-body); }
.calendar-options a { border-bottom:1px solid #EEE5EF; }
.calendar-options a:hover,.calendar-options button:hover {background:#F5EDF4;}
.greeting-honor { margin-top:46px; }
.greeting-signoff { display:flex; flex-direction:column; gap:20px; align-items:center; padding-top:45px; }
.signoff-line { display:block; height:1px; width:74px; background:#D7C9D7; }
.greeting-signoff p { font:700 16px/1.5 var(--font-body); margin:0; color:var(--plum); }
.phase-end { text-align:center; color:var(--mauve); background:#EFE7EB; padding:24px 20px 36px; border-top:1px solid #E6D8E5; }
.phase-end span { font:700 10px/1.3 var(--font-body); letter-spacing:.22em; }
.phase-end p {font:400 12px/1.7 var(--font-body); margin:7px auto 0; max-width:390px;}
@media(max-width:350px){
 .greeting-content { padding-left:17px; padding-right:17px; }
 .event-card {grid-template-columns:minmax(91px,31%) 1fr;}
 .event-date-panel {padding:12px 5px;}
 .event-time,.event-place {padding:12px 9px;}
 .greeting-corner {top:68px;}
}
@media(min-width:860px) {
 .greeting-section,.phase-end { max-width:520px; margin-inline:auto; }
 .greeting-title {font-size:44px;}
 .event-card {max-width:480px;}
}
/* Development label belongs to the start of the page; do not overlay the greeting. */
.phase-tag { position:absolute; }
