.photo-settings{border:1px solid var(--line);border-radius:8px;padding:18px;margin:4px 0}
.photo-settings h4{margin:0 0 12px;font-size:15px}
.photo-settings input[type=file]{padding:10px;font-size:12px}
.photo-settings input[type=range]{padding:0;accent-color:var(--green)}
#photo-crop{display:grid;gap:14px;margin-top:18px}
.photo-settings .field-help{margin-bottom:10px}
/* Contents preserves each template's original text flow when no photo exists. */
.cv-header,.cv-heading{display:contents}
.cv-photo{display:block;width:75px;height:100px;object-fit:cover;max-width:100%;margin:0}
.cv.has-photo>.cv-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;break-inside:avoid}
.cv.has-photo>.cv-header>.cv-heading{display:block;flex:1 1 0;min-width:0}
.cv.has-photo>.cv-header>.cv-heading>h2{margin-top:0;overflow-wrap:anywhere}
.cv.has-photo>.cv-header>.cv-photo{flex:0 0 75px;align-self:flex-start;margin:0;order:2}
.cv[data-layout=sidebar].has-photo{grid-template-areas:'header header' 'contact summary' 'education experience' 'skills experience'}
.cv[data-layout=sidebar].has-photo>.cv-header{grid-area:header;background:#fff;margin:-24px -18px 0;padding:24px 18px 18px}
.cv[data-layout=sidebar].has-photo>.cv-header .cv-role{border:0;padding-bottom:0}
.cv[data-layout=sidebar].has-photo>.cv-contact{padding-top:18px;padding-bottom:12px}
.cv[data-template=graduate].has-photo>.cv-header{order:1}
@media screen and (max-width:700px){
  .cv.has-photo>.cv-header{gap:14px}
  .cv[data-layout=sidebar].has-photo>.cv-header{margin:-20px -12px 0;padding:20px 12px 16px}
}
@media screen and (max-width:370px){
  .cv[data-layout=sidebar].has-photo>.cv-header{margin:-18px -10px 0;padding:18px 10px 14px}
}
@media print{
  .cv.has-photo>.cv-header{gap:8mm;break-inside:avoid}
  .cv.has-photo>.cv-header>.cv-photo{width:3cm!important;height:4cm!important;max-width:none;flex-basis:3cm;margin:0!important}
  .cv[data-layout=sidebar].has-photo>.cv-header{margin:-7mm -7mm 0;padding:7mm 7mm 5mm}
  .cv[data-layout=sidebar].has-photo>.cv-contact{padding-top:5mm}
}
