/* The Leaf 2D brand application. See CORPORATE-DESIGN.md before extending. */
.leaf-site {
 --leaf-fast:var(--leaf-duration-fast);
 --leaf-slow:var(--leaf-duration-section);
 --leaf-ease:var(--leaf-ease-standard);
 background:var(--leaf-paper);color:var(--leaf-ink);
}
.leaf-site .leaf-header {background:var(--leaf-white);border-bottom:1px solid var(--leaf-line);}
.leaf-site :is(h1,h2,h3) {hyphens:none;}
.leaf-site :is(.home-hero,.leaf-room) {max-width:var(--leaf-content);}
.leaf-site :is(.home-hero,.page-hero,.leaf-room,.leaf-invitation) {
 background:var(--leaf-deep);border-radius:var(--leaf-radius-frame);box-shadow:none;
}
.leaf-site .home-hero {border-color:var(--leaf-deep);border-bottom:4px solid var(--leaf-rose);}
.leaf-site .page-hero {border-bottom:4px solid var(--leaf-rose);}
.leaf-site .hero-brand-plaque,
html[dir="rtl"] .leaf-site .hero-brand-plaque {
 transform:none;box-shadow:none;border-radius:var(--leaf-radius-control);
 border-bottom-color:var(--leaf-rose);background:var(--leaf-white);
}
.leaf-site :is(.hero-copy,.welcome-strip,.gather-section,.article-header,.journal-header,.leaf-invitation)::before {content:none;}
.leaf-site .welcome-strip {background:var(--leaf-sage);border-block:1px solid var(--leaf-line);}
.leaf-site .gather-section {background:var(--leaf-rose-soft);border-block:0;}
.leaf-site :is(.article-header,.journal-header) {
 background:var(--leaf-rose-soft);border-radius:var(--leaf-radius-frame);
 border-bottom:4px solid var(--leaf-rose);
}
.leaf-site :is(.page-hero figure>img,.hero-stage>.leaf-photo,.card-media,.photo-story>img,.gather-photo img,.article-figure img,.room-detail .leaf-photo) {
 border-radius:var(--leaf-radius-frame);
}
.leaf-site .card-media {border-bottom:0;}
.leaf-site .card-copy {border-top:2px solid var(--leaf-rose);margin-top:var(--leaf-space-4);padding-top:var(--leaf-space-4);}
.leaf-site :is(.article-body,.article-note,.toc-mobile,.visit-aside) {border-radius:var(--leaf-radius-control);}
.leaf-site .visit-aside,.leaf-site .visit-section>.row {background:var(--leaf-sage);}
.leaf-site .visit-section>.row {border-radius:var(--leaf-radius-frame);overflow:hidden;}
.leaf-site .article-note {background:var(--leaf-sage);border-inline-start:3px solid var(--leaf-brand);}
.leaf-site .leaf-invitation {border-top:3px solid var(--leaf-rose);}
.leaf-site :is(.section-heading>.kicker,.section-heading>div>.kicker)::before {
 width:30px;height:16px;background:var(--leaf-arch-pattern) center/contain no-repeat;
 margin-inline-end:var(--leaf-space-3);vertical-align:-2px;
}
.leaf-site .occasion-symbol {
 border-radius:var(--leaf-radius-control);background:var(--leaf-paper);
 border:1px solid var(--leaf-rose-ink);color:var(--leaf-deep);
}
.leaf-site .btn {
 border-radius:var(--leaf-radius-control);box-shadow:none;
 transition:background-color var(--leaf-fast),border-color var(--leaf-fast),color var(--leaf-fast);
}
.leaf-site .btn:hover,.leaf-site .btn:active {box-shadow:none;transform:none;}
.leaf-site .btn:active {filter:brightness(.93);}
.leaf-site .btn-primary {background:var(--leaf-brand);border-color:var(--leaf-brand);color:var(--leaf-white);}
.leaf-site .btn-primary:hover {background:var(--leaf-deep);border-color:var(--leaf-deep);color:var(--leaf-white);}
.leaf-site :is(.home-hero,.page-hero,.leaf-invitation) .btn-primary,
.leaf-site .leaf-invitation .btn,.leaf-site .btn-light {
 background:var(--leaf-white);border-color:var(--leaf-white);color:var(--leaf-deep);
}
.leaf-site :is(.home-hero,.page-hero,.leaf-invitation) .btn-primary:hover,
.leaf-site .leaf-invitation .btn:hover,.leaf-site .btn-light:hover {
 background:var(--leaf-rose-soft);border-color:var(--leaf-rose-soft);color:var(--leaf-deep);
}
.leaf-site :is(.mobile-nav,.language-menu nav,.language-menu summary) {
 background:var(--leaf-white);border:1px solid var(--leaf-brand);
 border-radius:var(--leaf-radius-control);box-shadow:none;
}
.leaf-site .desktop-nav .nav-link[aria-current] {text-decoration-color:var(--leaf-brand);text-decoration-thickness:2px;}
.leaf-site :is(.text-link,.read-link) {text-decoration-thickness:1px;}
.leaf-site .editorial-card:hover .card-media img {transform:none;}
.leaf-site .editorial-card:hover .card-copy h3 {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;}
.leaf-site .contact-band {background:var(--leaf-deep);}
.leaf-site .contact-band::before {
 inset:0;width:auto;height:auto;transform:none;filter:none;mix-blend-mode:normal;
 background:url('assets/leaf-three-arches.svg') 96% bottom/240px auto no-repeat;
 opacity:.16;mask-image:none;
}
.leaf-site .leaf-footer {background:var(--leaf-ink);}
.leaf-site .leaf-footer::before {
 height:32px;background:var(--leaf-arch-pattern) center top/84px 36px repeat-x;
 opacity:.6;border-bottom:0;mask-image:none;
}
.leaf-site :is(.leaf-room,.page-hero,.home-hero,.contact-band,.leaf-footer,.leaf-invitation) :is(a,button,summary):focus-visible {
 outline-color:var(--leaf-white);
}
.leaf-site .room-main .leaf-photo {border-radius:50% 50% var(--leaf-radius-control) var(--leaf-radius-control);}
.leaf-site .leaf-room h2 {color:var(--leaf-white);}
.leaf-site .room-drawing .arch-line {stroke:var(--leaf-rose-soft);}
.leaf-site .room-drawing .pendant-glass {color:var(--leaf-rose-soft);}
.leaf-site .room-drawing .pendant-petal {color:var(--leaf-rose);}
@media(prefers-reduced-motion:no-preference) {
 .leaf-site .mobile-menu[open] .mobile-nav,.leaf-site .language-menu[open] nav {animation-duration:var(--leaf-duration-panel);}
 .leaf-site .leaf-entering {animation-duration:var(--leaf-duration-section);}
 .room-awake .arch-line {animation:leaf-arch-draw 900ms var(--leaf-ease-standard) both;}
 .room-awake .pendant-glass {animation:leaf-flat-glass 1600ms var(--leaf-ease-standard) both;}
 .room-awake .pendant-petal {animation:leaf-flat-petal 1800ms var(--leaf-ease-standard) both;}
}
@keyframes leaf-arch-draw {from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes leaf-flat-glass {0%{rotate:-1deg}45%{rotate:.5deg}100%{rotate:0deg}}
@keyframes leaf-flat-petal {0%{rotate:1deg}45%{rotate:-.5deg}100%{rotate:0deg}}
@keyframes leaf-section-in {from{opacity:.7;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px) {
 .leaf-site .contact-band::before {background-size:160px auto;opacity:.1;}
 .leaf-site :is(.article-header,.journal-header,.page-hero) {border-radius:var(--leaf-radius-frame);}
 .leaf-site .card-copy {margin-top:var(--leaf-space-3);padding-top:var(--leaf-space-3);}
 .leaf-site .journal-grid .card-copy {margin-top:0;padding-top:0;border-top:0;}
}
@media(prefers-reduced-motion:reduce) {
 .leaf-site .room-drawing * {animation:none!important;stroke-dashoffset:0;}
}

/* Together: a layered field built from the Leaf lines and the three-arch rhythm. */
.leaf-site .gather-section {
 position:relative;isolation:isolate;overflow:hidden;
 background:linear-gradient(118deg,#f3e4dc 0%,#ead8d0 48%,#e1e8df 130%);
}
.leaf-site .gather-section::before {
 content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
 background:
  url('assets/leaf-lines.svg') 92% 12%/300px 300px no-repeat,
  url('assets/leaf-lines.svg') -100px calc(100% + 84px)/260px 260px no-repeat,
  radial-gradient(circle at 84% 18%,#ffffff8c 0 2px,transparent 2.5px) 0 0/28px 28px;
 opacity:.46;mask-image:linear-gradient(100deg,#000 0 26%,transparent 65%);
}
.leaf-site .gather-section::after {
 content:'';position:absolute;z-index:0;pointer-events:none;
 inset:22px max(22px,calc((100% - var(--leaf-content))/2)) 22px;
 border:1px solid #af786d42;border-radius:var(--leaf-radius-frame);
}
.leaf-site .gather-section>.container-xl {position:relative;z-index:1;padding:22px;}
.leaf-site .gather-photo {position:relative;padding:0 0 22px 22px;align-self:stretch;}
.leaf-site .gather-photo::before {
 content:'';position:absolute;inset:22px 22px 0 0;border:1px solid #af786d;
 border-radius:var(--leaf-radius-frame);transform:translate(-12px,12px);z-index:-1;
}
.leaf-site .gather-photo img {height:100%;min-height:540px;border-radius:var(--leaf-radius-frame);}
.leaf-site .gather-copy {
 position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;
 margin:26px 0 26px -26px;padding:clamp(34px,5vw,74px) clamp(30px,5vw,76px);
 background:linear-gradient(132deg,#f8f2edee,#eee0d9e8);border-radius:0 var(--leaf-radius-frame) var(--leaf-radius-frame) 0;
 box-shadow:0 18px 42px #513d3612;
}
.leaf-site .gather-copy::before {
 content:'';position:absolute;z-index:0;pointer-events:none;inset:auto -38px -35px auto;width:230px;height:160px;
 background:url('assets/leaf-three-arches.svg') right bottom/230px auto no-repeat;opacity:.25;
}
.leaf-site .gather-copy>* {position:relative;z-index:1;}
.leaf-site .gather-copy>p {max-width:500px;font-size:1.03rem;line-height:1.7;}
.leaf-site .occasion-list {display:grid;gap:9px;margin-top:30px;max-width:620px;}
.leaf-site .occasion-list>a {
 min-height:82px;padding:13px 16px;border:1px solid #af786d54;border-radius:18px 4px 18px 4px;
 background:#fff8;box-shadow:0 1px 0 #fff9 inset;transition:transform var(--leaf-fast) var(--leaf-ease),background-color var(--leaf-fast),border-color var(--leaf-fast),box-shadow var(--leaf-fast);
}
.leaf-site .occasion-list>a:last-child {border-bottom:1px solid #af786d54;}
.leaf-site .occasion-list strong {font-size:1.08rem;font-weight:600;letter-spacing:-.01em;}
.leaf-site .occasion-list small {font-size:.84rem;line-height:1.45;margin-top:5px;}
.leaf-site .occasion-symbol {width:48px;height:48px;flex-basis:48px;border:1px solid #af786d;color:var(--leaf-deep);background:linear-gradient(145deg,#fff,#eee2da);border-radius:16px 5px 16px 5px;}
.leaf-site .occasion-symbol .leaf-icon {width:22px;height:22px;}
@media(hover:hover) and (pointer:fine) {
 .leaf-site .occasion-list>a:hover {background:#fff;border-color:#a87669;box-shadow:0 9px 22px #684a3b14;transform:translateX(4px);}
 [dir="rtl"] .leaf-site .occasion-list>a:hover {transform:translateX(-4px);}
 .leaf-site .occasion-list>a:hover .occasion-symbol {background:#e4eee4;}
}
@media(max-width:767px) {
 .leaf-site .gather-section::before {background-size:205px 205px,180px 180px,28px 28px;opacity:.34;mask-image:linear-gradient(135deg,transparent 4%,#000 55%,transparent 100%);}
 .leaf-site .gather-section::after {inset:12px;border-radius:26px 4px 26px 4px;}
 .leaf-site .gather-section>.container-xl {padding:18px 18px 30px;}
 .leaf-site .gather-photo {padding:0 0 15px 15px;}
 .leaf-site .gather-photo::before {inset:14px 15px 0 0;transform:translate(-8px,8px);}
 .leaf-site .gather-photo img {min-height:0;height:310px;}
 .leaf-site .gather-copy {margin:4px 0 0;padding:30px 20px 22px;border-radius:26px 4px 26px 4px;background:#f8f2edf2;}
 .leaf-site .gather-copy::before {width:150px;height:108px;background-size:150px auto;inset:auto -18px -18px auto;opacity:.2;}
 .leaf-site .gather-copy>p {font-size:.96rem;line-height:1.65;}
 .leaf-site .occasion-list {gap:8px;margin-top:22px;}
 .leaf-site .occasion-list>a {min-height:74px;padding:11px 12px;border-radius:14px 4px 14px 4px;}
 .leaf-site .occasion-symbol {width:42px;height:42px;flex-basis:42px;border-radius:13px 4px 13px 4px;}
 .leaf-site .occasion-list strong {font-size:1rem;}
 .leaf-site .occasion-list small {font-size:.78rem;}
}
