/* Connple — shared footer (all pages). Edit here once. */
.footer{
    background:var(--bg);
    border-top:1px solid var(--border);
    padding:var(--space-16) 0 var(--space-8);
  }
.footer__inner{
    max-width:var(--max-width);
    margin:0 auto;
    padding:0 var(--container);
  }
.footer__top{
    display:grid;
    grid-template-columns:1.1fr 2fr;
    gap:var(--space-16);
    align-items:start;
  }
.footer__brand{ display:flex; flex-direction:column; gap:18px; }
.footer__logo{ height:20px; width:auto; align-self:flex-start; display:block; }
.footer__cols{
    display:grid;
    grid-template-columns:1.3fr 1.2fr 0.8fr;
    gap:var(--space-10);
  }
.footer__label{
    font-size:12px;
    font-weight:500;
    letter-spacing:0.08em;
    color:var(--text-tertiary);
    margin-bottom:18px;
  }
.footer__addr{
    font-size:14px;
    font-weight:400;
    line-height:1.7;
    color:var(--text-secondary);
  }
.footer__addr + .footer__addr{ margin-top:14px; }
.footer__label + .footer__addr{ margin-top:-3px; }
.footer__list{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
.footer__list li{
    display:grid;
    grid-template-columns:64px 1fr;
    align-items:baseline;
    gap:14px;
  }
.footer__list li span{
    font-size:13px;
    font-weight:400;
    color:var(--text-tertiary);
    white-space:nowrap;
  }
.footer__list li a{
    font-size:14px;
    font-weight:400;
    color:var(--text-secondary);
    text-decoration:none;
    letter-spacing:0.01em;
    transition:color .2s ease;
  }
.footer__list li a:hover{ color:var(--point); }
.footer__sns{ position:relative; top:-2px; 
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:14px;
    font-weight:400;
    color:var(--text-secondary);
    text-decoration:none;
    transition:color .2s ease;
  }
.footer__sns:hover{ color:var(--point); }
.footer__sns{ position:relative; top:-3px; }
.footer__bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:var(--space-4);
    margin-top:var(--space-16);
    padding-top:28px;
    border-top:1px solid var(--border);
  }
.footer__copy{
    font-size:12px;
    font-weight:400;
    line-height:1.5;
    color:var(--text-tertiary);
  }
.footer__company{
    font-size:12px;
    font-weight:400;
    letter-spacing:0.04em;
    color:var(--text-secondary);
  }
@media (max-width:980px){
  .footer__top{ grid-template-columns:1fr; gap:var(--space-12); }
  .footer__cols{ grid-template-columns:1fr 1fr; gap:var(--space-10) var(--space-8); }
}
@media (max-width:640px){
  .footer{ padding:var(--space-16) 0 var(--space-8); }
  .footer__top{ grid-template-columns:1fr; gap:var(--space-16); }
  .footer__cols{ grid-template-columns:1fr; gap:var(--space-16); }
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
}
.footer{
    background:var(--bg);
    border-top:1px solid var(--border);
    padding:var(--space-16) 0 var(--space-8);
  }
.footer__inner{
    max-width:var(--max-width);
    margin:0 auto;
    padding:0 var(--container);
  }
.footer__top{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,0.8fr) minmax(0,1.7fr);
    gap:var(--space-16);
    align-items:start;
  }
.footer__brand{ display:flex; flex-direction:column; gap:18px; }
.footer__info{ display:flex; flex-direction:column; gap:var(--space-10); }
.footer__form-block .cform{ margin-top:0; }
.footer__logo{ height:20px; width:auto; align-self:flex-start; display:block; }
.footer__cols{
    display:grid;
    grid-template-columns:1.3fr 1.2fr 0.8fr;
    gap:var(--space-10);
  }
.footer__label{
    font-size:12px;
    font-weight:500;
    letter-spacing:0.08em;
    color:var(--text-tertiary);
    margin-bottom:18px;
  }
.footer__addr{
    font-size:14px;
    font-weight:400;
    line-height:1.7;
    color:var(--text-secondary);
  }
.footer__addr + .footer__addr{ margin-top:14px; }
.footer__label + .footer__addr{ margin-top:-1px; }
.footer__list{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
.footer__list li{
    display:grid;
    grid-template-columns:64px 1fr;
    align-items:baseline;
    gap:14px;
  }
.footer__list li span{
    font-size:13px;
    font-weight:400;
    color:var(--text-tertiary);
    white-space:nowrap;
  }
.footer__list li a{
    font-size:14px;
    font-weight:400;
    color:var(--text-secondary);
    text-decoration:none;
    letter-spacing:0.01em;
    transition:color .2s ease;
  }
.footer__list li a:hover{ color:var(--point); }
.footer__sns{ position:relative; top:-2px; 
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:14px;
    font-weight:400;
    color:var(--text-secondary);
    text-decoration:none;
    transition:color .2s ease;
  }
.footer__sns:hover{ color:var(--point); }
.footer__sns{ position:relative; top:-3px; }
.footer__bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:var(--space-4);
    margin-top:var(--space-16);
    padding-top:28px;
    border-top:1px solid var(--border);
  }
.footer__bottom .footer__logo{ align-self:center; }
@media (max-width:640px){
  .footer__bottom .footer__logo{ align-self:flex-start; }
}
.footer__copy{
    font-size:12px;
    font-weight:400;
    line-height:1.5;
    color:var(--text-tertiary);
  }
.footer__company{
    font-size:12px;
    font-weight:400;
    letter-spacing:0.04em;
    color:var(--text-secondary);
  }
.footer__contact{
    display:grid;
    grid-template-columns:1.1fr 2fr;
    gap:var(--space-16);
    align-items:start;
    padding-bottom:var(--space-20);
    margin-bottom:var(--space-20);
    border-bottom:1px solid var(--border);
  }
.footer__contact-title{
    font-size:24px;
    font-weight:600;
    letter-spacing:-0.015em;
    line-height:1.3;
    color:var(--text-primary);
  }
.footer__contact-desc{
    margin-top:14px;
    font-size:14px;
    font-weight:400;
    line-height:1.7;
    color:var(--text-secondary);
    max-width:300px;
  }
.cform{ display:flex; flex-direction:column; gap:12px; }
.cform__row{ display:grid; grid-template-columns:1.5fr 1fr; gap:12px; }
.cform__email{ display:grid; grid-template-columns:1fr auto minmax(0,1.3fr); align-items:center; gap:8px; }
.cform__at{ font-size:14px; color:var(--text-tertiary); }
.cform__agree-text{ display:inline-flex; align-items:center; gap:5px; }
.cform__req{ font-style:normal; font-size:12px; color:var(--text-tertiary); }
.cform__error{ font-size:12px; color:#E5484D; line-height:1.4; }
.cform__error:empty{ display:none; }
.cform__input.is-error,
  .cform__select.is-error,
  .cform__textarea.is-error{ border-color:#E5484D; }
.cform__agree.is-error .cform__check{ border-color:#E5484D; }
.cform__field{ display:flex; flex-direction:column; gap:8px; }
.cform__label{ font-size:13px; font-weight:500; color:var(--text-secondary); }
.cform__input,
  .cform__select,
  .cform__textarea{
    width:100%;
    font-family:inherit;
    font-size:14px;
    font-weight:400;
    color:var(--text-primary);
    background:#fff;
    border:1px solid var(--border);
    border-radius:var(--card-radius);
    padding:12px 14px;
    transition:border-color .18s ease, box-shadow .18s ease;
    -webkit-appearance:none; appearance:none;
  }
.cform__input::placeholder,
  .cform__textarea::placeholder{ color:var(--text-tertiary); }
.cform__input:focus,
  .cform__select:focus,
  .cform__textarea:focus{
    outline:none;
    border-color:var(--text-primary);
    box-shadow:none;
  }
.cform__textarea{ resize:vertical; min-height:76px; line-height:1.6; }
.cform__select{
    cursor:pointer;
    padding-right:40px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat:no-repeat;
    background-position:right 14px center;
  }
.cform__select:has(option[value=""]:checked){ color:var(--text-tertiary); }
.cform__foot{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-6);
    flex-wrap:wrap;
    margin-top:4px;
  }
.cform__agree{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:13px;
    color:var(--text-secondary);
    cursor:pointer;
    user-select:none;
  }
.cform__agree input{ position:absolute; opacity:0; width:0; height:0; }
.cform__check{
    width:18px; height:18px;
    border:1.5px solid #D4D4D4;
    border-radius:5px;
    display:inline-flex; align-items:center; justify-content:center;
    flex:none;
    transition:background-color .18s ease, border-color .18s ease;
  }
.cform__check svg{ width:11px; height:11px; color:#fff; opacity:0; transform:scale(.6); transition:opacity .15s ease, transform .15s ease; }
.cform__agree input:checked + .cform__check{ background:var(--point); border-color:var(--point); }
.cform__agree input:checked + .cform__check svg{ opacity:1; transform:scale(1); }
.cform__agree input:focus-visible + .cform__check{ box-shadow:0 0 0 3px rgba(18,166,143,0.18); }
.cform__agree a{ color:var(--text-secondary); text-decoration:underline; text-underline-offset:2px; }
.cform__agree a:hover{ color:var(--point); }
.cform__actions{ display:flex; align-items:center; gap:16px; }
.cform__success{ font-size:13px; font-weight:500; color:var(--point); display:none; }
.cform.is-sent .cform__success{ display:inline; }
.cform__submit{
    display:inline-flex; align-items:center; gap:7px;
    height:40px; padding:0 18px;
    background:#191C20; color:#fff;
    border:0; border-radius:999px;
    font-family:inherit; font-size:13px; font-weight:500;
    cursor:pointer;
    transition:background-color .2s ease, opacity .2s ease;
  }
.cform__submit:hover{ background:#0F1114; }
.cform__submit:disabled{ opacity:0.38; cursor:not-allowed; }
.cform__submit svg{ width:14px; height:14px; flex:none; transition:transform .25s ease; }
.cform__submit:not(:disabled):hover svg{ transform:translateX(3px); }
@media (max-width:860px){
  .footer__contact{ grid-template-columns:1fr; gap:var(--space-10); }
  .footer__contact-desc{ max-width:none; }
}
@media (max-width:560px){
  .cform__row{ grid-template-columns:1fr; }
  .cform__foot{ flex-direction:column; align-items:stretch; gap:16px; }
  .cform__actions{ justify-content:space-between; }
  .cform__submit{ flex:1; justify-content:center; }
}
@media (max-width:980px){
  .footer__top{ grid-template-columns:1fr; gap:var(--space-12); }
}
@media (max-width:640px){
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* dark theme */
/* Connple — shared dark footer (edit here to change every page) */
.footer{
  background:#191C20;
  border-top:0;
  color:#fff;
}
.footer .footer__logo{ filter:invert(1) brightness(2); }
.footer .footer__tagline{ color:rgba(255,255,255,0.72); }
.footer .footer__label{ color:rgba(255,255,255,0.55); }
.footer .footer__addr{ color:rgba(255,255,255,0.82); }
.footer .footer__list li span{ color:rgba(255,255,255,0.55); }
.footer .footer__list li a,
.footer .footer__sns{ color:rgba(255,255,255,0.92); }
.footer .footer__list li a:hover,
.footer .footer__sns:hover{ color:#8FE3D6; }
.footer .footer__bottom{ border-top:1px solid rgba(255,255,255,0.14); }
.footer .footer__copy,
.footer .footer__company{ color:rgba(255,255,255,0.5); }
.footer .footer__contact{ border-bottom:1px solid rgba(255,255,255,0.14); }
.footer .footer__contact-title{ color:#fff; }
.footer .footer__contact-desc{ color:rgba(255,255,255,0.72); }
.footer .cform__label{ color:rgba(255,255,255,0.72); }
.footer .cform__input,
.footer .cform__select,
.footer .cform__textarea{
  background:rgba(255,255,255,0.06);
  border-color:rgba(255,255,255,0.18);
  color:#fff;
}
.footer .cform__input::placeholder,
.footer .cform__textarea::placeholder{ color:rgba(255,255,255,0.4); }
.footer .cform__input:focus,
.footer .cform__select:focus,
.footer .cform__textarea:focus{ border-color:rgba(255,255,255,0.5); }
.footer .cform__agree,
.footer .cform__agree a{ color:rgba(255,255,255,0.72); }
.footer .cform__check{ border-color:rgba(255,255,255,0.35); }
.footer .cform__submit{ background:#fff; color:#191C20; }
.footer .cform__submit:not(:disabled):hover{ background:rgba(255,255,255,0.86); }

/* FOLLOW list */
.footer .footer__sns-list{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.footer .footer__sns-list .footer__sns{ top:0; }
