/* 18 October: V07 palette and the five approved compositions, existing journeys retained. */
.v08-site { --ivory:#FAF7EF; --paper:#FFFDF8; --stone:#8B634A; --stone-deep:#624632; --ocean:#345F73; --sea:#94B7C8; --champagne:#DFC58F; --ink:#42382F; --line:#DED5C7; }
.v08-site :is(.journey.guest-v08,.v08-announcement) { --paper:#FFFDF8; }
.v08-site .journey.guest-v08 :is(button,.button):not(.button-link,.button-secondary,.danger,.button-danger,[aria-pressed],.media-tag-remove),
.visual-announcement .button { background:var(--stone); border-color:var(--stone); color:var(--paper); }
.v08-site .journey.guest-v08 :is(button,.button):not(.button-link,.button-secondary,.danger,.button-danger,[aria-pressed],.media-tag-remove):hover,
.visual-announcement .button:hover { background:var(--stone-deep); border-color:var(--stone-deep); color:var(--paper); }
.v08-site .site-footer { background:var(--ivory); color:var(--stone-deep); border-top:1px solid var(--line); margin-top:2rem; padding-block:2rem; }
.v08-site .site-footer :is(p,a,button) { color:var(--stone-deep); }
.v08-site .site-footer :focus-visible { outline-color:var(--ocean); }
.visual-signature { font:italic 1.4rem/1.5 Georgia,'Times New Roman',serif; color:var(--stone); }
.visual-announcement { max-width:90rem; margin:auto; padding:1.8rem clamp(1.25rem,5.1vw,4.625rem) 4rem; }
.visual-announcement :is(figure,p,h1,h2) { margin:0; }
.visual-announcement :is(div,figure) { min-width:0; }
.visual-announcement .kicker { color:var(--stone); font:500 .7rem/1.65 Arial,Helvetica,sans-serif; letter-spacing:.19em; text-transform:uppercase; }
.visual-announcement-hero { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; padding:.75rem 0 2.5rem; min-height:38.125rem; }
.visual-announcement-copy { padding-top:1.625rem; }
.visual-announcement-copy > .kicker { margin-bottom:1.3rem; }
.visual-announcement h1 { font:400 clamp(4rem,8.45vw,7.5rem)/.98 Georgia,'Times New Roman',serif; letter-spacing:-.065em; color:var(--stone-deep); margin:0 0 2.2rem; max-width:none; text-wrap:initial; }
.visual-announcement h1 em { font-size:.65em; font-style:italic; color:var(--stone); letter-spacing:-.08em; }
.visual-announcement-date { display:flex; align-items:center; gap:1.375rem; margin-bottom:1.25rem; }
.visual-announcement-date > span { width:3.375rem; height:1px; flex:none; background:var(--stone); }
.visual-announcement-date p { font:1.8rem/1.2 Georgia,'Times New Roman',serif; color:var(--stone-deep); letter-spacing:-.025em; }
.visual-announcement-date small { display:block; font:.7rem/1.7 Arial,Helvetica,sans-serif; letter-spacing:.17em; color:var(--ocean); margin-top:.5rem; text-transform:uppercase; }
.visual-announcement .visual-announcement-message { font:1.0625rem/1.75 Arial,Helvetica,sans-serif; max-width:21.25rem; margin:1.45rem 0 1.55rem; }
.visual-announcement .visual-signature { margin-top:1.4rem; }
.save-date-calendar { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem 1rem; }
.visual-announcement .save-date-calendar .button { font:400 .875rem/1.5 Arial,Helvetica,sans-serif; padding:.8rem 1.45rem; border-radius:3px; }
.visual-announcement-copy .save-date-calendar .button::after { content:'↗'; font:1.3rem/1 Georgia,serif; margin-left:.5rem; }
.save-date-calendar-alternative { color:var(--stone-deep); font:.8rem/1.5 Arial,Helvetica,sans-serif; text-underline-offset:.25em; }
.visual-announcement-pictures { position:relative; padding:0 0 1.875rem 2.5rem; }
.visual-proposal { margin:0 0 0 2.375rem !important; }
.visual-proposal > img { display:block; width:100%; height:33.75rem; object-fit:cover; object-position:50% 59%; border-radius:10rem 10rem 3px 3px; }
.visual-proposal figcaption { padding:.875rem .2rem 0; font:italic 1rem/1.5 Georgia,serif; color:var(--stone); text-align:right; }
.visual-polaroid { position:absolute; left:0; bottom:.75rem; width:11.5625rem; padding:.5rem .5rem 0; background:var(--paper); border:1px solid var(--line); transform:rotate(-5deg); box-shadow:0 .45rem 1.25rem #42382f12; z-index:1; }
.visual-polaroid img { display:block; width:100%; height:12.125rem; object-fit:cover; object-position:50% 37%; }
.visual-polaroid figcaption { font:italic .875rem/1.5 Georgia,serif; color:var(--stone-deep); text-align:center; padding:.55rem .25rem; }
.visual-sun { position:absolute; right:-.875rem; top:.2rem; width:4.25rem; height:4.25rem; display:grid; place-items:center; background:var(--champagne); color:var(--stone-deep); border:6px solid var(--ivory); border-radius:50%; font:2.6rem/1 Georgia,serif; }
.visual-announcement-followup { display:grid; grid-template-columns:1fr 1fr; gap:3rem 4.5rem; border-top:1px solid var(--line); padding-top:3.375rem; margin-top:1.125rem; }
.visual-announcement-followup h2 { color:var(--stone-deep); font:400 clamp(2rem,2.85vw,2.5625rem)/1.2 Georgia,serif; letter-spacing:-.035em; max-width:29rem; margin:.95rem 0 0; text-wrap:initial; }
.visual-announcement-followup > div:nth-child(2) > p:not(.visual-signature) { font:.9375rem/1.8 Arial,Helvetica,sans-serif; margin-bottom:1.25rem; }
.visual-letter-flowers { display:block; object-fit:contain; margin-top:1.25rem; }
.visual-announcement-followup .visual-signature { margin:1.55rem 0; }
.visual-announcement .save-date-calendar-secondary .button { background:transparent; color:var(--stone-deep); border-color:#cdbca7; }
.visual-announcement .save-date-calendar-secondary .button:hover { background:var(--stone-light); }
.visual-photo-ribbon { grid-column:1/-1; display:grid; grid-template-columns:2.6fr 1fr; gap:1.375rem; margin-top:1rem; }
.visual-photo-ribbon figure { position:relative; height:12.75rem; overflow:hidden; border-radius:3px; }
.visual-photo-ribbon img { width:100%; height:100%; object-fit:cover; }
.visual-photo-mer img { object-position:50% 12%; }
.visual-photo-mains img { object-position:50% 48%; }
.visual-photo-ribbon figcaption { position:absolute; bottom:0; width:100%; padding:1.9rem 1.125rem .75rem; color:white; background:linear-gradient(transparent,#221a13ba); font:italic .875rem/1.5 Georgia,serif; }
.visual-announcement-access { margin-top:3rem; padding-top:1.25rem; border-top:1px solid var(--line); font:.9rem/1.65 Arial,Helvetica,sans-serif; }
.visual-announcement-access h2 { color:var(--stone-deep); font:1.5rem/1.3 Georgia,serif; margin-bottom:.75rem; }
.visual-announcement-access p + p { margin-top:.75rem; }
.journey.guest-v08.v08-invitation .invitation-letter h1 { color:var(--stone-deep); }
.journey.guest-v08.v08-invitation .invitation-castle { grid-column:2; grid-row:1 / span 2; align-self:stretch; display:flex; flex-direction:column; justify-content:center; margin:0; padding:1rem 1.25rem; background:#f5efdf; border:1px solid #e7ddc8; border-radius:4px; }
.invitation-castle img { width:100%; max-height:21rem; object-fit:contain; mix-blend-mode:multiply; }
.invitation-castle figcaption { font:italic 1.3rem/1.5 Georgia,serif; color:var(--stone); text-align:center; margin:.5rem 0; }
.journey.guest-v08 .brehat-memories { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; margin:3.5rem 0; padding:2.5rem; background:#eee4d7; border:1px solid #e7ddc8; border-radius:4px; }
.journey.guest-v08 .brehat-memories h2 { font-size:2.25rem; margin-block:1rem; text-wrap:initial; }
.brehat-memory-links { display:grid; gap:.75rem; }
.journey.guest-v08 a.brehat-memory-link { display:grid; grid-template-columns:4rem 1fr auto; align-items:center; gap:1.25rem; padding:1rem; background:var(--paper); border:1px solid transparent; border-radius:4px; text-decoration:none; color:var(--stone-deep); }
.journey.guest-v08 a.brehat-memory-link:nth-child(2) { background:#f7edda; }
.brehat-memory-link img { width:4rem; height:4rem; border-radius:50%; object-fit:cover; }
.brehat-memory-link:first-child img { object-position:50% 60%; }
.brehat-memory-link strong { display:block; font:400 1.4rem/1.3 Georgia,serif; }
.brehat-memory-link small { display:block; font:.875rem/1.5 Arial,sans-serif; color:var(--ink); margin-top:.25rem; }
.brehat-memory-link > span:last-child { font:1.8rem/1 Georgia,serif; color:var(--stone); }
.brehat-memory-link:hover { border-color:var(--stone) !important; }
.journey.guest-v08 .brehat-closing { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; padding:1rem 0 3rem; margin-top:3.5rem; }
.brehat-boat { display:block; width:95%; margin:auto; padding:.5625rem; border:1px solid var(--line); background:var(--paper); transform:rotate(-3deg); }
.brehat-boat img { display:block; width:100%; height:21.25rem; object-fit:cover; object-position:50% 60%; }
.brehat-coast { width:min(100%,16.875rem); aspect-ratio:2/1; overflow:hidden; position:relative; }
.brehat-coast img { position:absolute; width:181.4815%; max-width:none; height:auto; left:0; top:-74.0741%; mix-blend-mode:multiply; }
.journey.guest-v08 .brehat-closing .visual-signature { margin:1.5rem 0; font-size:1.8rem; }
.presentation-photo-dialog { max-width:min(92vw,70rem); max-height:92dvh; padding:1rem; border:1px solid var(--line); background:var(--ivory); color:var(--ink); border-radius:4px; }
.presentation-photo-dialog::backdrop { background:#221a13b8; }
.presentation-photo-dialog header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.presentation-photo-dialog h2 { font:1.5rem/1.3 Georgia,serif; margin:.5rem 0; }
.presentation-photo-dialog figure { margin:1rem 0 0; }
.presentation-photo-dialog img { display:block; max-width:100%; max-height:70dvh; width:auto; height:auto; margin:auto; object-fit:contain; }
.presentation-photo-dialog figcaption { font-size:.875rem; margin-top:.75rem; }
@media(max-width:59.99rem) {
 .journey.guest-v08.v08-invitation .invitation-castle { grid-column:auto; grid-row:auto; width:100%; }
 .visual-announcement-hero { grid-template-columns:1fr 1fr; gap:2rem; }
 .visual-proposal { margin-left:1.25rem !important; }
 .visual-proposal > img { height:30rem; }
 .visual-polaroid { width:9rem; }
 .visual-polaroid img { height:9rem; }
 .journey.guest-v08 .brehat-memories { grid-template-columns:1fr; gap:1.5rem; }
 .journey.guest-v08 .brehat-closing { gap:2rem; }
}
@media(max-width:44.99rem) {
 .visual-announcement { padding-top:1.25rem; padding-bottom:2rem; }
 .visual-announcement-hero { grid-template-columns:1fr; gap:2rem; min-height:0; padding:0 0 2.5rem; }
 .visual-announcement-copy { padding:0; }
 .visual-announcement h1 { font-size:clamp(3.5rem,16vw,5rem); margin-bottom:1.5rem; }
 .visual-announcement-date { gap:1rem; }
 .visual-announcement-date > span { width:2rem; }
 .visual-announcement-date p { font-size:1.625rem; }
 .visual-announcement .visual-announcement-message { font-size:.95rem; margin:1.25rem 0; }
 .visual-announcement-pictures { padding:0 0 2rem 1rem; }
 .visual-proposal { margin-left:1rem !important; }
 .visual-proposal > img { height:24.375rem; border-radius:8.125rem 8.125rem 3px 3px; object-position:50% 61%; }
 .visual-polaroid { width:8.5625rem; bottom:0; }
 .visual-polaroid img { height:8.875rem; }
 .visual-sun { width:3.75rem; height:3.75rem; right:-.3rem; font-size:2.2rem; }
 .visual-announcement-followup { grid-template-columns:1fr; padding-top:2.5rem; gap:1.5rem; margin-top:0; }
 .visual-announcement-followup h2 { font-size:2rem; }
 .visual-photo-ribbon { gap:.875rem; grid-template-columns:1.65fr 1fr; margin-top:1rem; }
 .visual-photo-ribbon figure { height:10rem; }
 .visual-photo-ribbon figcaption { font-size:.75rem; padding:1.5rem .5rem .5rem; }
 .save-date-calendar { align-items:flex-start; flex-direction:column; gap:.5rem; }
 .journey.guest-v08 .brehat-memories { margin:2rem 0; padding:1.5rem 1rem; }
 .journey.guest-v08 .brehat-memories h2 { font-size:1.9rem; }
 .journey.guest-v08 a.brehat-memory-link { grid-template-columns:3.25rem 1fr auto; gap:.75rem; padding:.75rem; }
 .brehat-memory-link img { width:3.25rem; height:3.25rem; }
 .brehat-memory-link strong { font-size:1.125rem; }
 .brehat-memory-link small { font-size:.8125rem; }
 .journey.guest-v08 .brehat-closing { grid-template-columns:1fr; gap:2rem; margin-top:2rem; padding-bottom:1rem; }
 .brehat-boat { width:92%; }
 .brehat-boat img { height:18.75rem; }
 .journey.guest-v08.v08-invitation .invitation-castle { padding:.75rem 1rem; }
 .invitation-castle img { max-height:12rem; }
 .invitation-castle figcaption { font-size:1.1rem; }
}
@media(prefers-reduced-motion:reduce) { .visual-polaroid,.brehat-boat { transform:none; } }
/* Secondary actions keep the quiet brown ink of the reference. */
.v08-site .journey.guest-v08 :is(button,.button).button-secondary { background:transparent; color:var(--stone-deep); border-color:#cdbca7; }
.v08-site .journey.guest-v08 :is(button,.button).button-secondary:hover { background:var(--stone-light); color:var(--stone-deep); border-color:var(--stone); }
.visual-photo-ribbon figcaption { text-align:center; }
@media(min-width:60rem) {
 .journey.guest-v08.v08-invitation .invitation-arrival-with-photo { grid-template-columns:1.08fr .92fr; gap:1.5rem 3.5rem; }
}
@media(max-width:44.99rem) {
 .visual-photo-ribbon { grid-template-columns:2.6fr 1fr; }
 .visual-photo-ribbon figure { height:8rem; }
}

/* The same announcement composition, without the private application shell. */
.public-save-date .site-frame { max-width:90rem; }
.public-save-date .sitehead { margin-inline:clamp(1.25rem,5.55vw,5rem); padding-block:1.25rem; }
.public-save-date .brand { font:1.65rem/1.2 Georgia,'Times New Roman',serif; }
.public-save-date .site-footer { margin:2rem 0 0; padding:2rem clamp(1.25rem,5.55vw,5rem); color:var(--stone-deep); }
@media(max-width:700px) {
    .public-save-date .sitehead { margin-inline:20px; padding-block:1rem; }
    .public-save-date .brand { font-size:1.4rem; }
    .public-save-date .site-footer { padding-inline:20px; }
}
