.project{color:inherit}a.project:hover h3{color:var(--teal)}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.ch{font-size:40px;line-height:1.3;letter-spacing:-.045em;margin:12px 0 18px}
.reserve-cta{margin-top:36px;padding:26px;background:var(--paper);border-top:4px solid var(--teal);display:grid;gap:10px}.reserve-cta span{font-size:14px;color:var(--muted)}.reserve-cta .btn{justify-self:start}
.cform{display:grid;gap:16px}.cform label{display:grid;gap:6px;font-size:13px;font-weight:700}
.cform input:not([type=checkbox]),.cform select,.cform textarea{font:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:4px;background:#fff;width:100%}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:2px solid var(--teal);border-color:var(--teal)}
.cform .agree{display:flex;gap:8px;font-weight:400;align-items:flex-start}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn.submit{background:var(--navy);color:#fff;border-color:var(--navy);cursor:pointer;font-family:inherit}.btn.submit:disabled{opacity:.6}
.fmsg{min-height:22px;margin:0;font-size:14px}.fmsg.ok{color:#0a7a5a}.fmsg.err{color:#b3261e}
.btn.line{color:var(--navy);border-color:var(--navy)}
/* sub pages */
.sub{padding:70px 0 100px;min-height:60vh}.sub h1{font-size:38px;letter-spacing:-.04em;margin:8px 0 26px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.filters a{padding:8px 16px;border:1px solid var(--line);border-radius:20px;font-size:13px;font-weight:700}.filters a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pcard{background:#fff;border:1px solid var(--line);display:block;transition:transform .25s,box-shadow .25s}.pcard:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(7,57,88,.1)}
.pcard .ph{aspect-ratio:4/3;background:linear-gradient(135deg,#0d4c72,#079b9b);display:grid;place-items:center;color:#cfeeee;font-weight:700;overflow:hidden}.pcard .ph img{width:100%;height:100%;object-fit:cover}
.pcard div.pb{padding:18px}.pcard small{color:var(--teal);font-weight:700;letter-spacing:.08em}.pcard h3{margin:6px 0;font-size:19px}.pcard p{margin:0;font-size:14px;color:var(--muted)}
.pdetail dl{display:grid;grid-template-columns:100px 1fr;gap:8px;margin:20px 0}.pdetail dt{color:var(--muted);font-size:13px}.pdetail dd{margin:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:26px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;display:block}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.88);display:none;place-items:center;z-index:100;cursor:zoom-out}.lb.on{display:grid}.lb img{max-width:92vw;max-height:92vh}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.rbox{background:var(--paper);padding:26px}.rbox h2{margin-top:0;font-size:20px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:14px 0}.slot{padding:10px 6px;border:1px solid var(--line);background:#fff;text-align:center;font:inherit;font-size:13px;cursor:pointer}
.slot.sel{background:var(--teal);color:#fff;border-color:var(--teal)}.slot:disabled{background:#eceff1;color:#9aa8b0;text-decoration:line-through;cursor:not-allowed}
.sum{background:#fff;border-left:4px solid var(--teal);padding:12px 16px;margin:14px 0;font-size:14px;line-height:1.7}
.notice{background:#eef7f7;padding:14px 18px;font-size:14px;margin-bottom:24px;border-left:4px solid var(--teal)}
@media(max-width:900px){.contact-grid,.rgrid{grid-template-columns:1fr;gap:36px}.pgrid{grid-template-columns:1fr 1fr}.ch{font-size:31px}}
@media(max-width:560px){.pgrid{grid-template-columns:1fr}}
