.public-header{background-color:#f4f1eb;box-shadow:none;border-bottom:1px solid rgba(229,224,215,.7);position:fixed;top:0;left:0;right:0;z-index:1000;width:100%;transition:transform .3s ease-in-out,background-color .3s ease;padding-top:env(safe-area-inset-top)}.public-header,.public-header.header-visible{transform:translateY(0)}.public-header.header-hidden{transform:translateY(-100%)}.public-header.header-scrolled{background-color:rgba(244,241,235,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:rgba(229,224,215,.9)}.public-header-container{max-width:1200px;margin:0 auto;padding:0 max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;min-height:70px;height:70px;width:100%;box-sizing:border-box}.public-header-left{flex:1}.public-logo{text-decoration:none;color:#333}.public-logo-text{margin:0;font-size:24px;font-weight:600;color:#333;font-family:League Spartan,sans-serif;letter-spacing:-.05em}.public-logo-text sup{font-size:.55em;top:-.4em;vertical-align:super;line-height:0}.public-navigation{display:flex;gap:32px;align-items:center}.nav-link{text-decoration:none;color:#666;font-weight:500;transition:color .2s ease;padding:8px 0;min-height:44px;display:inline-flex;align-items:center}.nav-link:hover{color:#c9a96e}.line-link{background-color:transparent;color:#c9a96e!important;border:1px solid #c9a96e;border-radius:0;padding:12px 20px;font-weight:500;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;transition:background-color .2s ease,color .2s ease;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.line-link:hover{background-color:#c9a96e;color:#ffffff!important}.mobile-only{display:none}.public-header-right{flex:1;display:flex;justify-content:flex-end}.line-button{background-color:transparent;color:#c9a96e;border:1px solid #c9a96e;padding:10px 24px;border-radius:0;text-decoration:none;font-weight:500;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;transition:background-color .2s ease,color .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:120px}.line-button:hover{background-color:#c9a96e;color:#ffffff}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;min-width:44px;min-height:44px;width:44px;height:44px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001;position:relative;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-menu-toggle span{width:24px;height:3px;background-color:var(--color-text-primary);border-radius:2px;transition:all .3s ease;transform-origin:center;position:absolute}.mobile-menu-toggle span:first-child{top:14px}.mobile-menu-toggle span:nth-child(2){top:21px}.mobile-menu-toggle span:nth-child(3){top:28px}.mobile-menu-toggle-open span:first-child{transform:rotate(45deg);top:21px}.mobile-menu-toggle-open span:nth-child(2){opacity:0}.mobile-menu-toggle-open span:nth-child(3){transform:rotate(-45deg);top:21px}@media (max-width:768px){.public-header-container{flex-direction:row;height:70px;padding:0 15px;justify-content:space-between;align-items:center;width:100%;max-width:100vw;box-sizing:border-box}.public-navigation{position:fixed;top:70px;left:0;right:0;background:var(--color-white);box-shadow:0 4px 8px rgba(0,0,0,.1);flex-direction:column;gap:0;padding:20px;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform .3s ease,opacity .3s ease,visibility .3s ease;z-index:1000}.public-navigation.mobile-menu-open{transform:translateY(0);opacity:1;visibility:visible}.public-navigation .nav-link{padding:15px 0;border-bottom:1px solid var(--color-border);text-align:center;font-size:16px}.public-navigation .line-link{margin:10px 20px;padding:12px 20px;text-align:center;border-radius:8px;font-size:16px;font-weight:600}.public-navigation .nav-link:last-child{border-bottom:none}.public-header-right{display:none}.mobile-menu-toggle{display:flex;margin-right:10px}.mobile-only{display:block}}@media (max-width:480px){.public-navigation{gap:16px}.nav-link{font-size:14px}}.public-footer{background-color:#2a2118;color:#f4f1eb;margin-top:auto}.public-footer-container{max-width:1200px;margin:0 auto;padding:56px 20px 28px}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px;margin-bottom:40px}.footer-section h3,.footer-section h4{margin:0 0 16px;color:#f4f1eb;font-family:var(--font-display);font-weight:400;letter-spacing:.06em}.footer-section h3{font-size:1.4rem;font-style:italic}.footer-section h4{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;font-style:normal;font-family:var(--font-secondary);font-weight:500;color:rgba(244,241,235,.55)}.footer-section p{margin:8px 0;color:rgba(244,241,235,.6);line-height:1.7;font-size:.9rem}.footer-line-link{display:inline-flex;align-items:center;background-color:transparent;color:var(--color-accent);border:1px solid var(--color-accent);padding:10px 20px;border-radius:0;text-decoration:none;font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin:8px 0;transition:background-color .2s ease,color .2s ease}.footer-line-link:hover{background-color:var(--color-accent);color:#ffffff}.footer-bottom{border-top:1px solid rgba(244,241,235,.1);padding-top:24px;text-align:center}.footer-bottom p{margin:0;color:rgba(244,241,235,.3);font-size:.8rem;letter-spacing:.06em}.footer-links-bottom{margin-top:12px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.footer-link{color:rgba(244,241,235,.4);text-decoration:none;font-size:.8rem;letter-spacing:.06em;transition:color .2s ease}.footer-link:hover{color:var(--color-accent)}@media (max-width:768px){.footer-content{grid-template-columns:1fr;gap:28px}.public-footer-container{padding:40px 20px 20px}}.public-layout{min-height:100vh;display:flex;flex-direction:column}.public-layout,.public-main{width:100%;max-width:100vw;overflow-x:hidden}.public-main{flex:1;padding-top:0}@media (max-width:768px){.public-layout,.public-main{width:100%;max-width:100vw;overflow-x:hidden}.public-main{padding-top:0}}