.contact-page-wrapper{--status-open:#10b981;--status-closed:var(--text-tertiary);background-color:var(--bg-page);width:100%;min-height:100vh;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.contact-page{max-width:1100px;margin:0 auto;padding:56px 24px 64px}.page-header{max-width:720px;margin-bottom:32px}.page-header__title{font-family:var(--font-serif);font-size:var(--text-page-title);letter-spacing:var(--tracking-heading);color:var(--text-primary);margin:0 0 12px;font-weight:400;line-height:1.15}.page-header__title-accent{color:var(--accent)}.page-header__subtitle{font-size:var(--text-base);color:var(--text-secondary);max-width:600px;margin:0;line-height:1.6}.page-header__actions{flex-wrap:wrap;gap:18px;margin-top:18px;display:flex}.page-header__actions a{color:var(--accent);font-size:var(--text-sm);align-items:center;gap:5px;font-weight:600;text-decoration:none;display:inline-flex}.page-header__actions a span{transition:transform .2s}.page-header__actions a:hover{color:var(--accent-hover)}.page-header__actions a:hover span{transform:translate(3px)}.contact-grid{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:0;margin-bottom:32px;display:grid;overflow:hidden}.contact-card{background:var(--bg-card);grid-template-rows:auto auto 1fr auto;grid-template-columns:40px minmax(0,1fr);column-gap:12px;min-width:0;padding:24px;display:grid}.contact-card+.contact-card{border-left:1px solid var(--border-subtle)}.contact-card>.contact-card__header,.visit-card__section>.contact-card__header{grid-area:1/1/3;align-self:start;margin:0}.contact-card>.contact-card__title,.visit-card__section>.contact-card__title{grid-area:1/2}.contact-card>.contact-card__description,.visit-card__section>.contact-card__description{grid-area:2/2;margin:0 0 20px}.contact-card>.contact-card__primary,.contact-card>.contact-card__email-actions,.contact-card>.contact-card__note,.visit-card__section>.contact-card__primary,.visit-card__section>.contact-card__link,.visit-card__section>.hours-list,.visit-card__section>.schedule-status{grid-column:1/-1}.contact-card>.contact-card__primary{align-self:end}.contact-card__email-actions{flex-wrap:wrap;align-self:end;align-items:center;gap:8px 12px;min-width:0;margin-bottom:6px;display:flex}.contact-card__email-actions .contact-card__primary{overflow-wrap:anywhere;flex:260px;min-width:0;margin-bottom:0}.contact-card__copy-button{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);color:var(--accent);font:inherit;font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font-weight:600;line-height:1.3;transition:border-color .15s,background-color .15s;display:inline-flex}.contact-card__copy-button svg{flex:none;width:16px;height:16px}.contact-card__copy-button:hover{border-color:var(--accent);background:var(--accent-soft)}.contact-card__copy-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-card__copy-button:disabled{cursor:wait}.contact-card--featured{background:linear-gradient(145deg, var(--accent-soft) 0%, var(--bg-card) 68%)}.contact-card--featured .contact-card__primary{color:var(--accent);font-size:var(--text-xl)}.contact-card__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.contact-card__icon{border-radius:var(--radius-md);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-card__icon svg{width:20px;height:20px}.contact-card__title{font-size:var(--text-body);letter-spacing:-.01em;color:var(--text-primary);margin:0 0 6px;font-weight:600}.contact-card__description{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 12px;line-height:1.55}.contact-card__primary{font-size:var(--text-body);color:var(--text-primary);letter-spacing:-.01em;word-break:break-word;margin-bottom:6px;font-weight:600;line-height:1.4;text-decoration:none;transition:color .15s;display:block}a.contact-card__primary:hover{color:var(--accent)}.contact-card__primary--small{font-size:var(--text-base);font-weight:500}.contact-card__note{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.contact-card__link{font-size:var(--text-sm);color:var(--accent);align-self:flex-start;align-items:center;gap:5px;margin-top:16px;padding-top:0;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.contact-card__link:hover{color:var(--accent-hover)}.contact-card__link svg{width:13px;height:13px;transition:transform .2s}.contact-card__link:hover svg{transform:translate(3px)}.contact-visit-card{background:var(--bg-card);border-top:1px solid var(--border-subtle);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.visit-card__section{grid-template-rows:auto auto 1fr auto;grid-template-columns:40px minmax(0,1fr);column-gap:12px;min-width:0;padding:24px;display:grid}.visit-card__section+.visit-card__section{border-left:1px solid var(--border-subtle)}.visit-card__section--location .contact-card__primary{align-self:start;margin-bottom:0}.visit-card__section--location .contact-card__link{min-height:24px;margin-top:12px}.schedule-status{font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0 0;padding:0;line-height:1.4;display:flex}.status-dot{background:var(--status-closed);border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:all .2s}.schedule-status.open .status-dot{background:var(--status-open);box-shadow:0 0 0 3px #10b9812e}.schedule-status.closed .status-dot{background:var(--status-closed)}.schedule-status.closing-soon .status-dot{background:#ca8a04;box-shadow:0 0 0 3px #ca8a042e}.status-text{color:var(--text-primary);font-weight:600}.status-details{color:var(--text-secondary)}.status-details:not(:empty):before{content:"·";color:var(--text-tertiary);margin-right:7px}.hours-list{align-self:start;margin:0;padding:0;list-style:none}.hours-list li{font-size:var(--text-sm);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.hours-list li:last-child{border-bottom:none;padding-bottom:0}.hours-list li:first-child{padding-top:0}.hours-list__day{color:var(--text-secondary)}.hours-list__time{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.hours-list__time--closed{color:var(--text-tertiary);font-weight:400}.map-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.map-section__header{border-bottom:1px solid var(--border-subtle);padding:20px 24px}.map-section__title{font-size:var(--text-base);color:var(--text-primary);letter-spacing:-.005em;margin:0 0 4px;font-weight:600}.map-section__subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.map-container{background:var(--bg-subtle);height:360px;position:relative}.map-container iframe{border:0;width:100%;height:100%;display:block}.map-section__footer{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.map-section__footer .contact-card__link{margin-top:0}.map-section__address{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.map-section__address strong{color:var(--text-primary);font-weight:500}@media (width<=720px){.contact-page{padding:40px 20px 48px}.contact-grid{grid-template-columns:1fr}.contact-card+.contact-card{border-left:none;border-top:1px solid var(--border-subtle)}.contact-card{padding:20px}.contact-card__header{gap:8px}.contact-card__primary{font-size:var(--text-base)}.contact-visit-card{grid-template-columns:1fr}.visit-card__section{padding:20px}.visit-card__section+.visit-card__section{border-top:1px solid var(--border-subtle);border-left:none}.map-container{height:280px}.map-section__footer{flex-direction:column;align-items:flex-start}}@media (width<=380px){.contact-card,.visit-card__section{padding:16px}.contact-card__icon{width:36px;height:36px}}
